feat(core-flows, utils): add OrderEdit events (#12320)

* feat(core-flows, utils): add OrderEdit events

* fix: typo
This commit is contained in:
Frane Polić authored and GitHub committed 2025-04-30 17:44:39 +02:00
1 parent 90c61d1898
commit 8985998756
5 files changed
+71 -7

No files matched your search

+6
View File
@@ -0,0 +1,6 @@
---
"@medusajs/core-flows": patch
"@medusajs/utils": patch
---
feat(core-flows,utils): add Order Edit events
@@ -1,5 +1,9 @@
import { OrderChangeDTO, OrderDTO } from "@medusajs/framework/types" import { OrderChangeDTO, OrderDTO } from "@medusajs/framework/types"
import { ChangeActionType, OrderChangeStatus } from "@medusajs/framework/utils" import {
ChangeActionType,
OrderChangeStatus,
OrderEditWorkflowEvents,
} from "@medusajs/framework/utils"
import { import {
WorkflowData, WorkflowData,
createStep, createStep,
@@ -7,7 +11,7 @@ import {
parallelize, parallelize,
transform, transform,
} from "@medusajs/framework/workflows-sdk" } from "@medusajs/framework/workflows-sdk"
import { useRemoteQueryStep } from "../../../common" import { emitEventStep, useRemoteQueryStep } from "../../../common"
import { deleteOrderChangesStep, deleteOrderShippingMethods } from "../../steps" import { deleteOrderChangesStep, deleteOrderShippingMethods } from "../../steps"
import { import {
throwIfIsCancelled, throwIfIsCancelled,
@@ -128,9 +132,23 @@ export const cancelBeginOrderEditWorkflow = createWorkflow(
} }
) )
const eventData = transform(
{ order, orderChange },
({ order, orderChange }) => {
return {
order_id: order.id,
actions: orderChange.actions,
}
}
)
parallelize( parallelize(
deleteOrderChangesStep({ ids: [orderChange.id] }), deleteOrderChangesStep({ ids: [orderChange.id] }),
deleteOrderShippingMethods({ ids: shippingToRemove }) deleteOrderShippingMethods({ ids: shippingToRemove }),
emitEventStep({
eventName: OrderEditWorkflowEvents.CANCELED,
data: eventData,
})
) )
} }
) )
@@ -8,6 +8,7 @@ import {
ChangeActionType, ChangeActionType,
MathBN, MathBN,
OrderChangeStatus, OrderChangeStatus,
OrderEditWorkflowEvents,
} from "@medusajs/framework/utils" } from "@medusajs/framework/utils"
import { import {
WorkflowResponse, WorkflowResponse,
@@ -17,7 +18,7 @@ import {
} from "@medusajs/framework/workflows-sdk" } from "@medusajs/framework/workflows-sdk"
import { reserveInventoryStep } from "../../../cart/steps/reserve-inventory" import { reserveInventoryStep } from "../../../cart/steps/reserve-inventory"
import { prepareConfirmInventoryInput } from "../../../cart/utils/prepare-confirm-inventory-input" import { prepareConfirmInventoryInput } from "../../../cart/utils/prepare-confirm-inventory-input"
import { useRemoteQueryStep } from "../../../common" import { emitEventStep, useRemoteQueryStep } from "../../../common"
import { deleteReservationsByLineItemsStep } from "../../../reservation" import { deleteReservationsByLineItemsStep } from "../../../reservation"
import { previewOrderChangeStep } from "../../steps" import { previewOrderChangeStep } from "../../steps"
import { confirmOrderChanges } from "../../steps/confirm-order-changes" import { confirmOrderChanges } from "../../steps/confirm-order-changes"
@@ -287,6 +288,21 @@ export const confirmOrderEditRequestWorkflow = createWorkflow(
}, },
}) })
const eventData = transform(
{ order, orderChange },
({ order, orderChange }) => {
return {
order_id: order.id,
actions: orderChange.actions,
}
}
)
emitEventStep({
eventName: OrderEditWorkflowEvents.CONFIRMED,
data: eventData,
})
return new WorkflowResponse(orderPreview) return new WorkflowResponse(orderPreview)
} }
) )
@@ -3,14 +3,17 @@ import {
OrderDTO, OrderDTO,
OrderPreviewDTO, OrderPreviewDTO,
} from "@medusajs/framework/types" } from "@medusajs/framework/types"
import { OrderChangeStatus } from "@medusajs/framework/utils" import {
OrderChangeStatus,
OrderEditWorkflowEvents,
} from "@medusajs/framework/utils"
import { import {
WorkflowResponse, WorkflowResponse,
createStep, createStep,
createWorkflow, createWorkflow,
transform, transform,
} from "@medusajs/framework/workflows-sdk" } from "@medusajs/framework/workflows-sdk"
import { useRemoteQueryStep } from "../../../common" import { emitEventStep, useRemoteQueryStep } from "../../../common"
import { previewOrderChangeStep } from "../../steps" import { previewOrderChangeStep } from "../../steps"
import { updateOrderChangesStep } from "../../steps/update-order-changes" import { updateOrderChangesStep } from "../../steps/update-order-changes"
import { import {
@@ -134,7 +137,7 @@ export const requestOrderEditRequestWorkflow = createWorkflow(
const orderChange: OrderChangeDTO = useRemoteQueryStep({ const orderChange: OrderChangeDTO = useRemoteQueryStep({
entry_point: "order_change", entry_point: "order_change",
fields: ["id", "canceled_at"], fields: ["id", "canceled_at", "actions.*"],
variables: { variables: {
filters: { filters: {
order_id: input.order_id, order_id: input.order_id,
@@ -152,6 +155,21 @@ export const requestOrderEditRequestWorkflow = createWorkflow(
const updateOrderChangesData = getOrderChangesData({ input, orderChange }) const updateOrderChangesData = getOrderChangesData({ input, orderChange })
updateOrderChangesStep(updateOrderChangesData) updateOrderChangesStep(updateOrderChangesData)
const eventData = transform(
{ order, orderChange },
({ order, orderChange }) => {
return {
order_id: order.id,
actions: orderChange.actions,
}
}
)
emitEventStep({
eventName: OrderEditWorkflowEvents.REQUESTED,
data: eventData,
})
return new WorkflowResponse(previewOrderChangeStep(order.id)) return new WorkflowResponse(previewOrderChangeStep(order.id))
} }
) )
@@ -31,6 +31,12 @@ export const OrderWorkflowEvents = {
TRANSFER_REQUESTED: "order.transfer_requested", TRANSFER_REQUESTED: "order.transfer_requested",
} }
export const OrderEditWorkflowEvents = {
REQUESTED: "order-edit.requested",
CONFIRMED: "order-edit.confirmed",
CANCELED: "order-edit.canceled",
}
export const UserWorkflowEvents = { export const UserWorkflowEvents = {
CREATED: "user.created", CREATED: "user.created",
UPDATED: "user.updated", UPDATED: "user.updated",