listShippingOptionsForCartWorkflow - Medusa Core Workflows Reference

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

This workflow lists the shipping options of a cart. It's executed by the List Shipping Options Store API Route.

Note: This workflow doesn't retrieve the calculated prices of the shipping options. If you need to retrieve the prices of the shipping options, use the listShippingOptionsForCartWithPricingWorkflow workflow.

You can use this workflow within your own customizations or custom workflows, allowing you to wrap custom logic around to retrieve the shipping options of a cart in your custom flows.

Source Code

Examples#

Steps#

Input#

ListShippingOptionsForCartWorkflowInput & AdditionalDataListShippingOptionsForCartWorkflowInput & AdditionalData
ListShippingOptionsForCartWorkflowInputListShippingOptionsForCartWorkflowInput
The context for retrieving the shipping options.
AdditionalDataAdditionalData

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.

setPricingContext#

This hook is executed before the shipping options are retrieved. You can consume this hook to return any custom context useful for the prices retrieval of shipping options.

For example, assuming you have the following custom pricing rule:

Code
1{2  "attribute": "location_id",3  "operator": "eq",4  "value": "sloc_123",5}

You can consume the setPricingContext hook to add the location_id context to the prices calculation:

Code
1import { listShippingOptionsForCartWorkflow } from "@medusajs/medusa/core-flows";2import { StepResponse } from "@medusajs/workflows-sdk";3
4listShippingOptionsForCartWorkflow.hooks.setPricingContext((5  { cart, fulfillmentSetIds, additional_data }, { container }6) => {7  return new StepResponse({8    location_id: "sloc_123", // Special price for in-store purchases9  });10});

The shipping options' prices will now be retrieved using the context you return.

Note: Learn more about prices calculation context in the Prices Calculation documentation.

Example

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

Input

Handlers consuming this hook accept the following input.

inputinput
The input data for the hook.
cartany
fulfillmentSetIdsstring[]
additional_dataRecord<string, unknown> | undefined
Additional data that can be passed through the additional_data property in HTTP requests. Learn more in this documentation.
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