How to sync shared inventory across multiple Shopify variants
If your warehouse holds one bulk pool of stock — coffee beans, envelopes, paper, vape cartridges — but you sell that stock as multiple Shopify variants at different pack sizes, you've probably already met the worst-case scenario: an overselling alert, then a refund email, then a one-star review.
This guide walks through why the default Shopify variant model breaks down for multipacks, how shops typically try (and fail) to patch it, and what a proper shared-stock workflow looks like end-to-end.
The problem in one sentence
Shopify treats every variant as if it has its own independent stock count — but in your warehouse, one shelf-level count fuels all the variants.
When a customer buys a 500-pack, your real on-hand drops by 500 units. The 50-pack variant should now show a lot fewer packs available. Out of the box, Shopify doesn't know to do that math.
Why manual recalculation falls apart
Most shops start by recalculating variant inventories nightly in a spreadsheet. It works fine until any of the following happens:
- A flash sale wipes out one pack size and the next pack size keeps selling against a now-imaginary count
- A refund comes in and someone forgets to credit the bulk pool
- A new pack size gets launched and the formula sheet falls behind
- The warehouse moves stock between locations and the spreadsheet doesn't know
Worse, the slip is invisible until a customer screams.
The shared-stock formula
Every pack-size variant's inventory is just a function of one number:
available_packs = floor(bulk_units_on_hand / pack_size)
A 500-unit shelf becomes:
- 10 packs available at the 50-pack variant
- 2 packs available at the 250-pack variant
- 1 pack available at the 500-pack variant
When one customer buys a 250-pack, the formula immediately recomputes everything:
- bulk drops from 500 → 250
- 50-pack: 10 → 5 available
- 250-pack: 2 → 1 available
- 500-pack: 1 → 0 available (auto-hidden)
That cascade is the entire job. Get it right and overselling vanishes.
How BulkFlow automates the cascade
- One bulk pool per product. You enter "12,000 units on the shelf" once.
- Multiple pack-size variants. 50, 250, 500 — or anything you invent. No limit.
- Webhook-driven deductions. When Shopify fires
orders/paid, BulkFlow deducts the real unit count (pack × quantity) from the pool, then recomputes every pack-size variant's availability and pushes it back to Shopify in one shot. - Refund + cancellation handling. Returns credit the pool. Cancellations credit the pool. "Don't restock" checkboxes are respected.
You see one number. Shopify sees correct availability across every variant. Customers stop hitting ghost inventory.
What about case packs and bundles?
The same logic handles cases of 6, 12, 24 — any divisible quantity. If your unit is "a single can" and you sell a case of 24, BulkFlow deducts 24 from the bulk on every case sold. Bundles work the same way: define the bundle's "unit cost in bulk" and the formula keeps every variant honest.
Try it free
Install BulkFlow on Shopify — 14-day trial, no credit card. The first product you wire up takes about three minutes.
In final review with Shopify — join the waitlist for early access and a 3-month extended trial.