Skip to content

Commit b3fe0aa

Browse files
committed
fix: Inventory check
1 parent 6aa89b6 commit b3fe0aa

5 files changed

Lines changed: 119 additions & 0 deletions

File tree

integration-tests/http/__tests__/order-edits/order-edits.spec.ts

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ medusaIntegrationTestRunner({
2525
let inventoryItem
2626
let inventoryItemExtra
2727
let location
28+
let locationTwo
2829
let productExtra
2930
const shippingProviderId = "manual_test-provider"
3031

@@ -212,6 +213,16 @@ medusaIntegrationTestRunner({
212213
)
213214
).data.stock_location
214215

216+
locationTwo = (
217+
await api.post(
218+
`/admin/stock-locations`,
219+
{
220+
name: "Test location two",
221+
},
222+
adminHeaders
223+
)
224+
).data.stock_location
225+
215226
fulfillmentSet = (
216227
await api.post(
217228
`/admin/fulfillment-sets/${location.fulfillment_sets[0].id}/service-zones`,
@@ -240,6 +251,15 @@ medusaIntegrationTestRunner({
240251
adminHeaders
241252
)
242253

254+
// await api.post(
255+
// `/admin/inventory-items/${inventoryItem.id}/location-levels`,
256+
// {
257+
// location_id: locationTwo.id,
258+
// stocked_quantity: 0,
259+
// },
260+
// adminHeaders
261+
// )
262+
243263
inventoryItemExtra = (
244264
await api.get(`/admin/inventory-items?sku=variant-sku`, adminHeaders)
245265
).data.inventory_items[0]
@@ -266,6 +286,14 @@ medusaIntegrationTestRunner({
266286
fulfillment_provider_id: shippingProviderId,
267287
},
268288
},
289+
// {
290+
// [Modules.STOCK_LOCATION]: {
291+
// stock_location_id: locationTwo.id,
292+
// },
293+
// [Modules.FULFILLMENT]: {
294+
// fulfillment_provider_id: shippingProviderId,
295+
// },
296+
// },
269297
{
270298
[Modules.STOCK_LOCATION]: {
271299
stock_location_id: location.id,
@@ -282,6 +310,14 @@ medusaIntegrationTestRunner({
282310
stock_location_id: location.id,
283311
},
284312
},
313+
{
314+
[Modules.SALES_CHANNEL]: {
315+
sales_channel_id: salesChannel.id,
316+
},
317+
[Modules.STOCK_LOCATION]: {
318+
stock_location_id: locationTwo.id,
319+
},
320+
},
285321
{
286322
[Modules.PRODUCT]: {
287323
variant_id: product.variants[0].id,
@@ -553,10 +589,29 @@ medusaIntegrationTestRunner({
553589
)
554590
).data.stock_location
555591

592+
locationTwo = (
593+
await api.post(
594+
`/admin/stock-locations`,
595+
{
596+
name: "Test location two",
597+
},
598+
adminHeaders
599+
)
600+
).data.stock_location
601+
556602
await api.post(
557603
`/admin/inventory-items/${inventoryItemLarge.id}/location-levels`,
558604
{
559605
location_id: location.id,
606+
stocked_quantity: 0,
607+
},
608+
adminHeaders
609+
)
610+
611+
await api.post(
612+
`/admin/inventory-items/${inventoryItemLarge.id}/location-levels`,
613+
{
614+
location_id: locationTwo.id,
560615
stocked_quantity: 10,
561616
},
562617
adminHeaders
@@ -860,6 +915,62 @@ medusaIntegrationTestRunner({
860915
])
861916
)
862917
})
918+
919+
it.only("should manage inventory across locations in order edit", async () => {
920+
let edit = (
921+
await api.post(
922+
`/admin/order-edits`,
923+
{ order_id: order.id },
924+
adminHeaders
925+
)
926+
).data.order_change
927+
928+
// Add item
929+
await api.post(
930+
`/admin/order-edits/${order.id}/items`,
931+
{
932+
items: [
933+
{
934+
variant_id: product.variants.find((v) => v.title === "L shirt")
935+
.id,
936+
quantity: 1,
937+
},
938+
],
939+
},
940+
adminHeaders
941+
)
942+
943+
edit = (
944+
await api.post(
945+
`/admin/order-edits/${order.id}/request`,
946+
{},
947+
adminHeaders
948+
)
949+
).data.order_change
950+
951+
edit = (
952+
await api.post(
953+
`/admin/order-edits/${order.id}/confirm`,
954+
{},
955+
adminHeaders
956+
)
957+
).data.order_change
958+
959+
order = (await api.get(`/admin/orders/${order.id}`, adminHeaders)).data
960+
.order
961+
962+
console.log(JSON.stringify(order.items, null, 2))
963+
964+
expect(order.items.length).toBe(2)
965+
expect(order.items).toEqual(
966+
expect.arrayContaining([
967+
expect.objectContaining({
968+
subtitle: "L shirt",
969+
quantity: 2,
970+
}),
971+
])
972+
)
973+
})
863974
})
864975

865976
describe("Order Edit Shipping Methods", () => {

packages/core/core-flows/src/cart/utils/fields.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ export const productVariantsFields = [
168168
"inventory_items.inventory.requires_shipping",
169169
"inventory_items.inventory.location_levels.stocked_quantity",
170170
"inventory_items.inventory.location_levels.reserved_quantity",
171+
"inventory_items.inventory.location_levels.location_id",
171172
"inventory_items.inventory.location_levels.raw_stocked_quantity",
172173
"inventory_items.inventory.location_levels.raw_reserved_quantity",
173174
"inventory_items.inventory.location_levels.stock_locations.id",

packages/core/core-flows/src/draft-order/workflows/confirm-draft-order-edit.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ export const confirmDraftOrderEditWorkflow = createWorkflow(
124124
"items.variant.allow_backorder",
125125
"items.variant.inventory_items.inventory_item_id",
126126
"items.variant.inventory_items.required_quantity",
127+
"items.variant.inventory_items.inventory.location_levels.stocked_quantity",
128+
"items.variant.inventory_items.inventory.location_levels.reserved_quantity",
129+
"items.variant.inventory_items.inventory.location_levels.location_id",
127130
"items.variant.inventory_items.inventory.location_levels.stock_locations.id",
128131
"items.variant.inventory_items.inventory.location_levels.stock_locations.name",
129132
"items.variant.inventory_items.inventory.location_levels.stock_locations.sales_channels.id",

packages/core/core-flows/src/order/utils/fields.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export const productVariantsFields = [
1919
"inventory_items.inventory.requires_shipping",
2020
"inventory_items.inventory.location_levels.stocked_quantity",
2121
"inventory_items.inventory.location_levels.reserved_quantity",
22+
"inventory_items.inventory.location_levels.location_id",
2223
"inventory_items.inventory.location_levels.raw_stocked_quantity",
2324
"inventory_items.inventory.location_levels.raw_reserved_quantity",
2425
"inventory_items.inventory.location_levels.stock_locations.id",

packages/core/core-flows/src/order/workflows/order-edit/confirm-order-edit-request.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,9 @@ export const confirmOrderEditRequestWorkflow = createWorkflow(
181181
"items.variant.allow_backorder",
182182
"items.variant.inventory_items.inventory_item_id",
183183
"items.variant.inventory_items.required_quantity",
184+
"items.variant.inventory_items.inventory.location_levels.stocked_quantity",
185+
"items.variant.inventory_items.inventory.location_levels.reserved_quantity",
186+
"items.variant.inventory_items.inventory.location_levels.location_id",
184187
"items.variant.inventory_items.inventory.location_levels.stock_locations.id",
185188
"items.variant.inventory_items.inventory.location_levels.stock_locations.name",
186189
"items.variant.inventory_items.inventory.location_levels.stock_locations.sales_channels.id",

0 commit comments

Comments
 (0)