- Get Started
- Product
- Build
- User Guide
- Cloud
- Get Started
- Product
- Build
- Tools
- Reference
- User Guide
- Cloud
This documentation provides a reference to the listShippingOptionsForCartWithPricingWorkflow
. It belongs to the @medusajs/medusa/core-flows
package.
This workflow lists shipping options that can be used during checkout for a cart. It also retrieves the prices of these shipping options, including calculated prices that may be retrieved from third-party providers.
This workflow is executed in other cart-related workflows, such as addShippingMethodToCartWorkflow to retrieve the price of the shipping method being added to the cart.
You can use this workflow within your own customizations or custom workflows, allowing you to retrieve the shipping options of a cart and their prices in your custom flows.
Source CodeWorkflow hook
Step conditioned by when
View step details
ListShippingOptionsForCartWithPricingWorkflowInput & AdditionalData
ListShippingOptionsForCartWithPricingWorkflowInput & AdditionalDataListShippingOptionsForCartWithPricingWorkflowInput
ListShippingOptionsForCartWithPricingWorkflowInputAdditionalData
AdditionalDataany[]
any[]any
anyHooks 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 after the cart is retrieved and before the shipping options are queried. You can consume this hook to return any custom context useful for the shipping options retrieval.
For example, you can consume the hook to add the customer Id to the context:
1import { listShippingOptionsForCartWithPricingWorkflow } from "@medusajs/medusa/core-flows"2import { StepResponse } from "@medusajs/workflows-sdk"3 4listShippingOptionsForCartWithPricingWorkflow.hooks.setShippingOptionsContext(5 async ({ cart }, { container }) => {6 7 if (cart.customer_id) {8 return new StepResponse({9 customer_id: cart.customer_id,10 })11 }12 13 const query = container.resolve("query")14 15 const { data: carts } = await query.graph({16 entity: "cart",17 filters: {18 id: cart.id,19 },20 fields: ["customer_id"],21 })22 23 return new StepResponse({24 customer_id: carts[0].customer_id,25 })26 }27)
The customer_id
property will be added to the context along with other properties such as is_return
and enabled_in_store
.
setShippingOptionsContext
hook in the listShippingOptionsForCartWorkflow workflow to ensure that the context is consistent when listing shipping options across workflows.Handlers consuming this hook accept the following input.
input
inputcart
anyfulfillmentSetIds
string[]additional_data
Record<string, unknown> | undefinedadditional_data
property in HTTP requests.
Learn more in this documentation.