3PL & Fulfillment
How do I mix warehouse stock and dropship on Shopify without losing track of margin?
Selling your own stock alongside dropshipped items while keeping margin visible on both.
Last updated September 16, 2026
Same storefront SKU. Two fulfillment modes. Two cost paths. Shopify will show one inventory number and one cost field. That is why margin disappears. This is not an intercompany dropship between two of your entities. That is a transfer price and an elimination. Here the vendor is outside the books, and the only cost that should exist is the PO that shipped.
Keep the two cost paths separate
Warehouse stock: you receive, WAC updates, you ship, COGS is the current blend (FOB plus landed freight and duty). Dropship: the customer order raises a supplier PO, the vendor ships, COGS is that PO (usually FOB, no warehouse receiving, no storage). Those units never touch your bin, so they must not average into warehouse WAC. Receiving a dropship confirm as if it were a warehouse receipt is how every later stock sale inherits a fake discount. A factory-direct channel should show a lower product cost than a DDP warehouse. That is expected. If you blend them, the warehouse average is wrong forever. Shopify's cost field is not WAC. Do not let a connector copy the vendor FOB into the warehouse SKU, or copy the warehouse blend onto the dropship invoice. 3PL storage on stock units is fulfillment, not a reason to pull dropship FOB into the warehouse average.
Route each line to one mode
Do not split one order line between own stock and dropship. Route the line to one mode. If the warehouse is short, the whole line dropships or the order waits. Available-to-sell for Shopify is warehouse ATS, not vendor fantasy stock, unless you truly sell the vendor's pile and you have a feed you trust. Hold a buffer on the warehouse publish. Do not publish dropship as if it were on-hand.
Recognize revenue on the shipment you own
Revenue waits for the shipment you actually own. Warehouse: recognize when you ship. Dropship: cash is not revenue until the vendor ships (and you have the confirm). Match the vendor invoice to that PO. That three-way does not touch the warehouse pile and must not move warehouse WAC. Contribution margin is the honest compare: price minus the cost path that shipped, minus outbound (your parcel or their freight), minus fees, minus returns. A dropship unit can look cheap on product cost and lose on their shipping and your refund rate. A dropship return is a vendor claim or a vendor credit, not a zero-cost receipt into your bin. Tag the channel or the fulfillment mode on the invoice so the class P&L can separate them. If finance cannot say, for a SKU-week, how many units shipped from stock versus the vendor, you do not have a mix. You have a Shopify catalog and a mystery COGS.
Connect Claude or ChatGPT to your Fulfil data with the Fulfil MCP, then run this prompt on your own numbers.
You are the finance and ops lead mixing warehouse stock and dropship on Shopify. Here is: sku, mode (stock / dropship), units, net_revenue, wac_warehouse, dropship_po_cost, outbound_or_vendor_freight, fees, returns_allowance, shopify_published, warehouse_on_hand. [paste] Produce: 1. COGS path per line (warehouse WAC vs dropship PO). Flag any dropship qty averaged into warehouse WAC. 2. Gross and contribution margin by mode. Do not allocate overhead. 3. Order lines that would split between stock and dropship (do not). 4. Shopify publish that is treating vendor stock as on-hand. Revenue follows the shipment you own. Match the vendor invoice to the dropship PO.
Explore this in Fulfil
More on 3PL & Fulfillment
Should I use a 3PL or keep fulfillment in-house, or run a hybrid? How do I decide?
Weighing a 3PL, in-house fulfillment, or a hybrid on total cost and complexity.
How do I add a second 3PL warehouse and route Shopify orders without split-shipment chaos?
Adding a second 3PL and routing Shopify orders to the right one without split-shipment mess.
How do I reconcile my 3PL's on-hand report to my books every week?
A weekly routine for matching your 3PL's on-hand report to your own records.
See it run on
your data.
Fulfil runs inventory, fulfillment, purchasing, and accounting for scaling DTC brands in one system.