merge_products
merge_products MCP tool: merge duplicate products of the same brand into a target product on an e-commerce project. The whole mention history follows. Inputs, response shape, error codes, JSON example.
Updated 2026-10-08
merge_products merges products of the same brand into a target product. The target keeps its name; the merged products disappear and their raw names (aliases) move to the target.
Mentions are attached to raw names, not to products, so the whole history follows: every past answer citing a merged product now counts for the target.
When to use
Engines name the same range in many ways ("Gum Soft Picks Advanced", "GUM Soft-Picks Advanced"). Mentionable folds sizes, colors and packs automatically and groups obvious duplicates itself. When it is unsure, it only suggests: the product carries a mergeIntoId in list_products. Use this tool to accept that suggestion, or to merge duplicates you spotted yourself.
Input
| Field | Type | Default | Description |
|---|---|---|---|
projectId |
string (CUID) | required | Project of the products. |
targetProductId |
string (CUID) | required | Product that remains, with its name. |
productIds |
array of string (CUID), 1-20 | required | Products merged into the target. Same brand as the target. |
Response
{ "success": true, "productId": "clpr1...", "merged": 2 }
productId: the target.merged: products merged into it. The target itself is ignored if you list it inproductIds.
The target becomes CONFIRMED if one of the merged products was, and takes the site product page of a merged product when it had none.
Errors:
{ "success": false, "error": "different_brands" }
product_not_found: one of the ids is unknown or belongs to another project.different_brands: the products are not all from the same brand. Fix the brand first withupdate_product.
Tips and patterns
- Accepting AI suggestions: for each row with a
mergeIntoId, callmerge_productswithtargetProductId: mergeIntoIdandproductIds: [id]. - Pick as target the product with the clearest range name, or rename it afterwards with
update_product. - Merged too much?
split_productmoves raw names back out to a new product.
Related tools
list_products: every product, with merge suggestionssplit_product: the reverse operationupdate_product: rename, change brand, dismiss a suggestionget_product: raw names of a product