Skip to content
3 September 2026 · 5 min read

One shelf, two channels, and the sale you cannot honour

You have one dress left in size M. It is on a rail in your shop and it is on your website, and only one of those can end in a sale. Every seller who adds a second channel meets this, usually for the first time in front of a customer who has already paid. The fix is not faster syncing between two stock numbers. It is one number both doors read before either commits.

One stock ledger read by both the counter and the online store, so the cashier ringing the last unit in size M blocks the online checkout in the same second.

You have one sand midi dress left in size M. It is on a rail in your shop and it is on your website. Both of those are true, and only one of them can end in a sale.

Every seller who adds a second channel meets this, usually for the first time in front of a customer who has already paid.

The problem: two numbers for one shelf

The shop till keeps its own stock count. The website keeps its own stock count. Somebody updates one from the other, nightly if they are disciplined, weekly if they are busy, which is most people.

How an oversell happens: an online order at 14:02, the counter selling the same unit at 14:07, both systems reporting sold by 14:11, and a refund call the next day.

Nine minutes. Nobody did anything wrong. The counter staff did not know about the website order, and the website did not know about the counter. The system was working exactly as built.

The damage is not the lost sale. It is the refund call, and the review that follows, which costs considerably more than the dress.

The fix is not faster syncing

This is where most people go wrong. Syncing twice an hour instead of once a night narrows the window; it does not close it. Two numbers that are usually equal are still two numbers, and the gap is exactly where the oversell lives.

The only thing that actually works is one number that both doors read before either commits a sale.

One stock ledger read by both the counter and the online store: the cashier rings the last unit in size M and the online checkout is blocked in the same second.

The cashier rings the last one. The online checkout is blocked the same second, not at the next sync. That is what "live stock" has to mean to be worth anything, and it is how Modventrix connects the counter, the WhatsApp order page and the online store: they are three doors into one ledger, not three systems that agree most of the time.

The same problem across branches

Two shops each keeping their own count is the same bug wearing different clothes, and it costs you in the opposite direction: not an oversell, a refused sale.

Stock across three locations: Gulberg has zero and refused a customer, DHA has forty units sitting, and the warehouse holds twelve in reserve.

Forty units were forty minutes away and the sale still walked out, because the person at the counter had no way to see them. With one stock map, that is a transfer raised from the same screen that showed the gap, and the ledger records source and destination so both branches stay honest afterwards.

Tips and tricks

Decide which channel is allowed to oversell, deliberately. Sometimes the answer is the website, because a two day delay is acceptable online and impossible at a counter. Making that choice on purpose beats discovering it.

Hold stock at the point of order, not the point of payment. The gap between "added to cart" and "paid" is where the double sale happens on busy days.

Keep one product identity across channels. If the shop calls it "Sand Midi M" and the website calls it "sand-midi-medium", no system can reconcile them and no person will remember to.

Count fast movers twice a week if you sell in more than one place. The drift that matters is concentrated in the lines that move.

Test it on your worst day, not your quietest. Whether the number holds under a Sunday rush is the only test that means anything.

What comes next

All of this assumes the counter is recording sales accurately in the first place, which stops being obvious the moment the internet drops: the till that keeps working when the line goes down.

And the stock number is only as good as what went onto the shelf: what to do when a delivery does not match the order.

Questions

Asked and answered

Both channels have to read one stock number before either commits a sale, rather than keeping separate counts that are reconciled on a schedule. Two numbers that are usually equal are still two numbers, and the gap between them is exactly where the oversell lives.

No. Syncing twice an hour instead of once a night narrows the window, it does not close it. Any interval leaves a period where the counter and the website disagree, and that period is when the double sale happens. Only a single shared number removes it.

At the point of order. The gap between adding to a cart and completing payment is exactly where the double sale occurs on a busy day, so holding stock at order and releasing it if payment fails is the safer default.

Because each branch keeps its own count and the person at the counter cannot see the others. The cost is a refused sale rather than an oversell, which is quieter and just as expensive. One stock map across locations turns it into a transfer raised from the same screen that showed the gap.

Using different product identities. If the shop calls it Sand Midi M and the website calls it sand-midi-medium, no system can reconcile them and no person will remember to. One product identity across every channel comes before any stock logic.

Count your fast movers twice a week rather than once. The drift that causes overselling is concentrated in the lines that actually move, so counting those more often is the cheapest insurance available.

Want to try it rather than read about it?

14 days free, every feature unlocked, no card required.

Or keep reading: more guides.