import Switchyard from "@switchyard/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
}
]
}
],
"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
}
]
}
],
"deleted": {
"ids": [
"<string>"
],
"object": "variant",
"deleted": true
}
}Manage variants in a product to create, update, or delete them.
import Switchyard from "@switchyard/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
}
]
}
],
"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
}
]
}
],
"deleted": {
"ids": [
"<string>"
],
"object": "variant",
"deleted": true
}
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
The product's ID.
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.
The product variants to create, update, or delete.
The product variants to create.
Show child attributes
The variant's title.
The variant's prices.
Show child attributes
The price's currency code.
The price's amount.
The minimum quantity that must be available in the cart for this price to apply.
The maximum quantity that must not be surpassed in the cart for this price to apply.
The variant's SKU.
The variant's EAN.
The variant's UPC.
The variant's barcode.
The variant's HS code.
The variant's MID code.
Whether it's allowed to order this variant when it's out of stock.
Whether Medusa manages the variant's inventory quantity. If disabled, the product variant is always considered in stock.
The sorting order of the variant among other variants in the product.
The variant's weight.
The variant's length.
The variant's height.
The variant's width.
The variant's origin country.
The variant's material.
The variant's metadata, used to store custom key-value pairs.
The variant's options, where the key is an option's name, and the value is the option's value.
{ "Color": "Black" }The variant's inventory items to create.
Show child attributes
The inventory item's ID.
The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for required_quantity. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for required_quantity.
The product variants to update.
Show child attributes
The update's ID.
The product variant's title.
The product variant's SKU.
The product variant's EAN.
The product variant's UPC.
The product variant's barcode.
The product variant's HS code.
The product variant's MID code.
Whether customers can order the variant even if it's not in stock.
Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock.
The product variant's rank among its siblings.
The product variant's weight.
The product variant's length.
The product variant's height.
The product variant's width.
The product variant's origin country.
The product variant's material.
The product variant's metadata, can hold custom key-value pairs.
The product variant's prices.
Show child attributes
The price's currency code.
The price's amount.
The minimum quantity that must be available in the cart for this price to apply.
The maximum quantity that must not be surpassed in the cart for this price to apply.
The product variant's options.
The variant's thumbnail.
The product variants to delete.
A product variant's ID.
OK
The details of the product variants created, updated, or deleted.
The created product variants.
Show child attributes
The variant's prices.
Show child attributes
The price's ID.
The price's title.
The price's currency code.
"usd"
The price's amount.
The price's raw amount.
The minimum quantity that must be available in the cart for the price to be applied.
The maximum quantity allowed to be available in the cart for the price to be applied.
The ID of the associated price set.
The date the price was created.
The date the price was updated.
The date the price was deleted.
The variant's ID.
The variant's title.
The variant's SKU.
The variant's barcode.
The variant's EAN code.
The variant's UPC.
Whether the variant can be ordered even if it's out of stock.
Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock.
The variant's HS code.
The variant's origin country.
The variant's MID code.
The variant's material.
The variant's weight.
The variant's length.
The variant's height.
The variant's width.
The variant's option values.
Show child attributes
The value's ID.
The value.
The product option's details.
Show child attributes
The product option's ID.
The product option's title.
The ID of the product this option belongs to.
The product option's values.
The product option's metadata, can hold custom key-value pairs.
The date the product option was created.
The date the product option was updated.
The date the product option was deleted.
The ID of the option this value belongs to.
The value's metadata, can hold custom key-value pairs.
The date the value was created.
The date the value was updated.
The date the value was deleted.
The date the variant was created.
The date the variant was updated.
The date the variant was deleted.
The variant's images.
Show child attributes
The image's ID.
The image's URL.
The image's rank among its sibling images.
The date the image was created.
The date the image was updated.
The date the image was deleted.
The image's metadata, can hold custom key-value pairs.
The variant's thumbnail.
The variant's inventory quantity. This is only included if you pass in the fields query parameter a +variants.inventory_quantity parameter.
The variant's rank among its sibling variants.
The ID of the product that the variant belongs to.
The calculated price's details.
Show child attributes
The calculated price's ID.
The amount of the calculated price, or null if there isn't a calculated price. This is the amount shown to the customer.
The amount of the original price, or null if there isn't an original price. This amount is useful to compare with the calculated_amount, such as to check for discounted value.
The calculated price's currency code.
"usd"
The amount of the original price with taxes applied.
The amount of the original price without taxes.
Whether the calculated price belongs to a price list.
Whether the calculated price is tax inclusive.
The calculated price's amount with taxes applied.
The calculated price's amount without taxes applied.
Whether the original price belongs to a price list.
Whether the original price is tax inclusive.
The calculated price's details.
The original price's details.
The variant's metadata, can hold custom key-value pairs.
The variant's inventory items.
Show child attributes
The ID of the association.
The associated product variant's ID.
The associated inventory item's ID.
The inventory item's details.
Show child attributes
The inventory item's ID.
Whether the inventory item requires shipping.
The inventory item's sku.
The inventory item's origin country.
The inventory item's HS code.
The inventory item's MID code.
The inventory item's material.
The inventory item's weight.
The inventory item's length.
The inventory item's height.
The inventory item's width.
The inventory item's title.
The inventory item's description.
The thumbnail URL of the inventory item.
Custom key-value pairs, used to store additional information about the inventory item.
The inventory item's location levels.
Show child attributes
The location level's ID.
The location level's created at.
The location level's updated at.
The location level's deleted at.
The location level's inventory item id.
The location level's location id.
The location level's stocked quantity.
The location level's reserved quantity.
The location level's incoming quantity.
The location level's metadata.
The location level's available quantity.
The inventory item's required quantity.
The updated product variants.
Show child attributes
The variant's prices.
Show child attributes
The price's ID.
The price's title.
The price's currency code.
"usd"
The price's amount.
The price's raw amount.
The minimum quantity that must be available in the cart for the price to be applied.
The maximum quantity allowed to be available in the cart for the price to be applied.
The ID of the associated price set.
The date the price was created.
The date the price was updated.
The date the price was deleted.
The variant's ID.
The variant's title.
The variant's SKU.
The variant's barcode.
The variant's EAN code.
The variant's UPC.
Whether the variant can be ordered even if it's out of stock.
Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock.
The variant's HS code.
The variant's origin country.
The variant's MID code.
The variant's material.
The variant's weight.
The variant's length.
The variant's height.
The variant's width.
The variant's option values.
Show child attributes
The value's ID.
The value.
The product option's details.
Show child attributes
The product option's ID.
The product option's title.
The ID of the product this option belongs to.
The product option's values.
The product option's metadata, can hold custom key-value pairs.
The date the product option was created.
The date the product option was updated.
The date the product option was deleted.
The ID of the option this value belongs to.
The value's metadata, can hold custom key-value pairs.
The date the value was created.
The date the value was updated.
The date the value was deleted.
The date the variant was created.
The date the variant was updated.
The date the variant was deleted.
The variant's images.
Show child attributes
The image's ID.
The image's URL.
The image's rank among its sibling images.
The date the image was created.
The date the image was updated.
The date the image was deleted.
The image's metadata, can hold custom key-value pairs.
The variant's thumbnail.
The variant's inventory quantity. This is only included if you pass in the fields query parameter a +variants.inventory_quantity parameter.
The variant's rank among its sibling variants.
The ID of the product that the variant belongs to.
The calculated price's details.
Show child attributes
The calculated price's ID.
The amount of the calculated price, or null if there isn't a calculated price. This is the amount shown to the customer.
The amount of the original price, or null if there isn't an original price. This amount is useful to compare with the calculated_amount, such as to check for discounted value.
The calculated price's currency code.
"usd"
The amount of the original price with taxes applied.
The amount of the original price without taxes.
Whether the calculated price belongs to a price list.
Whether the calculated price is tax inclusive.
The calculated price's amount with taxes applied.
The calculated price's amount without taxes applied.
Whether the original price belongs to a price list.
Whether the original price is tax inclusive.
The calculated price's details.
The original price's details.
The variant's metadata, can hold custom key-value pairs.
The variant's inventory items.
Show child attributes
The ID of the association.
The associated product variant's ID.
The associated inventory item's ID.
The inventory item's details.
Show child attributes
The inventory item's ID.
Whether the inventory item requires shipping.
The inventory item's sku.
The inventory item's origin country.
The inventory item's HS code.
The inventory item's MID code.
The inventory item's material.
The inventory item's weight.
The inventory item's length.
The inventory item's height.
The inventory item's width.
The inventory item's title.
The inventory item's description.
The thumbnail URL of the inventory item.
Custom key-value pairs, used to store additional information about the inventory item.
The inventory item's location levels.
Show child attributes
The location level's ID.
The location level's created at.
The location level's updated at.
The location level's deleted at.
The location level's inventory item id.
The location level's location id.
The location level's stocked quantity.
The location level's reserved quantity.
The location level's incoming quantity.
The location level's metadata.
The location level's available quantity.
The inventory item's required quantity.
The details of the deleted product variants.