Carryup
← Back to blog
ShopifyBundlesMerchandisingAOV

Product Bundles on Shopify: Native Options, Apps, and When to Go Custom (2026)

DDeepak Singh··14 min read
Product Bundles on Shopify: Native Options, Apps, and When to Go Custom (2026)

Every merchant asks for bundles for the same reason: it looks like free AOV. Combine three products customers already buy together, knock a bit off the combined price, and watch the average order climb without touching acquisition spend. The mechanics behind that simple idea, though, are not simple at all. A "bundle" on Shopify can mean three structurally different things, each with its own inventory behavior, discount math, and app requirements, and picking the wrong one is how stores end up overselling components, breaking discount codes, or shipping a feature that looks fine in the admin and falls apart at checkout. This is a practical guide to what actually ships bundles correctly on Shopify in 2026: what Shopify's own Bundles app does and doesn't cover, which third-party apps solve which specific gap, how inventory has to be wired at the component level to avoid oversells, and where the honest line sits between "install an app" and "write a Cart Transform function."

Bundling is a real lever, but the specific numbers floating around aren't

Bundling works for reasons that hold up without needing a headline statistic: it raises perceived value by presenting a bigger total for a smaller effective price per unit, it moves slower-turning SKUs by attaching them to bestsellers, and it reduces decision fatigue by pre-assembling a "starter kit" so the customer doesn't have to build one item by item. Those are structural effects, not tricks, and they're the reason nearly every consumer brand on Shopify eventually adds some form of bundling to its merchandising.

Where you should be skeptical is the specific percentage. Search "bundle AOV lift statistics" and you'll find dozens of blog posts citing numbers like a 55% AOV lift or a McKinsey claim that bundling boosts sales 20% and profit 30%. Chase most of these back to a primary source and you can't — they circulate between marketing blogs (often written to sell a bundling app) citing each other rather than a study you can actually read. That doesn't mean bundling doesn't move AOV; directionally it clearly does, and it's one of the more reliable merchandising levers available. It means you shouldn't build a business case on a number you can't defend if someone asks where it came from. Measure your own lift with a proper before/after or holdout comparison once bundles are live, rather than importing someone else's unsourced figure into a deck.

Three different things get called "bundles," and they work nothing alike

The word "bundle" covers at least three distinct mechanics, and confusing them is the single most common reason a bundle project runs over scope. A fixed bundle is a pre-set combination — a skincare trio, a starter kit, a multipack of the same item — sold as one unit at one price. The merchant decides the contents; the customer just buys the bundle. This is the simplest case technically, because the set of components never changes.

Mix-and-match (sometimes called "build your own" or "curate your own") lets the customer choose which items fill a bundle from a defined pool — pick any 3 of 8 flavors for a subscription box, or any 4 skincare items from a category for a fixed bundle price. This is meaningfully harder: the storefront needs a picker UI, the pricing logic has to handle any valid combination, and inventory has to track every possible component independently rather than one static set.

Frequently-bought-together (FBT) bundles are a different animal entirely — they're a cross-sell mechanic, not a product structure. The store shows complementary items alongside a product the customer is already viewing, with a combined price and a single "add all to cart" action, but the items usually remain separate line items rather than being merged into one bundle SKU. FBT is about surfacing a relevant combination at the right moment, not about creating a permanent bundled product. Because the mechanics differ this much, the app or native tooling that handles one type frequently doesn't handle the other two, which is exactly where merchants get tripped up expecting one install to cover everything.

What Shopify's own Bundles app actually does

Shopify ships its own first-party Bundles app, built and maintained by Shopify rather than a third party, and it's free on every plan — there's no Plus requirement to use it. It handles the fixed-bundle case well: you pick a set of existing products or variants in the admin, Shopify creates a parent bundle product, and when a customer buys it, the app deducts inventory from each underlying component in real time. That component-level deduction is the part that matters most and is genuinely native — you're not maintaining a separate bundle SKU with its own disconnected stock count.

The app also handles multipacks (the same product sold in different pack sizes) through the same mechanism. Discounting is handled centrally too: when you set a bundle price below the sum of its parts, Shopify calculates the discount on the bundle, then allocates it back down to the component line items by weighted price for tax and refund purposes — so a component that represents 80% of the bundle's value absorbs roughly 80% of the discount, and each component's tax is still calculated correctly on its allocated share rather than on the bundle as a lump sum.

The limits are real and worth knowing before you scope a project around this app alone. It only supports fixed bundles and multipacks — there is no mix-and-match or build-your-own capability in the native app; that requires a third-party app or custom Cart Transform logic. Bundles are also restricted to the Online Store and Headless storefronts, so they don't currently work through Shopify POS or other sales channels, which matters if you sell in retail alongside online. Stores using legacy checkout.liquid customizations are incompatible and need an upgraded checkout first. And for multi-location merchants, inventory availability is calculated from stock summed across all locations rather than per location, which means a bundle can show as available in aggregate even when the specific warehouse fulfilling that order is actually out of a component — a real oversell risk for anyone running more than one fulfillment location.

