You launch a limited drop with 50 units. Within minutes, 70 people have the product in their cart, and 20 of them reach checkout only to read “Sorry, not enough stock”. Some of them already typed their card details. This is overselling, and in WooCommerce it is a common side effect of how stock works. This guide explains why it happens and how a cart reservation timer fixes it.
Why WooCommerce oversells during busy sales
In WooCommerce, adding a product to the cart does not reserve it. The stock number stays the same until an order is placed. So when many shoppers want the last few units, all of them can add the product to their cart, but only the first ones to finish checkout get it.
WooCommerce does have a “Hold stock” setting under Settings, Products, Inventory. It reserves stock for unpaid orders while the customer pays, which protects the last step of checkout. It does nothing for the minutes a shopper spends between adding to cart and placing the order, and that is exactly when the race happens.
What overselling costs you
- Angry shoppers who were told the item was available, then lost it at checkout.
- Refunds and apologies when stock goes negative or orders slip through for items you no longer have.
- Support load right when you are busiest.
- Lost trust for the next drop. Shoppers remember a launch that felt unfair.
How a cart reservation timer works
A reservation timer holds the stock for a shopper the moment they add a product to the cart, for a few minutes. Other shoppers see the stock minus what is held. A countdown tells the shopper how long the item is theirs. When the time is up, the hold ends and the units are free for someone else.
Done well, it feels fair to everyone: whoever added the item first keeps it while they check out, and nobody can sit on stock forever.
What to look for in a good timer
A real hold, not just a countdown
Many “cart timers” only show a clock to create urgency. They do not reserve anything, so the overselling problem stays. Make sure the stock is actually held and other shoppers see the reduced number.
Safe when two shoppers click at the same second
During a drop, two people really do grab the last unit at the same moment. The hold has to be written in a way that locks the stock while it is checked, otherwise both shoppers can end up holding the same unit.
A clean hand off at checkout
When the order is placed, the cart hold should end and WooCommerce’s own “Hold stock” reservation should take over, so there is no gap and nothing is counted twice.
Your real stock left alone
Holds should live separately from your product data. If the timer edits your stock number directly, a crash or a cleanup bug can leave your inventory wrong.
Works with the cart and checkout you use
Check that the countdown appears in the classic cart and checkout and in the Cart and Checkout blocks, plus the mini cart.
How long should the timer be?
- 5 to 10 minutes for limited drops and flash sales, where every unit counts.
- 15 to 20 minutes for normal shopping, so shoppers can compare and pay without stress.
- Longer for B2B or large orders, where checkout takes more time.
You do not need to hold every product. Holding only products with low stock, or only the drop items, keeps the rest of the store relaxed.
Tips for a smooth limited drop
- Tell shoppers how it works. A line like “Items are reserved for 10 minutes once added to your cart” sets expectations.
- Be honest about stock. “2 in other carts right now” is better than a fake “sold out” while units are only held.
- Limit units per shopper so one buyer cannot hold the whole drop.
- Give a way back. A waitlist or a reminder when held stock returns turns a missed chance into a later sale.
- Test before launch with two browsers adding the same last unit.
Set it up with Cart Stock Reservation Timer
Cart Stock Reservation Timer for WooCommerce holds real stock from the moment a product is added to the cart. The free version includes:
- A real stock hold for the minutes you choose, written safely so two shoppers cannot both get the last unit.
- Automatic release when time is up, with a background clean up even when the shopper has left.
- A countdown in the cart, checkout and mini cart, for both the classic pages and the blocks.
- A clean hand off to WooCommerce’s “Hold stock” at checkout.
- Holds for all stock products, only low stock products, or only products you tick, with variations supported.
- An optional “in other carts” message, your own texts and colours, an active holds screen and 30 day counters.
The Pro add-on adds timer rules per product, category and role, a sale period, an extend button in the last minute, hold limits per shopper, a waitlist, a queue mode for drops, reminder and recovery emails with a win back coupon, more timer designs and reports.
Frequently asked questions
Does a reservation timer change my stock numbers?
It should not. Your stored stock stays the same. Shoppers see the stock minus what is held, and held units go back automatically when a hold ends.
What happens when the timer runs out?
By default the held items leave the cart and the shopper sees a short message with a link back to the shop. You can also keep the items in the cart without holding the stock.
Does it work with page caching?
Yes. WooCommerce compatible caching plugins do not cache the cart and checkout, and the countdown reads its time from the cart.



