Let customers choose their bundle (mix and match)
A mix and match bundle lets the customer decide what goes in the bundle. Instead of pinning every product yourself, you give a slot a list of products (or a whole collection) and the shopper picks one to fill it, right on the product page. The bundle discount applies to whatever they choose.
This is not a separate offer type. It is an option on the bundle products you already add to an offer, so everything in displaying an offer as a bundle still applies.
Set up a slot the customer chooses
- Open your bundle and edit the offer you want, with Display as bundle switched on.
- Add a bundle product. Each one is a slot in the bundle.
- Under What goes in this slot? pick how it should be filled.
- Choose the products or the collection, then save and re-publish.
The three kinds of slot
- A specific product - the same product for every customer. This is an ordinary fixed bundle product, no choosing involved.
- Customer picks a product - you choose which products are offered, and the shopper picks one of them. Up to 100 products in a slot.
- Customer picks from a collection - any product in the collections you select is fair game. The list follows the collection, so adding a product to that collection in Shopify adds it to the bundle without touching Bundlex.
A slot resolves to one product. If you want the customer to choose two different things, add two slots, each with its own list.
Product list or collection
Pick a product list when the choice is a short, curated set you want to control exactly, like three scent options. Pick a collection when the choice is "anything in this category" and you would rather maintain it in Shopify than in Bundlex.
The two are mutually exclusive on a single slot: a slot draws from products or from collections, never both. You can select up to 50 collections for one slot.
How the slot starts
Each choose-your-own slot has a How the slot starts setting:
- With a product selected. The slot opens already filled with a default, so the bundle shows a complete price from the first moment. The customer can swap it for another option but cannot empty it.
- Empty, customer must choose. The slot shows your "Choose product" placeholder, and Add to cart stays disabled until they pick something.
Starting filled generally converts better, because the customer sees a real total instead of an incomplete one. Starting empty is the honest choice when the pick is genuinely a decision you want them to make deliberately.
Bundle a set of products with each other
There is a shortcut for the common case where a few products should all bundle with each other. Set Show widget on to between 2 and 8 specific products, then in the bundle products section choose Bundle the products from "Show widget on".
Every one of those products then shows the same bundle on its own page: the product being viewed is the main item, and the others fill the slots. Three linked products means three product pages, each showing the trio, from one bundle instead of three near-identical ones.
It follows your targeting automatically
Nothing is copied. Add or remove a product in Show widget on and every page updates on the next publish. This is the whole point of the mode: hand-built copies drift out of sync the moment your targeting changes, and this cannot.
What it needs
- Show widget on set to 2 to 8 specific products.
- The main product shown on the offer.
- A simple discount: none, a percentage, or a fixed amount per product.
- No bundle products added by hand on that offer. Switching over deletes them, and the editor asks first. Free gifts and upsells are kept.
- No product that can only be bought on subscription.
The composition is fixed, so customers cannot swap the linked products. If you want them to choose, use a product list or collection slot instead.
Publishing fails if one of the linked products is deleted, set to draft, or unpublished from your online store, and Bundlex names the product. Very large sets can also be rejected: 8 products that each have many variants can exceed what Shopify allows a discount to carry. Fewer products, or products with fewer variants, fixes it.
One discount for the whole bundle
By default each bundle product carries its own discount, quantity, title, and image. If they are all the same, turn on Use one discount for every product? and you set the discount once for the entire bundle.
Switching to one shared discount resets the per-product discounts, quantities, titles, and images, so the editor confirms first. Switch back to Customize each product whenever you need the detail again.
Bundling a product with itself
If a slot points at the same product the widget is shown on, that product's own page would display it twice. The editor spots this and offers Let the customer pick instead, which converts the slot into a shopper choice in one click. Take it unless you specifically want a "buy two of these" bundle.
What the customer sees
- An empty slot shows your placeholder text and image until they choose.
- Tapping a slot opens a picker with the available products; they choose the product and then its variant.
- The bundle price updates as soon as a slot is filled.
- Add to cart stays disabled while any slot is still empty, so nobody checks out with half a bundle.
- Sold-out and unpublished products drop out of the picker on their own, so the list never offers something that cannot be bought.
Things worth knowing
- Very large collections are not fully loaded into the picker. Around the first 50 products per collection are offered, so a curated collection works better than a catch-all one.
- Products that are subscription-only cannot appear in a bundle slot, because a bundle line carries no subscription plan.
- Mix and match slots are part of the bundle, so they are required. Optional paid extras are a different feature: see adding upsells to an offer.
- The picker and the "Choose product" prompt are translatable, like the rest of the widget. See translating a bundle.
Before you publish
- Preview it in the editor. The preview picks, swaps, and prices exactly like the storefront.
- Open a real product page and fill every slot, then confirm the checkout total matches what the widget showed.
- If you linked a set of products, open more than one of their pages and check each shows the others.
Was this article helpful?
Your feedback helps us improve our docs.