When you actually need a third-party app instead

The moment a merchant needs mix-and-match selection, cross-sell-style frequently-bought-together widgets, POS-compatible bundles, or bundle logic that needs to survive alongside other checkout customizations, the native app stops being sufficient and it's time to look at the app store. A few names come up repeatedly for real, distinct reasons rather than interchangeably.

Bold Bundles (from Bold Commerce, one of the longer-running Shopify app vendors) is a long-standing bundle builder aimed at merchants who want a configurable bundle-and-discount product without touching code — it's been through several iterations and has a large install base, reflected in hundreds of app store reviews. Zoorix: Bundles & Cross Sell covers a wider spread of offer types in one app — bundle offers, frequently-bought-together widgets, mix-and-match, buy-x-get-y, and volume discounts — which makes it a reasonable pick for stores that want one tool instead of stacking several single-purpose apps. PickyStory (marketed as "Bundles & Upsell" / "Amplify") leans into combining bundling with broader upsell merchandising and has a large, actively reviewed install base, though like any app with heavy write access to cart and checkout, it's worth reading recent reviews before committing, since merchants have reported real incidents of bundle data being disrupted during high-traffic launches. Rebuy Personalization Engine sits a level above pure bundling — it's a personalization platform spanning search, cart, checkout, and post-purchase offers, and its bundle-adjacent value is less about building fixed kits and more about serving the right cross-sell or post-purchase upsell to the right customer using purchase history and AI-driven rules, which makes it a better fit for FBT-style cross-selling than for structured multipacks.

The honest way to choose isn't "which app has the best marketing page" but which bundle type you actually need solved, since fixed-bundle tooling, mix-and-match builders, and cross-sell/personalization engines are genuinely different product categories that happen to share the word "bundle" in their app store listings.

The inventory problem is where bundle projects actually fail

Almost every bundle horror story — a customer orders a bundle that shows in stock, and the store has to cancel or delay because one component was actually out — comes down to the same root cause: the bundle wasn't tracking stock at the component level, it was tracking stock as if the bundle were its own independent SKU. If a bundle has its own inventory count that isn't mathematically tied to the products inside it, that count drifts out of sync the moment either the bundle or any component sells individually elsewhere, and the storefront keeps showing "in stock" on a combination that can't actually be fulfilled.

The correct pattern, which is what Shopify's native Bundles app and any competent third-party app both aim for, is that the bundle has no independent stock of its own — its availability is a live calculation: it can be sold as long as every component still has stock, and buying it deducts one unit from every component's real inventory the moment the order is placed. Done right, a bundle and its components can never disagree about stock, because there's only one number that matters, tracked at the component level.

The remaining edge case is multi-location fulfillment, and it's not fully solved by the native app: because Shopify Bundles sums component stock across all locations rather than checking it per location, a bundle can appear purchasable in aggregate while the warehouse actually assigned to fulfill that order is short one component. Stores with a single location don't hit this. Stores with several — especially ones doing split shipments or regional fulfillment — need either a third-party app built specifically around multi-location bundle logic, or custom fulfillment-routing logic layered on top, to avoid the oversell risk that aggregate-only tracking creates.

Pricing, discounting, and the tax detail merchants usually miss

A bundle's headline price is only half the merchandising decision — the other half is how that price is displayed against the sum of the individual items, since "save $12" only works as a hook if the individual prices are visible and correct. Shopify's own discount allocation model applies the bundle discount at the parent level first, then spreads it down to the components by weighted price share, and taxes are calculated on each component's allocated portion rather than on the bundle as a single taxable line. That matters for accounting: your reporting still needs to reflect real per-product revenue and tax liability, not a lump "bundle" line that obscures which underlying SKUs actually sold, which is also what your inventory, COGS, and margin reporting depend on being accurate.

Discount code compatibility is a second, more practical snag. Bundle apps built on Shopify's Cart Transform API (the same framework the native app uses) generally keep bundle items as recognizable individual line items under the hood, even when the customer sees one merged line — which is what lets discount codes, loyalty points, and analytics keep working correctly against the real underlying products instead of needing special-case workarounds. Older bundle apps that rely on generating a single opaque "bundle SKU" product tend to break here: a storewide discount code either doesn't touch the bundle at all, or discounts it in ways that don't map cleanly back to component-level revenue. If you're evaluating a bundle app and discount stacking matters to your promotions strategy, this is a specific technical question worth asking a vendor directly rather than assuming from the marketing page.

