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
AAvailable
NNot available
PPhase out
SPresale
RRestricted
TOut of stock

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