Requires
write_product
access scope. More access scope
The Update Variant by SKU API allows users to update the details of a specific product variant using its SKU. This endpoint is useful for managing inventory, pricing, and other variant-specific attributes by targeting the unique SKU of a variant. It provides flexibility in updating multiple fields of the variant in a single API call.This API is especially useful for:
- Update inventory and pricing details for a specific SKU.
- Modify metadata such as barcode, weight, or custom notes for better variant management.
Note: The operation is scoped to a specific shop, identified by its unique domain prefix (shopdomain), ensuring all updates are applied to the correct store.
Public Request Parameters
Parameter Name | Type | Required | Parameter Location | Parameter Value | Description |
---|---|---|---|---|---|
Access-Token | String | Yes | Header | Bx-_5aV eXNwl-4AB98s5xLV yg0fNzGf MuTpqtlBA | Used to authenticate API requests. Obtain an access token from the Access Token Guide. Pass it in the Authorization header for every request. |
Content-Type | String | Yes | Header | application /json | Indicates the media type of the request body. It tells the server how to parse the request and the client how to interpret the response. For more details, visit Content-Type. |
Public Response Parameters
Parameter Name | Type | Mandatory | Parameter Location | Example Value | Description |
---|---|---|---|---|---|
error | String | No | Response Body | { "error": "store is not active" } | Indicates an error encountered during the process. This field typically appears when the Access Token is missing or invalid. Example: { "error": "store is not active" } . |
errors | Array | No | Response Body | { "errors"["No Context"] } | A list of errors that occurred during the request processing. Example: { "errors": [ "No Context" ] } . |
Request-Id | String | Yes | Header | Bx-_5aV eXNwl-4AB98s5xLV yg0fNzGf MuTpqtlBA | A unique identifier for each request. It helps in identifying and debugging specific requests. |
Error and Errors Clarification:
Added explanation that the error and errors fields are currently dependent on the API implementation, with plans for future unification.
Request Parameters
Path Parameters
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
sku | string | Yes | "ABC123" | SKU of the product to retrieve variants. |
Body Parameters
Field | Type | Required | Example | Description |
---|---|---|---|---|
compare_at_price | string | No | "99.99" | The original price of the variant before discount. |
price | string | No | "79.99" | The current price of the variant. |
barcode | string | No | "123456789" | The barcode for the variant for inventory or sales tracking. |
note | string | No | Seasonal sale | Custom notes or remarks for the variant. |
inventory_quantity | int | No | 100 | The current inventory level for the variant. |
weight | string | No | "1.5" | The weight of the variant. |
weight_unit | string | No | kg | The unit of measurement for the weight. (e.g., kg , g , lb , oz ) |
cost_price | string | No | "50.00" | The cost price of the variant. |
retail_price | string | No | "120.00" | The recommended retail price for the variant. |
refuse_multi_result | bool | No | true | false: If sku matches multiple sub-items, update the matched sub-items normally. true: Rejects the update if the sku matches more than one subitem |
Response Explanation
Successful Response
Field | Type | Example | Description |
---|---|---|---|
variants | array | array of variant object | |
variants[ ].id | string | 1b735278-62c7-41ad-9976-b1b63a90590d | Unique identifier for the variant. |
variants[ ].product_id | string | 636a07da-39eb-4829-bde9-b65fae1c28b0 | Unique identifier for the associated product. |
variants[ ].image_id | string | 91d032e7-bbc8-47e4-8668-9ba6fe714de6 | Unique identifier for the associated image. |
variants[ ].created_at | string (date) | 2024-04-15T02:00:57Z | Timestamp indicating when the variant was created. |
variants[ ].updated_at | string (date) | 2024-04-15T02:00:57Z | Timestamp indicating when the variant was last updated. |
variants[ ].title | string | S-red | Title of the variant. |
variants[ ].option1 | string | S | First option value for the variant (e.g., size). |
variants[ ].option2 | string | red | Second option value for the variant (e.g., color). |
variants[ ].option3 | string | "" | Third option value for the variant, if applicable. |
variants[ ].image | object | Image Object | |
variants[ ].image.src | string | //cdn.shoplazza.com/efd33b921cacd5311a32dd03a9bc8740.png | URL of the image associated with the variant. |
variants[ ].image.width | integer | 1588 | Width of the variant image in pixels. |
variants[ ].image.height | integer | 2246 | Height of the variant image in pixels. |
variants[ ].image.path | string | efd33b921cacd5311a32dd03a9bc8740.png | File path of the variant image. |
variants[ ].image.alt | string | "" | Alternative text for the variant image. |
variants[ ].position | integer | 1 | Position of the variant in the product's variant list. |
variants[ ].compare_at_price | string | 100.00 | Original price of the variant before discounts. |
variants[ ].price | string | 100.00 | Current price of the variant. |
variants[ ].sku | string | S-RED | Stock Keeping Unit (SKU) for the variant. |
variants[ ].barcode | string | 123 | Barcode associated with the variant. |
variants[ ].note | string | s-red | Notes or additional information about the variant. |
variants[ ].inventory_quantity | integer | 10 | Number of items available in inventory for the variant. |
variants[ ].weight | string | 0.10 | Weight of the variant. |
variants[ ].weight_unit | string | kg | Unit of measurement for the weight (e.g., kg, lb). |
variants[ ].cost_price | string | 11.00 | Cost price of the variant. |
variants[ ].wholesale_price | object | wholesale price object | |
variants[].wholesale_price.price | string | 100.00 | Wholesale price for the variant. |
variants[].wholesale_price.min_quantity | integer | 1 | Minimum quantity required to avail the wholesale price. |
variants[ ].retail_price | string | 1 |
Error Response
Error responses in the API can be represented using two different fields: errors
and error
. Both fields provide details about issues encountered during request processing. Below is an explanation of the fields with their respective examples and descriptions.
Field | Type | Example | Description |
---|---|---|---|
errors | Array | ["Record not found"] | A list of errors encountered during the request processing. |
Field | Type | Example | Description |
---|---|---|---|
error | Array | "store is not active" | Indicates an error encountered during the process. |
Request Examples
curl --request PUT \
--url https://{shopdomain}.myshoplazza.com/openapi/2022-01/variants/sku/{sku} \
--header 'accept: application/json' \
--header 'access-token: {your-access-token}' \
--header 'content-type: application/json' \
--data '{
"compare_at_price": 99.99,
"price": 79.99,
"barcode": "123456789",
"note": "Seasonal sale",
"inventory_quantity": 100,
"weight": 1.5,
"weight_unit": "kg",
"cost_price": 50.00,
"retail_price": 120.00,
"refuse_multi_result": true
}'
Success Response Example
{
"variants": [
{
"id": "88e68830-4ef5-4125-bf7d-aef8047176b2",
"product_id": "a1a88be0-a1d4-47e4-a2f2-ba6e131cf447",
"image_id": "8ef098c5-5a08-44b4-b5fb-89214bb507dc",
"created_at": "2024-04-17T02:15:18Z",
"updated_at": "2024-04-17T02:15:18Z",
"title": "S-blue-T",
"option1": "S",
"option2": "blue",
"option3": "T",
"image": {
"src": "//cdn.shoplazza.com/ccf0794c594bad32a320eea0d6bfe40c.jpeg",
"width": 174,
"height": 180,
"path": "ccf0794c594bad32a320eea0d6bfe40c.jpeg",
"alt": ""
},
"position": 1,
"compare_at_price": "12.10",
"price": "10.10",
"sku": "T-M-S-blue-T-A001004",
"barcode": "6929000212340",
"note": "node",
"inventory_quantity": 16,
"weight": "1.10",
"weight_unit": "kg",
"cost_price": "1.10",
"wholesale_price": [
{
"price": "10.10",
"min_quantity": 1
}
],
"retail_price": "0.00"
}
]
}
Error Response Example
{
"errors": [
"Record not found"
]
}
{
"error": "store is not active"
}
Error Details
Status Code | Message | Possible Reason | Example Response |
---|---|---|---|
400 | Bad Request | Invalid input format or request structure (e.g., missing required fields or incorrect data types). | Bad Request |
Unauthorized | The request is missing valid authentication credentials or the credentials provided are invalid. | Unauthorized | |
422 | 1.sku Not Found,2.Invalid or empty sku | 1.The variant SKU provided in the request does not exist.2. Missing or invalid SKU | { "errors": ["Record not found"] } |