Skip to main content

How the stock each channel sees is calculated

When you sell the same products on several channels, every channel draws on the same physical stock. SKU.io works out one quantity for each listing, from your warehouses, and sends it to the channel. A sale on any channel, or a wholesale order you enter yourself, lowers the quantity every other channel is sent. This page explains how that number is built.

One pool, one calculation​

SKU.io calculates a listing's quantity only when it owns the stock. That's the listing's Master of Stock setting:

  • SKU.io owns it. SKU.io sends its quantity on every inventory sync and overwrites what the channel shows.
  • The channel owns it. SKU.io leaves the channel's quantity alone.
  • Neither owns it. You manage the quantity on each side yourself.

If a channel's quantity keeps changing back after you edit it on the channel, the listing's Master of Stock is SKU.io. Edit the stock in SKU.io instead, or change Master of Stock. See Set the stock each channel sees.

Step 1: Start from what's free to sell​

For a standard product, SKU.io starts from its Available to Sell quantity in the channel's Stock Warehouses:

Available to Sell = Available − open backorders

  • Available is the stock that's on the shelf and not claimed: on-hand stock minus what's Allocated to open orders, On Hold, or Non-Sellable.
  • Open backorders are order lines still waiting for stock, in the Planned or Awaiting Receipt state. Taking them off means a channel doesn't sell units that a customer who ordered earlier is already waiting for.

Only the warehouses ticked under Stock Warehouses count. Stock in any other warehouse isn't sent to that channel. For more on each stock number, see Stock states.

A few kinds of stock are handled on their own:

StockHow it counts
An Amazon FBA warehouse ticked as a stock warehouseAdds the units Amazon reports as available in that country.
A supplier's Drop-ship warehouse ticked as a stock warehouseAdds the stock your supplier has for you.
A contract manufacturer's warehouseNever counts, even when ticked. That stock is yours but isn't ready to sell.
A product's substitutesAdds the substitutes' stock when Publish alias availability is on. See Substitute products on sales orders.

SKU.io doesn't send a quantity to listings that Amazon fulfills (FBA offers). Amazon keeps the count for those.

Step 2: Bundles are counted from their components​

A bundle never holds stock of its own, so SKU.io works out how many you could put together:

  1. At each stock warehouse, it divides each component's Available to Sell quantity by how many of that component one bundle needs.
  2. It takes the smallest result. That component is the one that limits the bundle at that warehouse.
  3. A warehouse that has no stock of one of the components makes no bundles.
  4. It adds the warehouses together and sends the whole number.

So when one component runs out, the bundle's quantity drops to zero on every channel that sells it, even while the other components are still in stock. If a bundle contains a kit, SKU.io counts the kit's own components. Amazon FBA stock doesn't count toward a bundle.

A kit is different. It holds its own stock, so a kit listing is sent the kit's own Available to Sell quantity: the kits already built, not the kits you could assemble. See Kits vs bundles.

Step 3: Apply the channel's inventory rules​

SKU.io then applies the inventory rules on the channel's Inventory Sync settings, in this order:

  1. Max Rule Type caps the quantity, as a Fixed Allocation or a % of Available.
  2. Min Rule Type sets a floor.
  3. Subtract Buffer Stock holds back a number of units.

A channel with several locations, such as Shopify, can have different warehouses and rules for each location under Location-Specific Settings. A single listing can also have its own rules instead of the connection's.

On Walmart with Automatic lag time turned on, stock in a warehouse slower than the lag time Walmart has approved isn't sent. See Set up Walmart lag time.

The result goes out with the channel's next inventory sync. Channel Inventory shows it as SKU Qty beside the channel's own Channel Qty, so you can spot a listing that's out of step. See Check and fix channel stock mismatches.

Keeping stock for wholesale orders​

A wholesale or B2B order uses the same pool. Once you approve it, its lines are Allocated, and those units leave Available straight away. Every channel is sent the lower quantity on its next sync, so your online channels can't sell stock you've promised to a wholesale customer.

To hold stock for a wholesale order that shouldn't ship yet, reserve it. A Reserved order keeps its allocated stock but doesn't go out for fulfillment. See Approve, reserve, and allocate stock.

To keep a whole block of stock away from your online channels, keep it in its own warehouse and leave that warehouse out of each channel's Stock Warehouses.

Worked example​

You sell a gift set on Shopify and eBay. It's a bundle of one mug and two coasters. Your main warehouse holds:

ProductAvailableOpen backordersAvailable to Sell
Mug40040
Coaster50446
  • Mugs allow 40 sets (40 ÷ 1). Coasters allow 23 sets (46 ÷ 2). The set's quantity is 23.
  • Shopify has a buffer of 3, so Shopify is sent 20.
  • eBay has a Max Rule Type of Fixed Allocation, 10, so eBay is sent 10.

A wholesale customer then orders 20 coasters, and you approve the order. Coasters drop to 26 available to sell, which allows 13 sets. On the next sync Shopify is sent 10 and eBay is sent 10.

Next steps​

Last verified: