updateCartPromotionsWorkflow - Medusa Core Workflows Reference

This documentation provides a reference to the updateCartPromotionsWorkflow. It belongs to the @medusajs/medusa/core-flows package.

This workflow updates a cart's promotions, applying or removing promotion codes from the cart. It also computes the adjustments that need to be applied to the cart's line items and shipping methods based on the promotions applied. This workflow is used by Add Promotions Store API Route.

You can use this workflow within your own customizations or custom workflows, allowing you to update a cart's promotions within your custom flows.

Source Code

Examples#

Steps#

Input#

UpdateCartPromotionsWorkflowInputUpdateCartPromotionsWorkflowInput
The details of the promotion updates on a cart.
cart_idstring
The cart's ID.
promo_codesstring[]Optional
The promotion codes to add to the cart, remove from the cart, or replace all existing promotions in the cart.
actionADD | REMOVE | REPLACEOptional
The action to perform with the specified promotion codes.

Hooks#

Hooks allow you to inject custom functionalities into the workflow. You'll receive data from the workflow, as well as additional data sent through an HTTP request.

Learn more about Hooks and Additional Data.

validate#

This hook is executed before all operations. You can consume this hook to perform any custom validation. If validation fails, you can throw an error to stop the workflow execution.

Example

Code
1import { addShippingMethodToCartWorkflow } from "@medusajs/medusa/core-flows"2
3addShippingMethodToCartWorkflow.hooks.validate(4  (async ({ input, cart }, { container }) => {5    //TODO6  })7)

Input

Handlers consuming this hook accept the following input.

inputobject
The input data for the hook.
The data to add a shipping method to a cart.
cartany
Was this page helpful?
Ask Anything
FAQ
What is Medusa?
How can I create a module?
How can I create a data model?
How do I create a workflow?
How can I extend a data model in the Product Module?
Recipes
How do I build a marketplace with Medusa?
How do I build digital products with Medusa?
How do I build subscription-based purchases with Medusa?
What other recipes are available in the Medusa documentation?
Chat is cleared on refresh
Line break