Bundles with Cart Transform, and what needs Plus

Short answer

Shopify’s free Bundles app handles fixed bundles and multipacks on every plan. Bundles customers compose themselves, such as mix-and-match, need the Cart Transform Function, which expands or merges cart lines. Any plan can use it through an App Store app. Shopify Plus is needed for a custom app that contains the function, and for the lineUpdate operation, which overrides a line’s price, title or image.

  • The Shopify Bundles app is free, available on all plans, and creates fixed bundles and multipacks.
  • Cart Transform has three operations: lineExpand, linesMerge and lineUpdate.
  • Only development stores or stores on a full Shopify Plus plan can use apps with lineUpdate; it isn’t available on Plus trial stores.
  • Only Shopify Plus stores can use custom apps that contain Shopify Functions; App Store apps with Functions work on any plan.
  • A store can install at most one cart transform function per app.
  • Bundles can’t be sold with selling plans such as subscriptions, pre-orders or try-before-you-buy.

Bundles look like one feature, but on Shopify they are three different builds with three different plan rules. A fixed gift set, a “pick any three” box and a bundle whose line shows a custom title and price in checkout are not the same job. Picking the route before anyone writes code saves a rebuild later, and the plan question is usually the one that decides it.

The three routes to a bundle

RouteGood forPlan
Shopify Bundles appFixed bundles and multipacksAll plans
App Store bundle app using Cart TransformMix-and-match and other customized bundles, without custom codeAny plan (App Store apps with Functions)
Custom app with your own Cart Transform functionBundle logic no listed app supportsShopify Plus

The rest of this article explains each row, and the one Cart Transform operation that needs Plus whichever app provides it.

Fixed bundles and multipacks: the Shopify Bundles app

Shopify Bundles is Shopify’s own free app. It creates fixed product bundles and multipacks from the admin, and it is available on all Shopify plans. If the bundle is always the same products in the same quantities, start here.

Its documented limits, and a few that apply to every bundle, are worth checking against your catalog before you commit:

  • Size. Fixed bundles take up to 30 components, with up to 2,000 units per component, and a maximum of 3 options and 100 variants per bundle.
  • Inventory. Bundles don’t track inventory by location, only by overall stock. Availability is set by the component that runs out first: each component’s inventory divided by the quantity the bundle needs, taking the lowest result.
  • Price. When a component’s price changes, the bundle price doesn’t follow. You update it by hand.
  • Discounts. A discount on a bundle is calculated on the bundle’s total price, then shared among the components in proportion to their prices.
  • Not supported for any bundle. Shopify’s eligibility page lists bundles inside bundles, import, export and bulk editing, and exchanges, even for an identical bundle.

Two eligibility rules apply to every bundle on Shopify, whichever app makes it. The store must sell through the Online Store or a custom storefront, and it must use the upgraded checkout: stores still on checkout.liquid can’t sell bundles. And bundles aren’t compatible with purchase options, which includes subscriptions, pre-orders and try-before-you-buy.

What Cart Transform does

When the customer builds the bundle, the Bundles app’s fixed model stops fitting. Shopify’s documentation points customized bundles, such as mix-and-match, to the Cart Transform Function API. It runs on Shopify’s servers at the cart.transform.run target and changes “the pricing and presentation of items in a cart” with three operations:

  • lineExpand splits one cart line into its component items. The customer adds one bundle product; the order carries the components.
  • linesMerge combines several cart lines into one bundle line. Shopify’s sample bundle app does this when it finds all of a bundle’s components in the cart.
  • lineUpdate overrides the price, title or image of a single cart line.

In Shopify’s sample app, the bundle definition lives in metafields: a list of component variants, a list of component quantities, and a JSON field that maps components back to their parent bundles. That pattern matters for the merchant, because the bundle can be edited as data without redeploying the function.

Exactly what needs Shopify Plus

