chore: parallelize steps (#7605)
This commit is contained in:
1 parent
e7005a0aac
commit
1ba887f4c9
16 files changed
+142
-110
No files matched your search
+9
-5
@@ -1,6 +1,7 @@
|
|||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { useRemoteQueryStep } from "../../../common/steps/use-remote-query"
|
import { useRemoteQueryStep } from "../../../common/steps/use-remote-query"
|
||||||
@@ -78,10 +79,13 @@ export const addShippingMethodToWorkflow = createWorkflow(
|
|||||||
const shippingMethods = addShippingMethodToCartStep({
|
const shippingMethods = addShippingMethodToCartStep({
|
||||||
shipping_methods: shippingMethodInput,
|
shipping_methods: shippingMethodInput,
|
||||||
})
|
})
|
||||||
refreshCartPromotionsStep({ id: input.cart_id })
|
|
||||||
updateTaxLinesStep({
|
parallelize(
|
||||||
cart_or_cart_id: input.cart_id,
|
refreshCartPromotionsStep({ id: input.cart_id }),
|
||||||
shipping_methods: shippingMethods,
|
updateTaxLinesStep({
|
||||||
})
|
cart_or_cart_id: input.cart_id,
|
||||||
|
shipping_methods: shippingMethods,
|
||||||
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -111,10 +111,12 @@ export const addToCartWorkflow = createWorkflow(
|
|||||||
list: false,
|
list: false,
|
||||||
}).config({ name: "refetch–cart" })
|
}).config({ name: "refetch–cart" })
|
||||||
|
|
||||||
refreshCartShippingMethodsStep({ cart })
|
parallelize(
|
||||||
updateTaxLinesStep({ cart_or_cart_id: input.cart.id, items })
|
refreshCartShippingMethodsStep({ cart }),
|
||||||
refreshCartPromotionsStep({ id: input.cart.id })
|
updateTaxLinesStep({ cart_or_cart_id: input.cart.id, items }),
|
||||||
refreshPaymentCollectionForCartStep({ cart_id: input.cart.id })
|
refreshCartPromotionsStep({ id: input.cart.id }),
|
||||||
|
refreshPaymentCollectionForCartStep({ cart_id: input.cart.id })
|
||||||
|
)
|
||||||
|
|
||||||
return items
|
return items
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { OrderDTO } from "@medusajs/types"
|
|||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { useRemoteQueryStep } from "../../../common"
|
import { useRemoteQueryStep } from "../../../common"
|
||||||
@@ -62,14 +63,15 @@ export const completeCartWorkflow = createWorkflow(
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
reserveInventoryStep(formatedInventoryItems)
|
const [, finalCart] = parallelize(
|
||||||
|
reserveInventoryStep(formatedInventoryItems),
|
||||||
const finalCart = useRemoteQueryStep({
|
useRemoteQueryStep({
|
||||||
entry_point: "cart",
|
entry_point: "cart",
|
||||||
fields: completeCartFields,
|
fields: completeCartFields,
|
||||||
variables: { id: input.id },
|
variables: { id: input.id },
|
||||||
list: false,
|
list: false,
|
||||||
}).config({ name: "final-cart" })
|
}).config({ name: "final-cart" })
|
||||||
|
)
|
||||||
|
|
||||||
const order = createOrderFromCartStep({ cart: finalCart })
|
const order = createOrderFromCartStep({ cart: finalCart })
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { CartDTO, CreateCartWorkflowInputDTO } from "@medusajs/types"
|
import { CartDTO, CreateCartWorkflowInputDTO } from "@medusajs/types"
|
||||||
|
import { MedusaError } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
@@ -20,7 +21,6 @@ import { productVariantsFields } from "../utils/fields"
|
|||||||
import { prepareLineItemData } from "../utils/prepare-line-item-data"
|
import { prepareLineItemData } from "../utils/prepare-line-item-data"
|
||||||
import { confirmVariantInventoryWorkflow } from "./confirm-variant-inventory"
|
import { confirmVariantInventoryWorkflow } from "./confirm-variant-inventory"
|
||||||
import { refreshPaymentCollectionForCartStep } from "./refresh-payment-collection"
|
import { refreshPaymentCollectionForCartStep } from "./refresh-payment-collection"
|
||||||
import { MedusaError } from "@medusajs/utils"
|
|
||||||
|
|
||||||
// TODO: The createCartWorkflow are missing the following steps:
|
// TODO: The createCartWorkflow are missing the following steps:
|
||||||
// - Refresh/delete shipping methods (fulfillment module)
|
// - Refresh/delete shipping methods (fulfillment module)
|
||||||
@@ -140,14 +140,16 @@ export const createCartWorkflow = createWorkflow(
|
|||||||
const carts = createCartsStep([cartToCreate])
|
const carts = createCartsStep([cartToCreate])
|
||||||
const cart = transform({ carts }, (data) => data.carts?.[0])
|
const cart = transform({ carts }, (data) => data.carts?.[0])
|
||||||
|
|
||||||
refreshCartPromotionsStep({
|
parallelize(
|
||||||
id: cart.id,
|
refreshCartPromotionsStep({
|
||||||
promo_codes: input.promo_codes,
|
id: cart.id,
|
||||||
})
|
promo_codes: input.promo_codes,
|
||||||
updateTaxLinesStep({ cart_or_cart_id: cart.id })
|
}),
|
||||||
refreshPaymentCollectionForCartStep({
|
updateTaxLinesStep({ cart_or_cart_id: cart.id }),
|
||||||
cart_id: cart.id,
|
refreshPaymentCollectionForCartStep({
|
||||||
})
|
cart_id: cart.id,
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
return cart
|
return cart
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-11
@@ -3,6 +3,7 @@ import {
|
|||||||
WorkflowData,
|
WorkflowData,
|
||||||
createStep,
|
createStep,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { useRemoteQueryStep } from "../../../common/steps/use-remote-query"
|
import { useRemoteQueryStep } from "../../../common/steps/use-remote-query"
|
||||||
@@ -55,16 +56,17 @@ export const refreshPaymentCollectionForCartWorkflow = createWorkflow(
|
|||||||
|
|
||||||
const cart = transform({ carts }, (data) => data.carts[0])
|
const cart = transform({ carts }, (data) => data.carts[0])
|
||||||
|
|
||||||
deletePaymentSessionStep({
|
parallelize(
|
||||||
payment_session_id: cart.payment_collection.payment_sessions?.[0].id,
|
deletePaymentSessionStep({
|
||||||
})
|
payment_session_id: cart.payment_collection.payment_sessions?.[0].id,
|
||||||
|
}),
|
||||||
updatePaymentCollectionStep({
|
updatePaymentCollectionStep({
|
||||||
selector: { id: cart.payment_collection.id },
|
selector: { id: cart.payment_collection.id },
|
||||||
update: {
|
update: {
|
||||||
amount: cart.total,
|
amount: cart.total,
|
||||||
currency_code: cart.currency_code,
|
currency_code: cart.currency_code,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -60,18 +60,16 @@ export const updateCartPromotionsWorkflow = createWorkflow(
|
|||||||
removeLineItemAdjustmentsStep({ lineItemAdjustmentIdsToRemove }),
|
removeLineItemAdjustmentsStep({ lineItemAdjustmentIdsToRemove }),
|
||||||
removeShippingMethodAdjustmentsStep({
|
removeShippingMethodAdjustmentsStep({
|
||||||
shippingMethodAdjustmentIdsToRemove,
|
shippingMethodAdjustmentIdsToRemove,
|
||||||
|
}),
|
||||||
|
createLineItemAdjustmentsStep({ lineItemAdjustmentsToCreate }),
|
||||||
|
createShippingMethodAdjustmentsStep({
|
||||||
|
shippingMethodAdjustmentsToCreate,
|
||||||
|
}),
|
||||||
|
updateCartPromotionsStep({
|
||||||
|
id: input.cartId,
|
||||||
|
promo_codes: computedPromotionCodes,
|
||||||
|
action: PromotionActions.REPLACE,
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
parallelize(
|
|
||||||
createLineItemAdjustmentsStep({ lineItemAdjustmentsToCreate }),
|
|
||||||
createShippingMethodAdjustmentsStep({ shippingMethodAdjustmentsToCreate })
|
|
||||||
)
|
|
||||||
|
|
||||||
updateCartPromotionsStep({
|
|
||||||
id: input.cartId,
|
|
||||||
promo_codes: computedPromotionCodes,
|
|
||||||
action: PromotionActions.REPLACE,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -80,16 +80,17 @@ export const updateCartWorkflow = createWorkflow(
|
|||||||
list: false,
|
list: false,
|
||||||
}).config({ name: "refetch–cart" })
|
}).config({ name: "refetch–cart" })
|
||||||
|
|
||||||
refreshCartShippingMethodsStep({ cart })
|
parallelize(
|
||||||
updateTaxLinesStep({ cart_or_cart_id: carts[0].id })
|
refreshCartShippingMethodsStep({ cart }),
|
||||||
refreshCartPromotionsStep({
|
updateTaxLinesStep({ cart_or_cart_id: carts[0].id }),
|
||||||
id: input.id,
|
refreshCartPromotionsStep({
|
||||||
promo_codes: input.promo_codes,
|
id: input.id,
|
||||||
action: PromotionActions.REPLACE,
|
promo_codes: input.promo_codes,
|
||||||
})
|
action: PromotionActions.REPLACE,
|
||||||
|
}),
|
||||||
refreshPaymentCollectionForCartStep({
|
refreshPaymentCollectionForCartStep({
|
||||||
cart_id: input.id,
|
cart_id: input.id,
|
||||||
})
|
})
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -2,6 +2,7 @@ import { UpdateLineItemInCartWorkflowInputDTO } from "@medusajs/types"
|
|||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { useRemoteQueryStep } from "../../../common/steps/use-remote-query"
|
import { useRemoteQueryStep } from "../../../common/steps/use-remote-query"
|
||||||
@@ -86,9 +87,11 @@ export const updateLineItemInCartWorkflow = createWorkflow(
|
|||||||
list: false,
|
list: false,
|
||||||
}).config({ name: "refetch–cart" })
|
}).config({ name: "refetch–cart" })
|
||||||
|
|
||||||
refreshCartShippingMethodsStep({ cart })
|
parallelize(
|
||||||
refreshCartPromotionsStep({ id: input.cart.id })
|
refreshCartShippingMethodsStep({ cart }),
|
||||||
refreshPaymentCollectionForCartStep({ cart_id: input.cart.id })
|
refreshCartPromotionsStep({ id: input.cart.id }),
|
||||||
|
refreshPaymentCollectionForCartStep({ cart_id: input.cart.id })
|
||||||
|
)
|
||||||
|
|
||||||
const updatedItem = transform({ result }, (data) => data.result?.[0])
|
const updatedItem = transform({ result }, (data) => data.result?.[0])
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import {
|
|||||||
WorkflowData,
|
WorkflowData,
|
||||||
createStep,
|
createStep,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { useRemoteQueryStep } from "../../common"
|
import { useRemoteQueryStep } from "../../common"
|
||||||
@@ -125,24 +126,26 @@ export const cancelOrderFulfillmentWorkflow = createWorkflow(
|
|||||||
return order.fulfillments.find((f) => f.id === input.fulfillment_id)!
|
return order.fulfillments.find((f) => f.id === input.fulfillment_id)!
|
||||||
})
|
})
|
||||||
|
|
||||||
cancelFulfillmentWorkflow.runAsStep({
|
|
||||||
input: {
|
|
||||||
id: input.fulfillment_id,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
const cancelOrderFulfillmentData = transform(
|
const cancelOrderFulfillmentData = transform(
|
||||||
{ order, fulfillment },
|
{ order, fulfillment },
|
||||||
prepareCancelOrderFulfillmentData
|
prepareCancelOrderFulfillmentData
|
||||||
)
|
)
|
||||||
|
|
||||||
cancelOrderFulfillmentStep(cancelOrderFulfillmentData)
|
|
||||||
|
|
||||||
const { inventoryAdjustment } = transform(
|
const { inventoryAdjustment } = transform(
|
||||||
{ order, fulfillment },
|
{ order, fulfillment },
|
||||||
prepareInventoryUpdate
|
prepareInventoryUpdate
|
||||||
)
|
)
|
||||||
|
|
||||||
adjustInventoryLevelsStep(inventoryAdjustment)
|
parallelize(
|
||||||
|
cancelOrderFulfillmentStep(cancelOrderFulfillmentData),
|
||||||
|
adjustInventoryLevelsStep(inventoryAdjustment)
|
||||||
|
)
|
||||||
|
|
||||||
|
// last step because there is no compensation for this step
|
||||||
|
cancelFulfillmentWorkflow.runAsStep({
|
||||||
|
input: {
|
||||||
|
id: input.fulfillment_id,
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -9,6 +9,7 @@ import {
|
|||||||
WorkflowData,
|
WorkflowData,
|
||||||
createStep,
|
createStep,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { useRemoteQueryStep } from "../../common"
|
import { useRemoteQueryStep } from "../../common"
|
||||||
@@ -112,7 +113,6 @@ export const cancelOrderWorkflow = createWorkflow(
|
|||||||
const lineItemIds = transform({ order }, ({ order }) => {
|
const lineItemIds = transform({ order }, ({ order }) => {
|
||||||
return order.items?.map((i) => i.id)
|
return order.items?.map((i) => i.id)
|
||||||
})
|
})
|
||||||
deleteReservationsByLineItemsStep(lineItemIds)
|
|
||||||
|
|
||||||
const paymentIds = transform({ order }, ({ order }) => {
|
const paymentIds = transform({ order }, ({ order }) => {
|
||||||
return deepFlatMap(
|
return deepFlatMap(
|
||||||
@@ -123,8 +123,11 @@ export const cancelOrderWorkflow = createWorkflow(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
cancelPaymentStep({ paymentIds })
|
|
||||||
|
|
||||||
cancelOrdersStep({ orderIds: [order.id] })
|
parallelize(
|
||||||
|
deleteReservationsByLineItemsStep(lineItemIds),
|
||||||
|
cancelPaymentStep({ paymentIds }),
|
||||||
|
cancelOrdersStep({ orderIds: [order.id] })
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -261,8 +261,6 @@ export const createOrderFulfillmentWorkflow = createWorkflow(
|
|||||||
prepareRegisterOrderFulfillmentData
|
prepareRegisterOrderFulfillmentData
|
||||||
)
|
)
|
||||||
|
|
||||||
registerOrderFulfillmentStep(registerOrderFulfillmentData)
|
|
||||||
|
|
||||||
const link = transform(
|
const link = transform(
|
||||||
{ order_id: input.order_id, fulfillment },
|
{ order_id: input.order_id, fulfillment },
|
||||||
(data) => {
|
(data) => {
|
||||||
@@ -274,7 +272,6 @@ export const createOrderFulfillmentWorkflow = createWorkflow(
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
createRemoteLinkStep(link)
|
|
||||||
|
|
||||||
const { toDelete, toUpdate, inventoryAdjustment } = transform(
|
const { toDelete, toUpdate, inventoryAdjustment } = transform(
|
||||||
{ order, reservations, input },
|
{ order, reservations, input },
|
||||||
@@ -282,6 +279,8 @@ export const createOrderFulfillmentWorkflow = createWorkflow(
|
|||||||
)
|
)
|
||||||
|
|
||||||
parallelize(
|
parallelize(
|
||||||
|
registerOrderFulfillmentStep(registerOrderFulfillmentData),
|
||||||
|
createRemoteLinkStep(link),
|
||||||
updateReservationsStep(toUpdate),
|
updateReservationsStep(toUpdate),
|
||||||
deleteReservationsStep(toDelete),
|
deleteReservationsStep(toDelete),
|
||||||
adjustInventoryLevelsStep(inventoryAdjustment)
|
adjustInventoryLevelsStep(inventoryAdjustment)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import {
|
|||||||
WorkflowData,
|
WorkflowData,
|
||||||
createStep,
|
createStep,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { createRemoteLinkStep, useRemoteQueryStep } from "../../common"
|
import { createRemoteLinkStep, useRemoteQueryStep } from "../../common"
|
||||||
@@ -295,18 +296,6 @@ export const createReturnOrderWorkflow = createWorkflow(
|
|||||||
prepareShippingMethodData
|
prepareShippingMethodData
|
||||||
)
|
)
|
||||||
|
|
||||||
createReturnStep({
|
|
||||||
order_id: input.order_id,
|
|
||||||
items: input.items,
|
|
||||||
shipping_method: shippingMethodData,
|
|
||||||
created_by: input.created_by,
|
|
||||||
})
|
|
||||||
|
|
||||||
updateOrderTaxLinesStep({
|
|
||||||
order_id: input.order_id,
|
|
||||||
shipping_methods: [shippingMethodData as any], // The types does not seems correct in that step and expect too many things compared to the actual needs
|
|
||||||
})
|
|
||||||
|
|
||||||
const fulfillmentData = transform(
|
const fulfillmentData = transform(
|
||||||
{ order, input, returnShippingOption },
|
{ order, input, returnShippingOption },
|
||||||
prepareFulfillmentData
|
prepareFulfillmentData
|
||||||
@@ -326,6 +315,19 @@ export const createReturnOrderWorkflow = createWorkflow(
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
createRemoteLinkStep(link)
|
|
||||||
|
parallelize(
|
||||||
|
createReturnStep({
|
||||||
|
order_id: input.order_id,
|
||||||
|
items: input.items,
|
||||||
|
shipping_method: shippingMethodData,
|
||||||
|
created_by: input.created_by,
|
||||||
|
}),
|
||||||
|
updateOrderTaxLinesStep({
|
||||||
|
order_id: input.order_id,
|
||||||
|
shipping_methods: [shippingMethodData as any], // The types does not seems correct in that step and expect too many things compared to the actual needs
|
||||||
|
}),
|
||||||
|
createRemoteLinkStep(link)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -4,6 +4,7 @@ import {
|
|||||||
WorkflowData,
|
WorkflowData,
|
||||||
createStep,
|
createStep,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { useRemoteQueryStep } from "../../common"
|
import { useRemoteQueryStep } from "../../common"
|
||||||
@@ -95,15 +96,16 @@ export const createOrderShipmentWorkflow = createWorkflow(
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
createShipmentWorkflow.runAsStep({
|
|
||||||
input: fulfillmentData,
|
|
||||||
})
|
|
||||||
|
|
||||||
const shipmentData = transform(
|
const shipmentData = transform(
|
||||||
{ order, input },
|
{ order, input },
|
||||||
prepareRegisterShipmentData
|
prepareRegisterShipmentData
|
||||||
)
|
)
|
||||||
|
|
||||||
registerOrderShipmentStep(shipmentData)
|
parallelize(
|
||||||
|
createShipmentWorkflow.runAsStep({
|
||||||
|
input: fulfillmentData,
|
||||||
|
}),
|
||||||
|
registerOrderShipmentStep(shipmentData)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
|
import { Modules } from "@medusajs/modules-sdk"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
transform,
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
import { Modules } from "@medusajs/modules-sdk"
|
import { removeRemoteLinkStep } from "../../common"
|
||||||
import { deleteProductsStep } from "../steps/delete-products"
|
import { deleteProductsStep } from "../steps/delete-products"
|
||||||
import { getProductsStep } from "../steps/get-products"
|
import { getProductsStep } from "../steps/get-products"
|
||||||
import { removeRemoteLinkStep } from "../../common"
|
|
||||||
|
|
||||||
type WorkflowInput = { ids: string[] }
|
type WorkflowInput = { ids: string[] }
|
||||||
|
|
||||||
@@ -21,14 +22,16 @@ export const deleteProductsWorkflow = createWorkflow(
|
|||||||
.map((variant) => variant.id)
|
.map((variant) => variant.id)
|
||||||
})
|
})
|
||||||
|
|
||||||
removeRemoteLinkStep({
|
const [, deletedProduct] = parallelize(
|
||||||
[Modules.PRODUCT]: { variant_id: variantsToBeDeleted },
|
removeRemoteLinkStep({
|
||||||
}).config({ name: "remove-variant-link-step" })
|
[Modules.PRODUCT]: {
|
||||||
|
variant_id: variantsToBeDeleted,
|
||||||
|
product_id: input.ids,
|
||||||
|
},
|
||||||
|
}).config({ name: "remove-product-variant-link-step" }),
|
||||||
|
deleteProductsStep(input.ids)
|
||||||
|
)
|
||||||
|
|
||||||
removeRemoteLinkStep({
|
return deletedProduct
|
||||||
[Modules.PRODUCT]: { product_id: input.ids },
|
|
||||||
}).config({ name: "remove-product-link-step" })
|
|
||||||
|
|
||||||
return deleteProductsStep(input.ids)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -166,13 +166,13 @@ export const updateProductsWorkflow = createWorkflow(
|
|||||||
|
|
||||||
const toDeleteLinks = transform({ currentLinks }, prepareToDeleteLinks)
|
const toDeleteLinks = transform({ currentLinks }, prepareToDeleteLinks)
|
||||||
|
|
||||||
dismissRemoteLinkStep(toDeleteLinks)
|
|
||||||
|
|
||||||
const salesChannelLinks = transform(
|
const salesChannelLinks = transform(
|
||||||
{ input, updatedProducts },
|
{ input, updatedProducts },
|
||||||
prepareSalesChannelLinks
|
prepareSalesChannelLinks
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dismissRemoteLinkStep(toDeleteLinks)
|
||||||
|
|
||||||
createRemoteLinkStep(salesChannelLinks)
|
createRemoteLinkStep(salesChannelLinks)
|
||||||
|
|
||||||
return updatedProducts
|
return updatedProducts
|
||||||
|
|||||||
+9
-3
@@ -1,5 +1,9 @@
|
|||||||
import { LinkWorkflowInput } from "@medusajs/types"
|
import { LinkWorkflowInput } from "@medusajs/types"
|
||||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
import {
|
||||||
|
WorkflowData,
|
||||||
|
createWorkflow,
|
||||||
|
parallelize,
|
||||||
|
} from "@medusajs/workflows-sdk"
|
||||||
import {
|
import {
|
||||||
addCampaignPromotionsStep,
|
addCampaignPromotionsStep,
|
||||||
removeCampaignPromotionsStep,
|
removeCampaignPromotionsStep,
|
||||||
@@ -10,7 +14,9 @@ export const addOrRemoveCampaignPromotionsWorkflowId =
|
|||||||
export const addOrRemoveCampaignPromotionsWorkflow = createWorkflow(
|
export const addOrRemoveCampaignPromotionsWorkflow = createWorkflow(
|
||||||
addOrRemoveCampaignPromotionsWorkflowId,
|
addOrRemoveCampaignPromotionsWorkflowId,
|
||||||
(input: WorkflowData<LinkWorkflowInput>): WorkflowData<void> => {
|
(input: WorkflowData<LinkWorkflowInput>): WorkflowData<void> => {
|
||||||
addCampaignPromotionsStep(input)
|
parallelize(
|
||||||
removeCampaignPromotionsStep(input)
|
addCampaignPromotionsStep(input),
|
||||||
|
removeCampaignPromotionsStep(input)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
Reference in new issue
Block a user