Marketplace stock sync: why overselling happens and how to stop it

List ten units from one warehouse on four channels and every channel says “10 available”. If two of them take six orders in the same minute you end up with twelve orders and ten units. That is not a bug, it is a design flaw: one stock pool, four independent promises.
Syncing more often is not the fix
The first reflex is to drop the sync interval from 15 minutes to one. That shrinks the problem without solving it, because overselling happens in the seconds between syncs — and marketplace rate limits stop this approach quickly. Frequent syncing is no substitute for the right architecture.
Reservation: the only correct mechanism
| Value | Meaning |
|---|---|
| Physical stock | What is actually in the warehouse |
| Reserved | Ordered but not yet shipped |
| Sellable | Physical − reserved − buffer |
The number pushed to channels must always be sellable. When an order lands, reserved goes up, sellable goes down and the new value is pushed everywhere. Cancellations and returns release the reservation. This logic must live in one central service; if each channel integration computes its own, consistency is impossible.
Per-channel buffers
Buffers are mandatory for fast-moving and single-unit items. Rather than a fixed buffer per product, compute it from sales velocity — that reduces both overselling and needlessly withheld stock. Narrowing the channel list for the last one or two units is another tactic that works.
Trust webhooks, but verify
Marketplaces announce orders through webhooks, which can be lost, delayed or delivered twice. Run two mechanisms together: webhooks for immediacy and periodic polling for safety. Deduplicate every order by its marketplace order number, or the same order is processed twice and stock drops twice.
Nightly reconciliation
Every night, automatically compare channel stock against central sellable stock, channel order counts against orders received, and items reserved but unshipped for 48 hours. Report every mismatch to operations. Integrations break quietly, not loudly; reconciliation is the only thing that breaks the silence.
When overselling happens anyway
Zero defects is not a realistic target; being prepared is. Write down in advance what the customer is told, how a cancellation affects each channel’s seller score, and how an alternative product is offered. Reacting fast and consistently matters more than the error itself.