Flex Bundles
Documentation

Bundle Types

Flex Bundles supports three bundle types. You choose one when you create a bundle, based on whether the contents are pre-set, built by the customer, or given away for free.

Fixed Bundles

Pre-configured bundles with a set list of components. The bundle is attached to a parent product variant: when a customer adds that variant to the cart, its components are automatically included.

Fixed bundles are ideal for curated sets and seasonal offerings where you decide exactly what goes in the box. You can apply a discount to the bundle:

  • No discount — components are sold at their normal prices.
  • Percentage discount — a percentage off the bundle total (for example, 10% off).
  • Exact discount — a fixed dollar amount off the bundle total (for example, $10 off).

Because the bundle lives on the parent variant, fixed bundles work without any custom theme development.

Flex Bundles

Customer-built bundles. Instead of a fixed set of components, customers choose the products that go into the bundle themselves, which is how you build mix-and-match and "build your own" experiences.

Flex bundles are added to the cart through Shopify's Cart API using line item properties, and support two pricing modes:

  • Parent price — the bundle is priced from the parent variant, with an optional discount.
  • Component sum — the bundle price is the sum of the selected components.

Flex bundles require custom theme development to build the selection UI. See the Cart API Integration guide for the request format, and Customization for theme integration.

Free Bundles (Shopify Plus)

Free bundles let you add a line item to the cart at no charge, for gift-with-purchase (GWP) style promotions. The free item is flagged with the _is_free: true line item property when it is added to the cart.

This type requires Shopify Plus.

Choosing a type

Type Contents Plan
Fixed A set list you define Any
Flex Chosen by the customer Any
Free (GWP) A free gift line item Shopify Plus

You pick the bundle type when you create a new bundle from the app dashboard.