StrategyBundlesBetter BundlesAI11 min read

Shopify AI bundle ideas from co-purchase data: pre-draft, QA, then push

How to turn Shopify co-purchase and order signals into AI-suggested product bundles — save app-only pre-drafts, QA margin and inventory, then push only the packs that clear your merchandising bar.

Jeshua Leger

Founder, Leger Studio ·

Most stores already know which products sell together — they just find out late, from a spreadsheet export or a support ticket about a gift set that sold out. Co-purchase and order signals are earlier: they show which SKUs ride in the same carts *before* you invent a kit name. The failure mode is treating those signals as an auto-publish button. An AI suggestion is a merchandising hypothesis, not a live offer.

This guide is for Shopify merchants who want a durable workflow from co-purchase → idea → app-only pre-draft → priced, stocked pack — without flooding the catalog with weak combinations. It sits beside the offer mechanics in Shopify fixed-price product packs, the checkout math in Shopify Functions bundle discount allocation, and the stock rules in Shopify kit inventory sync. Those posts assume you already know *what* to bundle; this one is about how you discover and stage candidates safely.

Note: Better Bundles generates ideas from real co-purchase and order signals on every plan (limited AI on free Basic; 30 / 100 / unlimited monthly recommendations on Starter / Growth / Pro). Save as an app-only pre-draft that does not sync to Shopify, or push when you are ready. Live on the App Store with Basic free forever and a 15-day trial on paid plans — start at Create your first bundle.

What co-purchase signals actually mean

Co-purchase is not “these two products are related in your mind.” It is “customers who bought A also bought B in the same order (or a tight sequence of orders), often enough that chance is a weak explanation.” Useful signals usually look like:

  • Attach pairs — a hero SKU that frequently travels with a complementary accessory, refill, or care item.
  • Routine clusters — three or more SKUs that appear together in “complete the set” carts (cleanser + serum + moisturizer).
  • Gift-adjacent pairs — a paid product that often sits next to a low-cost add-on that could become a free-item gift instead of a second paid line (GWP playbook).
  • Repurchase companions — items that reappear together on subscription-heavy or replenishment orders, not just one-off launches.

What co-purchase is *not*: proof that a fixed $79 kit will clear margin, that inventory can assemble the pack at your shipping location, or that the pair will convert on a PDP better than a cart upsell. Those are merchandising and ops questions. Treat the model as a ranking of *candidates to test*, not as a catalog editor.

Tip: Write the question you want answered before you generate. Example: “Which unpaid companions attach to our top 20 SKUs?” is a better prompt than “give me bundles.” Better Bundles still reads your order data — your filter is what you keep after generation.

Generate ideas ≠ publish packs

Stores that burn AI allowance usually collapse three steps into one click: generate → create product → advertise. That creates three predictable problems:

  • Active-bundle seat pressure — every pushed pack consumes merchandising attention and, on Basic, one of only three active seats.
  • Inventory ghosts — a suggested combo looks fine until the shortest component cannot cover the pack quantity you implied in creative.
  • Reporting noise — packs that never sell still appear in collections, search, and your own bundle reports, so you cannot tell which offers earned their keep.

The antidote is an explicit stage gate: *ideas live in the app until a human says they clear the bar.* That is what app-only pre-drafts are for — editable candidates that do not sync to Shopify and do not spend an active-bundle seat until you push. Manual creation is still fine for offers you already know (first offer walkthrough); AI generation is for expanding the candidate list without committing the storefront.

The pre-draft → edit → push workflow

A practical loop that matches how Better Bundles is built:

  1. Generate from Home or Bundles when you have a question (attach pairs for a hero launch, kits for a seasonal drop, companions for a slow mover).
  2. Save promising ideas as app-only pre-drafts — edit title, components, quantities, and pricing *before* anything exists as a Shopify product.
  3. Run the QA bar below (margin, shortest component, allocation mode, cannibalization).
  4. Push only the drafts that pass; leave the rest as pre-drafts or discard them.
  5. Wire PDP / collection / ads only after a paid test order proves checkout total, line discounts, and pickable SKUs.

