Skip to main content
POST
/
admin
/
products
/
{id}
/
variants
/
batch
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.batchVariants("prod_123", {
  create: [
    {
      title: "Blue Shirt",
      options: {
        Color: "Blue"
      },
      prices: []
    }
  ],
  update: [
    {
      id: "variant_123",
      title: "Pants"
    }
  ],
  delete: ["variant_123"]
})
.then(({ created, updated, deleted }) => {
  console.log(created, updated, deleted)
})
{ "created": [ { "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, "hs_code": "<string>", "origin_country": "<string>", "mid_code": "<string>", "material": "<string>", "weight": 123, "length": 123, "height": 123, "width": 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" } ], "created_at": "2023-11-07T05:31:56Z", "updated_at": "2023-11-07T05:31:56Z", "deleted_at": "2023-11-07T05:31:56Z", "images": [ { "id": "<string>", "url": "<string>", "rank": 123, "created_at": "2023-11-07T05:31:56Z", "updated_at": "2023-11-07T05:31:56Z", "deleted_at": "2023-11-07T05:31:56Z", "metadata": {} } ], "thumbnail": "<string>", "inventory_quantity": 123, "variant_rank": 123, "product": {}, "product_id": "<string>", "calculated_price": { "id": "<string>", "calculated_amount": 123, "original_amount": 123, "currency_code": "usd", "original_amount_with_tax": 123, "original_amount_without_tax": 123, "is_calculated_price_price_list": true, "is_calculated_price_tax_inclusive": true, "calculated_amount_with_tax": 123, "calculated_amount_without_tax": 123, "is_original_price_price_list": true, "is_original_price_tax_inclusive": true, "calculated_price": {}, "original_price": {} }, "metadata": {}, "inventory_items": [ { "id": "<string>", "variant_id": "<string>", "inventory_item_id": "<string>", "variant": {}, "inventory": { "id": "<string>", "requires_shipping": true, "sku": "<string>", "origin_country": "<string>", "hs_code": "<string>", "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": {}, "available_quantity": 123, "inventory_item": {} } ] }, "required_quantity": 123 } ], "translations": [ { "id": "<string>", "reference_id": "prod_123", "reference": "product", "locale_code": "fr-FR", "translations": { "title": "Chaussures", "description": "Des chaussures élégantes." }, "created_at": "2023-11-07T05:31:56Z", "updated_at": "2023-11-07T05:31:56Z", "deleted_at": "2023-11-07T05:31:56Z" } ] } ], "updated": [ { "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, "hs_code": "<string>", "origin_country": "<string>", "mid_code": "<string>", "material": "<string>", "weight": 123, "length": 123, "height": 123, "width": 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" } ], "created_at": "2023-11-07T05:31:56Z", "updated_at": "2023-11-07T05:31:56Z", "deleted_at": "2023-11-07T05:31:56Z", "images": [ { "id": "<string>", "url": "<string>", "rank": 123, "created_at": "2023-11-07T05:31:56Z", "updated_at": "2023-11-07T05:31:56Z", "deleted_at": "2023-11-07T05:31:56Z", "metadata": {} } ], "thumbnail": "<string>", "inventory_quantity": 123, "variant_rank": 123, "product": {}, "product_id": "<string>", "calculated_price": { "id": "<string>", "calculated_amount": 123, "original_amount": 123, "currency_code": "usd", "original_amount_with_tax": 123, "original_amount_without_tax": 123, "is_calculated_price_price_list": true, "is_calculated_price_tax_inclusive": true, "calculated_amount_with_tax": 123, "calculated_amount_without_tax": 123, "is_original_price_price_list": true, "is_original_price_tax_inclusive": true, "calculated_price": {}, "original_price": {} }, "metadata": {}, "inventory_items": [ { "id": "<string>", "variant_id": "<string>", "inventory_item_id": "<string>", "variant": {}, "inventory": { "id": "<string>", "requires_shipping": true, "sku": "<string>", "origin_country": "<string>", "hs_code": "<string>", "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": {}, "available_quantity": 123, "inventory_item": {} } ] }, "required_quantity": 123 } ], "translations": [ { "id": "<string>", "reference_id": "prod_123", "reference": "product", "locale_code": "fr-FR", "translations": { "title": "Chaussures", "description": "Des chaussures élégantes." }, "created_at": "2023-11-07T05:31:56Z", "updated_at": "2023-11-07T05:31:56Z", "deleted_at": "2023-11-07T05:31:56Z" } ] } ], "deleted": { "ids": [ "<string>" ], "object": "variant", "deleted": true } }

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 variants to create, update, or delete.

create
object[]

The product variants to create.

update
object[]

The product variants to update.

delete
string[]

The product variants to delete.

A product variant's ID.

Response

OK

The details of the product variants created, updated, or deleted.

created
object[]
required

The created product variants.

updated
object[]
required

The updated product variants.

deleted
object
required

The details of the deleted product variants.