Product Bundles With Salesforce CPQ
StoreConnect supports Salesforce CPQ for the purposes of bundling and selling products together. StoreConnect store operators can use this functionality to:
- Offer products (including variants thereof) to be sold as a bundle, instead of (or in addition to) individually.
- Enforce rules regarding the quantities of bundled products that are purchased (e.g. minimum and maximum).
- Require that related products be purchased when purchasing the lead product in the bundle.
- Specify different pricing structures for bundled products.
Salesforce CPQ
Salesforce CPQ & Billing is an optional package that can be installed into your Salesforce organization. Once installed, a new application is available within the organization called “Salesforce CPQ”, which allows administrators to configure the above functionality (and more). It encompasses a wide range of functions, but is implemented in StoreConnect mainly for the purposes of product bundling.
“CPQ” stands for Configure, Price, and Quote. It is mainly used by sales teams to generate customized and dynamic quotes for clients. Within StoreConnect sites that outcome is slightly shifted; the end result is a cart of products that your customer has chosen to purchase as a group, rather than a quote from a sales team to a prospective client.
To learn more about how CPQ works, complete this Trailhead course by Salesforce.
Permissions Required
You need to assign the Salesforce CPQ Partner User permission set as well as one Salesforce CPQ license to your StoreConnect synchronisation user for your StoreConnect store to be able to work with the CPQ objects.
Activation Within StoreConnect
You don’t have to do anything! Your StoreConnect site will detect the presence of the CPQ package in the organization that it is connected to, and the CPQ functionality will enable automatically.
Configuring a Bundle
Bundles are configured within the Salesforce CPQ interface as per normal CPQ idioms. Here are the key concepts that you will need to be familiar with:
-
Product Options: These are the basic building blocks of product bundles. They link products together, with each Product Option record having a “lead product” and a “bundled product”. Thus, instead of there being a single entity within Salesforce that represents the bundle itself, it is better to think of a bundle as “a lead product which has multiple bundled products through Product Options”. The products themselves are just regular Product records; there is nothing special about them.
-
Product Features: These are optional groups of Product Options in a bundle. For example, if you run a store selling a computer bundle, you might create a Product Feature called “External Devices”, with Product Options within it for products like “Keyboard”, “Mouse”, and so on. Product Options are grouped by feature on the website, while Product Options without a Product Feature are hidden.
Lead Product
The Lead Product of a bundle is the product to which all the Product Options in the bundle are associated. Users will visit this product’s page on the website to purchase the bundle. Importantly, this does not support variant products. For example, if you want to sell a coffee machine with black, white, and chrome variants with various bundled accessories you should make a new faux-product to act as the lead of the bundle - “Coffee Machine Bundle” for example. The machine itself can then be used as the anchor product of the bundle. Because of this limitation, while the Lead Product can be any Product record, we recommended creating a separate Product to represent the bundle as a whole.
Anchor Product
A bundle can optionally contain one Anchor Product. The anchor product will allow the user to select a variant (if applicable). The Product details will also be shown on the bundle page (e.g. Product features, Product’s warranty information, etc.
Note: Only a single variant type is supported.
To set a Product as the anchor it’s Product Option should have the Required field as true, and it should be related to a Product Feature where Number is 1.
Product Variants
Within StoreConnect, “product variants” represent slight differences of the same core product (variants, if you will). For example, a “Shirt” product might have three variant products: “Shirt - Small”, “Shirt - Medium” and “Shirt - Large”. For the purposes of configuring bundles, you don’t need to individually create Product Options for each variant. Simply create one for the master product and the variants will also be considered part of the bundle by virtue of the master product’s inclusion.
If desired you can create Product Options for variant products. You may need to do this if the variant needs different Product Option settings from its parent (for example, different maximum quantities), or if you need to process a bundle with variants in Salesforce’s CPQ system.
An Example
To help visualise the configuration, here is a simple bundle based on a capsule-using coffee machine:
- Product: Coffee Machine Bundle (faux product representing the bundle)
- ProductFeature: Machine (Number: 1. The anchor feature)
- ProductOption: Coffee Machine Master (The anchor product)
- Coffee Machine Black (no product option, variant)
- Coffee Machine White (no product option, variant)
- ProductOption: Coffee Machine Master (The anchor product)
- ProductFeature: Accessories
- ProductOption: Milk Frother
- ProductOption: Cleaning Brush
- ProductFeature: Capsules
- ProductOption: Coffee Capsules Master
- Caramel Capsules (no product option, variant)
- ProductOption: Vanilla Capsules (variant. Product option not required but used to overwrite the unit price).
- Product Option: 2 Year Warranty (Not shown to user on bundle page due to no Product Feature)
- ProductFeature: Machine (Number: 1. The anchor feature)
User Experience
With CPQ enabled and your bundles configured, the product page of the bundle’s lead product will show users the list of options and allow them to configure the bundle to their liking. The “add bundle to cart” button will be disabled if the bundle configuration is not yet valid (e.g. incorrect quantities, missing required options, etc). Once added to the cart the bundle is treated as a distinct unit (with its contents clearly displayed), and checkout is the same as for any other product.
Quantity Validations
As mentioned above, as well as prompting your customers to purchase other products in a bundle, StoreConnect enforces the following rules that you can configure within Salesforce’s CPQ interface:
-
Product Option minimum and maximum quantity: When set on the Product Option, these ensure that the quantity of the bundled product that the customer selects falls within the specified range. A validation message on the lead product page will prompt the customer to update their selections to conform to the range if necessary. Either minimum, maximum, or neither can be set. If both are set they form an inclusive range. If only minimum is set then at least that number has to be selected, with no maximum. And if only maximum is set, then at least one has to be selected, up to the maximum (inclusive).
-
Product Option quantity editable: When this setting is unchecked, the customer will not be able to change the bundled product’s quantity from its default (unless it is zero, in which case it will always be editable).
-
Product Option quantity: If this setting is set to a value greater than zero, it will be used as the default quantity when the user views a bundle. If it is not set (or it is set to zero), then the minimum quantity (see above) will be used if that is set and greater than zero.
-
Product Option required: Bundled products that are marked as required must be selected by the customer. These options will be selected by default when the user views the bundle. The lead product page will display a validation message prompting them to select it before they can continue.
-
Product Feature minimum and maximum option count: When set, this will display a validation message on the lead product page prompting the customer to ensure they have selected enough bundled products within that feature to satisfy the requirement before they can continue (remember that Product Features are groups of Product Options).
Pricing Methods
By default, the price of products when purchased within a bundle is the same as when purchased separately. However, that can be configured using CPQ’s “option pricing” and “block pricing” features.
Option Pricing
There are two types of pricing that can be achieved with option pricing:
-
Bundled pricing: If the “bundled” checkbox is ticked then the product will be free when purchased within the bundle. Use this when a product’s price is included within the overall bundle price. For example, you might want the user to select an accessory (e.g. electricity adapters for different countries) but the price of the accessory is covered by the price of the bundle’s lead product.
-
Price override: If a “unit price” is set directly on the Product Option record, then that price is used in place of the product’s Price Book Entry price. Use this to specify a different price for a product purchased within a bundle than when purchased individually.
If neither of these two options are set on the Product Option, then the product’s Price Book Entry is used.
Block Pricing
In Salesforce’s CPQ interface, you can optionally create associated “Block Price” records for a product. Each record has a lower bound, an upper bound, and a price. If a customer selects a quantity of a product that falls within the range of an associated Block Price record, then that price is used for the product’s line item on the cart.
For example, if there is a Block Price of $50 for quantities between 1 and 11, and the user selects the product with a quantity of 9, then the line item will have a total price of $50 once added to the cart.
Note that with Salesforce CPQ Block Prices the upper bound of this range is exclusive. In this example, the highest quantity that would receive the block price is 10. Think of the upper bound as “the maximum quantity that this range supports, plus one”. If you have multiple Block Price records, the lower bound of a record would always be the same as the upper bound of the preceding record.
Tip: Don’t forget to set the “Pricing Method” of the Product itself to “Block”, in order to activate Block Pricing. Again, that is set within Salesforce’s CPQ interface simply by editing the product record.
Back to Documentation