The WMS configuration is where one-pool architecture actually happens. We use Datex as the system of record, which supports allocation strategies at the SKU level rather than the customer level. That distinction is the foundation of the entire architecture. Most 3PL WMS setups (including some that run on Datex but configure it wrong) hold a single customer per brand and split that customer's SKUs into channel-specific sub-locations. We hold a single SKU pool per SKU, with channel as a routing attribute on the order rather than a partition on the inventory.
Channel-priority rules sit on top of the inventory pool in a custom rule layer on top of Datex. The rule layer reads every incoming order, identifies the channel source (Shopify, Amazon, EDI 850 from retailer X, B2B portal), and decides routing priority. Default priority order is retail SLA windows first (because chargeback exposure is highest), then DTC same-day (because customer-experience risk is highest), then Amazon FBA replenishment (because Amazon's restock-limit API throttles us anyway), then B2B wholesale (because lead times are longer and tolerance for delay is higher). Brands can override the default at the SKU level or the channel level.
When DTC velocity spikes on a particular SKU, the router auto-allocates more units to DTC and queues retail to ship from the next inbound truck. No manual transfers. No second receipt cycle. The brand sees one inventory record and one stockout signal in their dashboard, even though the underlying allocation is decisioning across multiple channels in real time. For stockout-risk SKUs (defined as inventory days-on-hand under a configurable threshold), the router escalates to a "stockout watch" status that defers the lowest-priority channels first and flags the brand's account manager before any channel would go short.
Channel-specific packout runs from the same pick. A pick wave pulls SKUs from bin locations into a tote. At the pack station, the WMS reads the order source and applies the channel-specific packout: a Shopify DTC order gets branded packout with insert, tissue, and thank-you card; an Amazon FBM order gets Amazon-spec packout with the correct prep; a retail PO gets bulk-pack into master cartons with UCC-128 labels printed from the per-retailer template library. All three packouts pull from the same physical SKU pool. The brand does not pre-allocate units to channels at receipt; the allocation happens at the order level when the order routes to the pack station.
Lot-controlled SKUs (cosmetics, supplements, food-adjacent products) get a small exception: we split inventory by lot rather than by channel, because the FDA and retailer-specific lot rules require physical separation by expiration date or production lot. Even then, the routing rules still apply. The retail PO routes to the lot closest to its expiration window the retailer requires; the DTC orders pull from the freshest lot. That is still rules-based routing, just with the lot dimension layered in. The brand does not get billed twice on the same SKU; lot-split is a sub-classification of one inventory pool, not a duplicate.
The savings compound. For a multi-channel brand running multiple channels on a meaningful SKU catalog, the savings on storage alone (no duplicate bin assignments), plus labor (no inter-bin transfers), plus revenue recovery from eliminating false stockouts, add up quickly. The brand also gets a real-time inventory record they can trust, which means customer service stops triaging tickets about "out of stock items the warehouse has on the floor" and merchandising can make replenishment decisions on accurate data instead of conflicting numbers.