createOrderShipmentWorkflow - Medusa Core Workflows Reference

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

This workflow creates a shipment for an order. It's used by the Create Order Shipment Admin API Route.

This workflow has a hook that allows you to perform custom actions on the created shipment. For example, you can pass under additional_data custom data that allows you to create custom data models linked to the shipment.

You can also use this workflow within your customizations or your own custom workflows, allowing you to wrap custom logic around creating a shipment.

Source Code

Examples#

Steps#

Input#

CreateOrderShipmentWorkflowInputCreateOrderShipmentWorkflowInput
The data to create a shipment for an order, along with custom data that's passed to the workflow's hooks.
order_idstring
The ID of the order to create a shipment for.
fulfillment_idstring
The ID of the fulfillment to create a shipment for.
The items to create a shipment for.
created_bystringOptional
The ID of the user creating the shipment.
The shipment's labels.
no_notificationbooleanOptional
Whether to notify the customer about the shipment.
metadataMetadataTypeOptional
Custom key-value pairs related to the shipment.
additional_dataRecord<string, unknown>Optional
Additional data that can be passed through the additional_data property in HTTP requests. Learn more in this documentation.

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.

shipmentCreated#

This hook is executed after the shipment is created. You can consume this hook to perform custom actions on the created shipment.

Example

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

Input

Handlers consuming this hook accept the following input.

inputobject
The input data for the hook.
The fulfillment details.
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