Vivid – Sale Quantity Limiter for WooCommerce
WooCommerce lets you set a sale price and, optionally, a schedule for when it starts and ends. But there’s no built-in way to say « I have 20 of this in stock, but I only want to discount the first 3 sold — after that, back to full price. »
Without a quantity cap, a sale price with no end date just keeps selling at that price indefinitely, or until someone remembers to remove it by hand.
This plugin adds that missing piece: a Sale Quantity Allocation field. Set it to 3, and the moment 3 units have sold — from a real WooCommerce order, a stock reduction from an external inventory sync, a POS system, or a manual edit — the sale price is cleared automatically. The product reverts to its regular price for real (the underlying sale price field is cleared), not just a display trick.
Features
- Quantity-limited sales — set a max number of units to sell at the discounted price, independent of total stock.
- Source-agnostic tracking — works whether stock drops from a checkout, a manual wp-admin edit, or any external system updating stock via the REST API.
- « Only N left at this price! » badge shown automatically on the product page and shop loop while the allocation is still active.
- Manual re-arming only — once a batch sells out, the sale stays off until you explicitly restart it. Restocking alone does not silently reactivate a sale.
- Works on simple and variable products.
How to run a limited sale
- Set a Sale price (and optionally a sale schedule) as you normally would in WooCommerce.
- Enter a number in Sale Quantity Allocation (e.g. 3).
- Tick « Start new limited-sale batch now ».
- Save/update the product.
From this point, the plugin watches the product’s stock quantity. Every unit sold (by any means) counts against the allocation. When the allocation reaches 0, the sale price and any sale schedule dates are cleared automatically.
To restart a batch later (e.g. after restocking), re-enter the allocation number, tick the checkbox again, and save. This is deliberate: the allocation field is pre-filled with its last value and would otherwise resubmit on any unrelated product save, so the checkbox is what makes « manual re-arm only » actually manual.
Source
Development happens on GitHub: https://github.com/Drickles1/wc-limited-sale-quantity