fix(core-flows): draft order reservations (#12115)
* fix: draft order reservations * feat: add test case * fix: assert item ids
This commit is contained in:
@@ -114,19 +114,25 @@ export const confirmDraftOrderEditWorkflow = createWorkflow(
|
||||
throw_if_key_not_found: true,
|
||||
}).config({ name: "order-items-query" })
|
||||
|
||||
const lineItemIds = transform(
|
||||
const { removedLineItemIds } = transform(
|
||||
{ orderItems, previousOrderItems: order.items },
|
||||
|
||||
(data) => {
|
||||
const previousItemIds = (data.previousOrderItems || []).map(
|
||||
({ id }) => id
|
||||
) // items that have been removed with the change
|
||||
const newItemIds = data.orderItems.items.map(({ id }) => id)
|
||||
return [...new Set([...previousItemIds, ...newItemIds])]
|
||||
)
|
||||
const currentItemIds = data.orderItems.items.map(({ id }) => id)
|
||||
|
||||
const removedItemIds = previousItemIds.filter(
|
||||
(id) => !currentItemIds.includes(id)
|
||||
)
|
||||
|
||||
return {
|
||||
removedLineItemIds: removedItemIds,
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
deleteReservationsByLineItemsStep(lineItemIds)
|
||||
deleteReservationsByLineItemsStep(removedLineItemIds)
|
||||
|
||||
const { variants, items } = transform(
|
||||
{ orderItems, orderPreview },
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
import { Modules, OrderStatus } from "@medusajs/framework/utils"
|
||||
import {
|
||||
Modules,
|
||||
OrderStatus,
|
||||
OrderWorkflowEvents,
|
||||
} from "@medusajs/framework/utils"
|
||||
import {
|
||||
createStep,
|
||||
createWorkflow,
|
||||
@@ -7,7 +11,7 @@ import {
|
||||
WorkflowResponse,
|
||||
} from "@medusajs/framework/workflows-sdk"
|
||||
import { IOrderModuleService, OrderDTO } from "@medusajs/types"
|
||||
import { useRemoteQueryStep } from "../../common"
|
||||
import { emitEventStep, useRemoteQueryStep } from "../../common"
|
||||
import { validateDraftOrderStep } from "../steps/validate-draft-order"
|
||||
|
||||
const convertDraftOrderWorkflowId = "convert-draft-order"
|
||||
@@ -91,6 +95,11 @@ export const convertDraftOrderWorkflow = createWorkflow(
|
||||
|
||||
const updatedOrder = convertDraftOrderStep({ id: input.id })
|
||||
|
||||
emitEventStep({
|
||||
eventName: OrderWorkflowEvents.PLACED,
|
||||
data: { id: updatedOrder.id },
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedOrder)
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user