The app finds product bundles in your order history. You do not have to create them. You set the discount policy, and you can pin or exclude partners for any product. Checkout applies the discount automatically as a Bundle discount, on every Shopify plan. The Results card then tells you what bundles add to your revenue, measured against shoppers who did not see them.
How bundles are found
The Frequently Bought Together model reads the last 90 days of your orders. When shoppers often buy two products in the same order, the model pairs them. Each product gets up to 10 partners. There is no bundle list to maintain. New pairs appear as your order data grows, and the pairs update every 12 hours.
A pair needs real evidence:
- At least 2 different shoppers each bought both products in one order. A shopper who buys the pair again still counts once.
- The products sell together more often than chance.
- The products are not substitutes. Two products of the same product type, like two tents, are not paired. Very large orders (more than 20 different products) are left out, because they pair everything with everything.
You can also pin partners yourself, or stop a pair from being offered. See Pin or exclude partners.
The bundles show in two places:
- The Bought together block on the product page. See Widget catalog.
- The checkout upsells, where a paired product can carry a Save with bundle note. See Checkout & after purchase.
- The cart drawer, when you turn on Offer bundles in the cart drawer. See Cart drawer.
What counts as a bundle
A bundle is 2 to 6 different products. How checkout recognises one depends on When the discount applies:
- Added from the product page (the default): the bundle is the page product plus every partner the shopper added with it in one Add all to cart. Each partner must be paired with the page product. The partners do not need to be paired with each other. A tent with a pad and a lamp is a bundle of 3 when the pad and the lamp are both partners of the tent.
- Whenever the cart has products often bought together: two products that are paired with each other also form a bundle, however they reached the cart. A bundle of 3 needs all three products paired with each other. With this option, your first tier must start at 2 or 3 products.
Bundles added from the product page are always found first, so the shopper gets exactly the discount the product page showed. A product joins at most one bundle. Two variants of the same product, like a pad in M and in L, count as one product.
What shoppers see
- On the product page: the bundle. The page product comes first and is always included. Each partner has a checkbox. When your discount policy is on, the bundle shows the bundle price: the full total crossed out, the discounted total, a Save pill, and the saving under each item, for example −$4.50 with bundle. The button names the count and the total, for example Add all 3 to cart · $217.80. This is the same total the shopper pays at checkout.
- If the bundle is too small or the cart is below your minimum, the bundle says what is missing, for example Add 1 more to save 10% or Bundle discount on orders of $50+. When ticking more partners reaches a bigger tier, it says so too.
- When at least 5 different customers bought a partner together with the page product, the partner shows Bought together by N customers under its card. Below 5, and for a pinned partner nobody has bought with the page product yet, the line is not shown.
- Partners open on the shopper's size and colour. When the shopper picks M and Navy on the page product, each partner with a Size or Color option opens on M and Navy too, if that variant is in stock. Options are matched by name and value, and capital letters don't matter. A colour the partner doesn't come in is skipped, so a Black / L hoodie still opens a Coral-or-Navy jacket on L. If nothing matches, or the match is sold out, the partner opens on its usual variant (its first in-stock one if that is sold out). A partner the shopper changed by hand keeps the shopper's choice.
- Sold-out partners are hidden. If the shopper picks an option that is sold out, that item is unticked and marked Sold out in this option. Products that can only be bought as a subscription are not offered in the bundle.
- In the cart drawer: one Complete the bundle — save $X row, when Offer bundles in the cart drawer is on. See Cart drawer.
- In checkout: a Bundle discount on the bundle products, when your discount policy is on.
- In the checkout upsells: a Save with bundle note on a product that would complete a bundle with the cart. The note shows only when the discount is sure to apply to that product, so it is hidden when you use custom rates, a product cap, or All but the most expensive product.
While Measure what bundles add is on, 1 in 5 visitors on pages with pairs do not see the bundle at all. See What bundles add.
Where the discount shows
The discount is not a code. It is an automatic Shopify discount named Bundle discount, so the shopper does not type anything. At checkout, each discounted item and the order summary show Bundle discount. On the order in your Shopify admin, the payment summary shows a Discount line named Bundle discount, and Discounts lists it as an automatic discount. Shopify splits the bundle's saving across its items by price, so an item's share can differ by a cent from the product page; the total is the same. It works on every Shopify plan; you do not need Shopify Plus.

