Schedule a WooCommerce Sale with AI: Dates, Discount, Ending
To schedule a WooCommerce sale with AI, you tell an assistant such as Claude which products, how much off, and from which day to which day: "put the Winter Jackets category 25% off from November 27 to November 30". BEAR's MCP server works out the sale price of every product and variation, writes it together with the start and end dates once you have approved the preview and the count, and WooCommerce switches the prices on and off on those days by itself. Below: one full run, how the dates are stored, what happens to variable products, how to estimate what a sale will give away, the warnings BEAR raises, and how to end, shorten or undo a sale.
Schedule a WooCommerce sale with AI in one sentence
A Black Friday style sale on one category, start to finish:
Put everything in the Winter Jackets category 25% off from November 27 to November 30, variations included. Show me what each price becomes before you change anything.
- The assistant plans it with a ready-made case. BEAR ships one for exactly this request, Plan a sale with an end date. It finds the products of the category together with all the variations of the variable ones and freezes them as a selection with an exact count. Say 58: 10 simple jackets, 8 variable jackets and their 40 variations.
- It previews the sale. For up to 15 products you see the new sale price, 25% off the regular price (120.00 becomes 90.00), and the two dates, followed by the warnings that apply to this selection. Nothing has been written.
- It hands you the decision. The case returns the exact write it would make, with the count, and the assistant is told to read you the preview and the warnings and to wait for your answer.
- You confirm. The assistant asks to use
woobe_apply_bulkwith that count, and BEAR checks the number against the selection before writing anything. - BEAR writes three fields on each product: the sale price, Sale time from and Sale time to. The 8 variable parents are reported as skipped, because the price of a variable product lives on its variations; the 10 simple jackets and the 40 variations are now on the schedule. The run appears in BEAR's History under its own key.
From then on nobody has to remember anything. Until November 27 the shop shows the regular prices, during the 27th to the 30th the sale prices, and after the end of the 30th the regular prices again. The numbers above are illustrative.
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 shop manager's personal key) added as a connector in an assistant that speaks MCP, such as Claude in the browser, the desktop app or Claude Code. The steps are in the MCP server documentation. Writing sale dates needs the paid version of BEAR; what the free version can do is explained below.
How the sale price and the dates are written
Three fields belong together. A scheduled sale is a sale price plus a start date plus an end date. Dates on their own, on products without a sale price, save without an error and do nothing, because there is no sale price to switch to. A sale price on its own takes effect at once and never ends. That is why the assistant is told to ask you for the discount when you give it only dates, and why the preview warns when one half is missing.
Dates are whole days in the shop's time zone. The start is stored as 00:00:00 of the first day and the end as 23:59:59 of the last day, in the time zone set under Settings → General in WordPress. "Until the 30th" therefore includes the whole 30th. A time of day cannot be scheduled: the assistant may pass "9 am", but only the date is kept. Any common date format works, and the assistant turns words like "next Friday" into a date, so check the two dates in the preview before you confirm.
The discount is taken from the regular price, not from a sale price the product may already have. "25% off" means 25% off list, whatever state the product is in, so scheduling the same sale twice cannot compound into a deeper discount.
BEAR sets the active price at once. When it writes the dates, BEAR also sets the price the shop shows right now: the regular price when the sale starts later, the sale price when the start date is today or already past. A sale that starts today is live as soon as the run finishes.
WooCommerce does the switching. Current WooCommerce versions schedule a start and an end action for each product, visible under WooCommerce → Status → Scheduled Actions in the group woocommerce-sales; older versions use one daily background task. Both run on WP-Cron, which needs visits to the site, and a page cache can keep showing old prices until it is purged. When the sale ends, current WooCommerce puts the regular price back and leaves the old sale price and dates stored on the product, where customers no longer see them; older versions clear them. The mechanics, including time zone surprises, are covered in detail in scheduling sale prices in bulk.
That last point has a consequence for the next sale. A product that still carries old dates keeps them when a new sale price is written alone: with an end date in the past, the new sale price never shows. BEAR's warning about a sale price without dates does not look at dates already stored, so when you start a new sale on products that were on sale before, always give both dates.
Variable products
A variable product has no price of its own. Its variations carry the regular and sale prices customers pay, so a sale on a variable product is a sale on its variations. The ready-made case includes every variation of the matching variable products for that reason, and the parents themselves are skipped and reported as skipped, which is expected and not an error.
To put only some variations on sale, name the attribute: "discount only the red variations of the hoodies by 40% from the 15th to the 30th". The ready-made case always takes every variation of a matching product, so for part of the variations the assistant builds the selection itself and keeps only the variations whose colour is red, plus those set to any colour. Check in the preview that no other colours are listed. A variation without a regular price is skipped, because there is nothing to take 40% from.
What the promotion will cost: an estimate before you start
BEAR does not forecast a promotion, but two things it can read give a fair estimate before you commit:
- The discount per unit is in the preview: the regular price next to the new sale price of every product shown.
- Recent sales of the same products. The assistant can read, for the same selection, how many units sold and the revenue over a period you name. Units multiplied by the discount per unit is roughly what the sale gives away if you sell as many as before; a sale usually sells more, so treat it as a floor. These figures come from WooCommerce Analytics, which has to be enabled with its data imported.
Before we schedule it: how many units of these jackets sold in the last 30 days, and roughly how much would 25% off have given away on those units?
The ready-made question What the discounts cost answers a related but different question: it lists every coupon used in the last six months with how many orders used it and how much discount it gave. It covers coupon codes, not sale prices. After the sale, ask for the sales of the same products during the sale days and during the same number of days before, and compare; more on such questions in sales reports with AI.
Warnings and refusals specific to sales
The preview comes with warnings computed for your products and your operation, and the assistant is told to read them to you before you decide:
- A deeper discount already in place. If some products already have a sale price lower than the one you are planning, 25% off list would raise their sale price. BEAR names those products and the assistant asks whether they should keep the discount they have. This one catches people every season.
- Dates without a sale price. If the products have no sale price already, nothing will happen on those dates.
- A sale price without dates. It takes effect immediately and never ends on its own.
- Variable products in the selection. Their price lives on the variations; the parents stay unchanged.
- The free version's allowance, when the selection is larger than what can be written right now.
Products without a regular price have nothing to take a percentage from. The preview shows them unchanged, the write skips them, and the result lists their IDs and says the run was not complete for them.
A write is refused when the count you confirm does not match the selection. In the free version the sale dates are among the fields the assistant cannot write, in bulk or one product at a time, so the planning case stops with that explanation. A sale price without dates works in the free version: you start the sale now and end it later by asking for the sale price to be removed. The other limits are in limits of the free version.
Ending, shortening or undoing a sale
Undo the whole run
"Undo the sale you scheduled this morning" makes the assistant use woobe_rollback_bulk, which writes back the previous value of every field the run changed: the old sale price and the old dates, or nothing where there was nothing. It is the cleanest way back as long as nothing else was changed on those products since; a value edited by hand afterwards is overwritten by the rollback too. A rollback never counts against the free version's allowance, but the free version keeps only the last two bulk operations of each author, so an older run may no longer be revertible.
End a sale now or remove sale prices in bulk
Remove the sale price and clear the sale dates of everything in Winter Jackets, variations included.
The assistant sets the sale price to 0, which BEAR treats as removal (the preview shows the sale price as removed), and writes empty dates in the same run. The regular price is active again as soon as the run finishes. This also tidies up products whose sale ended long ago but still carry the old price and dates. In the free version the dates cannot be cleared through the assistant: with the sale price gone they have no effect, but a later sale price written alone would inherit them. The manual way in the BEAR editor is in removing sale prices in bulk.
Move the end date
"Move the end of the Winter Jackets sale to December 3" writes only Sale time to. The preview shows the warning about dates without a sale price; it is harmless here, because the products already carry one. To end a sale tonight instead of later, set the end date to today: the sale stops at the end of the day.
For permanent price changes rather than a dated sale, see bulk editing prices with AI.
Ready prompts for scheduled sales
- "Put the Winter Jackets category 25% off from November 27 to November 30, variations included. Preview first."
- "Black Friday: 30% off everything tagged black-friday from November 27 to December 1, variations included."
- "Plan a sale with an end date: 15% off the Nordline brand from the 1st to the 14th of next month."
- "Discount only the red variations of the hoodies by 40% from the 15th to the 30th."
- "Which products in the Outlet category already have a sale price, and what are their sale dates?"
- "How many units of these products sold in the last 30 days, and what would 20% off have cost on them?"
- "Move the end of the current sale on Winter Jackets to December 3."
- "Remove the sale price and clear the sale dates of everything in Winter Jackets, variations included."
- "Undo the sale you scheduled this morning."
- "What can you do with my shop?" (the assistant offers the ready-made questions that fit, the sale planner among them)
Questions
At what time does a scheduled sale start and end?
At 00:00:00 of the start date and 23:59:59 of the end date, in the time zone of your WordPress settings. If the site's time zone is wrong, the sale starts and ends on the wrong hour of your local day, not at a time the assistant chose.
Can I schedule a sale in the free version?
Not with dates through the assistant: the sale date fields are closed to it in the free version. You can set or remove sale prices, up to 100 products every 30 minutes, which covers starting a sale now and ending it later by request.
Why do my products still show a sale price after the sale ended?
Current WooCommerce versions only switch the active price back to the regular price when a sale ends; the sale price and dates stay stored on the product, and customers no longer see them. To clear them, use the removal prompt above.
Checklist before you confirm a scheduled sale
- The count is what you expect, and variations are included for variable products.
- The preview shows a sale price and both dates, and the dates are the days you meant.
- Products that already had a deeper discount were named, and you decided whether they keep it.
- Products that were on sale before get new dates, not just a new sale price.
- The WordPress time zone matches the shop's local time.
- You know the key of the run, so the whole sale can be rolled back if plans change.
If a sale did not start or end when you expected, describe the prompt and what the preview showed on the BEAR support forum.