updateProductVariantsWorkflow - Medusa Core Workflows Reference

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

This workflow updates one or more product variants. It's used by the Update Product Variant Admin API Route.

This workflow has a hook that allows you to perform custom actions on the updated product variants. For example, you can pass under additional_data custom data that allows you to update custom data models linked to the product variants.

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

Source Code

Examples#

To update product variants by their IDs:

You can also update product variants by a selector:

Steps#

Input#

UpdateProductVariantsWorkflowInputUpdateProductVariantsWorkflowInput
The data to update one or more product variants, along with custom data that's passed to the workflow's hooks.
A filter to select the product variants to update.
The data to update in the product variants.
product_variantsUpsertProductVariantDTO & object[]
The product variants to update.
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#

object[]object[]
price_setundefined | PriceSetDTO

Default: priceSetForVariant

idstring
The ID of the product variant.
titlestring
The tile of the product variant.
skunull | string
The SKU of the product variant.
barcodenull | string
The barcode of the product variant.
eannull | string
The EAN of the product variant.
upcnull | string
The UPC of the product variant.
allow_backorderboolean
Whether the product variant can be ordered when it's out of stock.
manage_inventoryboolean
Whether the product variant's inventory should be managed by the core system.
requires_shippingboolean
Whether the product variant's requires shipping.
hs_codenull | string
The HS Code of the product variant.
origin_countrynull | string
The origin country of the product variant.
mid_codenull | string
The MID Code of the product variant.
materialnull | string
The material of the product variant.
weightnull | number
The weight of the product variant.
lengthnull | number
The length of the product variant.
heightnull | number
The height of the product variant.
widthnull | number
The width of the product variant.
The associated product options.
metadatanull | Record<string, unknown>
Holds custom data in key-value pairs.
product_idnull | string
The associated product id.
created_atstring | Date
When the product variant was created.
updated_atstring | Date
When the product variant was updated.
deleted_atstring | Date
When the product variant was deleted.
productnull | ProductDTOOptional
The associated product.
variant_ranknull | numberOptional
he ranking of the variant among other variants associated with the product.

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.

productVariantsUpdated#

This hook is executed after the product variants are updated. You can consume this hook to perform custom actions on the updated product variants.

Example

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

Input

Handlers consuming this hook accept the following input.

inputobject
The input data for the hook.
product_variantsobject[]
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