Checkout shows a Bundle discount on the bundle items. No code needed.
Set the discount policy
Open Bundles in the app. In the Shopify admin app the screen heading is Bundle discounts; in the PersonalizerAI dashboard it is Bundles, on the Discount tab. Both edit the same policy. Some labels differ between the two; the table gives the PersonalizerAI dashboard label first.
Setting | What it does |
|---|---|
Enabled (Shopify admin app: Bundle discounts) | Turns the bundle discount on or off. Off by default. When it is off, the bundle still shows on the product page, without a bundle price. |
Discount tiers | One row per tier: Bundles of [2–6] or more products → Percentage off or Fixed amount off each product → the value. The first tier is the minimum bundle size. A bundle gets the highest tier it reaches. Use Add tier for up to 5 tiers; each tier needs more products than the one before. A new tier starts one product bigger than the last. Type a fixed amount the way you price products: |
Discount applies to | All products in the bundle (default), or All but the most expensive product (it stays full price). With the second choice, the most expensive product pays full price even when it is not the product the shopper started from. It works the same for every bundle. |
Discount at most this many products per bundle (the cheapest ones) | Leave it empty for no limit. Enter a number from 1 to 6 to discount only that many products in each bundle: the cheapest ones. Tick Only the cheapest product to set it to 1. |
At most this much off per bundle | Leave it empty for no limit. Otherwise, one bundle never gets more than this amount off, in your store currency, for example At most this much off per bundle (USD). |
Custom rates | Up to 3. Each has its own Percentage off or Fixed amount off each product value, and the products and collections it covers (up to 20 collections). A product in a custom rate gets that rate instead of the tier rate. The first matching rate wins. Use |
When the discount applies | Only when the shopper adds the bundle from the product page (recommended) is the default: the discount applies to products the shopper added together with the bundle's Add all to cart button, or added from a Save with bundle note at checkout. Whenever the cart has products often bought together also discounts pairs the shopper added one by one. That option also discounts orders shoppers would have placed anyway. See What counts as a bundle. |
Minimum cart subtotal | No discount below this cart value. It counts the whole cart, not only the bundle. The label carries your store currency, for example Minimum cart subtotal (USD). Type the amount the way you price products: |
Max bundles per order | Caps how many bundles one order can discount. Enter a number from 1 to 50. When a cart holds more bundles than this, bundles added from the product page are kept first, then the ones with the biggest discount. |
Combines with | Which other discounts the bundle discount can apply together with: Other product discounts, Order discounts, and Shipping discounts. All three are ticked by default. Your other discounts must allow combining too. See Combining with other discounts. |
Excluded products | Never discounted, even when bought together. Pick them with Select products (Shopify admin app) or by searching the product name (PersonalizerAI dashboard). An excluded product is also left out of the bundle on the product page, and a page product that is excluded shows its bundle without a bundle price. |
Excluded collections | Every product in these collections is skipped. Pick them with Select collections (Shopify admin app) or by searching the collection name (PersonalizerAI dashboard). |
Measure what bundles add | On by default. 1 in 5 visitors on pages with pairs don't see bundles, so we can compare. It costs a little revenue on those pages. Turn it off and the Results card shows only credited numbers. See What bundles add. |
Offer bundles in the cart drawer | Off by default. When a shopper opens the cart drawer, show one product that completes a bundle with the newest cart item, with its bundle saving. It works only while the bundle discount is on, and needs a theme with a slide-out cart drawer. See Cart drawer. |
- Open the app in your Shopify admin.
- Go to Bundles.
- Turn on Bundle discounts.
- Under Discount tiers, set the first tier, for example Bundles of 2 or more products → Percentage off →
10. - Optional: click Add tier for a bigger discount on bigger bundles, for example 3 or more products → 15%.
- Optional: choose what the discount applies to, set the caps, or add a custom rate.
- Under When the discount applies, keep the recommended option unless you want every bought-together pair discounted.
- Click Save bundle policy in the save bar.
If a field shows a red message, fix it first. Save bundle policy stays unavailable until every field is valid.
If you see Saved, but Shopify didn't get the update yet, your settings are saved in the app, but checkout keeps your previous bundle settings until Shopify takes the update. Save again in a minute.

