The REST Admin API is a legacy API as of October 1, 2024. Starting April 1, 2025, all new public apps must be built exclusively with the GraphQL Admin API. For details and migration steps, visit our migration guide.
Product Variant
products access scope.Listing, creating, updating, and deleting product variants is deprecated as of REST API 2024-04. For more information, refer to the guide to the new product model.
Listing, creating, updating, and deleting product variants is deprecated as of REST API 2024-04. For more information, refer to the guide to the new product model.
Apps can no longer set inventory using inventory_quantity. For more information, refer to the Inventory Level resource.
Apps can no longer set inventory using inventory_quantity. For more information, refer to the Inventory Level resource.
Endpoints
- post/admin/api/latest/products/{product_
id}/variants. json Create a new Product Variant - get/admin/api/latest/products/{product_
id}/variants. json Retrieves a list of product variants - get/admin/api/latest/products/{product_
id}/variants/count. json Receive a count of all Product Variants - get/admin/api/latest/variants/{variant_
id}. json Receive a single Product Variant - put/admin/api/latest/variants/{variant_
id}. json Modify an existing Product Variant - del/admin/api/latest/products/{product_
id}/variants/{variant_ id}. json Remove an existing Product Variant
The Product Variant resource
Properties
The barcode, UPC, or ISBN number for the product.
The original price of the item before an adjustment or a sale.
The date and time (ISO 8601 format) when the product variant was created.
The handle of a fulfillment service that stocks a product variant.
As of API version 2025-01, all fulfillment services permit SKU sharing. This field returns gift_card for gift card variants and manual for all other variants. Use the InventoryLevel resource to determine where a variant is stocked.
Setting this field activates inventory at the specified fulfillment service's location, but doesn't unstock the variant from other locations. The field value itself still returns manual after the write (except for gift card variants, which continue to return gift_card). Prefer the InventoryLevel resource for managing location assignments explicitly.
Learn more about managing inventory quantities and states.
The weight of the product variant in grams.
The unique numeric identifier for the product variant.
The unique numeric identifier for a product's image. The image must be associated to the same product as the variant.
The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information.
The fulfillment service that tracks the number of items in stock for the product variant. As of API version 2025-01, all fulfillment services permit SKU sharing, so this field returns shopify for all variants. Use the InventoryLevel resource to determine where a variant is stocked.
Valid values:
Show inventory_management properties
shopify: Shopify tracks inventory for this variant.null: You aren't tracking inventory on the variant.
Whether customers are allowed to place an order for the product variant when it's out of stock. Valid values:
Show inventory_policy properties
deny: Customers are not allowed to place orders for the product variant if it's out of stock.continue: Customers are allowed to place orders for the product variant if it's out of stock.
deny.An aggregate of inventory across all locations. To adjust inventory at a specific location, use the InventoryLevel resource.
This property is deprecated. Use the InventoryLevel resource instead.
The Product Variant resource
Anchor to POST request, Create a new Product VariantpostCreate a new Product Variant
Creates a new product variant
Create a new product variant
Create a new product variant
Create a new product variant with a metafield
Create a new product variant with a metafield
Create a new product variant with an image
Create a new product variant with an image
/admin/api/2026-01/products/632910392/variants. json
Response
examples
Create a new product variant
curl -d '{"variant":{"option1":"Yellow","price":"1.00"}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2026-01/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->option1 = "Yellow"; $variant->price = "1.00"; $variant->post( 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->option1 = "Yellow"; $variant->price = "1.00"; $variant->post( test_session, 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->option1 = "Yellow"; $variant->price = "1.00"; $variant->post( 632910392, );response
HTTP/1.1 201 Created{"variant":{"id":1070325042,"product_id":632910392,"title":"Yellow","price":"1.00","position":5,"inventory_policy":"deny","compare_at_price":null,"option1":"Yellow","option2":null,"option3":null,"created_at":"2026-01-09T17:30:30-05:00","updated_at":"2026-01-09T17:30:30-05:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":null,"weight":0,"weight_unit":"lb","inventory_item_id":1070325042,"inventory_quantity":0,"old_inventory_quantity":0,"presentment_prices":[{"price":{"amount":"1.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/1070325042","image_id":null}}Create a new product variant with a metafield
curl -d '{"variant":{"option1":"Blue","metafields":[{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2026-01/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->option1 = "Blue"; $variant->metafields = [{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]; $variant->post( 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->option1 = "Blue"; $variant->metafields = [{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]; $variant->post( test_session, 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->option1 = "Blue"; $variant->metafields = [{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]; $variant->post( 632910392, );response
HTTP/1.1 201 Created{"variant":{"id":1070325044,"product_id":632910392,"title":"Blue","price":"0.00","position":5,"inventory_policy":"deny","compare_at_price":null,"option1":"Blue","option2":null,"option3":null,"created_at":"2026-01-09T17:30:47-05:00","updated_at":"2026-01-09T17:30:47-05:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":null,"weight":0,"weight_unit":"lb","inventory_item_id":1070325044,"inventory_quantity":0,"old_inventory_quantity":0,"presentment_prices":[{"price":{"amount":"0.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/1070325044","image_id":null}}Create a new product variant with an image
curl -d '{"variant":{"image_id":850703190,"option1":"Purple"}}' \ -X POST "https://your-development-store.myshopify.com/admin/api/2026-01/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->image_id = 850703190; $variant->option1 = "Purple"; $variant->post( 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->image_id = 850703190; $variant->option1 = "Purple"; $variant->post( test_session, 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->image_id = 850703190; $variant->option1 = "Purple"; $variant->post( 632910392, );response
HTTP/1.1 201 Created{"variant":{"id":1070325043,"product_id":632910392,"title":"Purple","price":"0.00","position":5,"inventory_policy":"deny","compare_at_price":null,"option1":"Purple","option2":null,"option3":null,"created_at":"2026-01-09T17:30:44-05:00","updated_at":"2026-01-09T17:30:44-05:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":null,"weight":0,"weight_unit":"lb","inventory_item_id":1070325043,"inventory_quantity":0,"old_inventory_quantity":0,"presentment_prices":[{"price":{"amount":"0.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/1070325043","image_id":850703190}}
Anchor to GET request, Retrieves a list of product variantsgetRetrieves a list of product variants
Retrieves a list of product variants. Note: This endpoint implements pagination by using links that are provided in the response header. To learn more, refer to Make paginated requests to the REST Admin API.
A comma-separated list of fields to include in the response
Return up to this many results per page
Return presentment prices in only certain currencies, specified by a comma-separated list of ISO 4217 currency codes.
Restrict results to after the specified ID
Retrieve all variants for a product
Retrieve all variants for a product
Retrieve all variants for a product after a specified ID
Retrieve all variants for a product after a specified ID
Retrieve all variants for a product with prices in specified presentment currencies
Retrieve all variants for a product with prices in specified presentment currencies
/admin/api/2026-01/products/632910392/variants. json
Response
examples
Retrieve all variants for a product
curl -X GET "https://your-development-store.myshopify.com/admin/api/2026-01/products/632910392/variants.json" \ -H "X-Shopify-Access-Token: {access_token}"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = admin.rest.resources.Variant::all( 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = Variant::all( 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = Variant::all( 632910392, );response
HTTP/1.1 200 OK{"variants":[{"id":39072856,"product_id":632910392,"title":"Green","price":"199.00","position":3,"inventory_policy":"continue","compare_at_price":null,"option1":"Green","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_green","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008GREEN","weight":1.25,"weight_unit":"lb","inventory_item_id":39072856,"inventory_quantity":30,"old_inventory_quantity":30,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/39072856","image_id":null},{"id":49148385,"product_id":632910392,"title":"Red","price":"199.00","position":2,"inventory_policy":"continue","compare_at_price":null,"option1":"Red","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_red","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008RED","weight":1.25,"weight_unit":"lb","inventory_item_id":49148385,"inventory_quantity":20,"old_inventory_quantity":20,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/49148385","image_id":null},{"id":457924702,"product_id":632910392,"title":"Black","price":"199.00","position":4,"inventory_policy":"continue","compare_at_price":null,"option1":"Black","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_black","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008BLACK","weight":1.25,"weight_unit":"lb","inventory_item_id":457924702,"inventory_quantity":40,"old_inventory_quantity":40,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/457924702","image_id":null},{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}]}Retrieve all variants for a product after a specified ID
curl -X GET "https://your-development-store.myshopify.com/admin/api/2026-01/products/632910392/variants.json?since_id=49148385" \ -H "X-Shopify-Access-Token: {access_token}"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = admin.rest.resources.Variant::all( 632910392, 49148385, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = Variant::all( 632910392, 49148385, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = Variant::all( 632910392, 49148385, );response
HTTP/1.1 200 OK{"variants":[{"id":457924702,"product_id":632910392,"title":"Black","price":"199.00","position":4,"inventory_policy":"continue","compare_at_price":null,"option1":"Black","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_black","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008BLACK","weight":1.25,"weight_unit":"lb","inventory_item_id":457924702,"inventory_quantity":40,"old_inventory_quantity":40,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/457924702","image_id":null},{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}]}Retrieve all variants for a product with prices in specified presentment currencies
curl -X GET "https://your-development-store.myshopify.com/admin/api/2026-01/products/632910392/variants.json?presentment_currencies=USD%2CCAD" \ -H "X-Shopify-Access-Token: {access_token}"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = admin.rest.resources.Variant::all( 632910392, USD,CAD, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = Variant::all( 632910392, USD,CAD, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $response = Variant::all( 632910392, USD,CAD, );response
HTTP/1.1 200 OK{"variants":[{"id":39072856,"product_id":632910392,"title":"Green","price":"199.00","position":3,"inventory_policy":"continue","compare_at_price":"249.00","option1":"Green","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_green","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008GREEN","weight":1.25,"weight_unit":"lb","inventory_item_id":39072856,"inventory_quantity":30,"old_inventory_quantity":30,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":{"amount":"249.00","currency_code":"USD"}},{"price":{"amount":"249.00","currency_code":"CAD"},"compare_at_price":{"amount":"312.00","currency_code":"CAD"}}],"admin_graphql_api_id":"gid://shopify/ProductVariant/39072856","image_id":null},{"id":49148385,"product_id":632910392,"title":"Red","price":"199.00","position":2,"inventory_policy":"continue","compare_at_price":"249.00","option1":"Red","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_red","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008RED","weight":1.25,"weight_unit":"lb","inventory_item_id":49148385,"inventory_quantity":20,"old_inventory_quantity":20,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":{"amount":"249.00","currency_code":"USD"}},{"price":{"amount":"249.00","currency_code":"CAD"},"compare_at_price":{"amount":"312.00","currency_code":"CAD"}}],"admin_graphql_api_id":"gid://shopify/ProductVariant/49148385","image_id":null},{"id":457924702,"product_id":632910392,"title":"Black","price":"199.00","position":4,"inventory_policy":"continue","compare_at_price":"249.00","option1":"Black","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_black","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008BLACK","weight":1.25,"weight_unit":"lb","inventory_item_id":457924702,"inventory_quantity":40,"old_inventory_quantity":40,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":{"amount":"249.00","currency_code":"USD"}},{"price":{"amount":"249.00","currency_code":"CAD"},"compare_at_price":{"amount":"312.00","currency_code":"CAD"}}],"admin_graphql_api_id":"gid://shopify/ProductVariant/457924702","image_id":null},{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":"249.00","option1":"Pink","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":{"amount":"249.00","currency_code":"USD"}},{"price":{"amount":"249.00","currency_code":"CAD"},"compare_at_price":{"amount":"312.00","currency_code":"CAD"}}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}]}
Anchor to GET request, Receive a count of all Product VariantsgetReceive a count of all Product Variants
Retrieves a count of product variants
Retrieve a count all variants for a product
Retrieve a count all variants for a product
/admin/api/2026-01/products/632910392/variants/count. json
Response
examples
Retrieve a count all variants for a product
curl -X GET "https://your-development-store.myshopify.com/admin/api/2026-01/products/632910392/variants/count.json" \ -H "X-Shopify-Access-Token: {access_token}"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant->count( 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant->count( 632910392, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant->count( 632910392, );response
HTTP/1.1 200 OK{"count":4}
Anchor to GET request, Receive a single Product VariantgetReceive a single Product Variant
Retrieves a single product variant by ID
A comma-separated list of fields to include in the response
Retrieve a product variant by ID
Retrieve a product variant by ID
/admin/api/2026-01/variants/808950810. json
Response
examples
Retrieve a product variant by ID
curl -X GET "https://your-development-store.myshopify.com/admin/api/2026-01/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $result = admin.rest.resources.Variant::find( 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $result = Variant::find( 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $result = Variant::find( 808950810, );response
HTTP/1.1 200 OK{"variant":{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"tax_code":"DA040000","admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}}
Anchor to PUT request, Modify an existing Product VariantputModify an existing Product Variant
Updates an existing product variant
Add a metafield to an existing variant
Add a metafield to an existing variant
Add an existing image to an existing variant
Add an existing image to an existing variant
Update the title and price of an existing variant
Update the title and price of an existing variant
/admin/api/2026-01/variants/808950810. json
Response
examples
Add a metafield to an existing variant
curl -d '{"variant":{"id":808950810,"metafields":[{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2026-01/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->metafields = [{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]; $variant->put( 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->metafields = [{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]; $variant->put( test_session, 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->metafields = [{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]; $variant->put( 808950810, );response
HTTP/1.1 200 OK{"variant":{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:04:11-05:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}}Add an existing image to an existing variant
curl -d '{"variant":{"id":808950810,"image_id":562641783}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2026-01/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->image_id = 562641783; $variant->put( 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->image_id = 562641783; $variant->put( test_session, 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->image_id = 562641783; $variant->put( 808950810, );response
HTTP/1.1 200 OK{"variant":{"id":808950810,"product_id":632910392,"title":"Pink","price":"199.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Pink","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:30:39-05:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"199.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}}Update the title and price of an existing variant
curl -d '{"variant":{"id":808950810,"option1":"Not Pink","price":"99.00"}}' \ -X PUT "https://your-development-store.myshopify.com/admin/api/2026-01/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}" \ -H "Content-Type: application/json"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->option1 = "Not Pink"; $variant->price = "99.00"; $variant->put( 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->option1 = "Not Pink"; $variant->price = "99.00"; $variant->put( test_session, 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant = new Variant($this->test_session); $variant->id = 808950810; $variant->option1 = "Not Pink"; $variant->price = "99.00"; $variant->put( 808950810, );response
HTTP/1.1 200 OK{"variant":{"id":808950810,"product_id":632910392,"title":"Not Pink","price":"99.00","position":1,"inventory_policy":"continue","compare_at_price":null,"option1":"Not Pink","option2":null,"option3":null,"created_at":"2026-01-09T17:04:11-05:00","updated_at":"2026-01-09T17:30:46-05:00","taxable":true,"barcode":"1234_pink","fulfillment_service":"manual","grams":567,"inventory_management":"shopify","requires_shipping":true,"sku":"IPOD2008PINK","weight":1.25,"weight_unit":"lb","inventory_item_id":808950810,"inventory_quantity":10,"old_inventory_quantity":10,"presentment_prices":[{"price":{"amount":"99.00","currency_code":"USD"},"compare_at_price":null}],"admin_graphql_api_id":"gid://shopify/ProductVariant/808950810","image_id":562641783}}
Anchor to DELETE request, Remove an existing Product VariantdelRemove an existing Product Variant
Delete a product variant
Delete a product variant
/admin/api/2026-01/products/632910392/variants/808950810. json
Response
examples
Delete a product variant
curl -X DELETE "https://your-development-store.myshopify.com/admin/api/2026-01/products/632910392/variants/808950810.json" \ -H "X-Shopify-Access-Token: {access_token}"use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant->delete( 632910392, 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant->delete( 632910392, 808950810, );use Shopify\Rest\Admin2026_01\Variant; use Shopify\Utils; $this->test_session = Utils::loadCurrentSession( $requestHeaders, $requestCookies, $isOnline ); $variant->delete( 632910392, 808950810, );response
HTTP/1.1 200 OK{}