Inventory & Channel Sync
How do I reserve inventory for prepaid subscription boxes so month 2 and 3 contents aren't stolen by DTC?
Holding back product for future subscription shipments so everyday orders do not eat into it.
Last updated September 16, 2026
A prepaid 3-pack is one payment and three future picks. Shopify does not reserve month 2 and month 3 at checkout. It reserves prepaid inventory only when each cycle's fulfill date hits. Until then those units look sellable. DTC will take the coffee you bought for March.
Park future contents in a hold
Park the future contents now. A reserved quantity, a virtual zone outside the primary sellable zone, or a funded pool for the subscription channel. Remainder math then publishes DTC the leftover. A display pool that does not stop warehouse allocation will still let a 20-unit DTC wave take the 20 you showed as held for February. Physical hold, then pick the box against that hold. If you cannot name the zone or pool that owns March, DTC owns March.
Build a contents calendar by month
Build a contents calendar by ship month, not by checkout month. Month 1 may already sit in the forward pick face. Months 2 and 3 stay in reserve until their fulfill date. If the recipe changes, move the hold. Do not hope Shopify scheduled fulfillments will catch a new SKU. Many 3PL and ShipStation-class apps never import those scheduled fulfillments. If the 3PL only sees today's wave, they will not protect March. Tell the 3PL the reserved qty, or keep that stock in a zone they cannot pick for DTC.
Reserve by cycle, not one kit
Kits are a one-time assembly. A subscription box is a calendar of picks against one prepaid order. Do not kit three months of inventory onto one work order on day one unless you want that stock sitting assembled and still at risk if someone unkits. Reserve the components, or the finished inserts, by cycle. Receive the inbound that funded the subscription into that hold, or the remainder math lies and DTC sees a pile that was already sold. A PO bought "for the box" that receipts into the primary sellable zone is not reserved. It is a donation to the next drop.
One payment does not mean one inventory event. Three holds, three picks, three ship confirmations. This is not a revenue question. Cash at checkout is a different post (when the box is earned, not when the card is charged). Here the only job is to keep month 2 and month 3 off the DTC available-to-sell until their fulfill date. If Shopify is the only reserve, March is unprotected until that date arrives. Count prepaid open qty against the hold every week. If prepaid boxes outrun the reserved components, DTC is already eating the box, or the inbound never landed in the pool.
Connect Claude or ChatGPT to your Fulfil data with the Fulfil MCP, then run this prompt on your own numbers.
You are the subscription ops lead protecting prepaid box contents. Here is: sku, ship_month, on_hand, reserved_sub, dtc_published, prepaid_qty_open, fulfill_date, zone_or_pool, 3pl_sees_hold (y/n). [paste] Produce: 1. Month 2 and 3 SKUs that DTC can still steal (no real hold). 2. Units to reserve now vs what Shopify will reserve only on fulfill date. 3. Inbound that did not land in the subscription hold. 4. 3PL or app setups that never import scheduled fulfillments. One payment, three future picks. Not a revenue memo.
Explore this in Fulfil
More on Inventory & Channel Sync
How to manage inventory across multiple warehouses without overselling
How to publish accurate available-to-sell for each warehouse so your channels stop overselling.
One order hub for Shopify, Amazon, and wholesale
Running Shopify, Amazon, and wholesale orders from one system instead of three disconnected tools.
ABC classification for DTC
Using ABC analysis to focus your counts and reorder attention on the SKUs that matter most.
See it run on
your data.
Fulfil runs inventory, fulfillment, purchasing, and accounting for scaling DTC brands in one system.