Skip to content
Log in

Product bundles

On this page

Product bundles let you sell a curated group of products as a single offering. Customers select their options and add the bundle to their cart from the bundle product page on your storefront.

StoreConnect’s native bundle system does not require Salesforce CPQ. If you are using CPQ, see Product bundles with Salesforce CPQ instead.

How bundles work

A bundle consists of:

  • An anchor product — the bundle itself (e.g., “Gaming Laptop Bundle”). This is the product your customers visit and purchase.
  • Components — the individual products that make up the bundle (e.g., a laptop, keyboard, monitor). Each component has quantity and pricing rules.
  • Component groups (optional) — logical groupings of components that let you apply additional selection and quantity constraints (e.g., “Choose your accessories”).

When a customer adds a bundle to their cart, the anchor product and each selected component appear as separate line items, grouped together under the bundle.

Set up a bundle

Step 1: Create the anchor product

Create a standard product to represent the bundle (e.g., “Gaming Laptop Bundle”). This is the product customers will visit on your storefront — it acts as the bundle container, not as a purchasable item in its own right.

Configure the product with these settings:

Field Value Notes
Product Name The name of the bundle Displayed as the bundle title on the storefront
Is Master Checked Default for standalone products. Do not create the anchor as a variant of another product.
Track Inventory Unchecked Bundle availability is determined by component stock, not anchor stock. Leave this off.
Active Checked Required for the product to appear on the storefront
Virtual Optional Check this if the bundle contains no physical items requiring shipping (e.g., all digital downloads). Leave unchecked if any component requires shipping.

:::note The anchor product itself is never sold or shipped directly — it is just the entry point for the bundle. There is no need to assign a SKU or manage stock for the anchor. :::

Add the anchor product to a category so it appears on your storefront. Customers navigate to it and configure the bundle from the product page.

Step 2: Add a pricebook entry and set the pricing strategy

The anchor product must have an active Pricebook Entry in your store’s pricebook. The pricing strategy controls how the bundle total is calculated.

On the Pricebook Entry for the anchor product, set:

Field Description
Bundle Price Strategy Choose flat_price or component_price (see table below)
Price For flat_price: the fixed bundle price. For component_price: set to $0 — the total is calculated from components.
Bundle Only Leave unchecked on the anchor. (This field is used on component products — see Step 3.)
Strategy How pricing works
flat_price The bundle total is the anchor product’s price only. Component prices are ignored.
component_price The bundle total is the sum of all selected component prices × quantities (less any free quantities).

Step 3: Create your component products

Create or identify the products you want to include as components. If a product should only ever be sold as part of a bundle (never standalone), check Bundle Only on its pricebook entry.

:::note If a component is a variant product, set the price on the variant’s price book entry, not the master product. The price used is the selected variant’s price. :::

Step 4: Create Product Component records

For each component, create a Product Component record linking it to the anchor product. Set the following fields:

Field Description
Anchor Product The bundle anchor product
Component Product The product to include as a component
Required If checked, the component must be included. The customer cannot remove it.
Default Quantity The quantity pre-selected when the customer opens the bundle page
Minimum Quantity Minimum quantity the customer must select (0 = none required)
Maximum Quantity Maximum quantity the customer can select
Free Quantity Quantity included in the bundle price at no extra charge (applies to component_price strategy)
Position Display order — lower numbers appear first
Component Group (Optional) Assign to a group for additional constraints

Step 5: Create Component Groups (optional)

Use component groups to organize components and apply group-level selection rules. For example, an “Accessories” group where customers must choose at least one but no more than three items.

On the Component Group record, set:

Field Description
Display Name The group heading shown to customers on the storefront
Position Display order of the group
Minimum Components Minimum number of different components from this group the customer must select (0 = none required)
Maximum Components Maximum number of different components the customer can select from this group
Minimum Group Quantity Minimum total quantity across all components in this group
Maximum Group Quantity Maximum total quantity across all components in this group

Then assign each component to its group by setting the Component Group field on the Product Component record.

:::tip Minimum Components and Minimum Group Quantity serve different purposes. For example: Minimum Components = 2 means the customer must pick at least 2 different items from the group. Minimum Group Quantity = 4 means the combined quantities of all items in the group must total at least 4. :::