Pushing is the commit. Until then, the storefront stays clean: no mystery kit products in search, no half-finished packs in collections, no discount Functions firing on offers you have not approved. Docs for the click-path after you decide to publish: Getting started and Create your first bundle.

Important: Do not advertise a pack that only exists as a pre-draft. Pre-drafts are app-only until you push — customers cannot buy what Shopify has not received.

Stretch monthly AI allowance without wasting generations

AI recommendations are metered by plan. Matching Better Bundles pricing:

  • Basic (free forever) — limited AI usage; enough to learn the workflow on a few heroes, not to spray the whole catalog.
  • Starter ($17/month) — up to 30 recommendations per month.
  • Growth ($37/month) — up to 100 recommendations per month.
  • Pro ($77/month) — unlimited recommendations, plus the rest of the high-volume feature set.

Operating tips so allowance goes to decisions, not curiosity:

  • Batch by intent — one generation pass for “attach to top sellers,” another later for “rescue slow companions,” instead of regenerating the same question daily.
  • Prefer pre-drafts over re-rolls — edit a near-miss (swap a component, change qty) rather than spending another recommendation on a slight variation.
  • Cap in-flight drafts — five open pre-drafts with owners and due dates beats twenty orphans nobody will QA.
  • Upgrade when the bottleneck is generation count, not idea quality — if you already reject most suggestions on margin/stock, more AI will not fix merchandising judgment.

Paid plans include a 15-day trial billed through Shopify. Basic stays free with no subscription if three active packs and limited AI are enough while you prove the workflow.

The QA bar before anything hits Shopify

Use the same bar for AI drafts and hand-built packs. A candidate fails if any line is a no:

  • Contribution margin — pack price (or percent/amount-off outcome) still clears payment fees and expected returns after component cost.
  • Shortest component — sellable pack qty from real component stock is enough for the launch window; no second fake kit inventory pool (kit inventory sync).
  • Allocation story — free-item vs spread matches how you will explain the offer on the order (discount modes); GWP-shaped ideas should not silently become spread kits.
  • Cannibalization — the pack is not only a few dollars under buying separately with no attach or AOV upside (AOV tactics).
  • Ops readability — fulfillment sees real component SKUs, not a mystery line; 3PL or retail pick paths can assemble the set.
  • Support script — one sentence for “what’s in the pack” and one for “how returns work” before you buy traffic.
Tip: Score drafts pass / revise / kill in the same meeting where you generate. Pre-drafts that sit for a month without a decision are usually polite ways of saying no — archive them and free attention.

Turn a recommendation into a priced, stocked pack

Once a pre-draft passes QA, convert it with the same architecture as any native-style pack:

  1. Lock pricing mode — fixed shelf price for kits you will advertise as a round number; percent or amount off for promo-shaped companions; free-item when the signal was gift-adjacent.
  2. Preview allocated line discounts in cents so checkout math will sum to natural − pack savings (Functions allocation guide).
  3. Confirm inventory sync will derive pack availability from components — recalculate after any manual stock change (inventory docs).
  4. Push to Shopify so the pack becomes a real product (PDP, collections, search) with Functions applying discounts at checkout — no theme scripts (why scripts fail).
  5. Place a paid test order: discounts sum cleanly, SKUs match the pick list, quantity 2× and mixed carts with solo components do not leak the pack discount.

If the AI suggestion was “serum + moisturizer often together,” you still choose whether that becomes a fixed $64 duo, a 15% companion pack, or a “buy serum, moisturizer free under $X” GWP. The signal ranked the pair; you choose the commercial contract. Compare native vs scripted approaches on Better Bundles vs theme-script bundle apps if you are migrating off cart widgets.

When to ignore the model

