This documentation provides a reference to the refreshCartItemsWorkflow
. It belongs to the @medusajs/medusa/core-flows
package.
This workflow refreshes a cart to ensure its prices, promotion codes, taxes, and other details are applied correctly. It's useful after making a chnge to a cart, such as after adding an item to the cart or adding a promotion code.
This workflow is used by other cart-related workflows, such as the addToCartWorkflow after an item is added to the cart.
You can use this workflow within your own customizations or custom workflows, allowing you to refresh the cart after making updates to it in your custom flows.
Source CodeWorkflow hook
Step conditioned by when
View step details
RefreshCartItemsWorkflowInput & AdditionalData
RefreshCartItemsWorkflowInput & AdditionalDataRefreshCartItemsWorkflowInput
RefreshCartItemsWorkflowInputAdditionalData
AdditionalDataHooks 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.
This hook is executed before the cart is refreshed. You can consume this hook to return any custom context useful for the prices retrieval of the variants in the cart.
For example, assuming you have the following custom pricing rule:
You can consume the setPricingContext
hook to add the location_id
context to the prices calculation:
1import { refreshCartItemsWorkflow } from "@medusajs/medusa/core-flows";2import { StepResponse } from "@medusajs/workflows-sdk";3 4refreshCartItemsWorkflow.hooks.setPricingContext((5 { cart, items, additional_data }, { container }6) => {7 return new StepResponse({8 location_id: "sloc_123", // Special price for in-store purchases9 });10});
The variants' prices will now be retrieved using the context you return.
Handlers consuming this hook accept the following input.
input
inputcart_id
stringitems
undefined | (any[] | WorkflowData<any[] | undefined>) & any[]additional_data
Record<string, unknown> | undefinedadditional_data
property in HTTP requests.
Learn more in this documentation.This step is a hook that you can inject custom functionality into.
Handlers consuming this hook accept the following input.
input
inputinput
AdditionalData