Selling the same product on Shopify, Amazon, eBay and TikTok Shop is a good way to grow. It’s also the fastest way to end up with stock numbers nobody trusts. One channel says you have 40 left, another says 12, the warehouse says 31, and your reorder spreadsheet is a week out of date.
This guide explains a simple model that keeps multichannel stock planning straight: think in warehouses, not listings; decide what each connection is trusted for; and add up demand per warehouse without double counting.
Warehouses versus listings
The most useful mental shift is this:
- A listing is where a product is sold: a Shopify variant, an Amazon SKU, an eBay item, a TikTok Shop product.
- A warehouse is where the stock physically sits: your own unit, a 3PL, or Amazon FBA.
- A product is the thing you buy from your supplier, with one master SKU.
Many listings can draw on one warehouse. One product can have many listings. Plan stock at the level of product × warehouse, and treat listings as sources of demand.
Example
You sell a yoga mat:
| Listing | Channel | Ships from |
|---|---|---|
| MAT-BLU | Shopify | Your 3PL |
| YM-BLUE-01 | eBay | Your 3PL |
| B0XXXXXXX (ASIN) | Amazon FBA | Amazon |
| TTS-MAT-BLUE | TikTok Shop | Your 3PL |
| MAT-BLU-2PK | Amazon FBA | Amazon (uses 2 units) |
Two warehouses: 3PL and FBA UK. One product. Five listings.
Three switches for every connection
Each connected system can play up to three roles for a warehouse. Deciding these explicitly stops most of the confusion.
| Switch | Meaning | Typical examples |
|---|---|---|
| Sales | Orders from here count as demand for the warehouse | Shopify, eBay, TikTok Shop, WooCommerce |
| Stock | Stock levels for the warehouse are read from here | Your 3PL’s system, Linnworks, Mintsoft, Amazon for FBA |
| Purchase orders | POs and receipts are pushed to and read from here | Linnworks, your 3PL’s WMS |
Rule 1: one stock source per warehouse
Only one system should be the source of truth for how many units are in a warehouse. If Shopify, Linnworks and your 3PL all report a number for the same warehouse, which one wins?
Pick the system closest to the physical stock, usually the 3PL or warehouse management system, and turn Stock off for the others. Channels then receive stock levels from that source (via your inventory sync tool) rather than each keeping their own.
Rule 2: one sales source per channel
This is where double counting happens. If Linnworks already pulls your eBay orders, and you also connect eBay directly, every eBay sale gets counted twice. Demand looks double, and you order twice as much.
For each sales channel, pick one connection to report its orders and turn Sales off on the other.
Rule 3: de-duplicate on order ID
As a safety net, de-duplicate orders by the channel’s own order ID. If the same Amazon order arrives via two routes, it counts once.
OmniRestock enforces all three: a second stock source for a warehouse is blocked until the first is switched off, overlapping sales sources are flagged and one is switched off with an explanation, and orders are de-duplicated by channel order ID.
Link SKUs to products
Demand only adds up if every listing is linked to its product.
- Auto-link where the SKU code or barcode matches.
- Manually link the rest. Anything unlinked should sit in a queue, not be silently ignored.
- Set pack quantities. The Amazon 2-pack above uses two units of the yoga mat per sale.
- Bundles and kits should pass demand down to their component products.
Worked example: pack quantities
Over 30 days:
- MAT-BLU (Shopify): 150 sold
- YM-BLUE-01 (eBay): 60 sold
- TTS-MAT-BLUE (TikTok Shop): 90 sold
- ASIN (Amazon single): 240 sold
- MAT-BLU-2PK (Amazon 2-pack): 45 sold
3PL demand from direct channels: 150 + 60 + 90 = 300 units → 10/day FBA demand: 240 + (45 × 2) = 330 units → 11/day
If you forgot the pack quantity, FBA demand would look like 285 units, 45 short.
Map locations to warehouses
Some channels have locations of their own:
- Shopify has locations. Orders are attributed by fulfilment location (or the location assigned at checkout if not yet fulfilled). One Shopify store can therefore feed several warehouses.
- Amazon has marketplaces. FBA stock belongs in an FBA warehouse per region.
- Linnworks and Mintsoft have their own warehouses.
- eBay or a single WooCommerce store usually has no locations, so the whole connection maps to one warehouse.
When a new location appears, for example you open a second 3PL in Shopify, it should stay unmapped until you decide where it belongs. Otherwise its stock and sales end up in the wrong place.
Forecast demand per warehouse
With warehouses, switches and links in place, demand per warehouse is just the sum of linked, de-duplicated sales from connections with Sales on, after removing:
- Cancelled and refunded orders
- Wholesale orders, if you tag them (they reduce stock but usually shouldn’t drive the retail forecast)
- Out-of-stock days
- One-off spikes you don’t expect to repeat
Then, if the warehouse supplies FBA, add planned transfers into FBA as demand. Don’t add the FBA forecast itself on top. See FBA replenishment from your own warehouse.
Worked example: the 3PL’s real demand
Continuing the yoga mat:
- Direct channels: 10/day
- Planned FBA transfers: about 11/day on average
- Total 3PL demand: 21/day
- Supplier lead time: 40 days
- Safety stock: 90 units
Reorder point for the 3PL = 21 × 40 + 90 = 930 units
If you planned from Shopify alone (5/day) you’d get 5 × 40 + 90 = 290. You’d be ordering about a month too late.
Preventing overselling
Overselling happens when two channels both sell the last unit. Forecasting doesn’t fix that on its own. You also need:
- A fast stock sync from your single stock source to each channel. This is the job of your listing or order management tool (for example Linnworks) or each channel’s native integration with your 3PL.
- A small channel buffer, such as showing 2 fewer units on marketplaces than you actually hold, for fast sellers.
- Enough stock in the first place, which is where forecasting comes in. Most overselling happens when you’re running near zero. Order on time and you’re rarely there.
OmniRestock is a forecasting and replenishment tool rather than a listing sync tool. It reads stock from your chosen source and tells you what to order and when.
When FBA stays separate
FBA is always its own warehouse because only Amazon can ship from it. Two common setups:
- FBA only for Amazon, 3PL for everything else. Plan transfers from the 3PL into FBA.
- FBA also fulfils other channels (Multi-Channel Fulfilment). Then other channels’ orders shipped by MCF are demand on the FBA warehouse. Map them there.
Either works, as long as each order counts against the warehouse it actually ships from.
A setup checklist
- List every place stock physically sits → create a warehouse for each.
- Connect every sales channel and stock system.
- For each connection, set Sales / Stock / Purchase orders switches.
- Make sure each warehouse has exactly one stock source.
- Make sure each sales channel has exactly one sales source.
- Map channel locations to warehouses.
- Link listings to products, with pack quantities and bundles.
- Tag wholesale channels or customers.
- Import at least 12 months of history.
- Check stockout dates for your top 10 products against what you know.
Frequently asked questions
Do I need a separate warehouse for every 3PL?
Yes, if they hold separate stock. Each one needs its own stock source, demand and reorder plan.
What if two systems both report stock for one warehouse?
Pick the one closest to the physical stock and turn the other off for stock. Use the other for sales or POs if it’s useful.
Should wholesale orders count in the forecast?
Usually not by default, because large one-off wholesale orders distort retail demand. They should still reduce stock. Plan big wholesale orders separately.
How do I handle a product sold as a single and a multipack?
Link both listings to the same product with the right pack quantity. Each 2-pack sale then uses two units.
Can one Shopify store feed two warehouses?
Yes. Map each Shopify location to its warehouse, and orders are attributed by the location that fulfils them.
Next steps
- See how multi-warehouse planning works in OmniRestock.
- Browse our integrations.
- Get a free stockout report across your channels, with no card.