Healthy skepticism is part of the workflow. Common false positives:

  • Promo pollution — a flash sale or free-gift weekend that temporarily glued unrelated SKUs together (same class of noise multi-location ops fight with velocity windows).
  • Wholesale or B2B carts — large mixed orders that do not represent DTC attach behavior.
  • Launch spikes — a new SKU that co-purchased with everything in week one because it was in every email, then faded.
  • Substitutes mistaken for companions — two sizes or two colors of the same hero that appear together in returns/exchanges more than in intentional kits.
  • Unfulfillable fantasy — the pair sells in carts, but one component is dropship-only or location-locked so a kit cannot ship from your primary node.

Document *why* you killed a draft. Next month’s generation pass is more useful when humans remember “ignore pairs driven only by the May GWP” instead of regenerating the same dead ends. Multi-location brands should also ask whether components sit where they need to ship from — pack discovery does not fix warehouse imbalance; that is a separate ops problem (FlowOps is in development for transfer recommendations; until launch, use native Shopify transfers and multi-location inventory transfers).

Measure whether AI-assisted packs earned their seat

After push, judge the pack like any other offer — not by how clever the suggestion looked:

  • Units sold and discount given on the pack (export on Pro when you need CSV depth) — see Reports & sales analytics.
  • AOV and units per order on orders that include the pack vs baseline.
  • Attach of components sold solo — did the pack train customers into the set, or only discount people who would have bought both anyway?
  • Support tickets about contents, price mismatch, or stockouts — early signal that QA was skipped.
  • Active-seat ROI on Basic — with only three live packs, replace the weakest AI-sourced pack if a clearer manual kit outperforms it.
Note: Tag packs in your merchandising brief as “AI-sourced” vs “merchant-designed” for 30 days. You are not grading the model for sport — you are learning which signal classes (attach pairs vs routine clusters) convert in *your* catalog.

A weekly rhythm that does not flood the catalog

Cadence beats binge generation. A lightweight weekly loop:

  1. Monday — one generation pass aimed at a single question (e.g. companions for the week’s paid traffic hero).
  2. Same day — triage to pass / revise / kill; save only pass and revise as pre-drafts.
  3. Mid-week — finish pricing and inventory QA on at most one or two drafts; push zero or one.
  4. After first paid orders — review reports; keep, retitle, or unpublish within two weeks so weak packs do not linger.
  5. Month-end — count recommendations used vs packs that cleared a sales or learning goal; adjust plan tier only if generation count was the real bottleneck.

This is the opposite of doorway content thinking applied to products: you do not need twenty near-duplicate kits for every keyword-shaped title. You need a few honest packs that checkout, inventory, and ads can defend. Psychology and price framing still matter once the candidate is real — see bundle pricing psychology — but they come *after* the pre-draft survives QA.

Start with one signal, one pre-draft, one push

Better Bundles is built for this loop: co-purchase-informed AI ideas on every plan, app-only pre-drafts that stay off Shopify until you push, native-style pack products, Functions-based checkout discounts, and inventory that follows components. Basic is free forever (up to 3 active bundles, limited AI). Starter, Growth, and Pro are $17 / $37 / $77 per month with 30 / 100 / unlimited monthly AI recommendations and a 15-day trial.

Install from apps.shopify.com/better-bundles, generate one idea from a hero SKU you already understand, save it as a pre-draft, run the QA bar, then push only if margin and cover clear. Use discount modes and inventory sync when you convert the draft into a live pack. If the blocker is multi-location stock position rather than “what to bundle,” follow FlowOps for launch updates while you keep transferring with native Shopify tools.

Tip: This week’s success metric is not “number of AI generations.” It is one pre-draft that either dies for a documented reason or ships with a clean test order. That is how co-purchase data becomes revenue instead of catalog clutter.

Newsletter

Want the next one in your inbox?

Subscribe for new posts, app releases, and Better Bundles updates.

Product updates, release notes, and new posts. Unsubscribe anytime. Privacy

Ready to grow your average order value?

Create your first native-style bundle and see the discount at checkout. Start free on Basic — paid plans include a 15-day trial.