Export your orders, keep only the order number, product and quantity, and count how often each pair of products appears in the same order. AI can do the counting in minutes. Take the three pairs with the strongest lift, price each as a bundle, test them on product pages in alternate weeks for eight weeks and compare average order value.
The trap is picking pairs by volume alone. Your two best sellers will appear together often simply because everybody buys them. Lift, a number explained below, separates pairs that are genuinely linked from pairs that merely share popularity. A pair with high lift and modest volume is usually the better bundle.
The shop used in this walk-through
The figures below are illustrative. Picture a small online shop selling coffee equipment and supplies: grinders, brewers, filters, scales, descaler and beans. It takes about 300 orders a month. Over the last six months that is 1,800 orders, containing 3,100 line items, with an average order value of $52.40. About one order in three has more than one product, which is typical of a catalogue with consumables.
The owner wants to know three things. Which products already travel together without any prompting? Which of those pairs would make a sensible bundle? And will a bundle raise average order value enough to cover the discount? Each question gets its own stage below, and the whole job takes an afternoon plus an eight-week test.
Export the orders and strip the personal details
In Shopify, orders export from the Orders page as a CSV. Shopify's help page says exports of up to 50 orders download straight away, while larger ones, and any export by date, are emailed to you and the store owner, so ask for a date range and wait for the email. Other platforms differ, but all can produce a file with one row per order line.
That file is one row per line item: the order details appear on the first row of each order and extra items sit on following rows with many order-level cells left blank. The file also holds customer names, emails and addresses. You need none of those. Open it in a spreadsheet and delete every column except these four, which Shopify labels Name (the order number), Lineitem name, Lineitem SKU and Lineitem quantity. Keep Lineitem price as well if you plan to price bundles from the same file.
Deleting the columns is not optional if you plan to give the file to an AI assistant. Customer data should not leave your control for a task that does not need it. After deleting, fill the order number down so every row carries its own order number (the blank cells are what break pair counts), then sort by order number. A quick check: the number of distinct order numbers should match the number of orders in your export range.
If you want more help with messy exports, the older tutorial on cleaning messy data covers filling blanks and fixing product names that differ by a stray space.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowCount the pairs: the prompt and what comes back
Pair counting means: for every order with two or more different products, list every pair, then count how many orders contain each pair. Doing it by hand in a spreadsheet takes a pivot table and care. An AI assistant that can run code on an uploaded file does it in one request: ChatGPT's data analysis (limited on the Free plan), or Claude with its Code execution and file creation setting switched on, which Anthropic lists on every plan. The prompt that works:
The attached CSV has one row per order line: order_id, sku, product, quantity, price. Treat each distinct SKU in an order once, ignoring quantity.
1. Count total orders and orders containing 2+ distinct SKUs.
2. For every pair of SKUs that appear in the same order, count the orders containing both (pair_orders).
3. For each pair, also give orders_with_A, orders_with_B, then compute:
support = pair_orders / total_orders
confidence A to B = pair_orders / orders_with_A
lift = support / ((orders_with_A / total_orders) * (orders_with_B / total_orders))
4. Show the 15 pairs with pair_orders at least 10, sorted by lift, as a table.
5. Say how many pairs were excluded for having fewer than 10 orders.
Do not guess; if the file is ambiguous, tell me what you assumed.
Ask for the exclusion count in step 5 on purpose: it tells you how much of the long tail you are ignoring. Then check the totals yourself. Count the orders in the file with a pivot table, and compare it with what the assistant states in step 1. If the numbers differ, the file's order numbers are not filled down properly, and every later number is wrong.
A sample of the kind of table that comes back, with illustrative numbers from the coffee shop:
| Pair | Orders with both | Orders with A | Orders with B | Confidence A to B | Lift |
|---|---|---|---|---|---|
| Burr grinder + grinder cleaning tablets | 38 | 210 | 64 | 18.1% | 5.1 |
| Pour-over dripper + paper filters (100) | 96 | 420 | 300 | 22.9% | 1.4 |
| Brew scale + gooseneck kettle | 41 | 180 | 150 | 22.8% | 2.7 |
| Espresso machine + descaler | 29 | 110 | 95 | 26.4% | 5.0 |
| House blend beans + pour-over dripper | 52 | 390 | 420 | 13.3% | 0.6 |
Work through the second row to see how lift is computed. Support is 96 / 1,800 = 5.3% of all orders. Pour-over drippers appear in 420 / 1,800 = 23.3% of orders and filters in 300 / 1,800 = 16.7%. If the two were unrelated, you would expect them together in 23.3% x 16.7% = 3.9% of orders. The actual figure of 5.3% is 1.4 times that, so lift is 1.4: a mild link. A lift of 1 means no relationship. Below 1 (the last row) means the two appear together less than chance would suggest, perhaps because customers choose one or the other.
Why volume misleads: reading the table
The pour-over dripper and filters pair has the highest raw count at 96 orders, but its lift is only 1.4. Filters sell in every kind of order, so they appear next to everything. The grinder and cleaning tablets pair has just 38 orders but a lift of 5.1: when a customer buys a grinder, tablets are five times more likely to be in the same basket than chance would predict. That pair reflects a real need, not a popularity coincidence.
That does not mean the dripper and filters pair is useless. A high-volume mild link can still make a good bundle because many customers see it, and a high-lift low-volume pair helps only a few. Use a rough rule of thumb: pick one high-volume pair, one high-lift pair and one pair that adds a second product to your most expensive item. Three bundles are enough to test, and any more splits your traffic too thin to read results.
The last row shows a warning. House blend beans and the dripper appear together in 52 orders, a decent count, but lift is 0.6. Both are best sellers, and they sit together less often than chance. Do not bundle them. A common story behind a result like this: people who buy beans are repeat buyers who already own a dripper, and people buying a dripper are new customers who have not yet chosen beans.
Pick three bundles with a scoring rule
To avoid arguing with yourself, score each candidate pair. A simple version, out of 12, with four tests worth up to three points each:
- Pair evidence: 3 points for lift above 3 with at least 20 orders; 2 for lift 1.5 to 3; 1 for lift 1 to 1.5 with high volume; 0 below.
- Natural fit: 3 points if a customer could explain in a sentence why they go together ("to clean the grinder you bought"); 0 if the link is only statistical.
- Margin room: 3 points if combined gross margin after a 10% discount stays above your floor; 0 if it does not.
- Stock depth: 3 points if both products can be restocked in under two weeks; 0 if either is a long-lead item.
Ask the assistant to fill in the evidence column from your table, and fill the other three yourself, because it does not know your margins or suppliers. In the coffee shop, the three winners were the grinder and tablets (lift 5.1, a clean explanation), the brew scale and kettle (lift 2.7, a "pour-over starter" idea) and the dripper and filters (high volume, easy to understand). The espresso machine and descaler pair had good lift but only 29 orders and the machine is a long-lead item, so it was held for a later round.
Price the bundles so the discount pays for itself
A discount costs margin on every bundle sold. It is only worth it if it adds enough to the basket to cover that. Work out the break-even before you set a price. Illustrative figures for the first bundle: the grinder sells at $120, the tablets at $14 with a $5 cost, so each tablet pack earns $9 gross margin.
Your table already tells you how many grinder buyers add tablets without any bundle: 18.1%, call it 18 in every 100 grinder orders. Those 18 would take any discount you offer, so the discount is pure giveaway on them. The other 82 buy no tablets today. Say the bundle takes $6 off the tablets. The giveaway on the 18 is 18 x $6 = $108. Each of the 82 who newly adds tablets earns $9 - $6 = $3 net, so you would need 36 of the 82 (44%) to take the bundle just to break even. That is an unlikely take rate, and the $6 discount loses money.
Now cut the discount to $2 and price the bundle at $132 against $134 separately. The giveaway on the 18 is $36. Each new taker earns $9 - $2 = $7, so ten of the 82 add $70, and the net is +$34 per 100 grinder orders. A smaller discount wins here because most of the benefit comes from the extra item, not from the price cut. Other ways to make the offer attractive without cutting price are free tablets added at checkout, or a "starter care kit" with an extra such as a brush that costs $1.50 and is not sold separately. Run this sum for each of your three bundles. If a pair already has a high confidence (say 40% of one product's orders include the other), most buyers would have bought both anyway, so prefer a different pair or a very small discount.
Put the bundles on product pages
Where the bundle appears matters as much as the price. Three placements work for a small shop, and you can use different ones for the three bundles to learn which suits your traffic:
- A line under the add-to-cart button on the main product's page: "Add the cleaning tablets and save $2".
- A bundle product with its own page and photo, linked from the main product page and the collection.
- A cart-stage suggestion: when the main product is in the cart, offer the partner as a one-click add.
Shopify's help says you need a bundles app installed to create bundles. Its own Shopify Bundles app is free on all plans, takes up to 30 products in a fixed bundle and works with discount codes and automatic discounts, which is more than enough for three bundles. If you do not use an app, a simple discount code that applies automatically when both products are in the cart does the job. Whatever you pick, make the saving visible in numbers on the page, not "bundle and save".
Ask the assistant to draft the page text, then edit it. A prompt:
Write 40 words of product-page text for a bundle: [grinder name] plus [tablets name], sold together at $132 instead of $134. Say plainly why they go together (tablets clean the burrs to keep flavour consistent), what is included, and how often to use the tablets. No hype words, no exclamation marks, no claims I have not given you.
A typical output reads: "Keep your grinder tasting as good as day one. This set pairs the burr grinder with a 30-tablet pack that clears old coffee oils from the burrs. Use one tablet every two weeks. Together $132, $2 less than buying them separately." Check the claim in the last sentence against your prices and the usage instruction against the manufacturer's guidance before you publish, because an AI will write a confident cleaning interval that is not what the maker recommends.
For the email side of cross-selling, the tutorial on building an upsell and cross-sell email sequence shows how to send the same pairs to past buyers, and the gift-shop example in bundles and follow-ups for a gift shop is a useful comparison for a shop whose bundles are seasonal.
Measure average order value without fooling yourself
Average order value (AOV) is revenue divided by number of orders. Record it for the four weeks before the test: in the coffee shop that is $52.40 on 300 orders. Then run the bundles and compute AOV week by week. Raw before-and-after comparison is weak, because seasons, sales and ad spend all move AOV. Two steps make it fairer:
- Alternate the weeks. Few small shops have a tool that splits visitors fairly, so switch the placement on and off in alternate weeks over eight weeks (weeks one, three, five and seven on, the others off) and compare on-weeks with off-weeks.
- Track bundle metrics beyond AOV: bundle take rate (bundles sold divided by main-product orders), gross margin per order, and return rate on bundles.
With only about 300 orders a month, a test will only detect a large change. A rise from $52.40 to $54.00 is inside the normal wobble month to month. A rise to $58 across both on-weeks would be worth believing. If your result sits in the grey zone, extend the test another four weeks rather than declaring victory. The guide to which analytics tool to start with helps if you are not sure where to read AOV from.
When the numbers arrive, ask the assistant to help read them, but give it the raw weekly figures, not a summary:
Weekly figures for 8 weeks. Weeks 1,3,5,7 bundles ON; 2,4,6,8 OFF. Columns: week, orders, revenue, bundle_orders, gross_margin. Compute AOV and margin per order for ON weeks versus OFF weeks, the bundle take rate, and tell me whether the difference is bigger than the week-to-week variation within each group. If you cannot tell from 8 data points, say so.
The last sentence matters. A good assistant will tell you eight points are too few to be sure; a poor one will announce a winner.
What went wrong when a shop bundled its two best sellers
Here is the sort of mistake that shows up. A shop with strong candle sales noticed that its two best sellers were bought together in 80 orders, the highest pair count in its file, and bundled them at a 15% discount. Average order value rose by four dollars in the first fortnight, and the owner was pleased. Then the margin report arrived: gross profit per order had fallen, because most customers who took the bundle would have bought both anyway, and the 15% came straight off an item that already sold well. The pair had a lift of 1.1, so the link was popularity, not need.
The fix was in the order of the work. The shop re-ran the count with lift, found two weaker-volume pairs with lifts above 3 (a candle and its matching snuffer, a diffuser and its refill oil), and tried those at 5% off. Those bundles added items customers had not been buying, rather than discounting items they already did. The lesson to take: judge a bundle by margin per order and by what customers added, never by AOV alone.
A cross-sell prompt for the product page you leave alone
Not every pair deserves a bundle. Some are better as a quiet line of text on the page: "Customers often add...". You can use pair data for that without discounting anything, and it costs only the edit. Ask the assistant to draft one-sentence suggestions for each of the top-lift pairs that you did not bundle, and have it say which fact in your data supports each. A sample output for the espresso machine and descaler pair might be "Most espresso machines need descaling every few months; our descaler is sized for 10 treatments", and you then check that the "few months" figure matches the machine maker's manual before using it. This is the cheapest cross-selling you can do, and it often lifts attach rates enough that a discount is unnecessary.
If the same pairs fit an automated recommendation block, the comparison in AI product recommendation options shows when a paid tool is worth buying instead of hand-picking three bundles. For a small catalogue, hand-picking usually wins until you have several thousand orders a month.
Repeat the count every quarter
Pairs change as your catalogue does. A new product has no history; a seasonal item distorts the count in its season; a stock-out removes a pair for a month. Re-run the same prompt each quarter on a fresh export and keep the table, so you can see whether last quarter's bundles shifted the pattern. A pair that you bundled will often show a higher confidence afterwards, which is the point, but it also means the pair no longer reveals a natural link and may deserve retiring in favour of a fresh one. Keep the three-bundle limit, retire the weakest each quarter and promote the next best from the table.
Questions about bundles built from order data
How many orders do I need to find real pairs?
A few hundred orders with more than one item gives usable pairs; a thousand is comfortable. With fewer, treat any pair seen under ten times as a hunch to test, not a pattern. A pair of two popular products looks strong by sheer volume, which is why you also check lift, explained below.
Can I upload my order export to ChatGPT or Claude?
Only after you remove names, emails, phone numbers and addresses. Keep order number, product name, SKU, quantity and price. Check your assistant's data settings first, and prefer a business plan if you use one regularly. If in doubt, count pairs in a spreadsheet instead.
Should the bundle always be cheaper than buying separately?
Not always. A modest discount of 5 to 15 percent is typical, but a bundle can also win by convenience, such as a matched set sold as one item. Test a small discount against a fixed-price bundle and compare average order value and margin, not just conversion.
How long should I run a bundle test?
If you alternate on-weeks and off-weeks, run it for at least eight weeks, so each version gets four full weeks and several hundred product-page visits. A shorter run mostly measures the weather. Do not change prices or promotions elsewhere in the test window, or you will not know what caused the result.
Further reads
- AI Product Recommendations on Shopify: Built-In vs Paid Apps — Built-in versus paid recommendation apps on Shopify.
- AI Tools for Ecommerce Websites: What a 50-Orders-a-Month Store Needs — Which AI tools a small store needs first.
- How to Set Up AI Abandoned Cart Emails for a Small Online Store — Recover the baskets your bundles do not convert.
- Can a Small Online Shop Use AI to Compete With Bigger Brands? — More ways a small shop can use AI against larger rivals.
- How to Use Shopify Sidekick to Run Your Store Faster — See what Shopify's own assistant can do with store data.
- How Much Does It Cost to Add AI to a Shopify Store? — Budget the tools before you buy any.
- Party Supply Store Marketing Ideas: Seasonal Bundles With AI — Eight seasonal peaks, bundles built from whole packs for 8, 12 and 20 guests, margin sums and a countdown of posts that ChatGPT drafts from your sheet.
- AI Online Shopping Solutions for a Small Store: Chat, Quiz or Search? — Compare AI chat, recommendation quizzes, and smart search for small stores, with costs, decision rules, and a 20-question test.
- Ecommerce SMS Marketing: Draft With AI, Then Check Consent Rules — Draft store texts with AI, then run a consent, timing, opt-out and length check, with pointers to TCPA and PECR (not legal advice).
- Product Bundle Pricing: Set a Discount That Still Clears Your Margin — A worked margin sheet for a six-item bundle: costs, card fees, shipping, a discount ladder and how to test it against single-item orders.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Shopify Help Centre pages on exporting orders, bundles and the Shopify Bundles app; ChatGPT pricing page and Anthropic help centre on file analysis; order-pair measures (support, confidence, lift) are standard market-basket terms. All store figures are illustrative.