createPromotionsWorkflow - Medusa Core Workflows Reference

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

This workflow creates one or more promotions. It's used by the Create Promotion Admin API Route.

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

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

Source Code

Examples#

Steps#

Workflow hook

Step conditioned by when

View step details

Input#

CreatePromotionsWorkflowInputCreatePromotionsWorkflowInput
The data to create one or more promotions, along with custom data that's passed to the workflow's hooks.
promotionsDataCreatePromotionDTO[]
The promotions to create.
additional_dataRecord<string, unknown>Optional
Additional data that can be passed through the additional_data property in HTTP requests. Learn more in this documentation.

Output#

PromotionDTO[]PromotionDTO[]
idstring
The ID of the promotion.
codestringOptional
The code of the promotion.
The type of the promotion:
  • standard indicates that a promotion is a standard one applied with conditions.
  • buyget indicates that a promotion is a "Buy X get Y" promotion.
statusPromotionStatusValuesOptional
The status of the promotion:
  • active promotion is available for user to consume
  • inactive promotion is no longer available to the user
  • draft promotion is currently being prepared
is_automaticbooleanOptional
Whether the promotion is applied automatically.
application_methodApplicationMethodDTOOptional
The associated application method.
rulesPromotionRuleDTO[]Optional
The rules of the promotion.
campaign_idnull | stringOptional
The associated campaign.
campaignCampaignDTOOptional
The associated campaign.

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.

promotionsCreated#

Handlers consuming this hook accept the following input.

invokeInvokeFn<object, TOutput, TCompensateInput>
The type of invocation function passed to a step.
compensateCompensateFn<TCompensateInput>Optional
The type of compensation function passed to a step.
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