Bulk-edit products
update_productsChanges prices, sale prices, stock, status, categories or tags for many products at once. Works in two steps: a preview shows exactly what would change (nothing is changed), then confirm=true applies it and records it so it can be undone. Always show the preview to the user and get their explicit approval before calling again with confirm=true and the preview_id. Max 500 products per change. Paid plans only. To apply it later instead of now, call with confirm=true, the preview_id AND apply_at (the store's local time, YYYY-MM-DDTHH:MM).
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "update_products"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | ||
| sku | No | ||
| tag | No | ||
| price | No | Change the regular price. | |
| stock | No | Only for products that track stock. | |
| store | No | Store address or id. Leave empty if you have only one store. | |
| search | No | ||
| status | No | ||
| confirm | No | Set true ONLY after the user approved the preview. | |
| add_tags | No | ||
| apply_at | No | Only with confirm=true: apply later. Store local time, YYYY-MM-DDTHH:MM, between 5 minutes and 90 days from now. | |
| category | No | ||
| preview_id | No | The preview_id returned by the preview call (required with confirm=true). | |
| sale_price | No | percent_off = sale price is X% below the (new) regular price; clear = remove the sale. | |
| set_status | No | ||
| stock_status | No | ||
| add_categories | No |