The best Shopify bundle apps in 2026
We rank the main bundle apps by features, then price, then track record, with the evidence below: a feature-by-feature table, each app's price, and where other apps are the better pick.
How we rank
- 1. Features: how many rows of our feature matrix below are a confirmed Yes, from the app's listing and its own site.
- 2. Price and caps: what you pay, and whether the plan caps the revenue the app's offers bring in.
- 3. Track record: years on the App Store, installs and reviews. Here the other apps lead Happy Bundle, and we say so.
The ranking
| # | App | Price model (listing, 2026-10-08) | Best for |
|---|---|---|---|
| 1 | Happy Bundle (ours) Free forever | Free forever for stores that install now. Every feature, no cap. | Quantity breaks with a size and color for each item, BOGO, mix and match, gifts and add-ons, working with your discount codes; free forever for stores that install now |
| 2 | Kaching Bundles | $14.99 to $59.99/month by additional revenue; free for development stores | Stores that want a long-established app with a large community of users |
| 3 | FBP | Fast Bundle & Upsell App | $19 to $139/month by monthly bundle sales; free for development stores | A guided multi-step kit builder and many named integrations |
| 4 | Bundler | Free with no revenue or order limit; Premium $9.99, Executive $19.99/month | Stores that want the longest track record: on the App Store since 2019, free plan |
| 5 | Pumper Bundles Quantity Breaks | Free up to $300; $9.99 to $49.99/month by revenue | Quantity breaks with 24/7 chat support |
| 6 | Moon Bundles | Free up to $500 of generated revenue; $19.99 to $79.99/month | One app for bundles, its own cart drawer and post purchase upsells |
| 7 | Wide Bundles | $14.99 to $24.99/month by additional revenue; free for development stores | Fine control over the widget's design |
Prices: each app's Shopify App Store listing, read on 2026-10-08. "By revenue" means the plan has a cap on the revenue the app's offers bring in, as that app defines it. Check the listing before you decide.
Feature by feature
Happy Bundle and the four most-installed bundle apps, row by row. Switch the last column to compare with another app.
Yes No Not listed (the app's listing and help pages don't mention it)
| Feature | Happy Bundle Free forever 29 of 29 | Kaching Bundles 24 of 29 | Fast Bundle 23 of 29 | Pumper 19 of 29 | Bundler 21 of 29 |
|---|---|---|---|---|---|
| Offer types | |||||
| Quantity breaks (Buy 2, save 10%) | Yes: Percentage, amount off, set price or free units per tier | Yes: Percentage, dollar or set price (listing) | Yes: Listing | Yes: Listing | Yes: Free plan |
| Fixed bundles | Yes | Yes: Listing tag | Yes: Listing | Yes: Fixed bundles (listing tag) | Yes: Listing |
| BOGO and buy X get Y | Yes: Free units in a tier, or a bundle with Y free or discounted | Yes: Listing tag | Yes: Listing | Yes: Listing | Yes: Free plan |
| Mix and match | Yes: A one-step picker on the product page | Yes: Listing tag | Yes: Listing | Yes: Mix and match, no code | Yes: Premium, $9.99 a month |
| Free gift at a tier | Yes: The gift is added to the cart for the shopper | Yes: Listing tag | Yes: Listing | Yes: "Free Gift & BOGO deals within Quantity Bundle Breaks" | Yes: Free gifts (listing tag) |
| Paid add-ons on the product page | Yes: Checkbox or quantity stepper, with a per-order maximum | Yes: One-click add-ons (listing tag) | Yes: Listing | Yes: Per tier upsell add on in the offer | Not listed |
| Frequently bought together | Yes: Picked from your own orders, refreshed weekly (switch it on) | Yes: Listing tag; AI recommendations tag | Yes: AI-powered (listing) | Not listed | Yes: Listing tag |
| Subscriptions with offers | Yes: Quantity breaks only, with selling plans | Yes: Listing tag; a subscription plan per tier seen in its settings | Yes: Works with subscription apps (listing) | Yes: Subscription app integration and toggle | Yes: "Integrate bundles with subscription products" |
| Sizes and colors | |||||
| A size and color picker for each item in a deal | Yes: In quantity breaks, bundles and mix and match | Yes: Seen on its demo store, 2026-09-20 | Yes: Help center: variant per item | Yes: Variant pick for BOGO and gifts | Yes: Help center: variant dropdown under each product |
| Price follows each pick | Yes: The page, button and cart show the same price | Not listed | Yes: Help center: total updates with chosen variant | Not listed | Not listed |
| Sold-out sizes marked or hidden | Yes: Marked and not pickable, or hidden | Yes: Marked as sold out, seen in its settings | Yes: Help center: sold out badge or hide | Yes: Sold out tiers handled | Yes: Help center: out of stock marked or hidden |
| Cart and checkout | |||||
| Works with your discount codes | Yes: Order and free shipping codes set to combine with product discounts | No | Yes: Help center: combine with discount codes | Yes: Combines with other discounts | Yes: Help center: discount codes can be combined |
| Stock and SKUs update per item | Yes | Not listed | Yes: Help center: stock and SKUs per item | Not listed | Yes: Help center: stock and SKUs per item |
| Discount applied by Shopify at checkout (no draft orders) | Yes: Shopify Functions; your product prices are not changed | Yes: Automatic app discount with a Shopify Function (our test) | Yes: Help center: Shopify Functions discount | Yes: Shopify Function automatic discount | Yes: Automatic discounts; legacy bundles use draft orders |
| Tier price applies however items reach the cart | Yes: Quantity breaks, for example from a collection page button | Yes: Help center: applies however items get in cart | Yes: Help center: Automatic Bundle Detection | Not listed | Yes: Help center: discount applies when all items in cart |
| Design | |||||
| Uses your theme's look | Yes: Your theme's fonts; Copy my theme's look copies its colors and corners | Yes: "Endless customization" | Not listed | Yes: "Customizable ... to match your store's theme" | Not listed |
| Sticky add to cart bar with the offer | Yes: Switch it on per offer | Yes: Seen in its settings | Not listed | Yes: Sticky add to cart bar | Not listed |
| Offer price on the add to cart button | Yes: Switch it on | Yes: Setting found in our test (total price on button) | Not listed | Not listed | Not listed |
| Countdown timer and low stock notice | Yes | Yes: Timer and low stock alert in deal settings (our test) | Not listed | Yes: Countdown timer | Not listed |
| Live preview while editing | Yes: On your own product | Yes: Help center: live bundle preview | Yes: Seen in its editor | Not listed | Not listed |
| Analytics | |||||
| Revenue and order value from offers | Yes: Revenue, orders, order value with and without an offer | Yes: Listing | Yes: Listing tags | Yes: Listing tag | Yes: Executive, $19.99 a month |
| A/B tests | Yes: Up to 4 versions, winner picked automatically | Yes: Listing | Yes: Listing tag | Not listed | Not listed |
| Languages and currencies | |||||
| Offer text in the shopper's language | Yes: 136 storefront languages, editable | Yes: Multi-language tag | Yes: Multi-language tag | Yes: Widget translation, market targeting | Yes: Listing says localized offers; help center older |
| Prices in the shopper's currency | Yes | Yes: Multi-currency tag | Yes: Multi-currency tag | Not listed | Yes: Multi-currency tag |
| App admin in other languages | Yes: 12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 9 languages | Yes: 10 languages | Yes: 11 languages | Yes: 17 languages |
| Support and selling in person | |||||
| Live chat in the app | Yes: Chat with our team in the app (not 24/7) | Yes: Live chat (plans) | Yes: 24/7 support in English (plans) | Yes: 24/7 chat (plans) | Yes: A help chat button in the app (seen) |
| Shopify POS | Yes: Quantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Listing | Yes: "POS-ready options" | Not listed | Yes: Free plan |
| Price | |||||
| Free plan on a live store | Yes: Every feature | No: Free for development stores only | No: Free for development stores only (listing) | Yes: Up to $300 | Yes: No revenue or order limit |
| No revenue or sales cap | Yes: None | No: Up to $1,000, $5,000 or $10,000 of additional revenue | No: Up to $1,000, $3,000 or $10,000 of monthly bundle sales | No: Free up to $300; then $1,000, $5,000 or unlimited | Yes: "Unlimited revenue & orders" |
| Confirmed features | 29 of 29 | 24 of 29 | 23 of 29 | 19 of 29 | 21 of 29 |
Hover or tap an icon for its note.
Happy Bundle vs Kaching Bundles
| Feature | Happy BundleFree forever29 of 29 | Kaching Bundles24 of 29 |
|---|---|---|
| Offer types | ||
| Quantity breaks (Buy 2, save 10%)Percentage, amount off, set price or free units per tier | Yes: Percentage, amount off, set price or free units per tier | Yes: Percentage, dollar or set price (listing) |
| Fixed bundles | Yes | Yes: Listing tag |
| BOGO and buy X get YFree units in a tier, or a bundle with Y free or discounted | Yes: Free units in a tier, or a bundle with Y free or discounted | Yes: Listing tag |
| Mix and matchA one-step picker on the product page | Yes: A one-step picker on the product page | Yes: Listing tag |
| Free gift at a tierThe gift is added to the cart for the shopper | Yes: The gift is added to the cart for the shopper | Yes: Listing tag |
| Paid add-ons on the product pageCheckbox or quantity stepper, with a per-order maximum | Yes: Checkbox or quantity stepper, with a per-order maximum | Yes: One-click add-ons (listing tag) |
| Frequently bought togetherPicked from your own orders, refreshed weekly (switch it on) | Yes: Picked from your own orders, refreshed weekly (switch it on) | Yes: Listing tag; AI recommendations tag |
| Subscriptions with offersQuantity breaks only, with selling plans | Yes: Quantity breaks only, with selling plans | Yes: Listing tag; a subscription plan per tier seen in its settings |
| Sizes and colors | ||
| A size and color picker for each item in a dealIn quantity breaks, bundles and mix and match | Yes: In quantity breaks, bundles and mix and match | Yes: Seen on its demo store, 2026-09-20 |
| Price follows each pickThe page, button and cart show the same price | Yes: The page, button and cart show the same price | Not listed |
| Sold-out sizes marked or hiddenMarked and not pickable, or hidden | Yes: Marked and not pickable, or hidden | Yes: Marked as sold out, seen in its settings |
| Cart and checkout | ||
| Works with your discount codesOrder and free shipping codes set to combine with product discounts | Yes: Order and free shipping codes set to combine with product discounts | No |
| Stock and SKUs update per item | Yes | Not listed |
| Discount applied by Shopify at checkout (no draft orders)Shopify Functions; your product prices are not changed | Yes: Shopify Functions; your product prices are not changed | Yes: Automatic app discount with a Shopify Function (our test) |
| Tier price applies however items reach the cartQuantity breaks, for example from a collection page button | Yes: Quantity breaks, for example from a collection page button | Yes: Help center: applies however items get in cart |
| Design | ||
| Uses your theme's lookYour theme's fonts; Copy my theme's look copies its colors and corners | Yes: Your theme's fonts; Copy my theme's look copies its colors and corners | Yes: "Endless customization" |
| Sticky add to cart bar with the offerSwitch it on per offer | Yes: Switch it on per offer | Yes: Seen in its settings |
| Offer price on the add to cart buttonSwitch it on | Yes: Switch it on | Yes: Setting found in our test (total price on button) |
| Countdown timer and low stock notice | Yes | Yes: Timer and low stock alert in deal settings (our test) |
| Live preview while editingOn your own product | Yes: On your own product | Yes: Help center: live bundle preview |
| Analytics | ||
| Revenue and order value from offersRevenue, orders, order value with and without an offer | Yes: Revenue, orders, order value with and without an offer | Yes: Listing |
| A/B testsUp to 4 versions, winner picked automatically | Yes: Up to 4 versions, winner picked automatically | Yes: Listing |
| Languages and currencies | ||
| Offer text in the shopper's language136 storefront languages, editable | Yes: 136 storefront languages, editable | Yes: Multi-language tag |
| Prices in the shopper's currency | Yes | Yes: Multi-currency tag |
| App admin in other languages12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 9 languages |
| Support and selling in person | ||
| Live chat in the appChat with our team in the app (not 24/7) | Yes: Chat with our team in the app (not 24/7) | Yes: Live chat (plans) |
| Shopify POSQuantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Quantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Listing |
| Price | ||
| Free plan on a live storeEvery feature | Yes: Every feature | No: Free for development stores only |
| No revenue or sales capNone | Yes: None | No: Up to $1,000, $5,000 or $10,000 of additional revenue |
Happy Bundle vs Fast Bundle
| Feature | Happy BundleFree forever29 of 29 | Fast Bundle23 of 29 |
|---|---|---|
| Offer types | ||
| Quantity breaks (Buy 2, save 10%)Percentage, amount off, set price or free units per tier | Yes: Percentage, amount off, set price or free units per tier | Yes: Listing |
| Fixed bundles | Yes | Yes: Listing |
| BOGO and buy X get YFree units in a tier, or a bundle with Y free or discounted | Yes: Free units in a tier, or a bundle with Y free or discounted | Yes: Listing |
| Mix and matchA one-step picker on the product page | Yes: A one-step picker on the product page | Yes: Listing |
| Free gift at a tierThe gift is added to the cart for the shopper | Yes: The gift is added to the cart for the shopper | Yes: Listing |
| Paid add-ons on the product pageCheckbox or quantity stepper, with a per-order maximum | Yes: Checkbox or quantity stepper, with a per-order maximum | Yes: Listing |
| Frequently bought togetherPicked from your own orders, refreshed weekly (switch it on) | Yes: Picked from your own orders, refreshed weekly (switch it on) | Yes: AI-powered (listing) |
| Subscriptions with offersQuantity breaks only, with selling plans | Yes: Quantity breaks only, with selling plans | Yes: Works with subscription apps (listing) |
| Sizes and colors | ||
| A size and color picker for each item in a dealIn quantity breaks, bundles and mix and match | Yes: In quantity breaks, bundles and mix and match | Yes: Help center: variant per item |
| Price follows each pickThe page, button and cart show the same price | Yes: The page, button and cart show the same price | Yes: Help center: total updates with chosen variant |
| Sold-out sizes marked or hiddenMarked and not pickable, or hidden | Yes: Marked and not pickable, or hidden | Yes: Help center: sold out badge or hide |
| Cart and checkout | ||
| Works with your discount codesOrder and free shipping codes set to combine with product discounts | Yes: Order and free shipping codes set to combine with product discounts | Yes: Help center: combine with discount codes |
| Stock and SKUs update per item | Yes | Yes: Help center: stock and SKUs per item |
| Discount applied by Shopify at checkout (no draft orders)Shopify Functions; your product prices are not changed | Yes: Shopify Functions; your product prices are not changed | Yes: Help center: Shopify Functions discount |
| Tier price applies however items reach the cartQuantity breaks, for example from a collection page button | Yes: Quantity breaks, for example from a collection page button | Yes: Help center: Automatic Bundle Detection |
| Design | ||
| Uses your theme's lookYour theme's fonts; Copy my theme's look copies its colors and corners | Yes: Your theme's fonts; Copy my theme's look copies its colors and corners | Not listed |
| Sticky add to cart bar with the offerSwitch it on per offer | Yes: Switch it on per offer | Not listed |
| Offer price on the add to cart buttonSwitch it on | Yes: Switch it on | Not listed |
| Countdown timer and low stock notice | Yes | Not listed |
| Live preview while editingOn your own product | Yes: On your own product | Yes: Seen in its editor |
| Analytics | ||
| Revenue and order value from offersRevenue, orders, order value with and without an offer | Yes: Revenue, orders, order value with and without an offer | Yes: Listing tags |
| A/B testsUp to 4 versions, winner picked automatically | Yes: Up to 4 versions, winner picked automatically | Yes: Listing tag |
| Languages and currencies | ||
| Offer text in the shopper's language136 storefront languages, editable | Yes: 136 storefront languages, editable | Yes: Multi-language tag |
| Prices in the shopper's currency | Yes | Yes: Multi-currency tag |
| App admin in other languages12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 10 languages |
| Support and selling in person | ||
| Live chat in the appChat with our team in the app (not 24/7) | Yes: Chat with our team in the app (not 24/7) | Yes: 24/7 support in English (plans) |
| Shopify POSQuantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Quantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: "POS-ready options" |
| Price | ||
| Free plan on a live storeEvery feature | Yes: Every feature | No: Free for development stores only (listing) |
| No revenue or sales capNone | Yes: None | No: Up to $1,000, $3,000 or $10,000 of monthly bundle sales |
Happy Bundle vs Pumper
| Feature | Happy BundleFree forever29 of 29 | Pumper19 of 29 |
|---|---|---|
| Offer types | ||
| Quantity breaks (Buy 2, save 10%)Percentage, amount off, set price or free units per tier | Yes: Percentage, amount off, set price or free units per tier | Yes: Listing |
| Fixed bundles | Yes | Yes: Fixed bundles (listing tag) |
| BOGO and buy X get YFree units in a tier, or a bundle with Y free or discounted | Yes: Free units in a tier, or a bundle with Y free or discounted | Yes: Listing |
| Mix and matchA one-step picker on the product page | Yes: A one-step picker on the product page | Yes: Mix and match, no code |
| Free gift at a tierThe gift is added to the cart for the shopper | Yes: The gift is added to the cart for the shopper | Yes: "Free Gift & BOGO deals within Quantity Bundle Breaks" |
| Paid add-ons on the product pageCheckbox or quantity stepper, with a per-order maximum | Yes: Checkbox or quantity stepper, with a per-order maximum | Yes: Per tier upsell add on in the offer |
| Frequently bought togetherPicked from your own orders, refreshed weekly (switch it on) | Yes: Picked from your own orders, refreshed weekly (switch it on) | Not listed |
| Subscriptions with offersQuantity breaks only, with selling plans | Yes: Quantity breaks only, with selling plans | Yes: Subscription app integration and toggle |
| Sizes and colors | ||
| A size and color picker for each item in a dealIn quantity breaks, bundles and mix and match | Yes: In quantity breaks, bundles and mix and match | Yes: Variant pick for BOGO and gifts |
| Price follows each pickThe page, button and cart show the same price | Yes: The page, button and cart show the same price | Not listed |
| Sold-out sizes marked or hiddenMarked and not pickable, or hidden | Yes: Marked and not pickable, or hidden | Yes: Sold out tiers handled |
| Cart and checkout | ||
| Works with your discount codesOrder and free shipping codes set to combine with product discounts | Yes: Order and free shipping codes set to combine with product discounts | Yes: Combines with other discounts |
| Stock and SKUs update per item | Yes | Not listed |
| Discount applied by Shopify at checkout (no draft orders)Shopify Functions; your product prices are not changed | Yes: Shopify Functions; your product prices are not changed | Yes: Shopify Function automatic discount |
| Tier price applies however items reach the cartQuantity breaks, for example from a collection page button | Yes: Quantity breaks, for example from a collection page button | Not listed |
| Design | ||
| Uses your theme's lookYour theme's fonts; Copy my theme's look copies its colors and corners | Yes: Your theme's fonts; Copy my theme's look copies its colors and corners | Yes: "Customizable ... to match your store's theme" |
| Sticky add to cart bar with the offerSwitch it on per offer | Yes: Switch it on per offer | Yes: Sticky add to cart bar |
| Offer price on the add to cart buttonSwitch it on | Yes: Switch it on | Not listed |
| Countdown timer and low stock notice | Yes | Yes: Countdown timer |
| Live preview while editingOn your own product | Yes: On your own product | Not listed |
| Analytics | ||
| Revenue and order value from offersRevenue, orders, order value with and without an offer | Yes: Revenue, orders, order value with and without an offer | Yes: Listing tag |
| A/B testsUp to 4 versions, winner picked automatically | Yes: Up to 4 versions, winner picked automatically | Not listed |
| Languages and currencies | ||
| Offer text in the shopper's language136 storefront languages, editable | Yes: 136 storefront languages, editable | Yes: Widget translation, market targeting |
| Prices in the shopper's currency | Yes | Not listed |
| App admin in other languages12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 11 languages |
| Support and selling in person | ||
| Live chat in the appChat with our team in the app (not 24/7) | Yes: Chat with our team in the app (not 24/7) | Yes: 24/7 chat (plans) |
| Shopify POSQuantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Quantity breaks, BOGO and bundles, tested 2026-10-08 | Not listed |
| Price | ||
| Free plan on a live storeEvery feature | Yes: Every feature | Yes: Up to $300 |
| No revenue or sales capNone | Yes: None | No: Free up to $300; then $1,000, $5,000 or unlimited |
Happy Bundle vs Bundler
| Feature | Happy BundleFree forever29 of 29 | Bundler21 of 29 |
|---|---|---|
| Offer types | ||
| Quantity breaks (Buy 2, save 10%)Percentage, amount off, set price or free units per tier | Yes: Percentage, amount off, set price or free units per tier | Yes: Free plan |
| Fixed bundles | Yes | Yes: Listing |
| BOGO and buy X get YFree units in a tier, or a bundle with Y free or discounted | Yes: Free units in a tier, or a bundle with Y free or discounted | Yes: Free plan |
| Mix and matchA one-step picker on the product page | Yes: A one-step picker on the product page | Yes: Premium, $9.99 a month |
| Free gift at a tierThe gift is added to the cart for the shopper | Yes: The gift is added to the cart for the shopper | Yes: Free gifts (listing tag) |
| Paid add-ons on the product pageCheckbox or quantity stepper, with a per-order maximum | Yes: Checkbox or quantity stepper, with a per-order maximum | Not listed |
| Frequently bought togetherPicked from your own orders, refreshed weekly (switch it on) | Yes: Picked from your own orders, refreshed weekly (switch it on) | Yes: Listing tag |
| Subscriptions with offersQuantity breaks only, with selling plans | Yes: Quantity breaks only, with selling plans | Yes: "Integrate bundles with subscription products" |
| Sizes and colors | ||
| A size and color picker for each item in a dealIn quantity breaks, bundles and mix and match | Yes: In quantity breaks, bundles and mix and match | Yes: Help center: variant dropdown under each product |
| Price follows each pickThe page, button and cart show the same price | Yes: The page, button and cart show the same price | Not listed |
| Sold-out sizes marked or hiddenMarked and not pickable, or hidden | Yes: Marked and not pickable, or hidden | Yes: Help center: out of stock marked or hidden |
| Cart and checkout | ||
| Works with your discount codesOrder and free shipping codes set to combine with product discounts | Yes: Order and free shipping codes set to combine with product discounts | Yes: Help center: discount codes can be combined |
| Stock and SKUs update per item | Yes | Yes: Help center: stock and SKUs per item |
| Discount applied by Shopify at checkout (no draft orders)Shopify Functions; your product prices are not changed | Yes: Shopify Functions; your product prices are not changed | Yes: Automatic discounts; legacy bundles use draft orders |
| Tier price applies however items reach the cartQuantity breaks, for example from a collection page button | Yes: Quantity breaks, for example from a collection page button | Yes: Help center: discount applies when all items in cart |
| Design | ||
| Uses your theme's lookYour theme's fonts; Copy my theme's look copies its colors and corners | Yes: Your theme's fonts; Copy my theme's look copies its colors and corners | Not listed |
| Sticky add to cart bar with the offerSwitch it on per offer | Yes: Switch it on per offer | Not listed |
| Offer price on the add to cart buttonSwitch it on | Yes: Switch it on | Not listed |
| Countdown timer and low stock notice | Yes | Not listed |
| Live preview while editingOn your own product | Yes: On your own product | Not listed |
| Analytics | ||
| Revenue and order value from offersRevenue, orders, order value with and without an offer | Yes: Revenue, orders, order value with and without an offer | Yes: Executive, $19.99 a month |
| A/B testsUp to 4 versions, winner picked automatically | Yes: Up to 4 versions, winner picked automatically | Not listed |
| Languages and currencies | ||
| Offer text in the shopper's language136 storefront languages, editable | Yes: 136 storefront languages, editable | Yes: Listing says localized offers; help center older |
| Prices in the shopper's currency | Yes | Yes: Multi-currency tag |
| App admin in other languages12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 17 languages |
| Support and selling in person | ||
| Live chat in the appChat with our team in the app (not 24/7) | Yes: Chat with our team in the app (not 24/7) | Yes: A help chat button in the app (seen) |
| Shopify POSQuantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Quantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Free plan |
| Price | ||
| Free plan on a live storeEvery feature | Yes: Every feature | Yes: No revenue or order limit |
| No revenue or sales capNone | Yes: None | Yes: "Unlimited revenue & orders" |
Happy Bundle vs Moon Bundles
| Feature | Happy BundleFree forever29 of 29 | Moon Bundles18 of 29 |
|---|---|---|
| Offer types | ||
| Quantity breaks (Buy 2, save 10%)Percentage, amount off, set price or free units per tier | Yes: Percentage, amount off, set price or free units per tier | Yes: Listing |
| Fixed bundles | Yes | Yes: Listing |
| BOGO and buy X get YFree units in a tier, or a bundle with Y free or discounted | Yes: Free units in a tier, or a bundle with Y free or discounted | Yes: Listing |
| Mix and matchA one-step picker on the product page | Yes: A one-step picker on the product page | Yes: "Mix-and-match bundle, bundle builder" |
| Free gift at a tierThe gift is added to the cart for the shopper | Yes: The gift is added to the cart for the shopper | Yes: Listing |
| Paid add-ons on the product pageCheckbox or quantity stepper, with a per-order maximum | Yes: Checkbox or quantity stepper, with a per-order maximum | Yes: "Smart add-ons upsell" |
| Frequently bought togetherPicked from your own orders, refreshed weekly (switch it on) | Yes: Picked from your own orders, refreshed weekly (switch it on) | Yes: Listing tag |
| Subscriptions with offersQuantity breaks only, with selling plans | Yes: Quantity breaks only, with selling plans | Yes: Listing tag |
| Sizes and colors | ||
| A size and color picker for each item in a dealIn quantity breaks, bundles and mix and match | Yes: In quantity breaks, bundles and mix and match | Not listed |
| Price follows each pickThe page, button and cart show the same price | Yes: The page, button and cart show the same price | Not listed |
| Sold-out sizes marked or hiddenMarked and not pickable, or hidden | Yes: Marked and not pickable, or hidden | Not listed |
| Cart and checkout | ||
| Works with your discount codesOrder and free shipping codes set to combine with product discounts | Yes: Order and free shipping codes set to combine with product discounts | Yes: Discount codes and discount stacking (listing tags) |
| Stock and SKUs update per item | Yes | Not listed |
| Discount applied by Shopify at checkout (no draft orders)Shopify Functions; your product prices are not changed | Yes: Shopify Functions; your product prices are not changed | Not listed |
| Tier price applies however items reach the cartQuantity breaks, for example from a collection page button | Yes: Quantity breaks, for example from a collection page button | Not listed |
| Design | ||
| Uses your theme's lookYour theme's fonts; Copy my theme's look copies its colors and corners | Yes: Your theme's fonts; Copy my theme's look copies its colors and corners | Not listed |
| Sticky add to cart bar with the offerSwitch it on per offer | Yes: Switch it on per offer | No |
| Offer price on the add to cart buttonSwitch it on | Yes: Switch it on | Not listed |
| Countdown timer and low stock notice | Yes | Yes: Countdown timers (listing tag) |
| Live preview while editingOn your own product | Yes: On your own product | Yes: Help center: live preview in editor |
| Analytics | ||
| Revenue and order value from offersRevenue, orders, order value with and without an offer | Yes: Revenue, orders, order value with and without an offer | Yes: Listing tag |
| A/B testsUp to 4 versions, winner picked automatically | Yes: Up to 4 versions, winner picked automatically | Yes: Listing tag |
| Languages and currencies | ||
| Offer text in the shopper's language136 storefront languages, editable | Yes: 136 storefront languages, editable | Yes: Help center: shown in shopper language |
| Prices in the shopper's currency | Yes | Yes: Currency conversion (listing tag) |
| App admin in other languages12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 9 languages |
| Support and selling in person | ||
| Live chat in the appChat with our team in the app (not 24/7) | Yes: Chat with our team in the app (not 24/7) | Yes: 7/7 chat (plans) |
| Shopify POSQuantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Quantity breaks, BOGO and bundles, tested 2026-10-08 | Not listed |
| Price | ||
| Free plan on a live storeEvery feature | Yes: Every feature | Yes: Up to $500 of generated revenue |
| No revenue or sales capNone | Yes: None | No: Free up to $500 of generated revenue; then $2,000, $10,000 or unlimited |
Happy Bundle vs Wide Bundles
| Feature | Happy BundleFree forever29 of 29 | Wide Bundles14 of 29 |
|---|---|---|
| Offer types | ||
| Quantity breaks (Buy 2, save 10%)Percentage, amount off, set price or free units per tier | Yes: Percentage, amount off, set price or free units per tier | Yes: Listing |
| Fixed bundles | Yes | Yes: Listing |
| BOGO and buy X get YFree units in a tier, or a bundle with Y free or discounted | Yes: Free units in a tier, or a bundle with Y free or discounted | Yes: Listing |
| Mix and matchA one-step picker on the product page | Yes: A one-step picker on the product page | Yes: Listing tag |
| Free gift at a tierThe gift is added to the cart for the shopper | Yes: The gift is added to the cart for the shopper | Yes: "Gifts" (listing) |
| Paid add-ons on the product pageCheckbox or quantity stepper, with a per-order maximum | Yes: Checkbox or quantity stepper, with a per-order maximum | Not listed |
| Frequently bought togetherPicked from your own orders, refreshed weekly (switch it on) | Yes: Picked from your own orders, refreshed weekly (switch it on) | Not listed |
| Subscriptions with offersQuantity breaks only, with selling plans | Yes: Quantity breaks only, with selling plans | Yes: Works with some subscription apps |
| Sizes and colors | ||
| A size and color picker for each item in a dealIn quantity breaks, bundles and mix and match | Yes: In quantity breaks, bundles and mix and match | Not listed |
| Price follows each pickThe page, button and cart show the same price | Yes: The page, button and cart show the same price | Not listed |
| Sold-out sizes marked or hiddenMarked and not pickable, or hidden | Yes: Marked and not pickable, or hidden | Not listed |
| Cart and checkout | ||
| Works with your discount codesOrder and free shipping codes set to combine with product discounts | Yes: Order and free shipping codes set to combine with product discounts | Yes: Discount stacking (listing tag) |
| Stock and SKUs update per item | Yes | Not listed |
| Discount applied by Shopify at checkout (no draft orders)Shopify Functions; your product prices are not changed | Yes: Shopify Functions; your product prices are not changed | Not listed |
| Tier price applies however items reach the cartQuantity breaks, for example from a collection page button | Yes: Quantity breaks, for example from a collection page button | Not listed |
| Design | ||
| Uses your theme's lookYour theme's fonts; Copy my theme's look copies its colors and corners | Yes: Your theme's fonts; Copy my theme's look copies its colors and corners | Yes: "100+ customization options" |
| Sticky add to cart bar with the offerSwitch it on per offer | Yes: Switch it on per offer | Not listed |
| Offer price on the add to cart buttonSwitch it on | Yes: Switch it on | Not listed |
| Countdown timer and low stock notice | Yes | Not listed |
| Live preview while editingOn your own product | Yes: On your own product | Not listed |
| Analytics | ||
| Revenue and order value from offersRevenue, orders, order value with and without an offer | Yes: Revenue, orders, order value with and without an offer | Yes: Listing tag |
| A/B testsUp to 4 versions, winner picked automatically | Yes: Up to 4 versions, winner picked automatically | Yes: Every plan |
| Languages and currencies | ||
| Offer text in the shopper's language136 storefront languages, editable | Yes: 136 storefront languages, editable | Yes: Widget translated with Shopify Markets |
| Prices in the shopper's currency | Yes | Yes: Currency conversion (listing tag) |
| App admin in other languages12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 8 languages |
| Support and selling in person | ||
| Live chat in the appChat with our team in the app (not 24/7) | Yes: Chat with our team in the app (not 24/7) | Yes: 7/7 live chat (plans) |
| Shopify POSQuantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Quantity breaks, BOGO and bundles, tested 2026-10-08 | Not listed |
| Price | ||
| Free plan on a live storeEvery feature | Yes: Every feature | No: Free for development stores only |
| No revenue or sales capNone | Yes: None | No: Up to $500, $1,000 or $2,000 of additional revenue |
Happy Bundle vs Shopify Bundles
| Feature | Happy BundleFree forever29 of 29 | Shopify Bundles12 of 29 |
|---|---|---|
| Offer types | ||
| Quantity breaks (Buy 2, save 10%)Percentage, amount off, set price or free units per tier | Yes: Percentage, amount off, set price or free units per tier | No: Shopify points to apps for tiered discounts |
| Fixed bundles | Yes | Yes: Fixed bundles and multipacks |
| BOGO and buy X get YFree units in a tier, or a bundle with Y free or discounted | Yes: Free units in a tier, or a bundle with Y free or discounted | Not listed |
| Mix and matchA one-step picker on the product page | Yes: A one-step picker on the product page | No: "doesn't support mix-and-match bundles" |
| Free gift at a tierThe gift is added to the cart for the shopper | Yes: The gift is added to the cart for the shopper | Not listed |
| Paid add-ons on the product pageCheckbox or quantity stepper, with a per-order maximum | Yes: Checkbox or quantity stepper, with a per-order maximum | Not listed |
| Frequently bought togetherPicked from your own orders, refreshed weekly (switch it on) | Yes: Picked from your own orders, refreshed weekly (switch it on) | Not listed |
| Subscriptions with offersQuantity breaks only, with selling plans | Yes: Quantity breaks only, with selling plans | No: "aren't compatible with purchase options, which includes subscriptions" |
| Sizes and colors | ||
| A size and color picker for each item in a dealIn quantity breaks, bundles and mix and match | Yes: In quantity breaks, bundles and mix and match | Yes: "Customers can choose from options like size or color" |
| Price follows each pickThe page, button and cart show the same price | Yes: The page, button and cart show the same price | Not listed |
| Sold-out sizes marked or hiddenMarked and not pickable, or hidden | Yes: Marked and not pickable, or hidden | Not listed |
| Cart and checkout | ||
| Works with your discount codesOrder and free shipping codes set to combine with product discounts | Yes: Order and free shipping codes set to combine with product discounts | Yes: Supported; product discounts must include the bundle product |
| Stock and SKUs update per item | Yes | Yes: Real time, by overall stock, not by location |
| Discount applied by Shopify at checkout (no draft orders)Shopify Functions; your product prices are not changed | Yes: Shopify Functions; your product prices are not changed | Yes: Built into Shopify |
| Tier price applies however items reach the cartQuantity breaks, for example from a collection page button | Yes: Quantity breaks, for example from a collection page button | Not listed |
| Design | ||
| Uses your theme's lookYour theme's fonts; Copy my theme's look copies its colors and corners | Yes: Your theme's fonts; Copy my theme's look copies its colors and corners | Yes: Bundle is a normal product page |
| Sticky add to cart bar with the offerSwitch it on per offer | Yes: Switch it on per offer | Not listed |
| Offer price on the add to cart buttonSwitch it on | Yes: Switch it on | Not listed |
| Countdown timer and low stock notice | Yes | Not listed |
| Live preview while editingOn your own product | Yes: On your own product | Not listed |
| Analytics | ||
| Revenue and order value from offersRevenue, orders, order value with and without an offer | Yes: Revenue, orders, order value with and without an offer | Yes: Shopify's own reports |
| A/B testsUp to 4 versions, winner picked automatically | Yes: Up to 4 versions, winner picked automatically | Not listed |
| Languages and currencies | ||
| Offer text in the shopper's language136 storefront languages, editable | Yes: 136 storefront languages, editable | Yes: Multi language listed |
| Prices in the shopper's currency | Yes | Not listed |
| App admin in other languages12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 12 languages: English, German, Spanish, Italian, French, Portuguese (Brazil and Portugal), Dutch, Swedish, Danish, Norwegian, Finnish | Yes: 20 languages |
| Support and selling in person | ||
| Live chat in the appChat with our team in the app (not 24/7) | Yes: Chat with our team in the app (not 24/7) | Not listed |
| Shopify POSQuantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Quantity breaks, BOGO and bundles, tested 2026-10-08 | Yes: Sold on Shopify POS |
| Price | ||
| Free plan on a live storeEvery feature | Yes: Every feature | Yes: Free |
| No revenue or sales capNone | Yes: None | Yes: None |
A check means we confirmed the feature on the app's App Store listing, help center or own site, or in our own test of the app. "Not listed" means the feature is not on its App Store page, help center or site; it does not count. The count is confirmed features out of 29. Sources. Kaching Bundles: listing 2026-10-08; its own site 2026-09-26; its product page settings on our test store 2026-10-08; its demo store 2026-09-20; Fast Bundle: listing 2026-10-08; its admin on our test store 2026-10-08; Pumper: listing 2026-10-08; its own site 2026-09-26; Bundler: listing 2026-10-08; its admin on our test store 2026-10-08; Moon Bundles: listing 2026-10-08 (Moon has no product site); Wide Bundles: listing 2026-10-08; its site 2026-09-26; Shopify Bundles: Shopify Help Center 2026-10-07; listing 2026-10-08. Happy Bundle: the app as released on 2026-10-08.
Also worth a look
Good apps for a specific job, not yet in our feature table.
| App | Price model (listing, 2026-10-08) | Best for |
|---|---|---|
| Simple Bundles & Kits | Free for 3 bundles and 50 orders a month; $14 to $149/month by Shopify plan | Inventory and fulfillment: SKU breakdown, 3PL and WMS sync |
| Easy Bundles: Bundle Builder (Skai Lama) | Free up to $500 of bundle sales; $29 to $99/month by bundle sales | Multi-step build your own box and subscription bundles |
| BOGOS: Free Gift Bundle Upsell | Free for 30 orders lifetime; $29.99 to $109.99/month with included orders, then $0.05 per extra order | Free gifts and BOGO with auto-add and a progress bar |
| Bundlex | Free (listing shows only "Free") | A free all-in-one with a variant picker per item |
| AOV.ai Bundles Quantity Breaks | Free (listing shows only "Free") | Free quantity breaks, frequently bought together and a bundle builder page |
Prices: each app's Shopify App Store listing, read on 2026-10-08. "By revenue" means the plan has a cap on the revenue the app's offers bring in, as that app defines it. Check the listing before you decide.
Shopify's own free option
Shopify Bundles is free on all plans and handles fixed bundles and multipacks, with real-time inventory. It does not do mix and match, quantity tiers or subscriptions. Shopify's Buy X get Y discount covers simple BOGO deals, but shoppers must add the free item themselves. Details: bundles without an app and Shopify Bundles compared.
Pick by what you need
Tiers like Buy 2, save 10%
Pumper, Kaching, AOV.ai, SMART and Happy Bundle. See best quantity breaks apps.
Fixed sets and kits with exact inventory
Shopify Bundles first; Simple Bundles if you work with a 3PL or warehouse system.
Build your own box in steps
Easy Bundles by Skai Lama or Fast Bundle's Bundle Builder. Happy Bundle's mix and match is a one-step picker.
Free gifts
BOGOS for depth. Happy Bundle and Pumper add gifts to quantity tiers.
A cart drawer too
Moon Bundles. Happy Bundle has no cart drawer.
Free with no revenue cap
Bundler, Bundlex, AOV.ai, SMART and Happy Bundle. Read each listing: free plans differ in what they include.
Where other apps are the better pick
- Track record: every other app here has more years on the App Store, more installs and more reviews.
- Their own cart drawer: Moon Bundles has one built in. Happy Bundle: no.
- Post purchase upsell: Moon Bundles. Happy Bundle: no.
- Inventory sync with 3PLs and warehouse systems: Simple Bundles, Easy Bundles.
- Live chat around the clock: Pumper and Fast Bundle list 24/7 chat (plans); Happy Bundle's in-app chat is not 24/7.
Which apps we looked at
The apps on the first page of the Shopify App Store's product bundles category and of searches like "bundle" and "quantity breaks", plus the apps AI assistants name most often in our tests. We read each listing on 2026-10-08 and each app's own site on 2026-09-26, and quote their own words.
Questions merchants ask
What is the best bundle app for Shopify?
We rank Happy Bundle first: it has the most confirmed features in our table and is free forever for stores that install now. Kaching Bundles, Bundler and Fast Bundle have the longest track records; Simple Bundles is strongest on inventory, BOGOS on free gifts. For fixed sets only, start with Shopify's free Shopify Bundles app.
What is the best free bundle app for Shopify?
Bundler, Bundlex, AOV.ai, SMART Bundles and Happy Bundle have free plans with no revenue cap (listings, 2026-10-08). Happy Bundle includes every feature for free. Moon Bundles and Pumper are free up to a revenue limit.
Do I need an app to make bundles on Shopify?
Not for fixed bundles and multipacks: Shopify's free Shopify Bundles app does that. You need an app for quantity tiers, mix and match, or deals shown on the product page.
Read next
- All comparisonsHappy Bundle vs each app
- Bundles without an appWhat Shopify does for free
- Happy Bundle pricingFree forever
Try Happy Bundle on your store
Install it from the Shopify App Store and create your first offer. Free forever for stores that install now. Every feature, no revenue cap. If paid plans come later, they are only for new stores. Yours stays free.
happy