How-to - inventory
How to prevent overselling on Shopify
Short answer
How it works
Decide your buffer
Pick how many units to hold back per product. Even a floor of one or two units absorbs the timing gaps that cause overselling.
Set the floor in the app
Set a floor per variant, or a shop-wide default that applies to everything. There is no theme code to touch.
Checkout is blocked at the floor
A Shopify Function checks stock at checkout, so once available stock reaches your floor the purchase is stopped before the last units sell.
Get an alert to reorder
A low-stock alert tells you when a product nears its floor, so you can reorder before it stops selling for long.
What you get
- A safety-stock floor per variant, or a shop-wide default
- Server-side checkout blocking on every payment path
- Low-stock alerts so you can reorder in time
- A buyer-facing message you control when a product is held
- No theme code, and a free plan for your first 10 variants
Why Shopify oversells in the first place
Overselling usually happens in the gap between a sale and the inventory update. Two shoppers can check out the last unit at the same time, or a warehouse and a 3PL sync a few minutes apart, and Shopify lets both orders through. The result is an order you cannot ship and a refund conversation you did not want.
The common workaround, quietly under-counting your stock in Shopify, breaks the moment a fulfilment service syncs the real number back. A buffer is more reliable because it works from your true count.
Set a buffer instead of selling to zero
A safety-stock floor is the number you refuse to sell below. Instead of selling until Shopify shows zero, you stop at your floor, which leaves slack for simultaneous checkouts and sync lag. When you restock, selling resumes on its own.
For how to choose the number, see how to set a safety stock level on Shopify.