To choose products to bundle on Shopify, start with products that appear in the same processed orders—but do not turn the most common pair into a discount automatically. Co-purchase proves that a relationship exists. It does not prove that a discount caused the second purchase or that paying for that behavior will increase profit.
A better shortlist does three things in order: cleans the order evidence, rejects pairs that fail your economics or operations, and then decides whether each survivor belongs in a bundle, an upsell, or a no-discount recommendation.
⚡ ShopSideK Verdict
Use Shopify’s bought-together data to find candidates, not winners. The first product pair worth testing is the one that combines clean relationship evidence with room to improve attachment, enough contribution after the offer, compatible returns and replenishment, reliable component inventory, and a workable fulfillment path.
After a pair passes those checks, Kaching Bundles & Upsells can turn the selected products or variants into a Bundle Upsell or deal-bar upsell. It implements the offer; it does not choose the pair or prove that the offer creates incremental profit.
- Best for: Qualified cross-product pairs that need an on-page bundle or optional upsell
- Decision path: Bundle, upsell, merchandise without a discount, or reject
- Avoid: Discounting a popular pair solely because it already sells together
Start with Shopify order evidence, not a list of bundle ideas
If the report appears in your admin, go to Analytics → Reports and open Items bought together. Shopify says this report shows the most common product combinations in processed orders; it does not include products that sat together in a cart without reaching a processed order.
That difference matters. The report is evidence of completed joint purchases, not abandoned intent.
Shopify lets you view either Products bought together or Variants bought together. Start at product level to find broad relationships. Switch to variants when the combination depends on size, shade, flavor, device compatibility, subscription status, or component stock. A phone case and screen protector may make sense at product level, for example, while the wrong device variants make the actual offer unusable.
Shopify’s order-report documentation also says you can filter by the number of products or variants bought together. For a first pass, keep the analysis to pairs. Larger combinations create more possible explanations and more ways for one component to weaken the offer.
Use an order CSV when the report is unavailable or too limited
Shopify’s order export places multiple line items from an order on separate CSV rows. That gives you a fallback:
- Export one consistent period.
- Group rows by order name or order ID.
- Reduce each order to its distinct products or variants.
- Count how many orders contain each anchor-and-candidate pair.
- Count an order once for a pair, even when a customer bought two units of one item.
Use a period long enough to produce a useful comparison, but recent enough to reflect the catalog, prices, availability, and traffic you have now. There is no universal “enough orders” number. Fifty orders can be meaningful for a low-volume specialty store and useless for a high-volume catalog with hundreds of SKUs.
Clean the pair list before you rank it
Raw pair counts can be technically accurate and still lead to the wrong decision. Before comparing candidates, mark anything that changed why the products appeared together.
Look for:
- an existing bundle or automatic discount;
- a free-gift campaign;
- a post-purchase or cart upsell already pushing the companion product;
- a product preselected by default;
- an email or landing page that featured the pair;
- a stockout that suppressed one candidate;
- a launch, clearance period, or major price change;
- different sales channels with different merchandising or customer intent.
Suppose a travel pouch appeared beside a cleanser in 75 orders, but 68 came from a campaign that gave the pouch away. “75 pair orders” does not describe ordinary full-price demand. The clean evidence is seven orders, and the pair should not outrank a genuinely organic combination.
You do not always need to delete contaminated rows. Keep separate columns for raw pair orders and clean pair orders so you can see why the numbers changed.
Use a directional attach rate, not a universal cutoff
For each candidate, divide clean orders containing both products by comparable orders containing the anchor product. If a cleanser appeared in 1,000 comparable orders and 86 of those also contained an SPF, the directional anchor attach rate is 8.6%.
Call it directional because it has blind spots. It does not show how often shoppers saw the SPF, how many already owned one, or whether a different placement would change behavior. It is also not formal market-basket lift or statistical confidence. Use it to compare candidates inside the same store, not to claim that an 8.6% pair is universally strong or weak.
Apply three gates before scoring a product pair
A popular pair should not be allowed to outvote a broken offer. Give three conditions veto power.
Gate 1: Can a shopper understand why these products belong together?
Write the connection in one plain sentence:
The cleanser removes the day’s buildup, and the moisturizer completes the same evening routine.
That is a shopper reason. “The moisturizer has high margin” is a merchant reason, not a reason for a customer to buy both now.
Strong connections usually involve one task, routine, compatibility requirement, consumption window, recipient, or use occasion. Weak connections require several sentences of persuasion or rely entirely on clearing stock.
This gate does not mean every pair must be consumed simultaneously. An anchor and a useful add-on can still qualify for an upsell. It does mean the second product should make sense at the moment it is presented.
Gate 2: Does the proposed offer clear your contribution floor?
Do not judge the pair from combined selling price or AOV alone. Estimate what remains after the proposed discount, product costs, payment costs, expected returns, extra packaging, picking, and any shipping subsidy created by the combination.
Shopify’s analytics field reference includes gross profit and gross margin, but those figures depend on having COGS set correctly. Gross margin can be a starting point; it is not a substitute for costs Shopify does not contain or that your setup does not allocate accurately.
Set a minimum contribution requirement before you compare offers. A pair that misses that floor is not rescued by an attractive bundle price. If you need to assemble the cost inputs first, use the Shopify profit margin calculator and growth guide before deciding the discount.
Gate 3: Can inventory and operations support the promise?
A coherent product-page offer still fails if it cannot survive a normal week in your store.
Check:
- whether both components stay available at the same time;
- whether one component has a much shorter inventory runway;
- whether variants can be selected without compatibility mistakes;
- whether the pair changes package size, weight, breakage risk, or shipping cost;
- whether the warehouse can pick and identify both items cleanly;
- whether partial returns, exchanges, and subscription orders remain manageable.
Shopify’s product analytics documentation identifies sell-through rate and days of inventory remaining as available inventory views. Use them as current operating context, not permanent product scores. A pair that looks safe today can become a poor promotion when one component’s replenishment slips.
If a candidate fails this gate, fix the workflow or reject the offer. Do not assume the bundle app will fix component availability, packaging, or return policy for you.
Rank the survivors with the Bundle Candidate Shortlist System
After the three gates, score each remaining pair from 0 to 2 on seven factors. The total helps order candidates inside your store. It is not a universal approval threshold, and a high total never cancels a failed gate.
| Factor | 0 points | 1 point | 2 points |
|---|---|---|---|
| Evidence quality | Contaminated or too thin | Clean but limited or seasonal | Clean across comparable periods or segments |
| Incentive headroom | Already attaches strongly at full price | Uncertain | Logical pair with under-attachment or visible buying friction |
| Contribution cushion | Below your floor | Passes narrowly | Has room for normal cost variation |
| Return compatibility | Pair amplifies returns or exchanges | Manageable | Low and compatible return behavior |
| Use or replenishment cadence | Timing conflicts | Some overlap | Same task or consumption window |
| Inventory resilience | Frequent component stockout | Needs active monitoring | Healthy, aligned coverage |
| Fulfillment simplicity | Breaks the normal workflow | Adds manageable handling | Fits the current pick, pack, ship, and return flow |
The most important column is incentive headroom. A candidate can have excellent relationship evidence, margin, inventory, and fulfillment while scoring zero here because customers already buy it with the anchor at full price. That pair may deserve better placement, not a discount.
Map each pair to one of four actions
TEST AS BUNDLE when both products belong in one buying decision, the pair has room to improve, all gates pass, and the proposed price clears your floor.
TEST AS UPSELL when there is a clear anchor-and-add-on relationship, but the second product should remain an optional decision. This can suit a higher-priced accessory, a different replenishment cadence, or a product that needs a short explanation.
MERCHANDISE WITHOUT DISCOUNT when the relationship is already strong at full price. Put the products near each other, add a complementary recommendation, or improve navigation before subsidizing the purchase.
REJECT when the evidence is contaminated or too weak, the shopper connection is strained, or contribution, returns, inventory, variants, shipping, or fulfillment fail.
“Reject” applies to the proposed pair under the present conditions. It does not mean the product itself is bad. A candidate can return after a cleaner observation period, better stock coverage, new packaging, or a different offer role.
Worked example: five candidates for one cleanser
Consider a hypothetical skincare store with 1,000 processed orders containing its Daily Cleanser during a comparable 90-day period. The figures below are invented to demonstrate the method; they are not benchmarks.
| Candidate | Clean pair evidence | Deciding fact | Action |
|---|---|---|---|
| Daily Moisturizer | 248 orders; 24.8% directional attach | Strong full-price attachment leaves little obvious incentive headroom | MERCHANDISE WITHOUT DISCOUNT |
| Mineral SPF | 86 orders; 8.6% directional attach | Clean relationship, under-attachment, healthy contribution, aligned stock | TEST AS BUNDLE |
| Facial Oil | 42 orders; 4.2% directional attach | Credible add-on, but different price and usage cadence suit an optional decision | TEST AS UPSELL |
| Travel Pouch | 7 clean orders from 75 raw pair orders | A prior gift campaign created most observations | REJECT FOR NOW |
| Glass Massage Tool | 36 orders; 3.6% directional attach | Breakage and expected return costs put contribution below the store’s floor | REJECT |
The Daily Moisturizer is the most common clean pair. It still does not get the first discount test. Customers already attach it at full price, so the store would first improve the routine presentation and measure the no-discount recommendation.
Mineral SPF gets the first bundle test because several types of evidence agree. The pair serves a coherent routine, has observed but not saturated attachment, clears the store’s contribution floor, and can be stocked and fulfilled together. Its lower pair count is not automatically a weakness.
Facial Oil becomes an upsell rather than a bundle. It is relevant to some cleanser buyers, but making it an optional add-on avoids forcing a higher-priced, slower-cadence product into every routine.
The last two candidates also show why a total score is only a ranking aid. The pouch needs a clean observation window. The glass tool has genuine pair purchases, but its contribution and operations fail. Neither problem is solved by giving the pair more points elsewhere.
Methodology note: The report behavior and app capabilities in this guide come from the current Shopify and Kaching documentation linked above. The Bundle Candidate Shortlist System is ShopSideK’s editorial framework. The skincare dataset is hypothetical and does not represent measured results from a live store.
Choose the presentation after the pair passes
The shortlist selects the relationship and offer role. The implementation tool comes next.
For a no-discount companion, Shopify Search & Discovery may be enough. Shopify lets merchants manually choose complementary products, and its recommendation analytics can report engagement such as recommendation click and purchase rates. Those metrics help you monitor the placement, although they still do not prove causal lift by themselves.
For a qualified paid offer, Kaching can implement two relevant patterns:
- Its documented Bundle Upsell type lets you hand-pick different products or variants and set individual discounts.
- A deal-bar upsell can use a selected product or complementary products already configured in Shopify.
That is the correct boundary. Kaching can present and price the pair you choose. It does not discover a statistically valid pair, calculate your contribution floor, account for your return costs, or prove that the offer creates incremental profit.
Kaching is a fit when: your shortlisted pair has passed the shopper, contribution, and operations gates, and you want to turn it into a product-page bundle or deal-bar upsell.
Use a different route when: you only need a no-discount complementary recommendation, or the offer requires a bundle architecture and inventory workflow outside Kaching’s documented fit. The Shopify bundle apps guide can help with that broader app choice.
ShopSideK deal: 20% OFF for the first 3 months
Claim 20% OFF Kaching for your first 3 months →
If you prefer to bypass the ShopSideK form, you can also view Kaching on the Shopify App Store.
Run one controlled test before rolling the pair out
The shortlist earns a candidate the right to be tested. It does not declare a winner.
Write down four things before launch:
- Hypothesis: what friction or missed connection the offer should change.
- Primary business metric: contribution profit per eligible visitor or another contribution-based measure that reflects both uptake and economics.
- Guardrails: product conversion, return behavior, cancellation, stockouts, fulfillment problems, and customer-support issues you will not accept.
- Stop condition: the observation window or evidence standard you will use before making a decision.
Keep the pair, placement, audience, and campaign context stable enough to interpret the result. If you change the products, discount, page location, and traffic source at once, you will not know which decision to keep.
Do not call an offer successful because AOV rose. A deeper discount can lift AOV while reducing the amount left after variable costs. Likewise, a pair can lower conversion slightly and still produce more contribution per eligible visitor. Read conversion, AOV, revenue, and contribution together, then check the operational guardrails.
Frequently asked questions
How do I find products bought together in Shopify?
If it is available in your admin, open Analytics → Reports → Items bought together. The report covers combinations in processed orders and can switch between product and variant views. If you cannot use that report, export orders to CSV, group line items by order, and count distinct anchor-and-candidate pairs.
Should I use product or variant combinations?
Start with products when you need to identify the broad relationship. Use variants when size, shade, flavor, compatibility, subscription status, or stock changes whether the pair can be sold and fulfilled correctly.
How many orders are enough to choose a bundle pair?
There is no reliable universal count. Choose a consistent, comparable window; remove contaminated observations; and set a minimum evidence standard that fits your order volume and catalog size. Treat thin or highly seasonal evidence as uncertain rather than forcing a yes-or-no conclusion.
Does a high attach rate mean I should discount the pair?
No. A high full-price attach rate may mean customers already understand and buy the combination. Try better merchandising or a no-discount recommendation before paying for behavior that is already happening. A discount needs its own incremental and contribution case.
Can Kaching choose the best products to bundle?
Kaching can implement selected products or variants as a bundle upsell and can add a selected or Shopify complementary product to a deal bar. Its documentation does not replace pair analysis, cost inputs, return review, inventory planning, or an incremental test. Choose the pair first; use the app to execute the offer.
Pull one comparable order window and shortlist no more than five pairs. Clean the counts, apply the three gates, and give the first controlled test to the strongest candidate—not automatically to the pair that is already most popular.


