diff --git a/packages/core-flows/src/definition/cart/workflows/add-to-cart.ts b/packages/core-flows/src/definition/cart/workflows/add-to-cart.ts index 330a734cb9..f20c013949 100644 --- a/packages/core-flows/src/definition/cart/workflows/add-to-cart.ts +++ b/packages/core-flows/src/definition/cart/workflows/add-to-cart.ts @@ -16,11 +16,11 @@ import { import { refreshCartPromotionsStep } from "../steps/refresh-cart-promotions" import { updateTaxLinesStep } from "../steps/update-tax-lines" import { prepareLineItemData } from "../utils/prepare-line-item-data" +import { refreshPaymentCollectionForCartStep } from "./refresh-payment-collection" // TODO: The AddToCartWorkflow are missing the following steps: // - Confirm inventory exists (inventory module) // - Refresh/delete shipping methods (fulfillment module) -// - Update payment sessions (payment module) export const addToCartWorkflowId = "add-to-cart" export const addToCartWorkflow = createWorkflow( @@ -96,6 +96,9 @@ export const addToCartWorkflow = createWorkflow( }) refreshCartPromotionsStep({ id: input.cart.id }) + refreshPaymentCollectionForCartStep({ + cart_id: input.cart.id, + }) return items } diff --git a/packages/core-flows/src/definition/cart/workflows/create-carts.ts b/packages/core-flows/src/definition/cart/workflows/create-carts.ts index 86351ce5a6..a502bdcb98 100644 --- a/packages/core-flows/src/definition/cart/workflows/create-carts.ts +++ b/packages/core-flows/src/definition/cart/workflows/create-carts.ts @@ -14,14 +14,14 @@ import { getVariantsStep, validateVariantsExistStep, } from "../steps" +import { refreshCartPromotionsStep } from "../steps/refresh-cart-promotions" import { updateTaxLinesStep } from "../steps/update-tax-lines" import { prepareLineItemData } from "../utils/prepare-line-item-data" +import { refreshPaymentCollectionForCartStep } from "./refresh-payment-collection" // TODO: The UpdateLineItemsWorkflow are missing the following steps: // - Confirm inventory exists (inventory module) // - Refresh/delete shipping methods (fulfillment module) -// - Refresh/create line item adjustments (promotion module) -// - Update payment sessions (payment module) export const createCartWorkflowId = "create-cart" export const createCartWorkflow = createWorkflow( @@ -134,7 +134,14 @@ export const createCartWorkflow = createWorkflow( const carts = createCartsStep([cartToCreate]) const cart = transform({ carts }, (data) => data.carts?.[0]) + refreshCartPromotionsStep({ + id: cart.id, + promo_codes: input.promo_codes, + }) updateTaxLinesStep({ cart_or_cart_id: cart.id }) + refreshPaymentCollectionForCartStep({ + cart_id: cart.id, + }) return cart } diff --git a/packages/core-flows/src/definition/cart/workflows/update-line-item-in-cart.ts b/packages/core-flows/src/definition/cart/workflows/update-line-item-in-cart.ts index e62dbd4e28..529fbcd91c 100644 --- a/packages/core-flows/src/definition/cart/workflows/update-line-item-in-cart.ts +++ b/packages/core-flows/src/definition/cart/workflows/update-line-item-in-cart.ts @@ -4,15 +4,15 @@ import { createWorkflow, transform, } from "@medusajs/workflows-sdk" -import { getVariantPriceSetsStep } from ".." import { updateLineItemsStep } from "../../line-item/steps" +import { getVariantPriceSetsStep } from "../steps" import { refreshCartPromotionsStep } from "../steps/refresh-cart-promotions" +import { refreshPaymentCollectionForCartStep } from "./refresh-payment-collection" // TODO: The UpdateLineItemsWorkflow are missing the following steps: // - Confirm inventory exists (inventory module) // - Validate shipping methods for new items (fulfillment module) // - Refresh line item adjustments (promotion module) -// - Update payment sessions (payment module) export const updateLineItemInCartWorkflowId = "update-line-item-in-cart" export const updateLineItemInCartWorkflow = createWorkflow( @@ -57,6 +57,9 @@ export const updateLineItemInCartWorkflow = createWorkflow( }) refreshCartPromotionsStep({ id: input.cart.id }) + refreshPaymentCollectionForCartStep({ + cart_id: input.cart.id, + }) const updatedItem = transform({ result }, (data) => data.result?.[0]) diff --git a/packages/types/src/cart/workflows.ts b/packages/types/src/cart/workflows.ts index d81f860fbf..0d7573386c 100644 --- a/packages/types/src/cart/workflows.ts +++ b/packages/types/src/cart/workflows.ts @@ -68,6 +68,7 @@ export interface CreateCartWorkflowInputDTO { metadata?: Record items?: CreateCartCreateLineItemDTO[] + promo_codes?: string[] } export interface AddToCartWorkflowInputDTO {