POST
/
admin
/
products
/
{id}
/
variants
JS SDK
import Medusa from "@medusajs/js-sdk"

export const sdk = new Medusa({
  baseUrl: import.meta.env.VITE_BACKEND_URL || "/",
  debug: import.meta.env.DEV,
  auth: {
    type: "session",
  },
})

sdk.admin.product.createVariant("prod_123", {
  title: "Blue Shirt",
  options: {
    Color: "Blue"
  },
  prices: [
    {
      amount: 10,
      currency_code: "usd"
    }
  ]
})
.then(({ product }) => {
  console.log(product)
})
{
"product": {
"collection": {
"id": "<string>",
"title": "<string>",
"handle": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"products": [
{
"collection": {
"id": "<string>",
"title": "<string>",
"handle": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"products": [
{}
],
"metadata": {}
},
"categories": [
{
"category_children": [
{
"category_children": [
{}
],
"parent_category": {},
"products": [
{}
],
"name": "<string>",
"description": "<string>",
"id": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"handle": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"is_active": true,
"is_internal": true,
"rank": 123,
"parent_category_id": "<string>"
}
],
"parent_category": {
"category_children": [
{}
],
"parent_category": {},
"products": [
{}
],
"name": "<string>",
"description": "<string>",
"id": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"handle": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"is_active": true,
"is_internal": true,
"rank": 123,
"parent_category_id": "<string>"
},
"products": [
{}
],
"name": "<string>",
"description": "<string>",
"id": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"handle": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"is_active": true,
"is_internal": true,
"rank": 123,
"parent_category_id": "<string>"
}
],
"variants": [
{}
],
"type": {
"id": "<string>",
"value": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"metadata": {}
},
"tags": [
{
"id": "<string>",
"value": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"metadata": {}
}
],
"length": 123,
"title": "<string>",
"status": "draft",
"options": [
{
"id": "<string>",
"title": "<string>",
"product": {},
"product_id": "<string>",
"values": [
{
"id": "<string>",
"value": "<string>",
"option": {},
"option_id": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"description": "<string>",
"id": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"handle": "<string>",
"subtitle": "<string>",
"is_giftcard": true,
"thumbnail": "<string>",
"width": 123,
"weight": 123,
"height": 123,
"origin_country": "<string>",
"hs_code": "<string>",
"mid_code": "<string>",
"material": "<string>",
"collection_id": "<string>",
"type_id": "<string>",
"images": [
{
"id": "<string>",
"url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"metadata": {},
"rank": 123
}
],
"discountable": true,
"external_id": "<string>",
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"metadata": {}
},
"categories": [
{
"category_children": [
{}
],
"parent_category": {},
"products": [
{}
],
"name": "<string>",
"description": "<string>",
"id": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"handle": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"is_active": true,
"is_internal": true,
"rank": 123,
"parent_category_id": "<string>"
}
],
"sales_channels": [
{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"is_disabled": true,
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"variants": [
{
"prices": [
{
"id": "<string>",
"title": "<string>",
"currency_code": "usd",
"amount": 123,
"raw_amount": {},
"min_quantity": 123,
"max_quantity": 123,
"price_set_id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"id": "<string>",
"title": "<string>",
"sku": "<string>",
"barcode": "<string>",
"ean": "<string>",
"upc": "<string>",
"allow_backorder": true,
"manage_inventory": true,
"inventory_quantity": 123,
"hs_code": "<string>",
"origin_country": "<string>",
"mid_code": "<string>",
"material": "<string>",
"weight": 123,
"length": 123,
"height": 123,
"width": 123,
"variant_rank": 123,
"options": [
{
"id": "<string>",
"value": "<string>",
"option": {
"id": "<string>",
"title": "<string>",
"product": {},
"product_id": "<string>",
"values": [
{}
],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
},
"option_id": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"product": {},
"product_id": "<string>",
"calculated_price": {
"id": "<string>",
"is_calculated_price_price_list": true,
"is_calculated_price_tax_inclusive": true,
"calculated_amount": 123,
"calculated_amount_with_tax": 123,
"calculated_amount_without_tax": 123,
"is_original_price_price_list": true,
"is_original_price_tax_inclusive": true,
"original_amount": 123,
"currency_code": "usd",
"calculated_price": {},
"original_price": {},
"original_amount_with_tax": 123,
"original_amount_without_tax": 123
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"metadata": {},
"inventory_items": [
{
"id": "<string>",
"variant_id": "<string>",
"variant": {},
"inventory_item_id": "<string>",
"inventory": {
"id": "<string>",
"sku": "<string>",
"origin_country": "<string>",
"hs_code": "<string>",
"requires_shipping": true,
"mid_code": "<string>",
"material": "<string>",
"weight": 123,
"length": 123,
"height": 123,
"width": 123,
"title": "<string>",
"description": "<string>",
"thumbnail": "<string>",
"metadata": {},
"location_levels": [
{
"id": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"inventory_item_id": "<string>",
"location_id": "<string>",
"stocked_quantity": 123,
"reserved_quantity": 123,
"incoming_quantity": 123,
"metadata": {},
"inventory_item": {},
"available_quantity": 123
}
]
}
}
]
}
],
"type": {
"id": "<string>",
"value": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"metadata": {}
},
"tags": [
{
"id": "<string>",
"value": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"metadata": {}
}
],
"length": 123,
"title": "<string>",
"status": "draft",
"options": [
{
"id": "<string>",
"title": "<string>",
"product": {},
"product_id": "<string>",
"values": [
{}
],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
],
"description": "<string>",
"id": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"handle": "<string>",
"subtitle": "<string>",
"is_giftcard": true,
"thumbnail": "<string>",
"width": 123,
"weight": 123,
"height": 123,
"origin_country": "<string>",
"hs_code": "<string>",
"mid_code": "<string>",
"material": "<string>",
"collection_id": "<string>",
"type_id": "<string>",
"images": [
{
"id": "<string>",
"url": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z",
"metadata": {},
"rank": 123
}
],
"discountable": true,
"external_id": "<string>",
"deleted_at": "2023-11-07T05:31:56Z",
"shipping_profile": {
"id": "<string>",
"name": "<string>",
"type": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"deleted_at": "2023-11-07T05:31:56Z"
}
}
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

The product's ID.

Query Parameters

fields
string

Comma-separated fields that should be included in the returned data. if a field is prefixed with + it will be added to the default fields, using - will remove it from the default fields. without prefix it will replace the entire default fields.

Body

application/json

The product variant's details.

title
string
required

The variant's title.

prices
object[]
required

The variant's prices.

sku
string

The variant's SKU.

ean
string

The variant's EAN.

upc
string

The variant's UPC.

barcode
string

The variant's barcode.

hs_code
string

The variant's HS code.

mid_code
string

The variant's MID code.

allow_backorder
boolean

Whether it's allowed to order this variant when it's out of stock.

manage_inventory
boolean

Whether Medusa manages the variant's inventory quantity. If disabled, the product variant is always considered in stock.

variant_rank
number

The sorting order of the variant among other variants in the product.

weight
number

The variant's weight.

length
number

The variant's length.

height
number

The variant's height.

width
number

The variant's width.

origin_country
string

The variant's origin country.

material
string

The variant's material.

metadata
object

The variant's metadata, used to store custom key-value pairs.

options
object

The variant's options, where the key is an option's name, and the value is the option's value.

Example:
{ "Color": "Black" }
inventory_items
object[]

The variant's inventory items to create.

additional_data
object

Pass additional custom data to the API route. This data is passed to the underlying workflow under the additional_data parameter.

Response

OK

The product's details.

product
object
required

The product's details.