# Product Variant
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.
This is the handle of a third-party fulfillment service if the following conditions are met:
manual
.manual
.
The relationship between a product variant and a fulfillment service was changed in the 2022-07
API version. A ProductVariant can be stocked by multiple fulfillment services. As a result, we recommend that you use the InventoryLevel resource if you need to determine where a product variant is stocked.
If you previously set this field, then we recommend that you instead connect an inventory item to a location. Each Location is associated with a single FulfillmentService. The value of this field after setting it will be as described above.
If you need to determine whether a product is a gift card, then you should continue to use this field until an alternative is available.
Learn more about managing inventory quantities and states.
* Type: x-string * Example: "manual" * grams: The weight of the product variant in grams. * Type: x-string * Example: 567 * id: The unique numeric identifier for the product variant. * Type: x-string * Example: 808950810 * image_id: The unique numeric identifier for a product's image. The image must be associated to the same product as the variant. * Type: x-string * Example: 434522 * inventory_item_id: The unique identifier for the inventory item, which is used in the Inventory API to query for inventory information. * Type: x-string * Example: 342916 * inventory_management: The fulfillment service that tracks the number of items in stock for the product variant. Valid values:shopify
: You are tracking inventory yourself using the admin.null
: You aren't tracking inventory on the variant.fulfillment_service
property.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
.
* Type: x-string
* Example: "continue"
* inventory_quantity: An aggregate of inventory across all locations. To adjust inventory at a specific location, use the
InventoryLevel resource.
* Type: x-string
* Example: 10
* old_inventory_quantity: This property is deprecated. Use the
InventoryLevel resource instead.
* Type: x-string
* Example: 5
* option: The custom properties that a shop owner uses to define product variants.
You can define three options for a product variant: option1
, option2
, option3
.
Default value: Default Title
.
The title
field is a concatenation of the option1
, option2
, and
option3
fields. Updating the option
fields updates the title
field.
* Type: x-string
* Example: {"option1"=>"Pink"}
* presentment_prices: A list of the variant's presentment prices and compare-at prices in each of the shop's enabled presentment currencies. Each price object has the following properties:
currency_code
: The three-letter code (ISO 4217 format) for one of the shop's enabled presentment currencies.amount
: The variant's price or compare-at price in the presentment currency.'X-Shopify-Api-Features': 'include-presentment-prices'
.
* Type: x-string
* Example: {"presentment_prices"=>[{"price"=>{"currency_code"=>"USD", "amount"=>"199.99"}, "compare_at_price"=>{"currency_code"=>"USD", "amount"=>"249.99"}}, {"price"=>{"currency_code"=>"EUR", "amount"=>"158.95"}, "compare_at_price"=>{"currency_code"=>"EUR", "amount"=>"198.95"}}, {"price"=>{"currency_code"=>"GBP", "amount"=>"143.00"}, "compare_at_price"=>{"currency_code"=>"GBP", "amount"=>"179.00"}}, {"price"=>{"currency_code"=>"JPY", "amount"=>"22400"}, "compare_at_price"=>{"currency_code"=>"JPY", "amount"=>"28000"}}]}
* position: The order of the product variant in the list of product variants.
The first position in the list is 1
.
The position of variants is indicated by the order in which they are listed.
* Type: x-string
* Example: 1
* price: The price of the product variant.
* Type: x-string
* Example: "199.00"
* product_id: The unique numeric identifier for the product.
* Type: x-string
* Example: 632910392
* requires_shipping: This property is deprecated. Use the `requires_shipping` property on the InventoryItem resource instead.
* Type: x-string
* Example: true
* sku: A unique case-sensitive identifier for the product variant in the shop. Required in order to connect to a FulfillmentService.
* Type: x-string
* Example: "IPOD2008PINK"
* taxable: Whether a tax is charged when the product variant is sold.
* Type: x-string
* Example: true
* tax_code: This parameter applies only to the stores that have the Avalara AvaTax app installed. Specifies the Avalara tax code for the product variant.
* Type: x-string
* Example: "DA040000"
* title: The title of the product variant. The title
field is a concatenation of the option1
, option2
, and option3
fields. You can only update title
indirectly using the option
fields.
* Type: x-string
* Example: "Pink"
* updated_at: The date and time when the product variant was last modified.
Gets returned in ISO 8601 format.
* Type: x-string
* Example: "2012-08-24T14:01:47-04:00"
* weight: The weight of the product variant in the unit system specified with weight_unit
.
* Type: x-string
* Example: 100.0
* weight_unit: The unit of measurement that applies to the product variant's weight.
If you don't specify a value for weight_unit
, then the shop's default unit of measurement is applied.
Valid values: g
, kg
, oz
, and lb
.
* Type: x-string
* Example: "oz"
## Retrieves 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.
### Endpoint
/admin/api/#{api_version}/products/{product_id}/variants.json (GET)
### Parameters
* api_version (required):
* product_id (required):
* fields: A comma-separated list of fields to include in the response
* limit: Return up to this many results per page
* presentment_currencies: Return presentment prices in only certain currencies, specified by a comma-separated list of ISO 4217 currency codes.
* since_id: Restrict results to after the specified ID
### Responses
#### 200
Retrieves a list of product variants
Examples:
##### Retrieve all variants for a product
Request:
```
GET /admin/api/unstable/products/632910392/variants.json
```
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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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
Request:
```
GET /admin/api/unstable/products/632910392/variants.json
```
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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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
Request:
```
GET /admin/api/unstable/products/632910392/variants.json
```
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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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}]}
```
## Create a new Product Variant
Creates a new product variant
### Endpoint
/admin/api/#{api_version}/products/{product_id}/variants.json (POST)
### Parameters
* api_version (required):
* product_id (required):
### Responses
#### 201
Create a new Product Variant
Examples:
##### Create a new product variant
Request:
```
POST /admin/api/unstable/products/632910392/variants.json
{"variant":{"option1":"Yellow","price":"1.00"}}
```
Response:
```
HTTP/1.1 201 Created
{"variant":{"id":1070325040,"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":"2024-09-24T10:57:03-04:00","updated_at":"2024-09-24T10:57:03-04:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":"","weight":0.0,"weight_unit":"lb","inventory_item_id":1070325040,"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/1070325040","image_id":null}}
```
##### Create a new product variant with a metafield
Request:
```
POST /admin/api/unstable/products/632910392/variants.json
{"variant":{"option1":"Blue","metafields":[{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]}}
```
Response:
```
HTTP/1.1 201 Created
{"variant":{"id":1070325042,"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":"2024-09-24T10:57:10-04:00","updated_at":"2024-09-24T10:57:10-04:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":"","weight":0.0,"weight_unit":"lb","inventory_item_id":1070325042,"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/1070325042","image_id":null}}
```
##### Create a new product variant with an image
Request:
```
POST /admin/api/unstable/products/632910392/variants.json
{"variant":{"image_id":850703190,"option1":"Purple"}}
```
Response:
```
HTTP/1.1 201 Created
{"variant":{"id":1070325041,"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":"2024-09-24T10:57:04-04:00","updated_at":"2024-09-24T10:57:04-04:00","taxable":true,"barcode":null,"fulfillment_service":"manual","grams":0,"inventory_management":"shopify","requires_shipping":true,"sku":"","weight":0.0,"weight_unit":"lb","inventory_item_id":1070325041,"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/1070325041","image_id":850703190}}
```
## Receive a count of all Product Variants
Retrieves a count of product variants
### Endpoint
/admin/api/#{api_version}/products/{product_id}/variants/count.json (GET)
### Parameters
* api_version (required):
* product_id (required):
### Responses
#### 200
Receive a count of all Product Variants
Examples:
##### Retrieve a count all variants for a product
Request:
```
GET /admin/api/unstable/products/632910392/variants/count.json
```
Response:
```
HTTP/1.1 200 OK
{"count":4}
```
## Receive a single Product Variant
Retrieves a single product variant by ID
### Endpoint
/admin/api/#{api_version}/variants/{variant_id}.json (GET)
### Parameters
* api_version (required):
* variant_id (required):
* fields: A comma-separated list of fields to include in the response
### Responses
#### 200
Receive a single Product Variant
Examples:
##### Retrieve a product variant by ID
Request:
```
GET /admin/api/unstable/variants/808950810.json
```
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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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}}
```
## Modify an existing Product Variant
Updates an existing product variant
### Endpoint
/admin/api/#{api_version}/variants/{variant_id}.json (PUT)
### Parameters
* api_version (required):
* variant_id (required):
### Responses
#### 200
Modify an existing Product Variant
Examples:
##### Add a metafield to an existing variant
Request:
```
PUT /admin/api/unstable/variants/808950810.json
{"variant":{"id":808950810,"metafields":[{"key":"new","value":"newvalue","type":"single_line_text_field","namespace":"global"}]}}
```
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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:33:18-04: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
Request:
```
PUT /admin/api/unstable/variants/808950810.json
{"variant":{"id":808950810,"image_id":562641783}}
```
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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:57:06-04: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
Request:
```
PUT /admin/api/unstable/variants/808950810.json
{"variant":{"id":808950810,"option1":"Not Pink","price":"99.00"}}
```
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":"2024-09-24T10:33:18-04:00","updated_at":"2024-09-24T10:57:05-04: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}}
```
## Remove an existing Product Variant
### Endpoint
/admin/api/#{api_version}/products/{product_id}/variants/{variant_id}.json (DELETE)
### Parameters
* api_version (required):
* product_id (required):
* variant_id (required):
### Responses
#### 200
Remove an existing Product Variant
Examples:
##### Delete a product variant
Request:
```
DELETE /admin/api/unstable/products/632910392/variants/808950810.json
```
Response:
```
HTTP/1.1 200 OK
{}
```