A bundle is a sellable grouping of 2 or more products presented together as one offer or coordinated purchase.
BundlesBundles
The customer may see a single "starter kit," but inventory systems often need to reason about several underlying components. That creates the most important distinction on this page:
bundle presentation is not the same thing as component inventory.
Fixed bundle
The merchant defines a specific set of components, such as:
- 1 coffee brewer
- 1 glass carafe
- 2 filter packs
The customer buys the predefined set.
Multipack
Several units of the same item are sold together, such as a 6-pack of socks or 3 replacement filters. A multipack can have its own merchandising identity even if fulfillment consumes multiple units of the same component SKU.
Mix-and-match bundle
The customer chooses components within rules, such as "pick any 3 teas" or "choose one top and one bottom." Availability now depends not only on total stock but on which combinations remain possible.
Virtual or composite bundle
The storefront presents a parent product, but the order or fulfillment system explodes it into component lines. The parent can be a merchandising construct rather than a separately stocked physical item.
Different platforms use different names and data models for these patterns, so the category should not be reduced to one platform's bundle object.
Bundle price and component value are separate questions
A merchant can price the bundle as:
- the sum of component prices
- a discounted total
- a fixed promotional price
- a premium curated package
Changing a component's standalone price does not necessarily imply the bundle price should change automatically. Shopify's current first-party bundle documentation, for example, notes that changing a component price does not automatically update the bundle price in that implementation. Operationally, store both concepts if they matter:
- current component selling value
- explicit bundle selling price
That lets the merchant measure the customer's perceived saving without making the bundle price depend on accidental component changes.
Order representation affects downstream systems
A bundle can appear in an order as:
- one parent line
- component lines
- a parent plus hidden or linked components
This matters to:
- warehouse picking
- taxes
- returns
- customer service
- accounting
- product analytics
- discount allocation
- fulfillment integrations
Shopify Bundles, for example, exposes component SKUs in orders rather than using the bundle SKU for the individual units. Another platform may model it differently. A bundle glossary page should therefore teach the business concept without promising a universal order schema.
Returns need a bundle policy
If a customer returns one component from a discounted bundle, what value is refundable? Possible rules include:
- bundle must be returned as a complete set
- component can be returned at an allocated value
- promotional saving is recalculated when a component is kept
The correct policy depends on merchant rules and applicable law, but the system should know how the bundle price was allocated. Otherwise a customer may be refunded the standalone price for one component even though the entire bundle was purchased at a deep discount.
Mix-and-match changes the availability problem
A fixed bundle has a straightforward bottleneck calculation. A mix-and-match bundle can remain sellable as long as enough valid choices exist.
For "choose any 3 teas," the relevant question is not "is every tea in stock?" It is "can the shopper still select 3 eligible units under the bundle's rules?" That creates additional UX requirements:
- dizable exhausted options
- preserve valid combinations
- prevent selection beyond available quantity
- recalculate price if options have different values
Bundles are merchandising and operations at once
A bundle can raise average order value, simplify a buying decision, help introduce complementary products, or clear inventory. But the merchandising surface succeeds only if the inventory model underneath it stays truthful. Before launching a bundle, verify:
- bundle type and selection rules
- component quantities per bundle
- derived availability
- shared component contention
- bundle versus component pricing
- order-line representation
- picking and fulfillment behavior
- return/refund allocation
- what happens when one component stocks out
The customer may buy one product card. The operation may need to fulfill 5 inventory commitments.
Worked example
Suppose a fixed "Desk Setup" bundle requires:
- 1 keyboard, 12 available
- 1 mouse, 20 available
- 2 cable clips, 30 available
- The keyboard supports 12 bundles
- The mouse supports 20
- The clips support only 15 bundles because each bundle consumes 2
Maximum immediately fulfillable bundles: **12**.- The generic calculation for a fixed bundle is the minimum of:
- floor(component available quantity / component quantity required per bundle)
This is the core reason a bundle parent should not casually be assigned an unrelated inventory number. If the parent says 20 available while only 12 keyboards exist, the storefront can oversell the bundle.
Shopify's current bundle documentation uses the same general bottleneck idea for its own implementation: bundle availability is determined by component inventory, with the lowest component capacity limiting how many bundles can be sold.
Every app on every plan. Connect your store and switch on the flows in an evening.