The Bundle discounts screen: one policy with tiers, no bundle list to maintain.
Cart drawer
Turn on Offer bundles in the cart drawer to offer a bundle after the shopper has added a product. The cart drawer then shows one row above the drawer's recommendations: a partner of the newest cart item, its price, Complete the bundle — save $X, and an Add button. The saving is the one checkout gives for that pair.
- The row shows only while the bundle discount is on. It needs a saving to show, so it also stays hidden when the pair would get no discount, for example when your first tier needs 3 products or the cart is below your minimum.
- It pairs with the newest cart item that can still start a bundle. An item that was added as part of another bundle, or that already has a partner added with it, is skipped.
- A product added with Add gets the bundle discount at checkout with the cart item, even with the recommended When the discount applies option.
- After the add, the row goes away. Products already in the cart are never offered. The drawer's recommendations never show the row's product twice.
- While Measure what bundles add is on, held-out visitors don't see the row either.
- The row shows only once it is ready; there is no placeholder. With the switch on, the drawer's recommendations can appear up to 2 seconds later, because they wait for the row's product so they can leave it out.
- Each time the cart changes, the row uses one recommendation request from your plan's monthly allowance, the same as a widget showing recommendations. It counts only while the switch is on and the cart has an item with partners. A busy store on a small plan can check its usage under Settings → Billing.
- The drawer is found the same way as for cart drawer recommendations: on its own in Dawn-family themes and Horizon (checked 2026-10-24), or with Drawer selector (advanced) in the app embed. The app embed must be on. The row works whether or not cart drawer recommendations are on. See Add widgets to your theme.
Pin or exclude partners
You decide which products are bundled with a product. Pinned partners show first in the bundle, ahead of the pairs found in your orders. Excluded partners are never offered with that product.
- Open the PersonalizerAI dashboard.
- Go to Bundles and open the Pairs tab.
- Find the product. Use the search box, or switch the filter between With partners, Changed by you and All products.
- Select the product to see its partners. Each partner shows Bought together in N orders, or Pinned by you.
- Click Pin to keep a partner first, or Exclude to stop offering it. To pin a product that is not listed, use Add a partner.
From the Shopify admin app, go to Bundles and click See and edit bundle pairs. It opens the Pairs tab.
Each change saves on its own. You see Bundle pairs saved.
- You can pin up to 10 partners and exclude up to 50 for each product. A product offers at most 10 partners: your pins first, then the pairs from your orders.
- Pinning an excluded product moves it back out of Excluded. Restore removes an exclusion without pinning.
- Changes reach the product page within seconds. The bundle discount at checkout picks them up too.
- If you see Saved. The discount picks this up on the next sync., your change is saved, but Shopify didn't take it yet. It goes live with the next pairs update, within 12 hours.
- A partner marked Not live yet is saved but not offered to shoppers yet.

