Shopify Bundle Limitations You Need to Know

Shopify Bundle Limitations You Need to Know

TLDR

  • The two historical methods for bundling products on Shopify, line item bundles and inventory sync bundles, have significant limitations
  • Shopify's Cart Transform Function API (launched 2023) is the recommended approach for bundling products
  • Cart Transform doesn't expand subscription (selling plan) lines at checkout, but Flex Bundles supports subscription bundles natively, expanding them on the first order and every renewal
  • Shopify can't stop order-level discount codes from stacking on bundle pricing, but Flex Bundles can block them at checkout with a per-bundle rule
  • Flex Bundles offers custom solutions that push beyond standard app limitations

When searching through bundle apps for your Shopify store, you're probably looking for that one special app that has that one special feature that none of the other bundle apps have. If only you can find it! Before you keep looking, it's important to understand the limitations of the Shopify platform itself.

First, let's dive into some Shopify bundle history.

Until Shopify released the Cart Transform Function API in 2023, there were two primary approaches to bundling products:

Line Item Bundles

Line item bundles added each product to the cart as separate line items, typically with a discount applied via automatic discount, or more commonly, the now almost deprecated Shopify Scripts.

Limitations

Bundled line items weren't grouped together, so customers would see each product from the bundle in the checkout:

Line item bundles showing individual products in Shopify checkout with separate line items and no visual grouping In this example, The Collection Snowboard: Liquid, The Collection Snowboard: Hydrogen, and The Collection Snowboard: Oxygen are the components of the bundle. The 3D Modeled Snowboard is not part of the bundle.

On the order page in the admin, the only reliable way to identify which products were bundled together is through matching line item properties. Each component of a bundle must share the same property.

Shopify admin order page displaying line item bundle properties for bundle identification with _bundle property The "_bundle" line item property identifies the line items as components of the same "Collection Bundle". Note: Discounts alone can't reliably group line items because of orders that contain multiple bundles.

You also had to add custom code to make bundle components appear grouped in the cart. Updating or removing bundles from the cart was even messier. You could either fire off multiple Cart API requests in sequence or let customers accidentally break bundles by removing items one at a time.

There was room for improvement.

Inventory Sync Bundles

Inventory sync bundles (sometimes called virtual bundles or BOM SKU bundles) let customers check out with a single product, but would then update inventory post-purchase for the selected components.

Limitations

Customers saw only the bundle product in their cart, with the components maybe listed as line item properties. Also, since only a single product was added to cart, the price was fixed no matter what components were included:

Inventory sync bundle showing single product in cart with fixed pricing and component details in line item properties The Collection Bundle product would be purchased, and after the order was completed, it would decrement the inventory for the components: The Collection Snowboard: Liquid, The Collection Snowboard: Hydrogen, and The Collection Snowboard: Oxygen.

Additionally, component inventory wasn't validated at checkout, creating oversell risk. And the sync process relied on webhooks (unreliable) or polling (delayed), both adding failure points that could break fulfillment.

Whew!

The Cart Transform Function API

These limitations led Shopify to develop the Cart Transform Function API in 2023.

Cart transform extensions run on Shopify's servers and modify the cart through this API. When a customer adds products to their cart, the bundle structure is passed to Shopify's servers (different apps do this different ways), and the cart transform function automatically bundles the products together.

Each component displays as a child of the parent bundle product in the checkout, and each component's inventory is properly connected.

Here's what it looks like in the checkout:

Shopify Cart Transform API bundle in checkout showing parent bundle with child product components properly grouped and nested

And on the order page in the admin:

Shopify admin order page showing Cart Transform bundle with parent-child product relationships and proper inventory tracking

The Cart Transform Function API has become Shopify's recommended approach since their introduction in 2023, and most modern bundle apps in the Shopify App Store now use this architecture.

That said, there are still limitations, even with the Cart Transform Function API.

Limitations

Cart Transform doesn't run on cart lines with a selling plan, so a bundle sold on a subscription isn't expanded at checkout. That matters, because many merchants want to sell their bundles on subscription, like a monthly skincare routine or a quarterly coffee box.

Flex Bundles supports subscription bundles natively. The customer subscribes to the bundle's parent product through Shopify's selling plans and your subscription app, and Flex Bundles expands it into its components on the order after checkout, and again on every renewal, priced to exactly what the customer paid. Subscription Bundles on Shopify covers the setup and code.

The other option is to add each product to the cart on its own selling plan.

Shopify subscription bundles showing individual products with separate selling plans and line item properties for bundle grouping

Each product appears separately in the cart and checkout. They can still be identified as part of a bundle with line item properties, but they are no longer a bundle.

Secondly, Shopify can't exclude bundles from order-level discount codes. A bundle price set by a cart transform isn't a Shopify discount, so your discount combination settings never see it. For example, if you offer a 3-product bundle at 20% off, and a customer applies a 15% site-wide discount code at checkout, they'll receive both discounts.

Flex Bundles closes this gap with the Block order discount codes rule. Add it to a bundle in the bundle editor, and when a customer applies an order-wide code to a cart containing that bundle, checkout asks them to remove the code and won't continue until they do. Codes for specific products or collections, and free shipping codes, still work.

Two things to know before you turn it on:

  • The rule can't tell a discount code from an automatic order discount, like 10% off orders over $100. Customers can't remove automatic discounts, so don't combine the rule with one.
  • The customer drops the code for the whole order, not just the bundle.

If you'd rather a code discount everything except your bundles, skip order-level codes and create codes that apply to specific collections that leave out your bundle products.


Flex Bundles builds fully custom bundle experiences that push the boundaries of what's possible within Shopify's platform. Unlike standard bundle apps with rigid templates, we create tailored solutions that adapt to your exact requirements.

If you need capabilities beyond what standard bundle apps offer, install Flex Bundles to see how our approach differs.

Frequently Asked Questions

What's the difference between line item bundles, inventory sync bundles, and cart transform bundles?
  • Line item bundles: Add each product to the cart as separate line items, typically with a discount applied
  • Inventory sync bundles: Add a single SKU to the cart and decrease inventory for the components post-purchase
  • Cart transform bundles: Group products as parent-child relationships in checkout with proper visual grouping, real-time inventory validation, and simplified fulfillment (Shopify's recommended approach as of 2023)
Can I use subscriptions with Shopify bundles?

Yes. Flex Bundles supports subscription bundles natively, through Shopify's selling plans and the subscription app you already use, such as Shopify Subscriptions or Recharge. The customer subscribes to the bundle's parent product, and Flex Bundles expands it into its components on the first order and on every renewal, priced to exactly what the customer paid: the parent price less the plan's discount. See Subscription Bundles on Shopify for the setup and code.

Do bundle discounts stack with site-wide discount codes?

By default, yes. Shopify's discount combination settings don't see bundle pricing set by a cart transform, so if a customer buys a bundle priced 20% off and applies a 15% site-wide code, both discounts apply. Flex Bundles has a Block order discount codes rule for this: turn it on for a bundle, and checkout asks the customer to remove any order-wide code before they can continue. Codes for specific products or collections still work. If you'd rather codes discount everything except your bundles, use codes that apply to collections that leave out your bundle products instead of order-level codes.