Multichannel Inventory Management: How to Prevent Overselling

You sell on Shopify and on Amazon, and both show 3 units in stock. Then two customers buy at the same moment, and you have sold 4 while 3 sit on the shelf.

That is an oversell. It costs you a cancellation, a disappointed customer, and on marketplaces your seller rating too. So multichannel inventory management is a revenue topic. Filing it under bookkeeping is a mistake.

We run three of our own brands, nano, mate and MUSTAX, across several channels. In this article I show you how our stock synchronisation is built and where its limits are.

Why overselling happens in the first place

The basic problem is simple: every channel keeps its own stock level. Shopify knows nothing about Amazon. Amazon knows nothing about your B2B portal.

Time passes between a sale on channel A and the stock correction on channel B. That gap is called latency. With a manual reconciliation the latency is hours to days. During that window channel B keeps selling happily, as if nothing had happened.

Three situations make it especially dangerous:

Principle 1: One source of truth

The most important decision here is an organisational one, and technology plays no part in it: exactly one system holds the real stock level. Every other channel is a display of that stock.

That can be your inventory system, your fulfilment provider, or one channel you declare the master. For us it is the fulfilment provider: the goods physically sit there, so their stock level is the truth. Shopify and every other channel get their numbers from there, never the other way round.

Without that rule you build sync logic in both directions, and two systems correcting each other will eventually produce endless loops or ghost stock. We got this wrong at the start and spent days hunting the bug.

The practical rule: stock corrections (stocktake, breakage, incoming goods) get recorded only in the master system. Never directly in a sales channel.

Principle 2: Webhooks instead of schedules

The second lever is speed. There are two ways to reconcile stock:

Every minute counts when it comes to overselling, so webhooks are the right route. With us it works like this: a Shopify order triggers a webhook, that lands in n8n, n8n reserves the quantity and updates the remaining channels. The whole path takes a few seconds.

What webhooks actually are and how to set them up is in Webhooks explained. And if you have never used n8n, Your first n8n workflow is the better place to start.

One detail from practice: webhooks are not guaranteed to arrive. A timeout, a server restart, and the message is gone. So you run two tracks: webhooks for speed, plus a polling reconciliation every few hours as a safety net. That reconciliation finds discrepancies and corrects them.

Principle 3: Safety buffers

Even with webhooks, a residual latency of seconds remains. A buffer helps against that: you report less stock to the channels than you really have.

Example: 10 units in the warehouse, buffer of 2, so every channel shows 8. If two customers buy the last displayed unit at the same moment, the buffer absorbs it.

How big the buffer should be depends on how fast you sell. A rule of thumb:

SituationBuffer
Slow-moving item1-2 units
Fast mover, several channels1-2 hours of sales
Peak periods (Black Friday, campaigns)raise the buffer clearly

The buffer costs you something: goods that could be sold are not offered. That is the price of safety. For items that are hard to reorder it almost always pays off. For goods you can reproduce in 3 days you can be bolder.

What this looks like for us

At nano, 50-150 orders come in on a normal day, plus the other brands. The stock flow:

The real test was Black Friday: roughly 10x normal volume, zero oversells. The system is not perfect. We had raised the buffers beforehand and set the alerts to trigger early.

The limits

So you go in with the right expectations:

Do you need an off-the-shelf tool for this?

The answer: it depends. There are multichannel tools and inventory systems that ship stock sync as a feature. For many shops they are the fastest route, especially when nobody on the team builds.

We still went with our own setup on n8n, for three reasons. First the cost: ready-made tools often bill per order or per channel, our server costs a fixed 15€ a month. Second the special cases: buffers per item, our own rules for campaigns, Slack alerts on our thresholds. That is exactly where standard tools regularly fall over. Third, we wanted to understand what happens. When a sync jams at night, we read the workflow and see the error. With a black box you wait for support.

The downside of building it yourself belongs here too: you maintain it. When a channel changes its API, that is your problem, and no vendor will take it off you. Without someone on the team who can do that, an off-the-shelf tool is the more sensible choice.

Where to start

If you are starting today, in this order:

1. Define the master. One system holds the stock, all others only display it.

2. Build webhook sync for sales. That closes the most dangerous gap.

3. Set buffers. Rough at first, then sharpen them with real numbers.

4. Set up a daily reconciliation plus alerts. So you see discrepancies before customers do.

This topic is part of a bigger picture: how to clean up your operations overall is in the overview Automating e-commerce processes.

Conclusion

Preventing overselling means: one source of truth, fast synchronisation via webhook, and a generous safety buffer. None of the three building blocks is rocket science. Together they make the difference between a stressful peak and a good day.

If you want to connect your channels and do not know where to start: write to us at Flowhouse. We build exactly these setups, for our own brands too, every day.