:::note At least one product component must not be assigned to a component group, otherwise the bundle cannot be added to the cart. Groups are for organizing subsets of components — they cannot contain all components in a bundle. :::

Quantity constraints

Constraints are enforced both in the browser (real-time feedback) and server-side before adding to the cart.

  • Required component with matching min/max/default: The component cannot be removed.
  • Min Quantity = 0, Required = false: The component is optional and can be excluded entirely.
  • Free Quantity: For the component_price strategy, the first N units of a component are included in the bundle price. Units above the free quantity are charged at the component’s price.

Nested bundles

A component product can itself be a bundle. This lets you build hierarchical bundle structures.

Example:

Ultimate PC Bundle ├── Gaming Laptop Bundle (nested) │ ├── Gaming Laptop (required) │ └── Keyboard Cover (optional) ├── 4K Monitor (optional) └── HD Webcam (optional)

Customers set up the nested bundle in a pop-up window before adding the parent bundle to the cart. Quantities cascade: the parent bundle quantity multiplies through all nested component quantities.

To set up a nested bundle, create a Product Component record where the Component Product is itself a bundle anchor product. The nested bundle’s own Product Component records define its contents.

Bookable product bundles

A component product can be a bookable or rental product. When included in a bundle, customers select booking dates, times, and location for that component directly on the bundle page.

Each bookable component in a bundle can have a different booking period. Availability is validated per component when the bundle is added to the cart.

For more on configuring bookable products, see Sell bookable events and services and Configure rental products.

Customer experience

  1. The customer visits the bundle product page on your storefront.
  2. The bundle page shows required components (pre-selected) and optional components.
  3. The customer adjusts quantities, selects optional components, chooses variants, sets up any nested bundles, and selects booking details for any bookable components.
  4. The total price updates in real time as selections change.
  5. The customer adds the bundle to the cart. The anchor product and each component appear as grouped line items.
  6. To edit a bundle in the cart, the customer selects Edit. The bundle page reopens with their previous selections pre-filled.
  7. Removing the bundle from the cart removes all component line items together.

Component pricing overrides

By default, a component’s price comes from its standard pricebook entry. If you need per-pricebook pricing for a component — or different pricing when the same component appears in different anchor bundles — use Component Pricing (Component_Pricing__c) records.

Priority order when determining a component’s price:

  1. Component Pricing record matching both the anchor product and the pricebook (most specific)
  2. Component Pricing record matching the pricebook only (general)
  3. Standard pricebook entry for the component (default)

To create a Component Pricing override:

  1. In Salesforce, navigate to Component Pricing in the App Launcher.
  2. Create a new record and set:
Field Description
Component Product The component product to override pricing for
Anchor Product (Optional) The bundle this override applies to. Leave blank to apply to all bundles.
Pricebook The pricebook this price applies to
Unit Price The overridden price for this component

See Component Pricing Object Reference for the full field reference.

POS behavior

Cashiers can configure and add bundles to the POS cart using the bundle modal. The anchor product and each selected component appear as a grouped set in the cart.

In the POS cart:

  • Bundle items are displayed as a group. The quantity picker and remove button are hidden for individual items — the bundle must be managed as a unit.
  • Bundles persist through park and resume. The bundle grouping is restored when the cart is resumed.
  • Bundles added on the web storefront and synced to POS display correctly, and vice versa.

Limitations in POS:

  • Bundles cannot be edited after being added to the cart. To change the configuration, remove the bundle and reconfigure it.
  • Bundle-level discounts are not supported.
  • Fulfillment type for bundle items defaults to takeaway regardless of cart context.

Bundle-only products: Component products with Bundle Only enabled on their price book entry are visible in POS search, product grid, and scan results, but cannot be added to the cart directly. This prevents staff from accidentally selling a bundle component as a standalone item.

CPQ coexistence

StoreConnect’s native bundle system and Salesforce CPQ can coexist in the same org. However, a single product cannot use both approaches simultaneously — a product is either a StoreConnect native bundle or a CPQ bundle, not both.

Salesforce object reference

The bundle system uses these custom Salesforce objects:

The Bundle Price Strategy and Bundle Only fields are on the Pricebook Entry record for each product.

Was this article helpful?

Was this article helpful?