BOGO is not a bundle structure of its own. Every BOGO offer you build today is an ordinary Product bundle — Separate products or Product groups — with a discount that makes one of the items free. Pick the preset closest to the shape you want, then adjust it.
Some shops still have legacy Buy-X-Get-Y bundles from an earlier version of the app. Those keep their old layout, show only a free-gift picker instead of the discount groups, and cannot be converted. Build a new bundle rather than trying to change one.
Testing more than one version
Use Add variant to create up to four widget variants (A–D) of one bundle, each with its own configuration and preview, edited in its own tab. Run A/B test splits shoppers across the active variants; End A/B test shows revenue and purchases per variant, and the variant you pick then receives all the traffic while the rest are archived.
Step 1: Start the bundle and name it
Click Create new bundle on the Bundles page.
Bundle internal name is the field in the Bundle information card. It is required and capped at 255 characters. This is an internal label, not shopper-facing — except in one case: if the bundle creates its own Shopify product, this exact name is used verbatim as that product's title in Shopify.
The text shoppers actually read in the widget comes from Bundle title and Bundle description, also on the Bundle information card, and both are translatable once your shop has more than one widget language.
There is no Active / Draft selector in the form. Publishing is the toggle beside the title in the page header — see Step 10.
Step 2: Choose a preset, or a structure
Four preset tiles show while you are creating a bundle, with a "View more" link revealing ten more. Clicking a preset replaces every offer setting with that preset's full configuration, so pick your preset first and adjust it afterwards. Presets only appear during creation.
These are the presets that build a BOGO shape, and the structure each one sets:
Preset | Structure it sets |
Buy Product X (or a few), get Product Y for free | Separate products |
Buy Product X (or a few) and choose a free item | Separate products |
Choose any Product X + Y, and get Product Z automatically free | Product groups |
Buy 2 units of the same item and get 10% off | Separate products |
If you'd rather build from scratch, the Bundle structure card gives you the two layouts directly.
Separate products. One fixed slot per product you add. The shopper cannot exchange a slot's product for another one.
Product groups. One slot holds several products, or a whole collection, and the shopper picks one of them.
Mix & Match is Product groups only
The Mix & Match template — which chooses whether the shopper swaps a product through an inline Selector, a Modal list, or a full List — appears only on Product groups, while every group holds products or is empty, and at least one group holds more than one product. It is not offered on Separate products at all.
A group filled with a collection always swaps through the storefront's own resource picker instead, whatever the template is set to.
Step 3: Decide whether the bundle gets its own product page
This is a single checkbox at the top of the Bundle type card: Create a product for this bundle additionally to widget. Leave it unticked and the bundle stays widget-only. Tick it and a Physical / Shopify radio appears underneath.
Physical gives each bundle item its own line in the cart and at checkout, and lets you sell the bundle on the Google, YouTube, Facebook and Instagram channels. Shopify gives you a native Shopify bundle product that works with Shopify POS and is split into its components at checkout and on the order.
This choice is made once, while you are creating the bundle, and it is permanently locked after the first save. There is no control anywhere for changing it later. To change a saved bundle's type, open the Bundles list, use the ••• menu on the row → Duplicate, set the type on the copy while it is still unsaved, save the copy, then deactivate or delete the original.
The checkbox is also unavailable while a tiered or volume discount is on, while the Quantity selector is on, while optional products are in pop-up mode, and when a group points at a collection or the whole store. The caption under it names the setting that is blocking it.
Step 4: Add your products
Click Add products to put specific products in. On Separate products each product becomes its own slot; inside a Product group each product becomes an alternative the shopper can choose between in that slot. Use + Add product group for more groups.
Add collections fills a slot with a whole Shopify collection. It appears only on a Product groups bundle, only inside a group that is still empty, and only while the bundle is widget-only.
See most & least selling products opens a picker built from your sales data, not from a recommendation model. "Most selling products" lists the five products with the largest sales over the past 30 days; "Least selling products" lists the five with the lowest.
There is no Products / Collections / All store selector here
The Apply to radio — Products, Collections or All store — and the Exclude products list that goes with it exist only on the Volume discount and legacy Buy-X-Get-Y structures. Separate products and Product groups derive their source entirely from what you add to each slot, so neither control appears on a BOGO bundle you build today.
If you need a whole collection in a slot, use a Product group and Add collections, as above.
Step 5: Make the item free
A Separate products or Product groups bundle shows a Discount card with radio buttons for No discount, Standard discount, Tiered discount and Free gift.
Buy Product X, get Product Y free
Build the bundle with X and Y in it, then choose the Free gift discount group. Selecting it switches the bundle to per-product pricing and replaces the Type and Value fields with a "Free" tick box on every product row. Tick Y, leave X unticked.
The Free gift group appears when Optional products is off, or on with Customers choose products set to "With checkboxes". It is absent while the pop-up optional picker is in use. Selecting it also resets every product's discount to 0, except any already at 100%.
You must tick at least one product, variant or collection as free, or saving fails with "Select at least one product as a free gift".
Buy X and let the shopper choose the free item
Put the gift candidates in their own group, so the shopper picks one of them.
Set the structure to Product groups.
Groups 1 and 2: the qualifying products, quantity 1 each — or one group at quantity 2 if the two paid items may be identical.
Group 3: every product the shopper may choose the gift from.
In Product settings, leave Optional products off, or turn it on with "With checkboxes"; leave the Quantity selector off.
In the Discount card, choose Free gift, and tick "Free" on every product in group 3 while leaving groups 1 and 2 unticked.
Escalating free quantities
For "buy 2, get 1 free; buy 4, get 2 free," use the Volume discount structure rather than a Product bundle. Each Volume discount option has its own Required items count and can carry its own Free gift add-on, so the gift is given only when the shopper reaches that quantity.
Add one option per quantity, and on each option use Add: → Free gift, then add the gift products and set the gift group's Item quantity. Several products inside one gift group means the shopper chooses one of them; several gift groups mean one gift from each group. An empty gift group blocks saving with "Add at least one product to the free gift group".
Two things constrain this. Required items must be at least one more than the previous option. And Volume discount counts units of one and the same product — a shopper mixing two different products never reaches a tier.
Tick Auto-add free gift to cart in Advanced settings if you want the gift to land in the cart by itself once the tier is reached.
The legacy free-gift picker
A second radio carries the same "Free gift" label on bundles already saved with the older free-products discount type, while widget-only and with Optional products off or in checkbox mode. It offers one free gift chosen from a separate list of products or collections that are not otherwise part of the bundle, and it needs at least one product or collection added or saving fails with "No products added".
A bundle that has never used this mechanism cannot be switched to it. Use the regular Free gift group instead.
Step 6: A percentage or a fixed price instead
Choose Standard discount to get the Applies to, Type and Value fields.
Applies to prices the bundle as a whole, with Bundle subtotal amount, or product by product, with Individual product price. Both are available on every current plan, Free included.
Type offers Percentage always. Sale price and Amount off appear only once the number of items the bundle can contain is pinned down — Optional products and the Quantity selector both off; or Maximum items allowed set to Limited with a number; or Applies to set to Individual product price with the Quantity selector off. If the count later becomes unbounded again, a saved Sale price or Amount off is silently rewritten to Percentage on save.
A sale price can only lower the bundle total. If the products the shopper selected already cost less than the sale price you set, the bundle goes into the cart at the real product price instead.
Tiered discount is a third route: one percentage per quantity tier, available once the bundle is widget-only and Optional products or the Quantity selector is on. Percentage is the only type a tier can use. For fixed per-tier prices, use Volume discount instead.
Step 7: Decide where the widget appears
Tick Show the widget on product pages of included bundle items in the Advanced tab → Widget placement card to make the bundle appear on the product pages of the products it contains.
Select where the widget will be displayed then lets you pick which of those items show this bundle on their own page. Every item is selected by default, and the button caption reports how many are selected.
The store-wide setting is checked first: if "Widget on product pages" in Widget customization → General tab → Global display is set to No, no bundle's widget appears on any product page. Saving that store-wide setting also writes the same Yes/No onto every bundle's own tick.
To change how the widget is laid out, use the bundle editor's live preview panel, not the Widget customization page. Beside a Product images checkbox there is a two-button icon toggle with tooltips reading "Horizontal layout" and "Vertical layout". This is set per bundle; there is no shop-wide default for it.
Step 8: Set the active period and countdown timer
Set Start date and Start time in the Offer tab → Bundle active period card. They default to the moment you opened the form, so leaving them alone puts the bundle live as soon as you save. Set a future moment and the bundle saves as Scheduled and goes Active at that time, invisible on your storefront until then.
Tick Set end date and time to give the bundle an expiry. When the end moment passes the badge changes to Expired and the bundle disappears from every placement immediately. There is no validation on either date — you can save a start date in the past, and an end date earlier than the start date.
To show shoppers a countdown, tick Show countdown timer on the Advanced tab and pick one of four conditions:
Follow end date and time set for bundle — the default. It needs "Set end date and time" ticked; with no end date, or one already past, no timer is drawn.
Fixed duration — a Duration (min) field appears beside the select, seeded to 15, giving each shopper their own countdown of that length.
Ends at midnight (user's local time) — no further field to fill in.
Custom end date — End date and End time fields appear, seeded to one hour from now. Saving is blocked on a past or missing value with "End date and time must be in the future".
The countdown is a display element only. None of the four conditions starts, stops or expires a bundle.
Step 9: Markets and advanced settings
The Markets card on the Advanced tab appears only once your store has more than one Shopify market; with one market or none, the card is absent entirely. All markets is the default; Specific markets reveals an autocomplete, and you must pick at least one or saving is blocked with "Select at least one market".
The Advanced settings card holds the rest:
Display discount to customers from Compare-at price. The saving shoppers see is measured against the compare-at price, while the discount itself is still calculated from the product's actual price.
Pre-select the first available product variant in the widget. Leave it ticked for the widget to arrive with a variant already chosen. Untick it to force the shopper to choose one before Add to cart works.
Add new product variants to product bundle automatically. Only on widget-only bundles built from individual products. Leave it ticked so variants you create later join this bundle automatically.
Enable integration with subscription apps. On widget-only and Physical bundles; it is removed for Shopify bundles. Tick it when the bundle's products are sold on a subscription or selling plan.
Enable custom property field. Adds a free-text input to the widget. Field title is both the shopper-facing label and the property name printed on the order; Field help text is the hint under the input; Make the field required blocks Add to cart until it is filled in.
Exclude B2B customers. Hides the bundle from shoppers signed in to a company account, removing it from both the widget and the automatic discount.
Bundle priority
Bundle priority decides which bundle wins when several compete for the same product page. The higher the number, the earlier the bundle is shown — so give your flagship offer a larger number, not a smaller one. Bundles that share a number are ordered by their bundle ID, highest first.
A bundle whose own product is the page being viewed always comes first, whatever its priority number.
Step 10: Publish and test
Publishing is the toggle beside the title in the page header. Switch it on to publish and off to keep everything you have configured while stopping the bundle from being served. If the bundle is beyond your current plan's limits, clicking the toggle opens an upgrade modal instead of saving.
To check the offer before shoppers can see it, turn on the "MBC Bundles App" embed in a draft theme and open that theme's preview from Online Store → Themes. Draft, Scheduled and Expired bundles all render there while staying invisible on your live theme. The discount will not apply in preview, so place a real test order once the bundle is Active to confirm the free item comes through.
Need Help?
If you have any questions, please contact our support team.
📩 Contact Support: Reach out to us via live chat or send an email to [email protected].









