put
https://{subdomain}.myshoplaza.com/openapi/2025-06/products/
Update an existing product with the provided details.
Requireswrite_productaccess scope. For more access scope
Important Note: When updating the same product, the updateProduct API is more performant than updateVariant. If there are multiple updates for the same product (e.g., updating variant prices), it is strongly recommended to use updateProduct to avoid potential locking issues. This ensures better performance and reduces delays.
The Update Product API allows developers to update product details by using its unique domain prefix (shopdomain) and providing various configurable fields. This endpoint supports modifying specific fields such as product title, description, variants and images. It is particularly useful for managing product catalog updates and maintaining accurate product information.This API is especially useful for:
-
Updating product metadata like title, description, and SEO fields through its unique identifier (product_id).
-
Managing product variants, options, and inventory details.
Request Parameters
Public Request Parameters
Path Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
product_id | string | Yes | Unique identifier of the product to update | "prod_123456789" |
Body Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
product_id | string | No | Product identifier confirmation | "prod_123456789" |
no_entity | boolean | No | Return empty object on success | false |
product | object | No | Container for product updates | - |
product.title | string | No | Product display name | "Premium Wireless Headphones" |
product.brief | string | No | Short description | "Noise-cancelling Bluetooth" |
product.description | string | No | Full description | "40hr battery life..." |
product.published | boolean | No | Publication status | true |
product.require_shipping | boolean | No | Shipping requirement | true |
product.taxable | boolean | No | Taxable status | true |
product.tags | object | No | Product tags | - |
product.tags.values | array of strings | No | Tag values | ["audio", "wireless"] |
product.vendor | string | No | Manufacturer name | "Sony" |
product.vendor_url | string | No | Vendor website | "https://sony.com" |
product.note | string | No | Internal notes | "2025 summer collection" |
product.seo_title | string | No | SEO title | "Best Wireless Headphones" |
product.seo_description | string | No | SEO description | "Premium audio quality" |
product.seo_keywords | object | No | SEO keywords | - |
product.seo_keywords.values | array of strings | No | Keyword values | ["headphones", "bluetooth"] |
product.handle | string | No | URL handle | "premium-headphones" |
product. has_only_default_variant | boolean | No | Single variant flag | false |
product.inventory_tracking | boolean | No | Inventory tracking | true |
product.inventory_policy | string | No | Inventory policy | "deny" |
product.inventory_quantity | string | No | Stock quantity | "150" |
product.spu | string | No | Standard product unit | "SPU12345" |
product.fake_sales | string | No | Display sales count | "100" |
product.display_fake_sales | boolean | No | Show fake sales | true |
product.images | array of objects | No | Product images | - |
product.images.src | string | No | Image URL | "https://example.com/image.jpg" |
product.images.width | int32 | No | Image width | 800 |
product.images.height | int32 | No | Image height | 600 |
product.images.alt | string | No | Alt text | "Black headphones" |
product.options | array of objects | No | Product options | - |
product.options.name | string | No | Option name | "Color" |
product.options.values | array of strings | No | Option values | ["Black", "White"] |
product.variants | array of objects | No | Product variants | - |
product.variants.id | string | No | Variant ID | "var_123456" |
product.variants.option1 | string | No | Option 1 value | "Black" |
product.variants.option2 | string | No | Option 2 value | "Large" |
product.variants.option3 | string | No | Option 3 value | "" |
product.variants.image | object | No | Variant image | - |
product.variants. image.src | string | No | Image URL | "https://example.com/variant.jpg" |
product.variants. image.width | int32 | No | Image width | 800 |
product.variants. image.height | int32 | No | Image height | 600 |
product.variants. image.alt | string | No | Alt text | "Black variant" |
product.variants. compare_at_price | double | No | Original price | 199.99 |
product.variants.price | double | No | Selling price | 149.99 |
product.variants.sku | string | No | Stock keeping unit | "SKU123BLK" |
product.variants.barcode | string | No | Product barcode | "123456789" |
product.variants.note | string | No | Variant notes | "New stock" |
product.variants.weight | double | No | Product weight | 0.5 |
product.variants. weight_unit | string | No | Weight unit | "kg" |
product.variants. cost_price | double | No | Cost price | 89.99 |
product.variants. whole_prices | array of objects | No | Wholesale prices | - |
product.variants. whole_prices.price | float | No | Wholesale price | 129.99 |
product.variants. whole_prices.min_quantity | string | No | Minimum order | "10" |
product.variants. retail_price | double | No | Retail price | 149.99 |
product.variants.image_id | string | No | Image reference | "img_123456" |
product.variants.extend | object | No | Extended properties | - |
product.variants. extend.inventory_quantity | string | No | Variant stock | "50" |
product.collection_ids | object | No | Product collections | - |
product.collection_ids. values | array of strings | No | Collection IDs | ["coll_123", "coll_456"] |
product.need_variant_image | boolean | No | Variant image requirement | true |
product.need_shipping | boolean | No | Shipping requirement | true |
Response Explanation
Public Response Parameters
Successful Response
| Parameter | Type | Example | Description |
|---|---|---|---|
code | string | "200" | HTTP status code |
message | string | "Success" | Operation result message |
data.product | objects | - |
Product Object
| Parameter | Type | Example | Description |
|---|---|---|---|
id | string | "prod_123" | Product ID |
title | string | "Wireless Headphones" | Product title |
description | string | "Noise-cancelling wireless headphones" | Product description |
published | boolean | true | Published status |
requires_shipping | boolean | true | Shipping requirement |
taxable | boolean | true | Taxable status |
tags | array of strings | ["audio", "wireless"] | Product tags |
vendor | string | "Sony" | Vendor name |
vendor_url | string | "https://sony.com" | Vendor URL |
note | string | "Limited edition" | Internal note |
seo_title | string | "Premium Headphones" | SEO title |
seo_description | string | "Buy best wireless headphones" | SEO description |
seo_keywords | array of strings | ["headphones", "audio"] | SEO keywords |
handle | string | "wireless-headphones" | Product handle |
has_only_default_variant | boolean | false | Single variant flag |
inventory_tracking | boolean | true | Inventory tracking |
inventory_policy | string | "deny" | Inventory policy |
need_variant_image | boolean | true | Variant image requirement |
spu | string | "SPU123" | Standard product unit |
fake_sales | string | "100" | Display sales count |
display_fake_sales | boolean | true | Show fake sales |
options | array of objects | - | Product options |
options.id | string | "opt_123" | Option ID |
options.name | string | "Color" | Option name |
options.values | array of strings | ["Black", "White"] | Option values |
options.position | string | "1" | Option position |
images | array of objects | - | Product images |
images.id | string | "img_123" | Image ID |
images.src | string | "https://example. com/image.jpg" | Image URL |
images.width | int32 | 800 | Image width |
images.height | int32 | 600 | Image height |
images.alt | string | "Black headphones" | Image alt text |
images.position | string | "1" | Image position |
images.path | string | "/images/headphones" | Image path |
variants | array of objects | - | Product variants |
variants.id | string | "var_123" | Variant ID |
variants.product_id | string | "prod_123" | Parent product ID |
variants.image_id | string | "img_123" | Variant image ID |
variants.created_at | string | "2025-01-01T00:00:00Z" | Creation time |
variants.updated_at | string | "2025-06-01T00:00:00Z" | Update time |
variants.title | string | "Black" | Variant title |
variants.option1 | string | "Black" | Option 1 value |
variants.option2 | string | "Large" | Option 2 value |
variants.option3 | string | "" | Option 3 value |
variants.image | object | - | Variant image |
variants.image.position | string | "1" | Image position |
variants.compare_at_price | float | 199.99 | Compare at price |
variants.price | float | 149.99 | Current price |
variants.sku | string | "SKU123BLK" | Stock keeping unit |
variants.barcode | string | "123456789" | Barcode |
variants.note | string | "New stock" | Variant note |
variants. inventory_quantity | string | "50" | Inventory count |
variants.weight | float | 0.5 | Product weight |
variants.weight_unit | string | "kg" | Weight unit |
variants.cost_price | float | 89.99 | Cost price |
variants.whole_prices | array of objects | - | Wholesale prices |
variants. whole_prices.price | float | 129.99 | Wholesale price |
variants.whole_prices. min_quantity | string | "10" | Minimum quantity |
variants. retail_price | float | 149.99 | Retail price |
variants. is_discount | boolean | false | Discount status |
variants. origin_price | float | 149.99 | Original price |
variants. extend | object | - | Extended properties |
variants. extend.length | float | 20.5 | Product length |
variants. extend.width | float | 15.0 | Product width |
variants. extend.height | float | 5.0 | Product height |
variants.extend. dimension_unit | string | "cm" | Dimension unit |
variants.extend. origin_country_code | string | "CN" | Country of origin |
variants.extend. hs_code | string | "8518.29" | HS code |
variants.extend. mixed_wholesale | boolean | false | Mixed wholesale |
product_type | string | "electronics" | Product type |
brand | string | "Sony" | Product brand |
brief | string | "Premium audio" | Brief description |
inventory_quantity | string | "150" | Total inventory |
price_min | float | 149.99 | Minimum price |
price_max | float | 199.99 | Maximum price |
compare_at_price_min | float | 199.99 | Minimum compare price |
compare_at_price_max | float | 249.99 | Maximum compare price |
published_at | string | "2025-05-15T00:00:00Z" | Publish date |
created_at | string | "2025-01-01T00:00:00Z" | Creation date |
updated_at | string | "2025-06-01T00:00:00Z" | Update date |
sales | string | "75" | Actual sales count |
independent_seo | boolean | true | Custom SEO flag |
url | string | "/products/wireless-headphones" | Product URL |
available | boolean | true | Availability status |
retail_price_min | float | 149.99 | Minimum retail price |
retail_price_max | float | 199.99 | Maximum retail price |
origin_price_min | float | 149.99 | Minimum original price |
origin_price_max | float | 199.99 | Maximum original price |
primary_image | object | - | Primary image |
primary_image.src | string | "https://example. com/primary.jpg" | Image URL |
primary_image.width | int32 | 800 | Image width |
primary_image.height | int32 | 600 | Image height |
primary_image.alt | string | "Primary product image" | Alt text |
primary_image.path | string | "/images/primary" | Image path |
tax_code | string | "TAX123" | Tax code |
category_id | string | "cat_123" | Category ID |
category | object | - | Category details |
category.id | string | "cat_123" | Category ID |
category.name | string | "Electronics" | Category name |
category.google_id | string | "12345" | Google category ID |
category.level | int32 | 2 | Category level |
category.path | string | "Electronics/Audio" | Category path |
Error Response
| Field | Type | Example | Description |
|---|---|---|---|
code | string | InvalidParameter | Error http message |
message | string | `` | Error message |
