Update product
Authentication
Path parameters
Headers
Scope the request to a specific store / account instead of the one resolved from the API key. Aliases: the x-account-id header, or the application_account_id / account_id query parameter.
Scope the request to a specific store / account instead of the one resolved from the API key. Aliases: the x-account-id header, or the application_account_id / account_id query parameter.
Updates an existing product owned by the authenticated store and reconciles its linked apps and modifiers to match the arrays supplied in the body (diff-based add/remove).
Requires a Merchant API key in x-api-key with scope Merchant.product.update.
id (required) — the product UUID.JSON body (UpdateProductDto, which currently extends CreateProductDto with the same fields and validation). Send the full product representation:
name (required) and price (required, positive) plus optional description, imageUrl, sku, productCategoryId, appsIds, modifiersIds.Product with id <id> not found.sku differs from the current SKU, its global uniqueness is validated (400 if already in use).appsIds / modifiersIds are treated as the desired final set: the service removes join rows not present and adds new ones. Any newly supplied app/modifier that does not belong to your store causes a 403.Returns a confirmation message, not the updated entity.
Note: because
UpdateProductDtoextendsCreateProductDtowithoutPartialType,nameandpricestay required on update.
Notas: appsIds/modifiersIds behave as full replacement sets (diff add/remove), not incremental additions. SKU is only re-validated when changed. UpdateProductDto extends CreateProductDto (no PartialType), so name and price remain required.