A bundle made with the Shopify Bundles app has no stock of its own. Shopify calculates how many bundles you can sell from the components, and the component that runs out first sets the limit. A bundle shows Sold out when one counted component can't cover a single bundle. A bundle oversells when a component is left out of the calculation, which happens when its inventory isn't tracked or it continues selling when out of stock.
Start with the components. For each one, divide its Available quantity by the number of units one bundle needs, then round down. The smallest result is the number of bundles you can sell.
| What you see | Where to look |
|---|---|
| The bundle is sold out and every component looks in stock | Available quantity and units per bundle for each component |
| Admin shows bundles available, and the storefront says Sold out | The location that holds each component's stock |
| The bundle sells while a component is at 0 | Inventory tracking and Continue selling when out of stock on that component |
| You can't find the bundle on the Inventory page | The bundle's product page, then each component |
This article covers bundles created with Shopify's own Bundles app. We tested it in October 2026 in our demo store on Horizon 4.2.0. Other bundle apps can calculate stock differently; see the section near the end.
How the bundle quantity is calculated
Our test bundle, Tee and Hat Set, has three components. One bundle needs two of the first tee.

The number beside each product is the units one bundle needs.
| Component | Available | Units per bundle | Bundles it can cover |
|---|---|---|---|
| Pigment Dyed SS Tee, M | 5 | 2 | 2 |
| SNYC SS Tee, M | 40 | 1 | 40 |
| Dad Hat | 12 | 1 | 12 |
Shopify showed 2 available for this bundle. Five tees cover two bundles, and the fifth tee is left over. The other two components have far more stock and don't affect the number.
You can't type a quantity on the bundle. The Available field on the bundle's product page is read-only, and selecting it shows Shopify's explanation.

The storefront enforces the same number. Adding 3 bundles to the cart added 2 and showed a message.

The bundle did not appear as a row on the Products → Inventory page in our test. To see how many bundles are left, open the bundle's product page.
Find the component that makes the bundle sold out
Open the bundle in the Shopify Bundles app and note each component variant and its quantity. Then open Products → Inventory and check each of those variants.
- Read Available, not On hand. Units that are committed to unfulfilled orders or marked unavailable can't be sold. Our guide to a Shopify product that shows Sold out but has inventory explains each inventory state.
- Check the exact variant. A bundle uses specific variants. Size M can be at 0 while the same product shows stock in other sizes.
- Compare stock with units per bundle. One unit of a component can't cover a bundle that needs two.
If every component has enough stock and the bundle still shows 0, Shopify's troubleshooting step is to re-sync the bundle: open it in the Bundles app, raise one component's quantity by one, save, then set it back and save again.
Admin shows bundles available, and the storefront says Sold out
Check where the limiting component's stock is held. We moved all 5 units of the tee to Test Retail, a location that doesn't fulfill online orders, and left 0 at the location that does.

The bundle's product page in admin still showed 2 available.

The storefront showed the bundle as sold out.

The tee's own product page showed size M as sold out too, so the bundle follows its component on the storefront. The number in admin counts stock at every location, which matches Shopify's statement that bundles track overall stock instead of stock by location. The Online Store sells only stock at locations that fulfill online orders.
When the two disagree, open each component variant and read its quantity by location. Then either transfer the stock to a location that fulfills online orders, or turn on Use inventory at this location to fulfill online orders for the location that has it, if it can really ship those orders.
Why a bundle sells stock you don't have
Shopify leaves two kinds of component out of the bundle calculation:
- Components with inventory tracking turned off. Shopify has no number to count, so the component never limits the bundle. Packaging, inserts, and free gifts are common examples.
- Components set to Continue selling when out of stock. The component can always be sold, so it never limits the bundle either. This setting is often turned on for a made-to-order item and forgotten once the item joins a bundle.
Both rules come from Shopify's bundle eligibility and considerations page. The note in admin says the same about tracking: the quantity is set by the product with the lowest inventory that is set up to track inventory. We did not test a bundle with an excluded component.
Changing either setting on a component changes the bundle's quantity, even though you never opened the bundle. For each component, decide whether it should be able to stop the bundle from selling. If it should, turn on inventory tracking and turn off Continue selling when out of stock.
Components are also shared. Every sale of a tee on its own, on any sales channel, lowers the number of bundles left. During a sale, a bundle can sell out because its most popular component sold individually.
What a bundle order does to inventory
An order for one bundle lowered each component by the units the bundle needs and moved those units to Committed.
| Component | Available before | Available after | Committed after |
|---|---|---|---|
| Pigment Dyed SS Tee, M | 5 | 3 | 2 |
| SNYC SS Tee, M | 40 | 39 | 1 |
| Dad Hat | 12 | 11 | 1 |

The bundle then showed 1 available: three tees cover one more bundle.
At checkout, the customer sees the bundle as one line that expands to list its components. In admin, the order lists the components only, each with its own SKU and a Part of link to the bundle. The bundle has no line of its own.

The order also splits the bundle price across the components. Our $299.00 bundle became $80.14 for each tee, $72.95, and $65.77, in proportion to the components' own prices. Expect sales reports to show bundle revenue under the component products.
Set low-stock alerts and reorder points on the components. The bundle has no stock of its own to watch.
Bundle apps that keep their own stock
Some third-party bundle apps work the same way as Shopify Bundles and build the bundle from its components at checkout. Others create the bundle as a normal product with its own SKU and inventory, then run a sync that lowers component stock after each order and updates the bundle quantity when a component changes.
With a synced bundle, the bundle quantity and the component quantities are two separate numbers that an app keeps aligned. If the sync is delayed or fails, the bundle can sell stock that is already gone. We tested Shopify Bundles only, so check your app's documentation for how and when it syncs. The variant's View adjustment history page shows which app changed a quantity and when.
Check your bundles before a sale
- List every component variant of each bundle with its SKU, units per bundle, and Available quantity.
- Confirm inventory tracking is on for each component that should limit the bundle.
- Confirm Continue selling when out of stock is off for those components.
- Calculate the expected bundle quantity and compare it with the bundle's product page in admin.
- Open the bundle on the storefront and confirm it can be added to the cart.
- Place a test order for one bundle. Compare the items on the order in admin with the packing slip your team or 3PL will pick from. Then check each component's inventory, and cancel and restock the order.
Our Shopify BFCM checklist covers the other inventory checks to run before a busy period.
If the numbers match and the storefront still shows the wrong state, the cause is likely in the theme or in an app that changes inventory or the Sold out badge. Compare the bundle in a fresh copy of your theme first. Our Shopify Bug Fix service can trace and fix that kind of problem.