Managing Inventory for Shopify Product Bundles

Whether a Shopify bundle keeps your stock accurate depends almost entirely on how the bundle was built. Much of the conflicting advice online comes from treating three different setups as one.

Three setups that behave differently

Before anything else, work out which of these you have. The statement “Shopify doesn’t track bundle inventory” is true of the first one and false of the second.

Setup How it’s built What happens to component stock
Standalone product The bundle is an ordinary product with its own quantity Nothing, unless a tool links them
Component references The bundle knows its components, through Shopify Bundles or Cart Transform Component stock is what counts
Discount over normal lines Items are ordinary cart lines with a discount Each item sells as normal

You can usually tell by placing a test order and looking at the order and at your inventory afterwards.

Component-level inventory

For bundles built with components, Shopify says that the “inventory of each component’s variants determines the bundle inventory”, and that orders are stored as components with a reference to the bundle parent.

Each sale therefore relates to the real items. This is the main advantage over a standalone product, and the reason a dedicated stock figure for the bundle is unnecessary.

Bundle availability

Shopify explains its calculation for bundle inventory like this: for each product, divide available stock by the quantity needed for the bundle. The lowest result, rounded down, is how many complete bundles can be sold.

Shopify’s own example uses a chair and desk set:

Component In stock Needed per bundle Bundles possible
Chair 15 2 7
Desk 8 1 8
Bundle availability 7

Three details are easy to miss:

  • Shopify calls this an estimate. It describes the figure as being based on the availability of the bundled products.
  • Untracked items don’t count. Shopify ignores a component’s stock if it’s untracked or set to continue selling when out of stock. A single such item in a bundle won’t limit availability at all.
  • It’s overall stock. Shopify says bundles “don’t track inventory by location, but by overall stock”.

Availability in a mix-and-match bundle

Mix-and-match bundles don’t have one meaningful availability number, because the contents aren’t known in advance. Shopify’s documentation reflects this: for customized bundles, the app is responsible for keeping the storefront’s in-stock status up to date, while components are always checked in cart and checkout.

So a mix-and-match bundle stays sellable as long as a valid selection remains, and each individual option in the builder needs its own availability state. How well an app does that is worth testing.

Out-of-stock products

Decide what customers should see when one option runs out:

Approach Good for Risk
Hide the item Large pools The bundle can look different from its marketing
Show as unavailable Small, curated pools Takes up space, can frustrate
Suggest a substitute Close equivalents Requires setup and care

Also consider the final point of failure. A customer may select an item that sells out before they pay. Shopify’s component checks at cart and checkout offer some protection, but the message the customer receives should be tested. Shopify’s documentation doesn’t describe exactly what shoppers see in this case.

Overselling risks

The usual causes:

Shared components. One product can appear in several bundles and sell individually too. If you have 40 serums and two bundles need one and two respectively, you can make 40 of the first or 20 of the second, but not both. These availability figures draw on the same stock.

Continue selling when out of stock. As noted above, this setting removes the component from the calculation. Check it on any item in a bundle.

Standalone bundle products. Selling a bundle with its own stock number doesn’t reduce its components unless something connects them, and the components can go on selling when they’ve actually gone.

Multiple locations. Because bundles use overall stock, a bundle can appear available when no single location holds all the components. Shopify’s documentation doesn’t say how components are routed across locations, and it lists no default fulfilment constraint keeping them together. Test this if you ship from more than one location.

Two sales channels with separate stock. Marketplaces and retail systems that aren’t connected to the same inventory will drift out of step regardless of your bundle setup.

Very high demand. Availability is an estimate and stock moves quickly during a promotion. Hold back a small buffer on items that feature heavily.

Common fulfilment considerations

How bundles appear on orders

Shopify displays bundles in orders as a nested group of line items, showing the bundle’s title and price and each item’s title and quantity. In areas where items are handled separately, such as split fulfilments, returns and exchanges, they appear as individual line items.

Your pick list and any packing slip should show the same thing. Check them using a real order.

Pre-kitting or picking to order

You can assemble popular bundles in advance, or pick each one when it’s ordered.

  • Picking to order suits mix-and-match, where the contents vary, but takes longer per order.
  • Pre-kitting saves time on fixed bundles. It also takes components out of general stock, so you’ll need to record that movement or your numbers will be wrong.

Mix-and-match offers with a few very popular combinations can do both.

Third-party warehouses

If you use a third-party logistics provider, its systems need to understand your bundle. Send a test order and ask them to confirm how it arrives, whether the items are linked, and how they’d pick it.

Shipping

Shopify says bundles have no shipping profile of their own, so rates come from the individual products. If components have different profiles, a bundle’s shipping may be different from what you assumed. Place a test order to the destinations you serve most.

Returns and exchanges

Shopify’s documentation sets out several points:

  • Refunds and returns operate at the component level.
  • A bundle can’t be marked as final sale. Eligibility depends on whether each individual product is final sale.
  • Bundles can’t be used in exchanges, even for an identical bundle.

If an item is returned, consider what value applies to it, since the discount was spread across the components. Shopify doesn’t describe any special bundle restocking behaviour.

Questions to ask software providers

How it works

  • Does the app use component references, a discount or a separate product?
  • Does stock change when the order is placed, and for which items?

Availability

  • What does a customer see when one option in the pool runs out?
  • Does the builder allow for duplicate picks in its stock check?
  • How does it handle items set to continue selling?

Locations

  • How does it deal with multiple locations?
  • Can it restrict a bundle to stock at one location?

Orders and operations

  • What exactly does the order look like in Shopify and in my warehouse system?
  • How are partial returns handled?
  • Can the bundle’s items be seen in sales reports?

Ask for answers in writing, or for a link to the app’s documentation, and confirm them on a trial. The Shopify implementation guide has a test plan, and our app comparison covers what vendors publish.

If you need customer-chosen bundles on Shopify, Kitenzo is one option. Explore Kitenzo for Shopify. This site is published by the team behind Kitenzo, so weigh that accordingly.

Sources

  1. Eligibility and considerations for product bundles, Shopify Help Center
  2. Shopify Bundles, Shopify Help Center
  3. Start building bundles, Shopify Developer Documentation
  4. About bundles, Shopify Developer Documentation

Keep reading