Bulk Edit WooCommerce Prices with AI: Raise, Lower, Undo Safely
To bulk edit WooCommerce prices with AI, you describe the change to an assistant such as Claude in one sentence, the way you would brief a colleague: "raise everything in Outdoor by 8%", "take 5 off all tents under 200", "set the sale price 15% below regular for the Summer tag". BEAR's MCP server turns that sentence into a product filter plus a price operation, shows you the new prices before anything is written, writes them only after you confirm how many products are affected, and keeps every previous price in History so the whole run can be undone at once. Below: what to type, what happens at each step, which price operations exist, how to aim at the right products and variations, what BEAR warns about, and where the limits are.
Bulk edit WooCommerce prices with AI: what you type and what happens
One complete run, on a shop with simple and variable products:
Raise the regular price of everything in the Outdoor category by 8%, variations included. Show me the products and the preview before you change anything.
- The assistant reads your shop. It asks BEAR for the list of fields and for the categories, so it works with the real field key of the regular price and the real ID of the Outdoor category instead of guessing them.
- It selects the products. The filter runs through BEAR's own filter engine, the same one behind the filter on the editor screen, and the matching IDs are frozen as a selection with an exact count. Say 46: 30 simple products, 4 variable products and their 12 variations. You get a sample table to look over. If the filter happens to match every product in the shop, BEAR flags the selection as the whole catalogue and the assistant has to tell you.
- It previews the change. For a sample of the selection you see the old and the new price of each product: 40.00 becomes 43.20, 129.00 becomes 139.32. Nothing has been written at this point. Under the table come warnings computed for this exact selection, here: the 4 variable products have no price of their own, so they stay as they are while their variations change.
- You confirm. You answer yes, and the assistant asks to use
woobe_apply_bulkwith the count it showed you. BEAR compares that number with the size of the selection and refuses the write if they differ. - BEAR writes and reports. The answer says how many products were written, how many were skipped and why, and names the operation by the key it carries in History. The 4 variable parents are reported as skipped; their 12 variations now carry the higher prices.
The numbers are illustrative. A few dozen products take seconds; larger selections are written in portions, explained further down.
Before you start
The assistant needs a connection to your shop: the MCP server switched on in the BEAR settings, and the shop's MCP key (or a personal key of a shop manager) added as a connector in an AI assistant that speaks MCP. Claude in the browser, in the desktop app and in Claude Code connects directly. The connection steps are in the MCP server documentation.
Why BEAR insists on a selection, a preview and a count
An assistant can misread a sentence. The way BEAR handles a bulk price change is designed so that a misreading shows up before it costs you anything:
- The filter is checked, not trusted. Every condition must be one the filter engine really applies. A misspelt field or a value in the wrong shape is refused with the reason. Dropping it silently would turn "the Outdoor products" into "all products", one write away from repricing the shop.
- A write never takes a filter. It takes a selection that was already run and counted. Products added to the shop afterwards are not pulled in. The selection stays valid for 24 hours.
- The preview uses the same arithmetic as the write, including the rules about sale prices, empty fields and variable products, so what you approve is what gets written.
- The count is a handshake. The write must quote the exact number of products you were told about. A different number is refused before a single price changes.
- Every value written is recorded in History together with the value it replaced, and marked as made through an AI agent, so it can be rolled back.
Price operations: percentage, fixed amount, exact price
Each field in a run gets one operation. For the regular and the sale price these are the ones BEAR performs (the examples start from a regular price of 50.00 and a sale price of 40.00):
| What you ask | What BEAR writes | Example |
|---|---|---|
| "Raise prices by 10%" | the price plus 10% of itself | 50.00 → 55.00 |
| "Lower prices by 10%" | the price minus 10% of itself | 50.00 → 45.00 |
| "Add 3 to the price" | the price plus a fixed amount | 50.00 → 53.00 |
| "Take 5 off the price" | the price minus a fixed amount | 50.00 → 45.00 |
| "Set the price to 49.90" | the same exact value on every product | 50.00 → 49.90 |
| "Sale price 25% below regular" | sale price = regular price minus 25% | sale 40.00 → 37.50 |
| "Sale price 15 below regular" | sale price = regular price minus 15 | sale 40.00 → 35.00 |
| "Regular price 30% above the sale price" | regular price = sale price plus 30% | regular 50.00 → 52.00 |
| "Regular price = sale price plus 15" | regular price = sale price plus 15 | regular 50.00 → 55.00 |
| "Remove the sale price" | sale price 0, which BEAR treats as removal | sale 40.00 → empty |
The two "below regular" operations always start from the regular price, whatever sale price the product has now, so running the same discount twice never compounds. Several fields can change in one run and are applied in the order given: "raise the regular and the sale price by 10%" moves both, and the new sale price is checked against the new regular price, not the old one.
Rounding and price endings like .99
Every result is stored with the number of decimals set in WooCommerce → Settings → General, and the preview already shows it rounded that way: 39.95 plus 8% is 43.146, stored as 43.15. What the assistant cannot do is round to a price ending. No operation turns 43.15 into 42.99 or 43.00. Two ways around it:
- For products that share a price point, set an exact price: "every product priced exactly 25.00 should cost 24.99" is a filter on that price plus an exact value.
- For endings across many different prices, run the change in BEAR's Bulk Edit tab, whose number operations have a rounding option (to 00, 5, 10, or endings from 9 to 99), described in price rounding. If what you need is a multiplication such as "price × 2", the percentage equivalent works the same way through the assistant: +100%.
Empty prices are left alone
A percentage or an amount calculated from an empty price comes out as zero, and zero is a price a customer can check out at. So BEAR skips every product whose starting price is empty: the regular price for percentage and amount changes and for "sale price below regular", the sale price for "regular price above the sale price". The preview's count of products that will really be written already leaves them out, and the result lists their IDs. To give such products a price, ask for an exact value instead.
Choosing the products: categories, tags, attributes, price ranges
The filter behind a selection is BEAR's full product filter, so the assistant can combine conditions you would otherwise click together one by one:
- Categories, tags, brands, attributes and custom taxonomies, with any of the terms, all of them, none of them, or "has any" and "has none". A category does not include its subcategories by default: say "Outdoor and its subcategories" and the assistant adds the child categories to the filter.
- Price ranges. "Under 20" or "from 10 to 20": the lower end is included and the upper end is not, so 10 to 20 finds 10.00 up to 19.99. Sale price ranges work the same way, which is how you find the products that are on sale.
- Stock status (in stock, out of stock, on backorder) and stock quantity ranges.
- Product type (one or several), status (published, draft, private), SKU, words in the title or the description, the date a product was created, products with or without an image.
Two habits pay off. Ask to see the products before the price change: "show me the products you would change" returns a table with the exact count. Then read the count with your shop in mind. If "Outdoor" returns 2,140 products in a 300-product shop, something is wrong with the filter, not with the shop. For more than 50 rows, narrow the filter rather than asking for a longer table.
One effect of price ranges on variable products: a variable product matches when at least one of its variations is in the range, and "variations included" then adds all of its variations, including the ones outside the range. Check the preview, and if only some variations should change, ask the assistant to select those variations by ID.
Regular price, sale price and variable products
Raising the regular price does not touch the sale price. Customers buying a product on sale see no change, because they pay the sale price. If the sale prices should rise as well, say so: "raise the regular and the sale price by 6%" is one run with two operations.
Lowering the regular price can delete a sale price. WooCommerce removes a sale price as soon as it is equal to or higher than the regular price. When you set an exact new regular price, the preview lists the products that will lose their sale price this way. For a percentage or amount cut it does not, so ask first: "which of these products have a sale price that would end up at or above the new regular price?" This matters for undo too: History records the prices BEAR wrote, and a sale price that WooCommerce deleted on its own is not among them, so a rollback restores the regular price but not that sale price.
Variable products carry no price of their own. The prices a customer pays live on the variations, and BEAR never writes a price on a variable parent. That is why "variations included" belongs in almost every price prompt. You can narrow it by attribute: "only the red variations" keeps the variations whose colour is red, plus those set to any colour, and leaves the rest of each product alone. If every product in a selection is a variable parent and no variations are included, BEAR refuses the write instead of reporting a run that changed nothing.
The preview: warnings and refusals
The warnings that come with the preview are worked out for the operation and the products you selected. The assistant is told to read them out to you before you decide:
- For a percentage change, how many products have an empty price and will be skipped rather than set to 0.
- How many selected products are variable, with the reminder that their variations hold the price.
- Which products will lose their sale price because the new exact regular price reaches it.
- That a percentage cannot be undone with the opposite percentage (see the next section).
- That a sale price written without dates takes effect immediately and does not end on its own.
- On the free version: that the selection is larger than what can be written right now, and how long the wait is.
Two rules are applied without a warning, and the preview shows their result in the new value. A sale price that would reach or exceed the regular price is not written; that product keeps the sale price it had. A sale price that would come out at zero or below is removed.
Some requests are refused outright, with the reason: a count that does not match the selection, a field key that does not exist, an operation a field does not accept, a field the free version does not edit through the assistant, and a run in which nothing would be written at all, for example when every selected product has an empty price. The product ID and the author are never written through this connection.
Undo: History and rollback
Each run gets a key and appears in BEAR's History tab next to the edits made by hand, with the name of the user and the mark that it was made through an AI agent. To undo it, tell the assistant: "undo the price increase you just made". It asks to use woobe_rollback_bulk, which writes back the previous value of every field the run changed, product by product, in portions for a large run. The same run can be rolled back with one click in the History tab.
Undo with the rollback, never with the opposite percentage. A second percentage is calculated from the new price: 999.00 raised by 20% is 1198.80, and 1198.80 lowered by 20% is 959.04, not 999.00. The rollback restores the exact figures that were recorded before the run.
What to know about the rollback:
- It writes back the prices from before the run, so a price you changed by hand on one of those products after the run is overwritten as well.
- It never counts against the allowance of the free version, so there is always room to undo.
- The free version keeps only the last two bulk operations of each author. After two more runs, the first can no longer be rolled back.
- A shop manager working through a personal key sees and rolls back only his own operations; the administrator sees all of them.
Multi-currency shops
The assistant changes the regular and sale prices stored in your base currency. With FOX converting prices by exchange rate, the prices in every other currency follow automatically, and the shop overview the assistant reads lists the currencies and rates FOX runs. Fixed prices per currency are separate fields, and an operation on the regular price does not change them. How to bulk edit those in the BEAR editor is explained in bulk editing prices per currency.
Free version limits and long runs
The free version of BEAR lets the assistant bulk edit the regular and the sale price, and limits the volume: up to 100 products every 30 minutes. The allowance refills continuously, one product every 18 seconds, and it belongs to the shop, so the shop key and every personal key draw from the same 100. The details are in limits of the free version.
A larger job is not refused. It runs in portions: after each one you see how many products are written, how many are left and when the next portion can go, and you say "continue". The selection stays valid for 24 hours, which at that pace covers about 4,800 products; for more, the assistant tells you before starting that the job cannot be finished in time. Sale dates are not among the fields the free version edits through the assistant, so a sale with an end date is a different case, covered in scheduling a sale with AI.
The paid version has no allowance. A big selection is still written in portions of about 20 seconds each, so that no single request runs into a server timeout, and the assistant continues on its own until the run is finished.
Ready prompts for bulk price changes
- "Raise all regular prices in the Accessories category by 5%, variations included. Show me the preview first."
- "Raise the regular and the sale price of the Nordline brand by 7%, variations included."
- "Take 10 off every product tagged Clearance, but first tell me which of them are on sale."
- "Set the sale price 20% below the regular price for the Summer tag, variations included."
- "Every product priced exactly 19.00 should cost 18.99."
- "Show me the in-stock products between 100 and 200, then raise them by 3%."
- "Add 4 to the price of the red variations of all hoodies."
- "Remove the sale price from everything in the Outlet category, variations included."
- "Make the current sale price the new regular price for the Spring tag." (WooCommerce then removes the sale price, because it equals the regular price; a rollback brings back the regular prices, not those sale prices.)
- "Undo the last price change."
Questions
Can I change WooCommerce prices with ChatGPT?
BEAR's MCP server works with any assistant that can send the shop's key as a header. ChatGPT's custom connectors currently expect a sign-in flow instead, so a direct connection may not be available in your version yet. Claude connects directly in the browser, in the desktop app and in Claude Code, and coding assistants such as Cursor, Windsurf and Zed connect too.
Will customers see the new prices immediately?
Yes, as far as WooCommerce is concerned: after a run BEAR clears WooCommerce's cached data for every product it wrote and for the parents of the variations, so price ranges of variable products update too. A page cache plugin or a CDN can still serve the old pages until it is purged.
Can a shop manager change prices through his own assistant?
Yes, with a personal key: the administrator adds him to the MCP access for users list in BEAR. His assistant then works with his permissions, never more, the administrator can close parts of the shop to him, and History shows his runs under his name. He can roll back only his own runs.
Checklist before you confirm
- The count matches what you expect from your shop, and the selection is not the whole catalogue unless you meant it.
- Variations are included whenever variable products are involved.
- The preview shows the old and new prices you intended, rounded the way your shop stores them.
- For a price cut: you know which products are on sale and whether they would lose their sale price.
- Every warning has been read and answered.
- You know the key of the run, and that the way back is the rollback, not the opposite percentage.
If a run did not do what you expected, describe the prompt and the preview on the BEAR support forum.