What Happened When a Multipack Store Hit Shopify's Inventory Wall
A small tea brand kept running out of stock. Here's where shopify multipack inventory silently breaks, and the fix that held.

Priya runs a small loose-leaf tea brand from a workshop on the outskirts of Brighton. She does about $12k a month, mostly repeat customers, mostly via Meta. Her shop has six teas. Each tea has three product pages on the storefront: a 100g tin, a 3-tin starter pack at 10% off, and a 5-tin stock-up pack at 15% off.
She emailed me in March because she had run short on her oolong four times in eight weeks. Every time she thought she had stock. Every time, the dashboard agreed with her. And every time, she found out three orders later, after a customer messaged asking when their tea would ship.
The first time it happened she blamed her supplier. The second time she blamed her warehouse. By the fourth she stopped blaming people and started reading her own data, which is when she sent me a screenshot of her inventory page and asked: "is this Shopify, or is this me?"
It was both. Mostly Shopify.
Quick answer
Shopify treats each multipack product page as its own inventory bucket. If you sell a 1-pack, a 3-pack, and a 5-pack as separate products, the platform has no native way to deduct from a shared base-SKU pool. Your shopify multipack inventory looks fine in the dashboard right up to the moment you run out of stock at the supplier level.
What she had tried
By the time she emailed, Priya had already done the obvious things. She had set low-stock alerts on every product. She had switched on the "track quantity" toggle for every variant. She had subscribed to a stock-control app that pinged her when any item dropped below a threshold.
None of that addressed the real problem, which she had not yet named. The 100g tin, the 3-pack, and the 5-pack each had their own inventory count in Shopify. Each one decremented on its own when someone bought it. There was no machinery anywhere in the platform connecting them.
Her actual stock was 84 tins of the same oolong, sitting in the same boxes, in the same corner of the same workshop. Shopify's model of her stock was three separate piles: a "100g tin" pile, a "3-pack" pile, and a "5-pack" pile, each ticking down independently of the others, and none of them aware that they all came from the one stack on the wall.
When she ran a flash sale on the 3-pack and sold 18 of them, Shopify's record of her 100g tin inventory did not change. So the 100g tin product page kept showing "in stock", and customers kept buying it, and somewhere behind that her actual oolong stash was getting wiped out three tins at a time without anything counting it.
Why nothing worked
I went looking for the native fix and there isn't one.
I had assumed Shopify would have something called "component inventory" or "shared SKU" or any of the obvious names, and that I had just missed it in five years of building stores. I had not. Shopify multipack inventory pooling is not a feature the platform exposes. The concept the r/shopify community calls inventory pooling with consumption ratios - a base variant holds the real stock, and each multipack deducts N units from that base when it sells - is the model her business actually runs on. It is also the model Shopify does not natively support.
A few options exist, none of them clean:
-
Rebuild every multipack as a bundle managed by the native Shopify Bundles app. This works for fixed bundles where the components map onto separate SKUs. Priya's multipacks were not actually bundles. They were the same tin in different quantities. Shopify's Bundles app wants the multipack to be a parent product made of N copies of a child product. That meant turning her 100g tin into the "real" product and rebuilding all three multipacks as bundles of it.
-
Use a third-party app that handles consumption ratios. Trunk is the one I see come up the most in this category. It syncs inventory across SKUs and channels in real time, and it can be configured so that selling a 3-pack of oolong deducts 3 from the 100g tin's count. I have not tested it at scale myself, so treat that as community consensus.
-
Do it manually. Export the Items Sold by Product Variant report once a week, convert every multipack sale back to base-tin units in a spreadsheet, and update the 100g tin inventory by hand. Some merchants run their entire shop this way and survive. Priya was one of them, before she emailed me. It is why she had run out four times.
The third option was where she had already been living. The first option meant rebuilding her product pages, which she did not want to do. Her 3-pack and 5-pack pages each had their own reviews, their own Meta ads pointing at them, and their own organic search rankings. Six tea SKUs times three product pages each is eighteen pages of social proof and ad history she would have had to migrate.
So we went with option two, with caveats.
The thing that surprised me
The surprise was not the missing feature. I knew Shopify had no native inventory pooling. I have read enough r/shopify threads to lose track. The surprise was how long Priya had been running short before she connected the dots.
She had been live for fourteen months. Her conversion rate on the 3-pack page was around 10%, which is unusually high. Her ad spend was modest. Her margins were tight but real. She had assumed any inventory weirdness was upstream of Shopify, because the dashboard always confirmed her counts.
It took four separate stockouts before she questioned the data. That is the failure mode this gap creates. It does not show up as a Shopify error. It shows up as a supplier excuse, a warehouse-staff complaint, a vague feeling that something is off with the numbers. The dashboard keeps telling you everything is fine, in a tone of confident detail, while it is silently wrong.
I have seen the same pattern at three other stores in the last six months, all in the same shape: standalone multipack products, no bundle app, a low-grade stockout problem the merchant keeps trying to attribute to anything except the platform's model of their stock. If you are reading this and the pattern feels familiar, this is probably what is happening to you too. If you want a second pair of eyes on the setup before you start ripping things apart, help1's chat is the right shortcut - the first fifteen minutes are free and that is enough to confirm whether it's the same pattern.
What we ended up doing
We did three things, in order.
-
Reconstructed the actual stock baseline. Before any app went near her store, we counted what was on the shelf for each tea. We then exported six months of orders and computed what should have been on the shelf given the sales record and the most recent supplier delivery. The gap between the two numbers was her uncounted multipack consumption. For oolong it was 47 tins. For the other five teas it was between 8 and 31. She had been running on a backlog of slow leaks for over a year.
-
Installed an inventory-pooling layer and configured consumption ratios. Each multipack product was mapped to deduct N units of the corresponding base 100g tin. The 3-pack deducts 3. The 5-pack deducts 5. After mapping, we ran a single test order on each multipack and confirmed the base-tin count moved correctly. This took an afternoon.
-
Updated the base-tin product page so its inventory count became the source of truth for the supplier reorder threshold. The two multipack pages now report what they can show in stock as a function of the base tin's count, not as their own independent number. The "in stock" status on the 5-pack flips to sold-out when the base tin drops below 5, automatically, without Priya having to remember to do it.
The Items Sold by Product Variant report is still part of her routine. She runs it monthly, not as the primary inventory tool but as a sanity check that the consumption ratios are deducting what she thinks they are. It has caught one drift in three months. I would rather she catch it than not.
If you want to see what the diagnostic looks like end-to-end on your own store before deciding whether to install anything, help1's free Shopify scan flags this exact pattern: standalone multipack products with no shared inventory layer beneath them. Worth running before you migrate anything.
What this means for your store
If your shopify multipack inventory layer treats each pack size as its own independent bucket, your dashboard is lying to you, calmly and consistently. Switching apps does not fix it. You have to add a layer of bookkeeping the platform refuses to provide.
You have three reasonable paths. Rebuild as native bundles. Install a consumption-ratio inventory app. Or accept that you will hand-count from a monthly report. Pick one. Do not do the implicit fourth option, which is the one Priya was running by accident: hope your three independent stock counts happen to all be correct at the same time, forever. They won't be.
If your store is small enough that the rebuild is feasible, the rebuild is the cleanest. Once the multipacks are real bundles, the dashboard is honest again. If your store has too much marketing momentum on the standalone product pages to justify rebuilding, the consumption-ratio app is the next-cleanest path. I have not yet seen a case where the manual spreadsheet wins long-term. It eventually loses an entry, and you find out by stocking out.
Shopify treats this as out of scope rather than a bug. They will not fix it because, from the platform's view, there is nothing to fix. The pooling layer is absent. You build around the absence or you live with the leak.
Back to Priya
Priya's oolong has not stocked out in eleven weeks. She told me last Tuesday that her ads are running better than they were before, which she attributes to not having to pause campaigns mid-week to wait for stock to land. I think she is probably right about that. Most of the win from a fix like this is operational headroom. You stop nursing the dashboard for problems you should not have to police.
The other thing she told me, which I keep thinking about, is that she has stopped second-guessing the numbers. Before, every time she sat down to do supplier reorders she would feel a small dread, because she could not trust what Shopify was showing her. Now she trusts the base-tin count and she places the order. The reorder takes ten minutes instead of an hour of cross-checking. The hour is hers again.
If your own shopify multipack inventory model is leaking in the same way and you want a second pass before you migrate or install anything, that fifteen minutes with help1 is what it is for.
Still stuck? Talk to an expert.
Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.