Selling wholesale and direct-to-consumer from the same inventory is one of the most operationally complex challenges in ecommerce — and one of the most profitable when done correctly.
Your DTC Shopify store is growing. A retailer emails asking to carry your products. Then another. Then a distributor.
Wholesale revenue is attractive: larger order quantities, fewer transactions, lower fulfilment cost per unit. But the moment you start selling wholesale alongside DTC, your inventory management complexity multiplies — because you now have two demand streams, with different lead times, different order patterns, and very different consequences when stock runs out.
This guide explains how to manage shared inventory across wholesale and DTC channels without overselling, without tying up excessive safety stock, and without running two completely separate operations.
In a DTC-only operation, every sale is roughly the same size: one or two units, real-time, through Shopify. Your inventory management is designed for small, continuous demand.
Wholesale introduces a fundamentally different demand pattern: large, infrequent, often pre-negotiated orders. A single wholesale purchase order might consume three months of your normal DTC volume in one transaction.
The collision point: if a wholesale order depletes your shared stock pool below the level needed to fulfil pending DTC orders, or if a large DTC promotion hits while a wholesale order is in transit, you end up overselling one or both channels.
Without a system to manage this, merchants typically solve it the wrong way — by holding enough safety stock to cover worst-case scenarios on both channels simultaneously, which ties up significant capital and inflates carrying costs.
All inventory is available to both channels on a first-come, first-served basis. Shopify's stock count reflects the total available to both DTC and wholesale buyers.
Works when: Your wholesale volume is small relative to DTC, orders are infrequent, and you are comfortable with the occasional oversell risk.
Breaks when: A large wholesale order depletes stock that DTC customers are simultaneously buying. You discover the problem when Shopify allows DTC sales against stock that has been committed to a wholesale order but not yet deducted.
You maintain separate stock pools for DTC and wholesale — either physically (different warehouse locations) or logically (different inventory records). Wholesale orders draw from the wholesale pool; DTC orders draw from the DTC pool.
Works when: Channels are roughly equal in size, demand patterns are predictable, and you can forecast wholesale demand well enough to size the allocation correctly.
Breaks when: Allocation is wrong — either channel runs out while the other has excess, and reallocating requires manual intervention. Also inefficient: you carry higher total safety stock because each pool needs its own buffer.
You maintain a single shared pool but calculate Available-to-Promise for each channel based on committed orders, in-transit stock, and channel priority rules. Before confirming a large wholesale order, you check ATP against current and forecasted DTC demand.
Works when: You have the inventory visibility to calculate ATP accurately, and the discipline to check it before committing wholesale orders.
This is the right approach for most growing brands. It minimises total safety stock, prevents oversells, and gives you the data to make informed decisions about which orders to accept and when.
Your DTC safety stock protects against day-to-day demand variability and supplier lead time variance. Wholesale requires an additional layer of protection:
Wholesale order variability: Wholesale orders are lumpy — you might receive no wholesale orders for six weeks and then two large orders in the same week. If your stock level at that moment is calibrated for DTC demand only, you may not be able to fulfil.
Minimum wholesale order buffer: For each SKU you sell wholesale, calculate the minimum quantity you want available at all times to fulfil a standard wholesale order. This is your wholesale buffer, held in addition to DTC safety stock.
Total Safety Stock = DTC Safety Stock + Wholesale Buffer
The wholesale buffer is not a guess. It should be the average wholesale order size for that SKU, or the minimum order quantity your key wholesale accounts require.
Wholesale accounts have different delivery expectations than DTC customers:
DTC customers expect 2–5 day delivery. Your fulfilment is essentially real-time.
Wholesale buyers typically operate on 2–6 week lead times from order to expected delivery. This gives you more time to react — but also means you may be committing to wholesale orders that you need to fulfil from stock that has not yet arrived.
The implication for inventory management: you need visibility into your forward stock position, not just your current stock level.
Forward Available Stock = Current Stock + In-Transit Stock − Committed DTC Orders − Committed Wholesale Orders
Before confirming a wholesale order, your confirmed commitment should be based on forward available stock, not today's Shopify count.
Wholesale orders typically come in at 40–60% of your retail price (your cost×2 wholesale, or "keystone" pricing). The lower margin per unit has direct implications for how you manage inventory:
Carrying cost tolerance is lower on stock earmarked for wholesale. If a wholesale order falls through and you are left with stock you had been reserving, that stock now needs to convert to DTC — possibly at a higher-margin sale, but possibly only after a delay or promotion.
Wholesale orders should improve your inventory turnover, not hurt it. A large wholesale order that depletes excess stock is excellent inventory management. A large wholesale order placed when you already have limited stock is a risk to both channels.
The rule of thumb: only commit to wholesale orders that can be fulfilled from current or firmly in-transit stock. Do not place production or supplier orders specifically to fulfil a single wholesale relationship unless that relationship is on a long-term contract.
Use purchase order management for wholesale too. Every wholesale order should be a formal PO in your system — with confirmed quantity, delivery date, and fulfilment status. This makes forward stock visible and prevents informal commitments from creating invisible demand.
Separate fulfilment workflows. Wholesale orders (pick-and-pack for cases, pallets, mixed SKU boxes) are operationally different from DTC orders (pick-and-pack per item). Separating the workflows prevents wholesale pick runs from interfering with DTC same-day fulfilment SLAs.
Communicate proactively with wholesale accounts on stock availability. Wholesale buyers plan their own inventory around your confirmed availability. An unexpected out-of-stock on a confirmed wholesale order damages the relationship more severely than the same situation with a DTC customer. Give wholesale accounts advance notice of any stock constraints.
Run weekly stock reviews against committed wholesale orders. Check that every committed wholesale order has confirmed stock coverage. Identify any gaps 2–3 weeks before the committed delivery date — enough time to either source stock or renegotiate the delivery date with the buyer.
Shopify Plus includes a native B2B (wholesale) channel that allows you to set wholesale prices, payment terms, and net terms by customer — with the same inventory pool as your DTC store.
This solves the pricing and checkout problem but does not automatically solve the inventory allocation problem. You still need visibility into forward stock position and active management of committed inventory across channels.
If you are on Shopify Plus and scaling wholesale, the native B2B channel is worth using for its pricing and checkout features — but pair it with an inventory management platform that gives you the forward availability view the native system lacks.
Wholesale and DTC from shared inventory is operationally complex but financially compelling. The margin per unit is lower on wholesale — but the volume, the lower fulfilment cost, and the brand validation from quality retail partnerships usually more than compensate.
The inventory management imperative: maintain a single shared pool with forward visibility into committed demand across both channels. Add a wholesale buffer to your safety stock calculation. Check Available-to-Promise before confirming wholesale orders. Build formal PO management for wholesale commitments, not just DTC.
The brands that scale wholesale successfully are not the ones who got lucky with great buyers. They are the ones whose operational foundations were strong enough to handle the demand complexity without constantly overselling one channel to fulfil the other.
CoreCaptain detects phantom stock, sync errors, and inventory discrepancies automatically. 14-day free trial, no credit card required.
Start Free Trial