The Pairs tab: pin a partner or stop a pair from being offered.
How a bundle is priced
- Tier. Count the different products in the bundle. The bundle gets the highest tier it reaches. Below the first tier there is no discount.
- Which products. With All products in the bundle, every product is discounted. With All but the most expensive product, the most expensive product in each bundle stays full price, even when it is not the product the shopper started from.
- Rate. Each product gets its first matching custom rate, or else the tier rate. A fixed amount never takes more than the product's price.
- Product cap. If you set Discount at most N products, only the N cheapest of those products keep their discount.
- Amount cap. If you set At most this much off per bundle, the bundle's total discount stops there.
The product page uses the same steps and the same rounding, so the bundle price it shows is the price checkout charges. When the shopper browses in another currency and the exchange rate is unknown, or your discount is off, or the page product is excluded, the product page shows only sale-price savings. It never shows a saving checkout would not give.
Worked examples
Tiers: 2 or more products → 10%, 3 or more products → 15%. The shopper starts on a Tent ($200) and adds the bundle with a Pad ($50) and a Lamp ($30). Three products reach the 15% tier.
Your settings | Discount | Shopper pays |
|---|---|---|
All products in the bundle | $30.00 + $7.50 + $4.50 = $42.00 | $238.00 |
All but the most expensive product | Tent (the most expensive) full price; $7.50 + $4.50 = $12.00 | $268.00 |
All products, Only the cheapest product ticked | Lamp only: $4.50 | $275.50 |
All products, at most $25 off per bundle | $42.00, capped at $25.00 | $255.00 |
All products, custom rate 0% on the Tent's collection | Tent full price; $7.50 + $4.50 = $12.00 | $268.00 |
All products, the 3+ tier set to $5 fixed amount | $5 off each product: $15.00 | $265.00 |
If the shopper unticks the Lamp, the bundle has two products and gets the 10% tier: $20.00 + $5.00 = $25.00 off with All products in the bundle.
Quantities
A bundle discounts the same number of units of each product in it: as many as the product with the fewest units in the cart. Extra units pay full price. For example, a cart with 1 tent and 12 gas canisters that are bought together gets the discount on the tent and on 1 canister. The other 11 canisters are not discounted. Max bundles per order caps how many bundles one cart can discount.
Combining with other discounts
The bundle discount combines with the discount types you tick under Combines with. Shopify also checks the other discount: it must allow combining with product discounts too, or Shopify applies only the better of the two.
On Shopify plans other than Plus, an item that already has another product discount can't also get the bundle discount on that same item.
Why isn't my discount applying?
Go down this list. The first item that matches is usually the reason.
- The discount is off. Check Enabled (Bundle discounts in the Shopify admin app).
- Shopify didn't get your last save. If you saw Saved, but Shopify didn't get the update yet, checkout still uses your previous settings. Save again. Saving again also turns the Bundle discount back on if it was switched off or deleted in Shopify's Discounts page.
- The products are not paired yet. Open the product on the Pairs tab. A partner marked Not live yet is not offered or discounted yet.
- The shopper added the products one by one. With the recommended When the discount applies option, only products added together with Add all to cart (or from a Save with bundle note at checkout, or the cart drawer's Complete the bundle row) get the discount.
- The bundle is smaller than your first tier. For example, a first tier of 3 products gives a pair nothing. Two variants of one product count as one product.
- The cart is below your minimum. Minimum cart subtotal counts the whole cart.
- The order already has its maximum number of bundles. See Max bundles per order.
- A product is excluded. Check Excluded products and Excluded collections. An excluded product never gets the discount and never counts toward a bundle.
- It is a subscription item. Subscription items never get the bundle discount.
- The item already has another product discount. On Shopify plans other than Plus, an item that already has another product discount can't also get the bundle discount on that same item.
- Another discount does not combine. Tick the matching box under Combines with, and allow combining on the other discount too.
- Your custom rate or caps leave the item at full price. A
0% custom rate, Discount at most N products, or All but the most expensive product can each leave an item undiscounted on purpose. See How a bundle is priced.
What bundles add (Results)
Credited numbers count every order that has a bundle in it. Some of those shoppers would have bought the same products anyway. To show what bundles really add, the app compares two groups of visitors on pages with pairs: those who see bundles, and 1 in 5 who don't.
Find the What bundles add card on the Results tab of Bundles in the PersonalizerAI dashboard, or on the Bundle discounts screen in the Shopify admin app. The card updates once a night.

The Results tab: what bundles add per 100 visitors, with a likely range, above the credited totals.
The card says | What it means |
|---|---|
Measuring what bundles add. We hide bundles from 1 in 5 visitors and compare. About N% of the way to a reliable number. | Collecting. There is not enough data for an honest range yet. Keep bundles running. |
Bundles added about $X per 100 visitors after discounts (likely $low–$high). | Positive. Visitors who see bundles bring in more revenue, after the bundle discounts are paid for. The range is where the true number most likely is. |
No measurable difference yet. Try a smaller discount, or 'Only when the shopper adds the bundle from the product page'. | Inconclusive. The range includes zero: bundles may help a little or cost a little. The card keeps updating as data comes in. |
Bundles cost more than they bring in: $X less per 100 visitors after discounts. | Negative. Your discounts cost more than the extra sales they bring. Try a smaller discount, a cap, or the recommended When the discount applies option. |
Measurement is off. Turn on 'Measure what bundles add' in the discount settings to see what bundles add, not just what they are credited with. | Off. Only the credited numbers below show. |
Why it takes 14 days or more
The card waits at least 14 days, and then until the range is tight enough to mean something. Bundles change revenue by a small amount per visitor, and order sizes vary a lot, so a reliable range needs many orders from the held-out visitors: at least about 60, even if every order were the same size. A small store can take months. The percentage on the card shows how far along it is. A visitor stays in the same group across visits, and only orders placed after the visitor first saw a page with pairs count. Only visitors who accepted analytics tracking are measured; the others are still split into the two groups, but not counted. Revenue is each order's total after discounts, and very large orders are capped so one big order can't swing the result.
Credited numbers
Under the result, the card lists three credited numbers over the same period as the result, or over the last 30 days when there is no result period yet:
- Orders with a bundle (credited, not all extra)
- Revenue from bundle items (credited, not all extra)
- Bundle discounts given
These count orders whose items were added from a bundle. They are not all extra revenue. Use the result above them to judge whether bundles pay off. See How we measure revenue.
Related pages
- Widget catalog — the bundle block's settings.
- Checkout & after purchase — the checkout upsells and savings notes.
- Models: product relationships — how Frequently Bought Together learns.
- How we measure revenue — credited revenue compared with what bundles add.