Inventory & Channel Sync

How do I reserve inventory for Amazon and wholesale without faking the Shopify count?

How to hold stock for Amazon and wholesale orders without distorting your Shopify availability.

Last updated September 16, 2026

Do not type Shopify down to "save" units. Publish a smaller available-to-sell. Leave the warehouse on-hand honest.

Available-to-sell, not on-hand

On-hand is the pile. Available-to-sell (ATS) is on-hand minus committed, minus quarantine, minus what you reserved for a channel. Published Shopify qty is ATS after a buffer. If you lower Shopify on-hand by hand to hold units for Amazon, the next inventory export writes the truth back and you oversell, or the next count looks like shrink.

240 units in one warehouse. Open Nordstrom PO for 80. Amazon restock plan for 40. FBA's own ledger also shows 15 Reserved at Amazon, which is not this pile. Honest warehouse on-hand stays 240. Hold 80 for wholesale so allocation cannot take them. Hold 40 for the Amazon outbound. DTC ATS is 120. Near sellout, a 10-unit fixed buffer is safer than a percent that shrinks: Shopify publishes 110. The 15 FBA Reserved never enter this math. If you instead type Shopify to 110 and leave the 80 as a display pool, tonight's wave can still allocate 80 DTC singles against the Nordstrom hold. The retailer was promised 80 the floor never reserved. That chargeback started as an inventory lie.

Fund wholesale and Amazon pools

Fund the channels that cannot miss: wholesale POs and Amazon restocks get a manual pool or a reservation. DTC gets the remainder. Pools change what each channel sees. They do not stop the warehouse from allocating a 20-unit wholesale order if 20 exist, unless the booking is a real reservation or parked outside the primary sellable zone. If a booking must be untouchable for months, park it in that zone, not in a fake Shopify number.

Keep FBA Reserved off Shopify

Amazon FBA Reserved is not yours to sell on Shopify. A daily ledger that counts Reserved as on-hand will oversell Multi-Channel Fulfillment (MCF). Exclude it from the publish, or map FBA as its own location that Shopify cannot fulfill from.

Buffers and inbound placement

Item-level buffers override channel defaults. Do not buffer twice if Shopify already holds stock back. Percentage scales with the pile. Fixed holds near sellout. Receive inbound into the pool that funded the buy, or the remainder math lies. A container of 100 bought for Nordstrom that receipts into the DTC remainder will sell on the product page before the wholesale PO ships. If that container instead receipts at a second warehouse that is not on the wholesale channel map, the PO is still short: 100 units exist, none of them are reserved where the wholesale PO will pick. A closed Amazon location left mapped on Shopify will still take orders. Virtual warehouses as channel buckets work only if allocation cannot reach across them.

Hold the units first. Then publish what is left. Then pick against the hold, not against leftover DTC.

Run this with AI

Connect Claude or ChatGPT to your Fulfil data with the Fulfil MCP, then run this prompt on your own numbers.

You are the ops lead for a brand selling Shopify DTC, Amazon, and wholesale from one warehouse.
Here is: sku, on_hand, reserved_wholesale, reserved_amazon, fba_reserved, shopify_published, amazon_published, open_wholesale_po_qty, inbound, inbound_funded_for (wholesale/amazon/dtc/unset), pool_type (reservation/display/zone), shopify_typed_down (y/n).
[paste]

Produce:
1. Honest ATS per channel (do not change on-hand).
2. Where Shopify is faked (published much lower or higher than ATS, or typed down by hand).
3. Wholesale POs that will chargeback if the reservation is only a display pool.
4. FBA Reserved rows that must not publish to Shopify, and inbound that landed in the wrong pool.
Recommend remainder-to-DTC, funded wholesale/Amazon, no dummy counts.

See it run on
your data.

Fulfil runs inventory, fulfillment, purchasing, and accounting for scaling DTC brands in one system.