Skip to content

Catalog Product — Update

Equivalent to PUT /api/admin/catalog/products/{id}.

This is a partial patch — send only the fields you want to change inside input. Omitted fields keep their current value. Pass the product IRI as id (e.g. "/api/admin/catalog/products/42").

Prerequisites

The examples use illustrative IRIs. Replace them with the IRI of a product that exists in your store — use the adminCatalogProducts query to discover valid ids.

Operation

OperationType
updateAdminCatalogProductMutation

Input shape

The input has named camelCase args for the common and structural fields, plus an extras object for everything else:

ArgNotes
idThe product IRI. Required.
urlKey, status, price, weightCommon scalar fields.
categories, channelsint[] — replace the product's assignment when sent, preserved when omitted.
superAttributes, variantsConfigurable structure.
bundleOptionsBundle structure.
linksGrouped structure.
downloadableLinks, downloadableSamplesDownloadable structure.
bookingBooking structure (typedefault / appointment / event / rental / table).
extrasAny other attribute code — name, color, meta_title, short_description, brand, … — as a JSON object keyed by attribute code.

Family attribute fields (e.g. name, color, meta_title, short_description) that aren't one of the named args go inside extras. Structure args replace that structure when sent — send the full set. See the examples: dropdown for each type's verified payload.

Locale & channel

GraphQL has no query string, so translatable fields are written to the store's default locale and channel. To target a specific locale (e.g. write the French translation while leaving English untouched), use the REST endpoint with its ?locale=fr&channel=default query parameter — see the REST Update page.

Sub-resources are not updated here

images, videos, inventories, and customerGroupPrices are not handled by this mutation — they have dedicated operations. If sent, they are ignored and noted in the response _warnings array:

Response

Returns the updated product. Select { adminCatalogProduct { id sku type } }, or query the full detail fields — same shape as the detail query.

Released under the MIT License.