Skip to main content

Update a product

Update a product's name, description, status, SKU and other fields using the GraphQL API. Only the fields you include in the input are updated; all other fields remain unchanged.

Mutation

mutation UpdateProduct($productId: Int!, $input: UpdateProductInput!) {
productUpdate(productId: $productId, input: $input) {
productId
names(language: "NL") { value }
descriptions(language: "NL") { value }
sku
status
manufacturer
manufacturerCode
supplier
supplierCode
barCode
eanCode
minimumQuantity
unit
lastModifiedAt
}
}

Variables

{
"productId": 26,
"input": {
"names": [
{ "language": "NL", "value": "Industriële Kachel HT-350" }
],
"descriptions": [
{ "language": "NL", "value": "<p>Industriële kachel met bovenuitlaat rookkanaal, geschikt voor grote ruimtes.</p>" }
],
"sku": "HT-350-V2",
"status": "A",
"manufacturer": "HeatTech",
"manufacturerCode": "HT350"
}
}

Response

{
"data": {
"productUpdate": {
"productId": 26,
"names": [{ "value": "Industriële Kachel HT-350" }],
"descriptions": [{ "value": "<p>Industriële kachel met bovenuitlaat rookkanaal, geschikt voor grote ruimtes.</p>" }],
"sku": "HT-350-V2",
"status": "A",
"manufacturer": "HeatTech",
"manufacturerCode": "HT350",
"supplier": "Ingram Micro",
"supplierCode": "IM-HT350",
"barCode": null,
"eanCode": "8710000000123",
"minimumQuantity": 1,
"unit": 1,
"lastModifiedAt": "2026-03-05T10:15:00.000Z"
}
}
}

Common update scenarios

Change product status

{
"productId": 26,
"input": {
"status": "S"
}
}

Update SEO metadata

{
"productId": 26,
"input": {
"metadataTitles": [
{ "language": "NL", "value": "Industriële Kachel HT-350 | Online bestellen" }
],
"metadataDescriptions": [
{ "language": "NL", "value": "Industriële kachel met bovenuitlaat rookkanaal, geschikt voor grote ruimtes." }
]
}
}

Set ordering constraints

{
"productId": 26,
"input": {
"minimumQuantity": 5,
"economicOrderQuantity": 10,
"orderable": "Y",
"orderableFrom": "2026-04-01T00:00:00.000Z"
}
}

Product statuses

StatusMeaning
AActive, visible and orderable
NNew, being set up, not yet live
PPending, awaiting approval
SSuspended, temporarily unavailable
RReserved
TTerminated, end of life

How it works

The productUpdate mutation accepts a productId and an UpdateProductInput. Only fields present in the input object are updated. Localized fields (names, descriptions, shortDescriptions, etc.) accept an array of { language, value } objects. HTML is supported in descriptions and shortDescriptions. The mutation returns the full product, so you can verify the update in a single round trip.

See also