Home › Blog › You sell on Shopify only and you still oversold
You sell on Shopify only and you still oversold
Two orders came in for the last one. You have one sales channel, so every result you can find tells you to install a syncing app for channels you do not have. The cause is somewhere else.

On this page
You wake up to two orders for a variant that had one unit left.
Nobody typed the wrong number. No app went down. You do not sell on Amazon, you do not sell on eBay, you have one sales channel and it still let two people buy the same item.
Then you go looking for an answer and every result tells you to install an inventory syncing app so your channels stay in step. You have one channel. The advice is not wrong. It is just written for somebody else.
Here is what actually happens on a store with one channel, how to tell which of the five causes hit you and what to do about the order sitting in your admin right now.
Why the usual advice does not fit
Search for overselling and you get a wall of pages about keeping Shopify, Amazon and a marketplace in step in real time. That is a genuine problem for merchants who sell in three places. It is also the only version of overselling most of the internet bothers to describe.
The single channel version is quieter and far more common than it looks. It does not need two systems disagreeing. It only needs one system doing exactly what it was designed to do at a moment you were not thinking about.
None of the five causes below involves a second sales channel. Four of them cost nothing to fix.
The five ways one channel oversells
1. A cart does not hold stock.
This is the one that surprises people. Adding something to a cart reserves nothing at all. Shopify only takes the unit off your available quantity when the order is actually placed and paid for.
So two customers can both have the last unit sitting in their cart, both see it as in stock, both reach checkout and both pay. Neither of them did anything wrong and neither saw a warning. Shopify decrements twice from a quantity of one and you are at minus one.
This is deliberate. If carts held stock, anybody could park your inventory for an afternoon just by browsing. On an ordinary Tuesday the window is small enough to ignore. During a launch, a restock post or a sale email, that window is exactly where all of your traffic is.

2. Continue selling when out of stock is on and nobody remembers turning it on.
Every variant has a checkbox called continue selling when out of stock. When it is ticked, Shopify accepts the order at zero and goes negative on purpose. It exists for preorders and made to order goods, where that is the correct behaviour.
The trouble is how often it ends up ticked on things that are not preorders:
- Duplicating a product copies the setting along with everything else
- A CSV import sets it per variant through the inventory policy column, so one export, one edit in a spreadsheet and one import can flip a whole catalogue
- Somebody switched it on for a real preorder eight months ago, the product went back to ordinary stock and nobody switched it off
It is set per variant rather than per product, which is exactly why it hides. A product with nine sizes can have it off on eight of them and you would never notice from the product list.
3. Tracking is off entirely.
Continue selling can only be ticked when quantity tracking is on. If tracking is off, there is no quantity at all and the variant sells without limit forever. Nothing on the product page tells a customer that.
This is correct for a service or a digital download. On a physical item that was set up in a hurry and never revisited, it is a leak that never closes on its own.
4. The quantity was already wrong.
You did not oversell against your shelf. You sold exactly what Shopify said you had. Shopify was two units optimistic before the day started.
In stores that take returns or sell in person, this is the most common of the five by a distance. It is also the only one that is invisible in the order itself: the sale looks normal, the decrement looks normal and nothing ever goes negative. You find out at the packing bench. Where those units go is the whole subject of when the count does not match the shelf.
5. A second location, not a second channel.
This one catches merchants who are certain they have one channel, because they do. What they also have is a shop and a stockroom, or a warehouse and a unit at home.
Shopify picks a location to fulfil an order from. Stock in one location is not stock in another. A till can also take a sale at a location that is already at zero. The result is a store that looks correct in total while one specific building is negative, which is the version that gets picked and shipped. If you hold stock in more than one place, what matters is alerts per location rather than alerts per product.
Which one was it
You can usually name the cause in about five minutes, from the order itself.
| What you are looking at | Almost certainly | Where to check |
|---|---|---|
| The variant is showing a negative quantity | Continue selling was on, or a till took the sale | The variant's inventory settings, then the order's location |
| Quantity says zero but the shelf emptied earlier | The count was already wrong | Count that variant against on hand |
| Two orders a few minutes apart on something you promoted | The cart race | The two order timestamps |
| The variant has no quantity field at all | Tracking is off | The variant's inventory tab |
| The total looks fine but one location is negative | Location routing or the POS | The order's fulfilment location |
Two orders inside the same few minutes is the fingerprint of the cart race and of nothing else. If the timestamps are hours apart, stop looking at the race and start looking at the number.
The order is already placed
Before you fix anything, there is a customer who has paid for something you do not have. Cancelling and refunding is the reflex. It is usually the worst option on the list.
Work down these in order and stop at the first one that is true.
- Can you ship it this week anyway? If your restock lands inside the delivery window the customer already expects, there is nothing dramatic to announce. Email them a named date. Most people are completely fine with a date. Almost nobody is fine with silence followed by a refund.
- Is there a variant that is genuinely equivalent? The same thing in another colour at the same price, offered as a choice rather than as a swap. Ask first. Substituting quietly is how a small problem becomes a review.
- Is the wait longer than about two weeks? Then put the decision in front of them: wait for a named date or take a refund today. Handing over the choice is what protects the relationship. The outcome matters much less than who got to pick it.
- Only then, cancel and refund. Do it the same day. A refund on day one reads as a mistake handled well. A refund on day five, after two emails asking where the parcel is, reads as a shop that does not know what it has.
Whatever you choose, be careful with the restock box. Cancelling with it ticked puts a unit back that never existed, which quietly turns one oversold order into a second one next week.
Decide once who gets the unit when two people paid for it. The usual answer is whoever ordered first. What matters is that it is decided once rather than improvised differently by whoever opens the admin.
What actually prevents it
Not the toggle. Turning off continue selling closes cause two and does nothing whatsoever about the other four. It is worth doing. It is not a fix.
What works is making your last few units a buffer rather than a promise.
Hold a buffer on anything you promote. If you sell your last unit at exactly zero, every one of the five causes lands on a real customer. If your working floor is two or three, the cart race happens against units you were holding back anyway, the drift eats a unit you had spare and nobody gets an email about a parcel that is not coming. That is the entire job of safety stock and it is the only item on this page that covers all five causes at once.
Watch the number before it reaches that floor. A low stock threshold is what turns a buffer into something you can act on. The value of an alert is not that it tells you the shelf is empty. It is that it reaches you while there is still something on it, because that is the only moment when every option above is still cheap.
Keep the count honest on the fast movers. No buffer survives a quantity that is wrong. Ten minutes a month spent counting the twenty variants that actually move is worth more than any setting you could change.
Audit continue selling properly. Export your products to CSV and sort by the inventory policy column instead of opening variants one at a time. Anything reading continue that is not a preorder wants changing.
Give a launch its own rules. For a drop or a flash sale the ordinary buffer is not enough, because all of the traffic arrives inside the same ten minutes. Hold back a slightly larger reserve, or cap the units a single order can take, which on most stores means a small app or a theme change.
If you only do one thing this week
Open your five best selling variants and check two things on each: that tracking is on and that continue selling is off.
That takes about four minutes and it clears the version of this problem that costs nothing to fix. Then look at where those five are sitting. If any of them can reach zero without an alert reaching you first, that variant is your next oversold order. It will not be the toggle's fault.
Know before a SKU hits zero
Stockwell watches every variant at every location and emails your team when stock falls under the level you set. Install it from the Shopify App Store and the first alert is running in a couple of minutes.
Get it on the Shopify App StoreFree plan covers 50 SKUs with a daily summary. Paid plans add instant alerts and more recipients. No card needed to start.