Fix(medusa): Missing location id on fulfillments (#3462)

**What**
- include location id when creating a fulfillment
- Allow location updates to reservations without passing along quantity

**Why**
- location_id on fulfillment was null after creation

Fixes CORE-1242, CORE-1243
This commit is contained in:
Philip Korsholm
2023-03-14 11:08:52 +00:00
committed by GitHub
parent 24604f1b71
commit 30a3203640
6 changed files with 169 additions and 6 deletions
@@ -170,6 +170,10 @@ const CreateFulfillmentModal: React.FC<CreateFulfillmentModalProps> = ({
no_notification: noNotis,
} as AdminPostOrdersOrderFulfillmentsReq
if (isLocationFulfillmentEnabled) {
requestObj.location_id = locationSelectValue.value
}
requestObj.items = Object.entries(quantities)
.filter(([, value]) => !!value)
.map(([key, value]) => ({
@@ -166,7 +166,6 @@ export default class ReservationItemService extends TransactionBaseService {
const shouldUpdateLocation =
isDefined(data.location_id) &&
isDefined(data.quantity) &&
data.location_id !== item.location_id
const ops: Promise<unknown>[] = []
@@ -185,7 +184,7 @@ export default class ReservationItemService extends TransactionBaseService {
.adjustReservedQuantity(
item.inventory_item_id,
data.location_id!,
data.quantity!
data.quantity || item.quantity!
)
)
} else if (shouldUpdateQuantity) {
@@ -121,6 +121,7 @@ export default async (req, res) => {
await orderServiceTx.createFulfillment(id, validatedBody.items, {
metadata: validatedBody.metadata,
no_notification: validatedBody.no_notification,
location_id: validatedBody.location_id,
})
if (validatedBody.location_id) {