Shopify Bundle Inventory Management: Complete Guide
A bundle sells one thing and consumes several. How Shopify tracks bundle stock, where the counts go wrong, and what to settle before you launch your first one.
A bundle is the one thing in your catalogue that sells as a single line and comes off the shelf as several. The order says "Cedar & Fig gift box, quantity 1". The stockroom loses a candle, a wick trimmer and a box of matches. Every inventory problem that is specific to bundles falls out of that gap between what you sold and what you spent.
This guide covers what Shopify's own bundles documentation says happens to component stock, the settings that quietly switch that behaviour off, and what to settle before your first bundle goes live. Working out how many components to buy is the larger job and it gets its own post.
What a bundle does to inventory
Ordinary products have a one-to-one relationship between a sale and a stock movement. One order line, one variant, one number down. A bundle breaks that relationship on purpose: one order line, several variants, several numbers down, in quantities you defined when you built it.
The structural consequence matters more than it sounds. A bundle assembled at the point of sale does not hold a stock number of its own. There is no bundle inventory to receive, no bundle inventory to count, and nothing to adjust when a count comes back short. Everything that looks like bundle stock is a figure derived from the components, recalculated every time someone loads the page.
A bundle is not stock. It is a rule for spending stock you have already counted.
If the four quantity states behind those component numbers are not familiar, how Shopify inventory tracking works covers available, committed, on hand and unavailable in full. This post assumes them.
How Shopify handles bundles
Start with the part most write-ups get wrong: bundles are not a core feature of the Shopify admin. They need an app, even when the app is Shopify's own. Shopify's eligibility page lists it as a requirement in the same breath as the sales channel and the checkout version: you must have a bundles app installed on your store.
The first-party option is Shopify Bundles, described by Shopify as a free first-party bundles app that lets you create and edit fixed product bundles and multipacks from the admin, and available on all Shopify plans. That last clause is one of the few explicit plan statements in Shopify's inventory documentation, and it is worth taking at face value (checked September 2026).
Three behaviours from Shopify's own documentation are the ones your stock counts depend on.
- Component inventory is reduced when a bundle sells. Shopify states that the component products' inventory levels are reduced accordingly on a bundle sale, and that inventory levels are updated in real time.
- The scarcest component sets the ceiling. Bundle inventory is derived from the component products' inventory levels, and the product with the lowest inventory level determines how many bundles can be sold.
- Two kinds of component are excluded from that calculation. A component whose inventory is not tracked, and a component set to continue selling when out of stock, are both left out when Shopify works out bundle availability.
That third point is the one to write down. Leaving continue selling when out of stock switched on for a component does not just allow that component to oversell; it removes the component from bundle stock control altogether. The tracking setup guide covers where that setting lives and why it is on more often than merchants expect.
There is also a documented exception to the way the rest of Shopify handles stock. Everywhere else, inventory is tracked separately per location and cannot be pooled between locations. Bundles are the stated exception: Shopify's Bundles documentation says bundles do not track inventory by location, but by overall stock. So bundle availability is a store-wide number even though the components underneath it are still counted location by location. What Shopify does not document anywhere we could find is what happens when the components for one bundle order sit at two different locations, or which location such an order routes to. If you run more than one location and sell bundles, that is a question to answer by testing your own store rather than by reading a blog post, this one included.
The three kinds of bundle
They look similar on a product page and behave differently in your stockroom.
Fixed bundles and multipacks. A set list of components in set quantities, or several units of the same product sold together. These are what Shopify's free Bundles app builds, on every plan. Shopify documents the app's limits: up to 30 components for a fixed bundle and up to 150 for a dynamic one, up to 2,000 units per component, and up to 3 options and 100 variants per bundle. A product with only one variant does not show a variant selector.
Mix-and-match. The customer chooses which components go in, usually within a rule such as any three candles. Shopify's eligibility page puts this outside the free app: mix-and-match bundles need a third-party app from the App Store, or custom development against the Bundles APIs on Shopify Plus. That is a genuine, documented plan boundary rather than a guess (checked September 2026), and on plans below Plus the third-party route is the one available.
Pre-assembled kits. You physically build the gift box, tape it shut and put it on a shelf. This is not a bundle in the platform sense at all; it is an ordinary product with real stock of its own, and the components you consumed building it need to come off their own counts at the moment of assembly. Pre-assembly makes picking faster and makes your counts harder, because now there are two places the same candle can be: loose on the shelf, and sealed inside a box.
| Capability | What Shopify documents |
|---|---|
| Fixed bundles, multipacks | Free first-party Bundles app, all plans |
| Component decrement on sale | Yes, via Shopify Bundles |
| Per-location bundle stock | No: bundles track overall stock |
| Mix-and-match | Third-party app, or Bundles APIs on Plus |
| Bundles plus subscriptions or pre-orders | Not supported |
| Importing or bulk-editing bundles | Not supported |
| Forecasting bundle against component demand | Not documented |
Where bundle counts go wrong
General causes of a wrong stock number are covered in preventing inventory discrepancies. These are the ones bundles add on top.
A component set to continue selling when out of stock. The bundle keeps selling after that component has physically run out, because Shopify excluded it from the availability calculation. You find out at pick time. This is the single most useful thing to check on an existing bundle.
An untracked component. Same outcome, different cause. Tissue paper, a card, a sample sachet: the things nobody bothers to track are exactly the things that stop a bundle shipping, and they are invisible to the ceiling calculation.
Pre-assembly drift. If you build kits ahead of time without adjusting the component counts, your admin thinks you have loose candles you have already sealed into boxes. Every count after that disagrees with the screen.
Bundles cannot be imported or bulk-edited. Shopify lists import, export and bulk editing among the things bundles do not support. A merchant building 200 bundles is building them by hand, one at a time, and editing them the same way when a component changes. Factor that into the plan before the plan involves 200 bundles.
The compatibility list is longer than most people check. Shopify documents that bundles cannot be combined with purchase options such as subscriptions, pre-orders or try before you buy, with the Shopify Subscriptions app, with custom products, with other bundles (no nesting), or with exchanges. Bundles also do not have their own shipping profiles, so rates come from the component products' profiles, and return eligibility follows the individual products' settings rather than the bundle's. Eligibility itself has requirements: the store must use the Online Store sales channel or a custom storefront, must have a bundles app installed, and must be on an upgraded checkout, which rules out stores still carrying checkout.liquid customisations.
One thing worth not being confident about: Shopify's own pages differ on which sales channels support bundles. The bundles overview page and the Shopify Bundles app page describe channel support differently, and we are not going to resolve that for you. Bundles are supported on the Online Store; beyond that, support varies by bundle type and by app, so check the current documentation for the channel you actually sell on.
Pricing, margin and cost
A bundle's cost of goods is the sum of its components' costs, including whatever the packaging costs you. Nothing computes that for you as a single figure, so compute it yourself before you set the price.
Take the gift box: Cedar & Fig 250g at $7, a wick trimmer at $3, box and tissue at $2. Cost of goods $12. Sold separately the candle is $18 and the trimmer $9, so $27 of retail carrying $15 of gross margin, or 55.6%. Price the bundle at $24 and you keep $12, or 50.0%. The bundle discount cost you 5.6 margin points and $3 a sale.
bundle cost of goods, three components
the same items bought separately
bundle price, 50.0% gross margin
That trade is worth making when the bundle sells units that would not otherwise have sold, and not worth making when it sells units you were going to sell anyway at full price. Since the second case is invisible in a sales report, the honest way to test it is to watch what happens to the components' standalone sales after the bundle launches, which is the same measurement the component forecast needs.
Before you launch a bundle
- Turn tracking on for every component, including the packaging and the free extras.
- Turn continue selling when out of stock off for every component, unless you have a specific reason to keep a component outside the bundle's stock ceiling.
- Identify the scarcest component and check its lead time, not just its stock. That component is now the constraint on two products.
- Raise the reorder points of any component that also sells on its own, before the bundle goes live rather than after the first stockout.
- Confirm the bundle does not need to work with a subscription, a pre-order or an exchange flow, because Shopify documents those combinations as unsupported.
- Place one real test order and watch the component numbers move in your own admin. It takes ten minutes and it is the only way to know what your specific setup does.
- Decide who recalculates component demand each buying cycle, and write down where that calculation lives.
When a bundle is the wrong answer
Bundling is the standard advice for slow stock, and it is often right: the slow item leaves at close to full margin instead of at a markdown, and the fast item was going to sell anyway. Selling excess inventory without losing margin puts that option next to the alternatives.
Three cases where it is the wrong instrument. First, when the fast item in the pairing cannot spare the units: you have not cleared a problem, you have moved it onto your best seller. Second, when the slow item is slow because nobody wants it, in which case a bundle just makes the fast item harder to buy on its own. Third, when the bundle exists to discount your best seller by another name, which shows up as flat unit volume and lower revenue.
Once a bundle is live, the buying question changes shape: each component now has demand from its own product page and from every bundle it sits inside, feeding one stock pool. StockCue is bundle-aware on every plan including Free, so bundle sales flow through to component demand in the forecast rather than being counted once and forgotten.
Frequently Asked Questions
Does Shopify automatically reduce component stock when a bundle sells?
For bundles built with Shopify's own free Bundles app, yes. Shopify's documentation states that when a bundle is sold, the component products' inventory levels are reduced accordingly, and that inventory levels are updated in real time. Two settings take a component out of that calculation, though: a component whose inventory is not tracked, and a component set to continue selling when out of stock, are both excluded when Shopify works out how many bundles can be sold. Bundles built with a third-party app are not covered by that documentation, so check the app's own.
What happens if one component of a bundle goes out of stock?
The bundle stops being available. Shopify derives bundle availability from the component products' inventory levels, and the product with the lowest inventory level determines how many bundles can be sold, so the scarcest component sets the ceiling for the whole bundle. The exception is a component that is untracked or set to continue selling when out of stock, because those are left out of the calculation entirely, which is how a bundle keeps selling after a component has physically run out.
Should a bundle have its own SKU?
Give it its own identifier for reporting, but do not treat that identifier as a stock number. A bundle assembled at the point of sale holds no inventory of its own; its availability is derived from the components every time. If you physically pre-assemble kits and put them on a shelf, that is a different situation: the assembled kit is an ordinary product with real stock, and the units you consumed building it have to come off the component counts.
Can bundles be used to clear slow-moving stock?
They can, but the bill lands on a different SKU than you expect. Pairing a slow item with a fast one moves the slow item at close to full price, and it also consumes the fast item's stock at whatever rate the bundle sells, on top of that item's own standalone demand. That is fine if you planned for it and a stockout on your best seller if you did not, so raise the fast item's reorder point before the bundle goes live rather than after.
STOCKCUE
A bundle spends stock you counted once and planned once. StockCue's forecasting is bundle-aware on every plan including Free, so the candle inside your gift box gets a reorder point that reflects both ways it leaves the building.
Install StockCue on Shopify →