createProductsWorkflow - Medusa Core Workflows Reference

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

This workflow creates one or more products. It's used by the Create Product Admin API Route. It can also be useful to you when creating seed scripts, for example.

This workflow has a hook that allows you to perform custom actions on the created products. You can see an example in this guide.

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

Source Code

Examples#

Steps#

Input#

CreateProductsWorkflowInputCreateProductsWorkflowInput
The data to create one or more products, along with custom data that's passed to the workflow's hooks.
The products 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#

ProductDTO[]ProductDTO[]
idstring
The ID of the product.
titlestring
The title of the product.
handlestring
The handle of the product. The handle can be used to create slug URL paths.
subtitlenull | string
The subttle of the product.
descriptionnull | string
The description of the product.
is_giftcardboolean
Whether the product is a gift card.
The status of the product.
thumbnailnull | string
The URL of the product's thumbnail.
widthnull | number
The width of the product.
weightnull | number
The weight of the product.
lengthnull | number
The length of the product.
heightnull | number
The height of the product.
origin_countrynull | string
The origin country of the product.
hs_codenull | string
The HS Code of the product.
mid_codenull | string
The MID Code of the product.
materialnull | string
The material of the product.
collectionnull | ProductCollectionDTO
The associated product collection.
collection_idnull | string
The associated product collection id.
typenull | ProductTypeDTO
The associated product type.
type_idnull | string
The associated product type id.
The associated product tags.
The associated product variants.
The associated product options.
The associated product images.
external_idnull | string
The ID of the product in an external system. This is useful if you're integrating the product with a third-party service and want to maintain a reference to the ID in the integrated service.
created_atstring | Date
When the product was created.
updated_atstring | Date
When the product was updated.
deleted_atstring | Date
When the product was deleted.
categoriesnull | ProductCategoryDTO[]Optional
The associated product categories.
discountablebooleanOptional
Whether the product can be discounted.
metadataMetadataTypeOptional
Holds custom data in key-value pairs.

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.

productsCreated#

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