Three separate rules decide this, and they are often confused:

  1. Who built the app. Stores on any plan can use public App Store apps that contain Functions. Only Shopify Plus stores can use a custom app that contains Functions. So a merchant on Basic or Grow can run an App Store bundle app that uses Cart Transform, but not a private app built only for their store.
  2. Which operation. Only development stores or stores on a Shopify Plus plan can use apps with lineUpdate operations, whoever built the app. Shopify’s Help Center adds that the update operation isn’t available on Shopify Plus trial stores, only on the full plan.
  3. What Shopify offers Plus stores directly. The Help Center puts it plainly: for mix-and-match bundles, a store on Shopify Plus can build a custom bundle offering with the Bundles APIs. The other option it names is a third-party bundle app from the Shopify App Store.

Limits that shape a Cart Transform build

  • One per app. A store can install at most one cart transform function per app. All of an app’s bundle logic goes into that one function.
  • Selling plans. Shopify rejects lineExpand, linesMerge and lineUpdate operations when a selling plan is present. A subscription line can’t be bundled this way.
  • Surfaces. The API is supported in the cart, storefront, B2B, draft orders, the Shopify admin and accelerated checkout. Checkout and POS are partly supported: in POS, full support needs the bundle variant’s requiresComponents set to true. Order editing, the Create Order API, subscriptions, and pre-orders and try-before-you-buy are not supported.
  • Components only. When a bundle variant can’t be bought on its own, mark it with requiresComponents set to true, as Shopify’s bundle guide describes.
  • Function runtime. Like every Function, it sees only what its input query asks for, can’t read the clock or generate random values, and has fixed limits, including a 256 kB compiled binary and a 128 kB input for carts of up to 200 lines.

How to choose

  1. Write the bundle down as rules: which products, fixed or chosen by the customer, how it is priced, and whether any line is a subscription.
  2. If it is fixed and fits 30 components and 100 variants, use the Shopify Bundles app. No custom code.
  3. If the customer composes it, look at App Store bundle apps first. They run on any plan, because the plan rule for Functions only applies to custom apps.
  4. Build a custom app with its own Cart Transform function when the rules are specific to your store and the store is on Shopify Plus. If the design needs lineUpdate to show a custom price, title or image on the line, confirm the store is on full Plus, not a trial.
  5. If any part must work with subscriptions, stop and redesign: bundles and selling plans don’t combine.

Stores moving off Shopify Scripts often meet this question, because some line item Scripts grouped or repriced products. Cart Transform is one of several places that logic can go; see where each Script’s logic goes now. If the rule is about refusing a cart rather than reshaping it, such as a minimum bundle quantity, Cart and Checkout Validation is the better fit.

Where Lintel fits

Lintel builds Cart Transform functions and the custom apps that carry them as part of its Shopify Functions work, and recommends the Bundles app or an App Store app when one does the job. The first review answers the plan question and the selling plan question before any build is scoped. When a custom app is the right route, the function is packaged in a custom Shopify app with the bundle rules kept in metafields the team can edit.

Questions

Do I need Shopify Plus to sell bundles?
No. The free Shopify Bundles app for fixed bundles and multipacks is available on all plans, and App Store bundle apps that use Cart Transform run on any plan. Plus is needed for a custom app that contains a Cart Transform function, and for apps that use the lineUpdate operation.
What does lineUpdate do, and why does it matter?
lineUpdate overrides the price, title or image of a cart line. Only development stores and stores on a full Shopify Plus plan can use apps with it; Shopify’s Help Center says it isn’t available on Plus trial stores.
Can a bundle include a subscription product?
No. Shopify states that bundles can’t be sold with selling plans such as subscriptions, pre-orders and try-before-you-buy, and it rejects Cart Transform operations when a selling plan is present.
How many Cart Transform functions can a store run?
A store can install at most one cart transform function per app, so each app’s bundle logic has to live in a single function.

Sources

  1. Cart Transform Function APIShopify developer documentation, checked 26 September 2026
  2. About product bundlesShopify developer documentation, checked 26 September 2026
  3. Create a bundle appShopify developer documentation, checked 26 September 2026
  4. Shopify BundlesShopify Help Center, checked 26 September 2026
  5. Eligibility and considerations for using product bundlesShopify Help Center, checked 26 September 2026
  6. About Shopify Functions (availability)Shopify developer documentation, checked 26 September 2026
  7. Function APIs: resource limitsShopify developer documentation, checked 26 September 2026