Update Product

Updates a product and its existing variants, and can add new variants via new_variants. Requires the Update Products permission at the product's locations. Existing variants are addressed by id inside variants. is_inventory_tracked cannot be changed through this endpoint.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
integer
required

Product id.

Body Params
string
length ≤ 190
string | null
integer | null
integer | null
integer | null
boolean
required
taxes
array of integers

Tax ids to apply — replaces the product's tax set.

taxes
locations
array of objects

Locations the product is sold at, as {"id", "reorder_limit"} objects — replaces the current assignment, so send the full list.

locations
online_locations
array of integers
online_locations
string | null
string | null
string | null
units
array of objects
required

Additional units as {"name", "scale"} objects. Always send this key — use [] when unchanged/none (omitting it causes a server error).

units*
variants
array of objects
required

Existing variants to update. Each entry requires id and supports sku, barcode, standard_cost, sales_price, unit_sales_prices, price_levels, reorder_limit, company_reorder_limit, attr_value_1..3 and kit_items. Always send the product's full variant list: omitting this key causes a server error, and for products without variant attributes exactly one entry (the existing variant) is expected — an empty array is rejected with a validation error.

variants*
new_variants
array of objects
required

Variants to add (each requires standard_cost and sales_price; barcode here is alphanumeric, max 20 chars). Always send this key — use [] when not adding variants (omitting it causes a server error).

new_variants*
Headers
string
required

The merchant install this request acts on (install.store_id from the app.installed webhook).

Response

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json