The three ways a bundle can exist in Shopify
Every Separate products or Product groups bundle is built as one of three bundle types — Volume discount bundles are always Widget-only. The type is chosen once, at creation, and cannot be changed afterward: the control is disabled in edit mode and the server overwrites any type sent in the request, so a bundle built as the wrong type has to be duplicated and the copy rebuilt as the other type. See "Decide before you build: things you can't change later" for the full list of one-way choices. For the step-by-step mechanics of building each type, see "Bundle types and where your bundle product appears in Shopify."
Separately from that lock: while you're still creating a bundle, the Physical and Shopify options are simply disabled, with an explanatory note, if the Quantity selector, a tiered discount, or a collection-based group is turned on — you can't start building toward a type that doesn't support what you've already configured.
Widget-only bundle
No Shopify product is created — the bundle exists only as its component items, with the discount attached to them in the cart. It sells on the Online Store and, for the discount only, on Shopify POS (see "Where your bundles can sell"). It's the only one of the three types that supports the Quantity selector, tiered discounts, and collection-based groups, and because no Shopify product is created, the combination limits below don't apply to it.
Use it for cross-sell widgets on product pages, or for cart-only discounts.
Physical bundle
Creates a regular Shopify product with its own product page, which can also embed the widget. In the cart, each component is added as its own separate line. It sells on the Online Store, Google, YouTube, Facebook and Instagram, and — discount-only — on Shopify POS. It supports up to 250 price combinations, and cannot use the Quantity selector, a tiered discount, or a collection-based group.
Use it for bundles that must be listed in external channels or kept as separate SKUs.
Shopify bundle
Creates a native Shopify bundle product, with its own product page that can also embed the widget. It sells on Shopify POS, the Shop app, and the Online Store. In the cart it's a single line, split into its components at checkout and in the order (or shown separately, depending on setup). It supports up to 2,048 combinations, and — like the Physical bundle — cannot use the Quantity selector, a tiered discount, or a collection-based group.
Use it for bundles sold in POS, or that should appear as one product in the cart.
The three underlying shapes
Independent of bundle type, every Separate products / Product groups bundle is one of these shapes:
Separate products. A fixed slot per product you add; the shopper cannot swap a slot's product for another.
Product groups. A slot can hold several products or a whole collection, and the shopper picks one. Groups can be filled by Products or by Collections (with Exclude products).
Volume discount. A single product priced by quantity tiers; the discount applies only when the customer adds the same product. This is a separate structure from the other two, not a variant of them.
For the mechanics of building each shape, see "Choosing a bundle structure" and "Adding products, groups and collections to your bundle."
14 presets, or a custom build
Choose a preset and customize it offers 14 presets across six families; Or build your own starts from a bare structure instead. Picking a preset replaces every offer setting with that preset's configuration, so choose it first and adjust afterward.
Classic bundle. Buy 2 units of the same item and get 10% off; buy X + Y together and get a % off, or fixed total price; buy at least 5 products of your choice and get 15% off.
Volume Discount. Buy 1 = full price, 2 = 10% off, 3 = 15% off; buy 1×3-pack = 10% off, 2×3 = 15%, 3×3 = 20%.
Buy One Get One. Buy Product X (or a few), get Product Y for free; buy Product X (or a few) and choose a free item; choose any Product X + Y, and get Product Z automatically free.
Mix & Match. Choose any Product X and Y at a fixed total price; buy any Product X + fixed Product Y = 10% off; buy 2 of X or 2 of Y = 5% off; pick 1 product, then buy at least 2 more for 10% off.
Variety Pack Discount. Buy 3 different items = 5% off, 6 = 10%, 12 = 15% off.
Mini Builder. Buy at least 2 items = 15% off, 3 = 25% off.
What a single widget lets a customer do
Within one bundle widget, a customer can:
Choose which items to buy. Turn on Optional products; items are marked Optional and can be Pre-selected, with the choice made With checkboxes or From a pop-up.
Set quantity limits. Turn on the Quantity selector, which exposes Minimum items required and Maximum items allowed (No limit / Limited). The stepper only changes how many units of the already-chosen variant are taken; it never adds another variant selector.
Swap a product within a group. Product swap on Product groups lets the shopper replace the product with another from the group; when it's off, a default product is shown instead.
Choose variants by swatch or dropdown. All variants in one selector, or Swatches / separate selectors with a Button or Select template.
Take several variants in one purchase. This is Uncombined quantity, not the Quantity selector. With a slot's Item quantity above 1 and Uncombined quantity on, each unit becomes its own row with its own variant selector, so three units of a T-shirt can be size Small, Medium and Large. It works on both Separate products and Product groups. The full mechanics — and the ordering trap where the checkbox only appears once quantity is above 1 — are in "Uncombined quantity and Optional-product settings."
Enter free text. The Custom property field, with its own title, help text and an optional required toggle.
Common requests, answered
"Buy 2 get 1 free," "BOGO," "buy X get Y." Yes — the Buy One Get One presets, paired with the Free gift discount method.
"Quantity breaks," "buy more save more," "tiered pricing." Yes — the Volume discount structure, or a Tiered discount on a Widget-only Product bundle. See "Discounts and pricing: what's possible" for which one fits a given price shape.
"Pick any 3 for $X," "mix and match," "choose your own set." Yes, on Product groups — one group per slot, priced with Sale price on Bundle subtotal amount. That gives one price for a qualifying selection; it cannot give a different price at each quantity, so "any 2 for $15 or any 3 for $22" needs two separate bundles. Product groups have no whole-catalog option (see below).
"A bundle with a fixed price," "a kit or starter set." Yes — the Classic bundle preset with a Sale price discount.
"A variety pack, sampler pack," "6-pack of flavors." Yes — the Variety Pack Discount preset, with the quantity selector capped at a maximum.
"Different sizes of one item, one order." Yes — Uncombined quantity, described above.
"Buy 3, pay for 2." Yes — a Buy One Get One preset with a free item on a chosen group, or a Tiered discount on an optional-products bundle.
"Frequently bought together." Yes — a Widget-only bundle placed on the included products' pages, or the AI Bundle Widget (see "Growing sales with upsells, AI and analytics").
"Make the bundle its own product." Yes — a Physical bundle, which also gets it listed on external channels like Google Shopping.
"Discount everything except a few products." Not directly. There's no built-in "whole store except these products" source for a bundle. The Apply to → All store option exists only on the Volume discount and legacy Buy-X-Get-Y structures, where it targets every product in the store minus Exclude products; Separate products and Product groups never show an "All store" option, so each group in those structures is filled with named products or with one collection.
The closest working setup is a Product groups bundle whose qualifying group is filled with a Shopify collection you maintain yourself, containing everything eligible except the discounted items, with both groups required. The app doesn't keep that collection in sync with your catalog, so you own it, and you should place a real test order before launching. Watch one trap here: if the bundle contains only the discounted products and every item is Optional, there's no real qualifying condition, and a shopper can buy just the discounted items alone at the discount.
"A subscription box," subscribe and save. Yes, with a separate subscription app providing selling plans — see "Integrations, third-party apps and the developer surface."
