feature: add create and update cart hooks (#8481)
This commit is contained in:
@@ -1,8 +1,13 @@
|
||||
import { CartDTO, CreateCartWorkflowInputDTO } from "@medusajs/types"
|
||||
import {
|
||||
AdditionalData,
|
||||
CartDTO,
|
||||
CreateCartWorkflowInputDTO,
|
||||
} from "@medusajs/types"
|
||||
import { MedusaError } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
parallelize,
|
||||
transform,
|
||||
@@ -29,9 +34,7 @@ import { refreshPaymentCollectionForCartWorkflow } from "./refresh-payment-colle
|
||||
export const createCartWorkflowId = "create-cart"
|
||||
export const createCartWorkflow = createWorkflow(
|
||||
createCartWorkflowId,
|
||||
(
|
||||
input: WorkflowData<CreateCartWorkflowInputDTO>
|
||||
): WorkflowResponse<CartDTO> => {
|
||||
(input: WorkflowData<CreateCartWorkflowInputDTO & AdditionalData>) => {
|
||||
const variantIds = transform({ input }, (data) => {
|
||||
return (data.input.items ?? []).map((i) => i.variant_id)
|
||||
})
|
||||
@@ -158,6 +161,13 @@ export const createCartWorkflow = createWorkflow(
|
||||
},
|
||||
})
|
||||
|
||||
return new WorkflowResponse(cart)
|
||||
const cartCreated = createHook("cartCreated", {
|
||||
cart,
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(cart, {
|
||||
hooks: [cartCreated],
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
import { UpdateCartWorkflowInputDTO } from "@medusajs/types"
|
||||
import { AdditionalData, UpdateCartWorkflowInputDTO } from "@medusajs/types"
|
||||
import { MedusaError, PromotionActions, isPresent } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
parallelize,
|
||||
transform,
|
||||
@@ -22,7 +24,7 @@ import { refreshPaymentCollectionForCartWorkflow } from "./refresh-payment-colle
|
||||
export const updateCartWorkflowId = "update-cart"
|
||||
export const updateCartWorkflow = createWorkflow(
|
||||
updateCartWorkflowId,
|
||||
(input: WorkflowData<UpdateCartWorkflowInputDTO>): WorkflowData<void> => {
|
||||
(input: WorkflowData<UpdateCartWorkflowInputDTO & AdditionalData>) => {
|
||||
const [salesChannel, region, customerData] = parallelize(
|
||||
findSalesChannelStep({
|
||||
salesChannelId: input.sales_channel_id,
|
||||
@@ -96,5 +98,14 @@ export const updateCartWorkflow = createWorkflow(
|
||||
cart_id: input.id,
|
||||
},
|
||||
})
|
||||
|
||||
const cartUpdated = createHook("cartUpdated", {
|
||||
cart,
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(void 0, {
|
||||
hooks: [cartUpdated],
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user