Skip to content

Update Product

Required scope: catalog:write

Updates a product by its stable ID. Only supplied fields change; omit a field to leave it unchanged. Prices are integer minor currency units and vatRate is a fraction. Supplying countryPrices replaces the product’s existing country-specific overrides. The base currency cannot be changed through this endpoint.

Updates are by ID and effectively idempotent for identical input, but there is no version field, so concurrent updates last-write-wins.

Generated Reference
POST /public-api/publicapi.v1.Catalog/UpdateProduct

Updates a catalog product by ID. Only supplied fields are changed.

Request UpdateProductRequest
Response UpdateProductResponse

UpdateProductRequest

Field Type Description
id string Stable identifier of the product to update.
name optional string New display name. Unchanged when omitted.
sku optional string New SKU. Unchanged when omitted.
description optional string New description. Unchanged when omitted.
price_once_minor optional int32 New one-off price in minor currency units. Unchanged when omitted.
price_monthly_minor optional int32 New monthly recurring price in minor currency units. Unchanged when omitted.
price_yearly_minor optional int32 New yearly recurring price in minor currency units. Unchanged when omitted.
vat_rate optional double New default VAT rate as a fraction. Unchanged when omitted.
is_active optional bool New active flag. Unchanged when omitted.
min_quantity optional int32 New minimum orderable quantity. Unchanged when omitted.
max_quantity optional int32 New maximum orderable quantity. Unchanged when omitted.
country_prices repeated CountryPriceInput Country-specific price overrides. Replaces existing overrides when supplied.

UpdateProductResponse

Field Type Description
product Product The updated product.
{
"id": "<product-id>",
"name": "Solar panel 430W",
"priceOnceMinor": 19900,
"isActive": true,
"countryPrices": [
{ "countryCode": "US", "priceOnceMinor": 21500, "vatRate": 0 }
]
}
{
"product": {
"id": "<product-id>",
"name": "Solar panel 430W",
"priceOnce": 19900,
"currency": "EUR",
"isActive": true
}
}