Where bundles should actually show up in the shopping flow

The three bundle types map to three different places in the funnel, and treating them interchangeably usually means the wrong offer shows at the wrong moment. Fixed bundles and mix-and-match kits belong primarily on the product detail page and as their own standalone product listings — they're a considered purchase decision the customer is actively evaluating, so they need full imagery, a clear breakdown of what's included, and pricing that makes the savings legible against buying items separately. Burying a curated kit only inside a cart drawer undersells it; it deserves the same PDP treatment as any other product.

Frequently-bought-together widgets belong on the PDP as a secondary module below the main buy box, or in the cart, precisely because they're a lightweight, low-friction add-on decision rather than the primary purchase — the customer has already committed to buying something, and the FBT widget's job is to add one more relevant item with minimal added friction, usually through a single combined "add all" action rather than requiring three separate add-to-cart clicks.

Post-purchase and cart-based cross-sell bundles are a third moment, sitting after checkout intent is confirmed but before the order is finalized, or immediately after purchase — this is where personalization-driven tools like Rebuy tend to operate, using purchase history and payment details already on file so the customer can add to the order with one click rather than re-entering anything. The mistake to avoid is stacking all three types on the same page: a PDP with a fixed-bundle offer, an FBT widget, and a post-purchase upsell prompt competing for attention usually converts worse than committing to the one mechanic that fits that specific product and moment.

Build vs. buy: a real decision framework, not a sales pitch

For the large majority of merchants, the right call is to use Shopify's native Bundles app for fixed kits and multipacks, and layer a focused third-party app for whichever secondary mechanic — mix-and-match, FBT, or post-purchase cross-sell — the catalog actually needs. That combination is cheap, fast to ship, and covers real limitations rather than hypothetical ones.

Custom development, built directly on Shopify's Cart Transform API and Shopify Functions, earns its cost in a narrower set of cases: multi-location fulfillment logic that needs to route bundle orders to the location that can actually fulfill every component, not just the aggregate stock total; bundle pricing rules too complex for any off-the-shelf app's discount engine, like tiered bundle pricing that changes based on customer segment or subscription status; a requirement to keep bundle line items as fully addressable individual products through checkout, fulfillment, and returns without an app's opaque bundle-SKU workaround; or a case where two bundle-adjacent apps both need write access to the cart and conflict, which happens more than vendors advertise since Shopify currently allows only one active Cart Transform Function per store — meaning if you already depend on an app for another cart transformation, a second bundle app built the same way may simply not install alongside it.

The honest framing for whether to go custom isn't "how important are bundles to us" — it's whether the specific mechanic you need already exists as a mature feature in an app you'd trust with cart and inventory write access. If it does, buying is almost always faster and cheaper than building. If what you need is a genuinely custom rule — location-aware fulfillment, a pricing model no app supports, or resolving a conflict between two apps fighting over the same cart transform slot — that's where a from-scratch Shopify Function, written against the real Cart Transform API rather than an app's abstraction of it, is the only path that will hold up under real order volume.

Where Carryup fits

Most of the bundle work described here — installing the native app, picking the right third-party tool for mix-and-match or FBT, wiring discount and inventory settings correctly — is work a merchant or their existing team can reasonably do without an agency. Carryup gets pulled in on the harder ten percent: multi-location merchants who need fulfillment-aware bundle inventory that the aggregate-stock model of the native app can't provide, brands whose bundle pricing logic doesn't fit any app's discount engine, and stores where two must-have apps are colliding over the same Cart Transform slot and something custom has to resolve it.

That's the kind of problem our Shopify Deep Engineering team builds Cart Transform Functions and inventory-routing logic for directly against Shopify's APIs, rather than layering another app on top of an already crowded cart. On the merchandising side, our Growth & Conversion work looks at where bundles are actually placed across the PDP, cart, and post-purchase flow for a given catalog, and tests whether the mechanic matches the moment rather than assuming more bundle surface area is automatically better. If you're evaluating whether your bundle strategy needs an app, a second app, or something custom, that's a conversation worth having before you commit engineering time to the wrong layer.

Carryup can help

If any of this sounds like your situation, talk to us. We'll tell you exactly where your revenue is leaking and what it would take to fix it. Explore Strategy & Consulting →

Get started

Ready to fix your store?

Tell us about your brand — we'll come back with a clear plan and no sales pressure.

4-hour reply
On every business-day enquiry
Talk to an engineer, not a rep
The people who build — no account-manager layer
A clear, honest read
No pitch, no pressure — just where you stand
Shopify-only specialists
Focused experts, not generalists
What do you need?Step 1 of 3

Pick everything that fits — this tells us who to bring to the call.

🔒 Goes directly to hello@carryup.in·No spam, ever
Chat with us