If you sell the same products on OnBuy, eBay and your own WooCommerce or Shopify store, you've probably had the email: an order for something you no longer have. You refund it, apologise, and on a marketplace you may also take a hit to your seller metrics. Do that a few times a month and it starts to cost real money and reputation.
Overselling is rarely one big mistake. It's usually a handful of small delays and blind spots that add up. The good news is that each one can be closed.
Where overselling actually comes from
- Slow stock updates. A sale on eBay takes a few minutes to reach your other channels. In that window the last unit is still showing as available everywhere else.
- Stock that isn't really free. Units already promised to an order that hasn't shipped yet are still counted as available, so a second customer can buy them.
- Stock in the wrong place. The system says you have three, but two are damaged, in quarantine, or sitting in a second building nobody picks from today.
- Counts that drifted. Mis-picks, unrecorded breakages and returns that never went back on the shelf slowly pull the numbers away from reality.
- Several tools, several truths. When orders live in one tool, stock in a spreadsheet and the warehouse in people's heads, nobody has the real number.
1. Reserve stock the moment an order arrives
The single biggest fix is to stop treating stock as available once an order exists. When an order comes in from any channel, the units should be reserved against it straight away, and every channel should immediately see the lower figure. Stock only leaves the books when the parcel actually ships, but it stops being sellable the moment someone buys it.
Reserving also makes cancellations safe: if the order is cancelled before it ships, the reservation is released and the units become sellable again, with nothing to correct by hand.
2. Push stock changes in seconds, not hours
Many setups still sync stock on a schedule, every 15 minutes or once an hour. For fast-moving lines that's too slow. Every change that affects what you can sell, whether a sale, a cancellation, a delivery booked in or a stock count, should trigger an update to every channel within about a minute.
3. Only advertise stock you can actually pick
Your published quantity should be the units you could genuinely pick and ship today:
- exclude damaged and quarantined stock;
- exclude units already reserved for orders;
- decide whether stock in a second warehouse, or in a shop on the high street, counts for online orders, and be consistent about it.
4. Use a buffer on the lines that hurt most
For products that sell fast across several channels, or where an oversell is expensive (large items, made-to-order parts), hold a small buffer back. Showing 2 fewer than you have on a marketplace costs you very little; cancelling a Β£400 order costs a lot more. Buffers work best set per channel, because marketplaces penalise cancellations more than your own site does.
5. Count little and often
Even with perfect syncing, the numbers drift if the shelf is wrong. Instead of one painful annual stock-take, count a few bins every week, starting with your fastest movers and anything that looks odd. Scanning every pick and every put-away also stops most of the drift at source, because the wrong item can't be confirmed.
A quick checklist
- Does an order reserve stock the moment it lands, on every channel?
- When the last unit sells on one channel, how long until the others show zero?
- Are damaged, quarantined and reserved units excluded from what you publish?
- Do your fastest lines have a buffer on marketplaces?
- When did you last count your top 20 SKUs?
If you answered βI'm not sureβ to more than one, that's where your oversells are coming from.
How Ops2Sell handles it
Ops2Sell keeps one stock figure for every channel and warehouse. Orders from eBay, OnBuy, B&Q Marketplace and WooCommerce reserve stock as they arrive, stock updates go to every connected channel within about a minute of any change, and the published figure only counts usable, unreserved stock, with optional buffers. It's the system we run our own multichannel business on. See the integrations or book a demo to see it on channels like yours.