createAndCompleteReturnOrderWorkflow - Medusa Core Workflows Reference
This documentation provides a reference to the createAndCompleteReturnOrderWorkflow
. It belongs to the @medusajs/medusa/core-flows
package.
This workflow creates and completes a return from the storefront. The admin would receive the return and process it from the dashboard. This workflow is used by the Create Return Store API Route.
You can use this workflow within your customizations or your own custom workflows, allowing you to create a return for an order in your custom flow.
Source CodeExamples#
Steps#
Workflow hook
Step conditioned by when
View step details
Input#
CreateOrderReturnWorkflowInput & AdditionalData
CreateOrderReturnWorkflowInput & AdditionalData
CreateOrderReturnWorkflowInput & AdditionalData
CreateOrderReturnWorkflowInput & AdditionalDataCreateOrderReturnWorkflowInput
objectThe details to create a return order.
CreateOrderReturnWorkflowInput
objectAdditionalData
objectAdditional data, passed through the additional_data
property accepted in HTTP
requests, that allows passing custom data and handle them in hooks.
Learn more in this documentation.
AdditionalData
objectadditional_data
property accepted in HTTP
requests, that allows passing custom data and handle them in hooks.
Learn more in this documentation.Output#
ReturnDTO
ReturnDTOThe return details.
ReturnDTO
ReturnDTOid
stringThe ID of the return.
id
stringstatus
ReturnStatusThe status of the return.
status
ReturnStatusorder_id
stringThe associated order's ID.
order_id
stringitems
OrderReturnItemDTO[]The items of the return
items
OrderReturnItemDTO[]display_id
numberThe return's display ID.
display_id
numbermetadata
null | Record<string, unknown>Holds custom data in key-value pairs.
metadata
null | Record<string, unknown>The refund amount of the return.
The raw refund amount of the return.
The associated order.
exchange_id
stringOptionalThe associated exchange's ID.
exchange_id
stringOptionalThe associated exchange.
claim_id
stringOptionalThe associated claim's ID.
claim_id
stringOptionalThe associated claim.
location_id
stringOptionalThe ID of the location to return the items to.
location_id
stringOptionalno_notification
booleanOptionalWhether the customer should receive notifications related
to updates on the return.
no_notification
booleanOptionalcreated_by
null | stringOptionalThe id of the user that created the return
created_by
null | stringOptionalThe shipping methods used to receive the returned items.
The return's transactions if refund is required.
created_at
string | DateOptionalThe creation date of the return.
created_at
string | DateOptionalupdated_at
string | DateOptionalThe update date of the return.
updated_at
string | DateOptionaldeleted_at
string | DateOptionalThe deletion date of the return.
deleted_at
string | DateOptionalcanceled_at
string | DateOptionalThe cancelation date of the return.
canceled_at
string | DateOptionalrequested_at
string | DateOptionalThe request date of the return.
requested_at
string | DateOptionalreceived_at
string | DateOptionalThe receival date of the return.
received_at
string | DateOptionalHooks#
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 return's shipping method is created. You can consume this hook to return any custom context useful for the prices retrieval of the shipping method's option.
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 { createAndCompleteReturnOrderWorkflow } from "@medusajs/medusa/core-flows";2import { StepResponse } from "@medusajs/workflows-sdk";3 4createAndCompleteReturnOrderWorkflow.hooks.setPricingContext((5 { order, additional_data }, { container }6) => {7 return new StepResponse({8 location_id: "sloc_123", // Special price for in-store purchases9 });10});
The price of the shipping method's option will now be retrieved using the context you return.
Example
Input
Handlers consuming this hook accept the following input.
input
inputThe input data for the hook.
input
inputorder
OrderDTOThe order details.
order
OrderDTOadditional_data
Record<string, unknown> | undefinedAdditional data that can be passed through the additional_data
property in HTTP requests.
Learn more in this documentation.
additional_data
Record<string, unknown> | undefinedadditional_data
property in HTTP requests.
Learn more in this documentation.Emitted Events#
This section lists the events that are either triggered by the emitEventStep
in the workflow, or by another workflow executed within this workflow.
You can listen to these events in a subscriber, as explained in the Subscribers documentation.
Event | Description | Payload | Action |
---|---|---|---|
| Emitted when a return request is confirmed. |
| |
| Emitted when a return is marked as received. |
|