update_product

update_product MCP tool: rename a product of an e-commerce project, change the brand that makes it or its product category, or dismiss its merge suggestion. Inputs, response shape, error codes, JSON example.

Updated 2026-10-08

update_product corrects one product of an e-commerce project: its name, the brand that makes it, its product category, or the merge suggestion the AI attached to it.

The product keeps its raw names (aliases), so its whole history stays attached whatever you change.

When to use

Use it when a row of list_products is right but badly labeled: a range name to tidy ("GUM Trav-Ler Brossettes" into "Trav-Ler"), a product attributed to the wrong brand, a product sorted in the wrong category, or a mergeIntoId pointing at a product that is not a duplicate.

Changing the brand is a human decision the AI respects: the product's raw names are locked, and the automatic grouping of duplicates no longer moves them. The same goes for the category: the AI sorts products after each scan, but never overwrites a category set here.

Input

Field Type Default Description
projectId string (CUID) required Project of the product.
productId string (CUID) required Product id from list_products.
name string (1-200) - New name of the product.
competitorId string (CUID) or null - Brand that makes the product: a competitor id, or null for the project's own brand.
category string (max 60) or null - Product category ("Brossettes interdentaires"), unit of get_product_share_of_voice. null clears it and lets the AI sort the product again.
dismissMergeSuggestion boolean - true clears mergeIntoId: the product is not a duplicate.

Set at least one of name, competitorId, category or dismissMergeSuggestion.

Response

{ "success": true, "productId": "clpr1..." }

Errors:

{ "success": false, "error": "product_exists" }
  • product_not_found: unknown id or another project.
  • brand_not_found: the competitorId is not a competitor of the project, or it was rejected.
  • invalid_name: the name holds nothing but the brand and variant attributes (sizes, colors, packs).
  • product_exists: the brand already has a product with the same name once variants are set aside. Merge the two with merge_products instead.

Tips and patterns

  • Name products after the range, not a variant: "Trav-Ler", not "Trav-Ler 0,9 mm Orange". Variants are folded into the range anyway.
  • A mergeIntoId that is right? Use merge_products. Wrong? dismissMergeSuggestion: true.
  • To move a product to your own brand, pass competitorId: null.
  • Reuse a category exactly as list_products returns it in category. A new spelling creates a separate category in the share of voice.

Related tools

You can see where you stand today.

Free trial. Start tracking your AI visibility, no credit card.