Skip to content

Overselling: the channel sold a unit the warehouse cannot ship

Overselling is not a marketplace problem. It is a number problem: the quantity the channel was told and the quantity the floor can pick stopped being the same number, and nobody noticed until a customer did.

Verified in code 2026-09-04 · v2.0.0 to v2.19.0

What it looks like on the floor

The order prints. The picker walks to the bin and finds three units. The order is for five. The channel said seven were available, because the channel was told seven yesterday afternoon, and since then a wholesale order took four and a return came back damaged.

Nobody made a mistake. The number was simply old.

Why it happens

Most overselling has one of three roots. The quantity was pushed to the channel on a schedule, so it was true at the top of the hour and stale by ten past. The quantity was computed by a client screen, so it agreed with the warehouse until the day it did not. Or the quantity was an undifferentiated total that counted damaged stock, dock stock and allocated stock as sellable.

All three are the same mistake in different clothes: the channel’s number and the warehouse’s number are two numbers.

What DockingWare does

There is one number. Available to promise is computed on the server from the ledger, once, for every product: pick-face stock plus bulk stock, minus what earlier orders already own. Damaged, quarantined and not-yet-put-away stock are never in it.

That number is published to every connected channel after each movement that changes it, not on a timer. A pick, a return, a cycle-count adjustment, an allocation: each one writes a row and the row triggers the publish. A reconciliation pass also compares what the channel holds against what the warehouse says and names the difference.

When you want a margin, you set it per product. Hold back a fixed number of pieces, publish only a percentage, or both; the more conservative result is what the channel sees, and the held-back stock stays fully available to wholesale. If a product is a component in a kit, its reserve also shrinks what the kit can promise.

Allocation is piece-exact. Two orders cannot own the same unit. If demand exceeds what is left, the order is short by name and says so on its own page; nothing is silently rounded.

What it does not do

It does not stop a channel from accepting an order the channel itself decided to accept. Marketplaces sometimes sell through their own buffer. What DockingWare guarantees is that the number the channel was given was true at the moment it was given, and that when the order arrives, the shortage is visible immediately instead of at the bin.

What you can verify

Every rule above is enforced in code and covered by a test that fails first, then passes. The changelog names the version each one shipped in.

Questions

Is overselling the same as a stockout?
No. A stockout is having zero. Overselling is promising a unit you do not have while the system says you do. Stockouts cost a sale. Overselling costs a sale, a refund, a support ticket and a marketplace metric.
Can I keep a safety margin on the marketplace?
Yes. Each product can hold back a fixed number of pieces, publish only a percentage of what is available, or both. When both are set, the smaller result wins. The held-back stock stays fully available to wholesale orders.
What happens if two channels sell the last unit at the same second?
Both orders arrive. Allocation is piece-exact and runs on one ledger, so the first order to allocate owns the unit and the second one is short, by name, with the shortage visible on the order. The system never allocates a piece twice.
Does the published quantity include stock on the dock?
No. Received stock is not sellable until putaway completes. Damaged and quarantined stock are never sellable. The channel only sees pick-face and bulk stock minus what is already allocated.

Related

Read the WMS buyer's guide

Related terms

See how DockingWare handles this →

Ready to see it on your floor?

Early access. We onboard a small number of operations at a time.

Start Early Access