Why Your Website Says In Stock and the Shop Says Sold Out
This is the single most common complaint we hear from retail clients, and it's almost never a bug. It's an architecture problem: the shop runs one system, the website runs another, and somebody updates stock by hand once a day.
One stock table, many places to sell
The fix is structural: stock lives in one place, and every sales channel — counter, website, dealer order — reduces the same number. A sale at the counter should make the website quantity drop within seconds, without anyone touching a spreadsheet.
Reserve stock at checkout, not at payment
If you only reduce stock after payment confirms, two customers can buy the last item in the same minute. Hold the item when checkout starts, release it if payment fails or times out. This is a small detail that prevents a lot of apology phone calls.
Branches need their own numbers
- Stock per branch, plus a total the website can sell from
- Branch-to-branch transfer recorded, not just moved
- Damaged and returned goods kept out of sellable stock
- A physical count feature to correct drift periodically
Accept that drift happens
Even a good system drifts from reality through breakage, theft and miscounts. What matters is that you can run a physical count, see the difference, and correct it with a record of who adjusted what. A system that hides the gap is worse than one that shows it.
Free tools for this
Need help with your project?
Tell me what you're building and get a free, no-obligation quote.
Hire Me