Bundles
What are Bundles?
A bundle is a distinct, purchasable product formed by grouping one or more other products that you intend to sell together as a single offering. Bundles make it easier for shoppers to discover and purchase multiple related items together, while also helping merchants increase average order value and streamline merchandising.
Bundles are built using components. Components are logical groupings that define how shoppers can select from a set of product options, which are products or sub-bundles available within each group. This structure allows merchants to create everything from simple, fixed sets of products to highly flexible and customizable configurations.
You can have:
- Fixed Bundles: These bundles contain a specific, pre-determined set of products with fixed quantities.
- Dynamic Bundles: These bundles offer flexibility, allowing shoppers to select their own options or variations from a defined set of choices within the bundle.
- Bundles of Bundles: These advanced bundles are composed of other pre-existing bundles. The parent bundle serves only as a logical container (cannot be added to cart directly) and should be used only for complex scenarios where simpler bundle options don't meet your requirements.
There are two different pricing options available:
- Fixed Pricing: Assign a specific price to the entire bundle.
- Cumulative Pricing: The bundle's price is the sum of the prices of the options selected by the shopper (in a dynamic bundle) or the products defined by the merchant (in a fixed bundle).
Use Cases
- Fixed Bundles: The "Home Office Essentials" Bundle: An office supply retailer offers a convenient, pre-determined package (desk lamp, mouse, notebook, pens) as a fixed product bundle for easy home office setup, simplifying purchase and potentially increasing order value.
- Dynamic Bundles: The "Build Your Own Latte" Bundle: A coffee shop lets customers create their ideal latte through a dynamic bundle. They select their preferred size, milk, blend, shots, syrups, and extras from a set of options. The price adjusts based on these choices, offering a flexible and tailored drink.
- Bundles of Bundles: The "Couch Configuration" Bundle: A furniture retailer offers couches in different sizes (2-Seater, 3-Seater, etc.), where each size has its own base price and the same customization options (fabric, color, leg style) but with different pricing based on size. The parent bundle lets shoppers first select a couch size, then configure the specific options for that size. Each size-specific bundle must be added to cart individually.
Terminology
- Component: A Component is a distinct group of one or more product options within a bundle. A bundle consists of one or more components.
- Component Min/Max: The number of products within a Component that can be selected by the shopper, defined through the min and max configuration.
- Option: A Component consists of one or more Options which are distinct products that are added to a component. These products could be a single product, another bundle (in the case of bundles of bundles), a parent product, or a child product. When adding a parent product to a component, all its child products (variations) automatically become available for selection, though you can configure specific child products to be excluded if needed.
- Option Default: A product can be set as default, allowing the merchant to define a pre-selected product for the shopper within a component.
- Option Quantity: Each product in a Component has a specific quantity that the shopper must purchase.
- Option Min/Max: Allows Shoppers to purchase their desired quantity of a product, by configuring the the min and max bounds within an option.
Bundle Types
Dynamic Bundles
Dynamic bundles allow merchandisers to create configurable product groupings where shoppers can personalize selections within defined rules. These bundles are composed of components—logical groupings of related product options—each with customizable constraints and behaviors. This flexible structure enables tailored experiences, driving higher engagement and average order value.
Core Concepts
Component Level Rules
Rules can be defined for each component to control shopper selections:
- Minimum Selections: Require at least a certain number of products that can be chosen within a component.
- Maximum Selections: Limit the number of products a shopper can pick from a component.
- Optional Components: Components can also be optional by setting the minimum selection to zero.
Product Option Quantity Rules
Merchants can define rules for each product within a component to control shopper purchase quantity:
- Default Quantity: If you do not set a minimum or maximum quantity for a component option, the shopper will be limited to the default quantity that you have set for that specific option within the bundle configuration. This is useful when you want to ensure a specific number of a particular item is included if the shopper selects it.
- Minimum Quantity: This sets the lowest number of units a shopper must select for a product option.
- Maximum Quantity: This defines the highest number of units a shopper can select for a product option.
Product Option Defaults
Specific product options can be designated as default within each component. This is particularly useful when the bundle is initially displayed in the cart or when a shopper hasn't yet customized their choices.
Parent Products as Options
When working with products that have variations (such as clothing items with different sizes and colors), you can add the parent product to a bundle component. This automatically makes all child products (variations) available for selection within that component.
Additionally, you can configure specific child products to be excluded from the bundle when the parent is added. This gives you fine-grained control over which variations are available for selection within the bundle, while still benefiting from the convenience of adding the parent product.
For example, if you add a "T-Shirt" parent product to a bundle component, all its variations (Small/Red, Medium/Blue, Large/Black, etc.) become available for selection. However, you might want to exclude certain variations (e.g., Small/Green and Medium/Yellow) from this particular bundle. You can configure these specific child products as exclusions, ensuring they won't appear as options even though the parent product is included.
Bundle Configuration in Catalog and Cart
Dynamic bundles have a bundle_configuration
which describes the options selected by a shopper. This configuration is crucial for both displaying bundle options in your catalog and processing bundle purchases in your cart.
Bundle Configuration Structure
The bundle_configuration
is a JSON object that contains:
selected_options
: An object where each key is a component ID (e.g., "size", "color", "extras")- Each component contains key-value pairs where:
- The key is the product ID of the selected option
- The value is the quantity of that option
- Each component contains key-value pairs where:
Working with Bundle Configurations in Catalogs
- Once your bundles are published in a catalog, a shopper can select the products they want.
- Use Get a product in a catalog release to check a bundle's default configuration. The default
bundle_configuration
is returned in themeta
section of the response. - Use the configure a shopper bundle endpoint to store a shopper's selections.
When adding a dynamic bundle to a cart, you need to include the bundle_configuration
in the cart item. This ensures that the correct products and quantities are added to the cart.
Bundles of Bundles
A Bundle of Bundles is a specialized grouping mechanism that allows merchandisers to organize multiple, related product bundles under a single parent container. The parent bundle serves only as a logical container and cannot be added to cart directly - it exists solely to help shoppers navigate to the appropriate child bundle.
Important: Bundles of bundles should be used as a last resort for complex scenarios when simpler bundle options don't meet your requirements. This is the most complex bundle use case and should only be implemented when other bundle types cannot address your specific merchandising needs.
Structure
In a Bundle of Bundles, you typically have:
- A parent bundle with a single component (e.g. "Couch Type")
- Multiple bundle options within that component (e.g., "2-Seater Sofa Bundle", "3-Seater Sofa Bundle")
- Each bundle option is itself a complete bundle with its own components and configuration options
When implementing a Bundle of Bundles in your storefront, the parent bundle serves primarily as a navigation aid. Shoppers browse the parent bundle to discover the available bundle options, then select and configure the specific child bundle they're interested in.
For a detailed implementation example, see the Couch Collection example.
Requirements
- You cannot have more than one level of child bundles. In other words, a child bundle cannot have a child bundle as a component.
- A parent bundle can contain both bundle and product components.
- Each bundle of bundle option needs to be configured and added to the cart individually.
SKU Considerations
When creating bundles, PXM offers the flexibility to assign a Stock Keeping Unit (SKU) to the bundle itself or to manage it as a SKU-less entity.
SKU-Based Bundles
A SKU-based bundle has a unique SKU. Fixed Pricing requires a bundle SKU.
When to Use a SKU-Based Bundle:
- Implementing Fixed Pricing: To set a single price for the entire bundle.
- Tracking Bundle Inventory: To manage stock levels for the complete bundle as a single unit.
- Applying Direct Bundle Promotions: To easily target the bundle with discounts using Promotions Builder.
SKU-Less Bundles
A SKU-less bundle does not have its own unique SKU.
When to Use a SKU-Less Bundle:
- Implementing Cumulative Pricing: The bundle price changes based on the shopper's selections.
- Managing Inventory at the Product Option Level: You only need to track the stock of the individual items within the bundle.
Pricing Strategies
The following table describes the capabilities and pricing that bundles can have.
Pricing | Description | Requires SKU? | Price Book Entry | Capabilities |
---|---|---|---|---|
Fixed | Enables you to assign a fixed price for all the products in a bundle. The bundle can contain items that are available for individual purchase, however, when purchased in a fixed-price bundle, are offered at a discounted price. | Yes | Mandatory | Sale Pricing - defines reduced pricing for the total price of the bundle. Volume Pricing - offers promotional prices for products bought in bulk. Bundle Inventory Management - bundle inventory can be tracked based on the availability of individual items in the bundle. In this case, the maximum number of bundles you can sell is equal to the number of the option that is least available. |
Cumulative | The price of a bundle can be generated automatically based on the sum of the component products. Each individual product can use its underlying volume, sale, and normal price. Ensure that you set a price for each product within the bundle. If a component product does not have a price, the bundle price cannot be set and customers cannot purchase the bundle. | Optional | Not available when SKU is present | Sale Pricing - define reduced pricing for individual products when purchased as part of the bundle. Each product can have a special sale price that will only be used when the product is brought as part of the bundle. |
Sale Pricing
Fixed Price Bundles
For fixed price bundles, you can set a sale price for the entire bundle. This allows you to offer the bundle at a discounted price compared to the regular bundle price.
Cumulative Price Bundles
For cumulative price bundles, you can set a sale price for an item within a bundle so that the product is sold at the sale price when sold as a part of the bundle. Each individual product can use its underlying volume, sale, and normal price, but you can also set a special sale price that will only be used when the product is brought as part of the bundle.
For example, if you have a bundle consisting of four items, you can apply a discounted price to an item within the bundle to get a bundle sales price. Both list and sale price (or was/is prices) are available in the catalog response, enabling you to display slash pricing on your storefront, depending on your requirements.
Product | Regular product price | Bundle sales price |
---|---|---|
Product A | $100 | $80 |
Product B | $50 | $50 |
Product C | $30 | $30 |
Product D | $130 | $130 |
Total | $310 | $290 |
Volume Pricing
Fixed Price Bundles
For fixed price bundles, you can configure volume pricing for the entire bundle. You can define the price range for different quantities of the bundle, as explained in the following example.
Bundle Quantity | Price/Each |
---|---|
1-5 | $10.50 |
6-10 | $10.00 |
11+ | $9.50 |
Cumulative Price Bundles
For cumulative price bundles, each individual product uses its underlying volume pricing. When a customer adds sufficient quantity of an item and meets the minimum required quantity for different pricing, all products with that item SKU are discounted in the cart. The volume pricing of the individual products is applied when calculating the total price of the bundle.
Inventories
To track inventory at the bundle level (i.e., the total number of complete bundles available), you must use a SKU-based bundle. The system will then manage the stock of the bundle as a single unit.
If you do not need to track inventory at the bundle level and instead want to rely solely on the inventory of the individual product options within the bundle, then you do not need to use a SKU-based bundle. This is the approach used for SKU-less bundles.
Examples
The following table describes some examples of bundles which are possible in PXM. This is followed by real-life examples of complex bundles.
Bundle Type | Pricing | Description |
---|---|---|
Pure bundles | Fixed | Products are available only as a bundle. |
Joint bundles | Fixed, Automatic/cumulative | A bundled price offered for two or more products. |
Gift sets | Fixed, Automatic/cumulative | A bundle created from a set of predefined items. |
Leader bundle | Automatic/cumulative | A popular product is offered for a discount if you buy it with another less popular product. |
Mix and Match bundles | Automatic/cumulative | Bundle products are selected from a predetermined list of items that you can bundle together. |
Upsell bundles | Automatic/cumulative | Discounted price for the current product when bought together with an accessory as a related item. |
Dynamic Bundle: Customize Your Latte
This example models a customizable latte where the Size component uses variations of a base "Latte" product (Small, Medium, Large) to determine the initial price. Subsequently, the shopper can personalize their latte through optional components (Milk, Blend, Extra Shots, Syrups, Extras). These components consist of individual products that act as upsells or modifications, potentially increasing the final price of the latte.
Component | Options | Default Option | Component Min/Max | Option Quantity | Option Quantity Min/Max |
---|---|---|---|---|---|
Size | Small ($5.00) Medium ($6.00) Large ($7.00) | Medium | 1 / 1 | 1 | N/A |
Milk | Whole ($0.00) Skim ($0.00) Soy (+$0.20) Oat (+$0.20) Coconut (+$0.20) | Whole | 1 / 1 | 1 | N/A |
Blend | Signature ($0.00) Decaf ($0.00) | Signature | 1 / 1 | 1 | N/A |
Extra Shots | None ($0.00) One (+$1.00) Two (+$1.50) | None | 0 / 1 | 1 | 1 / 2 |
Syrups | None ($0.00) Caramel (+$0.20) Vanilla (+$0.20) Hazelnut (+$0.20) Sugar Free Caramel (+$0.20) Sugar Free Vanilla (+$0.20) Sugar Free Gingerbread (+$0.20) Cinnamon Bun (+$0.20) | None | 0 / 1 | 1 | 1 / 2 |
Extras | None ($0.00) Marshmallow (+$0.50) | None | 0 / 1 | 1 | 1 / 2 |
Dynamic Bundle: Build a Couch
This example demonstrates a "Build a Couch" configuration where the shopper must choose exactly one option from each of the following components: Color, Fabric and Leg Style. The final price of the Couch will be the sum of the prices associated with the selected option in each of the components.
Component | Options | Default Option | Component Min/Max | Option Quantity | Option Quantity Min/Max |
---|---|---|---|---|---|
Colour | Beige (50.00) Grey ($50.00) Navy Blue ($100.00) Charcoal ($50.00) | Grey | 1 / 1 | 1 | N/A |
Fabric | Linen ($50.00) Velvet ($50.00) Leather ($150.00) | Linen | 1 / 1 | 1 | N/A |
Leg Style | Straight ($75.00) Tapered ($75.00) | Straight | 1 / 1 | 1 | N/A |
Cumulative Pricing Example
The final price is the sum of each selected options price from each mandatory component (Color, Size, Fabric).
Component | Selected Option | Price ($) |
---|---|---|
Colour | Navy Blue | 100.00 |
Fabric | Leather | 150.00 |
Leg Style | Straight | 75.00 |
Total Price | 275.00 |
Dynamic Bundles: Outfit Builder
This example demonstrates how a clothing company can implement an Outfit Builder that allows shoppers to configure a complete outfit from a selection of related products within the same collection.
Clothing products are typically modeled as "Parent Products" with Variations that represent all possible combinations (sizes, colors, etc.). These parent products can be added to a Bundle Component, which automatically allows shoppers to select any of the parent's child products (variations).
Additionally, you can configure specific child products to be excluded from the bundle when the parent is added. This gives you fine-grained control over which variations are available for selection within the bundle, while still benefiting from the convenience of adding the parent product.
For example, if you add a "T-Shirt" parent product to a bundle component, all its variations (Small/Red, Medium/Blue, Large/Black, etc.) become available for selection. However, you might want to exclude certain variations (e.g., Small/Green and Medium/Yellow) from this particular bundle. You can configure these specific child products as exclusions, ensuring they won't appear as options even though the parent product is included.
The following table illustrates a Wedding Outfit Builder where each component represents a category of clothing, and each option represents a style variant within that category:
Component | Options | Default Option | Component Min/Max | Option Quantity | Option Quantity Min/Max |
---|---|---|---|---|---|
Jacket & Trousers | Single Breasted Double Breasted | Double Breasted | 1 / 1 | 1 | N/A |
Shirt | Single Cuff Double Cuff | Double Cuff | 1 / 1 | 1 | N/A |
Shoes | Oxford Derby Loafer | Oxford | 1 / 1 | 1 | N/A |
Tie | Tie | Tie | 1 / 1 | 1 | N/A |
Bundle of Bundles: Couch Collection
This example demonstrates how a furniture retailer can implement a "Couch Collection" as a bundle of bundles, where a single component contains multiple couch bundle options. This approach helps to group related couch bundles together for better display on the storefront.
Component | Options | Default Option | Component Min/Max | Option Quantity | Option Quantity Min/Max |
---|---|---|---|---|---|
Couch Type | 2-Seater Sofa Bundle 3-Seater Sofa Bundle 4-Seater Sofa Bundle | 2-Seater Sofa Bundle | n/a | n/a | n/a |
Important: Bundles of bundles cannot be added to cart directly and cannot be configured at the parent level. Each bundle option (like the 2-Seater Sofa Bundle) needs to be configured separately and added to cart individually.
For implementation details on child bundles such as the individual sofa bundles, refer to the Build a Couch example above. This example demonstrates how to create a configurable bundle with components for fabric, color, and leg style.