Skip to main content

Update Draft (overrides, images, structure)

PUT 

/api/v2/listing-drafts/:draft

Update a draft — saves field_overrides, image_urls, and structural changes (sales_channel_category_id, sales_channel_product_template_id, sales_channel_listing_profile_id), then re-resolves and re-validates. The draft transitions to ready when no validation errors remain.

field_overrides values come in two shapes:

  • Literal value (string / number / bool / array for multiselect) — used verbatim, provenance override.
  • Mapped source — an object {"source_type": ..., "source_value": ...} that re-resolves from product data on every validate/publish. source_type must be one of product_field (whitelisted product columns — see GET /api/v2/listing-drafts/mappable-product-fields), product_attribute (an Attribute id), static (literal string), or expression (mustache tokens, e.g. {{product.sku}} - {{product.name}}). A mapped override that resolves to null stays null (no fall-through to template/mapping values) so required-field validation can flag it.

Passing an invalid source_type, or a source_value that is not a scalar, returns 422.

Fields:

  • field_overrides (nullable, object) — map of field name to literal value or mapped source (see above).
  • sales_channel_category_id (nullable, integer)
  • sales_channel_product_template_id (nullable, integer)
  • sales_channel_listing_profile_id (nullable, integer)
  • image_urls (nullable, array of strings)

Authentication: Requires Bearer token. Feature flag: requires listing-publishing to be enabled.

Request

Responses

OK