Choice of Bonus Product Discount

You can offer your shoppers a choice of bonus product as a discount. For example, spend at least $1,000 on living room furniture and get your choice of three different types of televisions.

A bonus product is added to a shopping cart if the bonus product is online and orderable. The product is orderable if an inventory list is assigned to the site, it’s available to sell, or there isn't an inventory list assigned to site (availability isn't evaluated).

See ProductAvailabilityModel.isOrderable() in the Salesforce B2C Commerce API documentation for more information.

Important: You can’t assign a bonus discount to a base product because a base product isn't orderable.

To configure bonus products, define rules in Business Manager or use the list functionality to customize your application. Rule-based bonus product discounts let you use a category as a pool of potential bonus products instead of specific Product IDs.

For example:

If either discount applies for a basket, B2C Commerce adds a BonusDiscountLineItem to the cart, representing an entitlement to a bonus product.

When the B2C Commerce Script API is called to select a bonus product (for example, using AddBonusProductToBasket), B2C Commerce validates the product against the configured rule. It rejects the product unless it satisfies the promotion product rule. B2C Commerce identifies bonus products that are improperly associated with BonusDiscountLineItem and don't satisfy the configured product rule. B2C Commerce removes the product from the cart.

This table describes some differences between the two discounts.

Feature Rule-based List-based
Tiered promotions Tiered promotions can't include rule-based bonus choice discounts. Tiered promotions can include list-based choices, where each tier has a free or defined price bonus product.

Precalculation for rule-based bonus choice discounts isn't possible.

To prevent an invalid promotion from blocking valid promotions from applying, B2C Commerce precalculates whether bonus products are available online. If not, the promotion acts disabled and doesn't add an entitlement to the cart even though the basket qualifies for it. This behavior lets product promotions that would have been blocked based on exclusivity rules properly apply.
BonusChoiceDiscount class Represented Represented
Application customization Not required Required


Configure a choice of bonus product rule as you would any rule-based product or order promotion. When using this discount type, the product results set can be large. The SiteGenesis application shows a window with at most 10 products per page. The SiteGenesis application implements this feature via the promotion ID RuleBasedChoiceOfBonusProduct.

Note: When you enable global product exclusions, and the rule-based discount search results contain excluded products, the area where rule-based products would appear is blank.
Note: Rebuild the product index after creating this discount type.


Configure the discount and change your storefront application. If you only configure it in Business Manager, no discount appears in the storefront. When this discount applies in the storefront, a placeholder is added to the cart containing the discount information. The shopper can add free products to the basket.

Add extra workflow to your code to notify a shopper that they’re entitled to the bonus products and let them select the products.

This discount lets shoppers:

The promotion doesn’t apply if every bonus product is offline, no longer assigned to the storefront catalog, out of stock, or no longer exists. If the bonus promotion previously blocked another product promotion because of exclusivity and rank, the previously hidden promotion applies instead. This process is similar to that of other bonus discounts.

Promotion Classes and Types

In Business Manager, you can select up to 50 bonus products to associate with the choice of bonus products (list) discount. The relatively low limit is because of performance considerations. You can configure the order in which the products appear. Bonus products must be online and assigned to the storefront catalog. You can configure up to 10 bonus items for the shopper to select from. The promotion isn't intended to let shoppers select several products, each with a different price. If your goal is to apply promotions to many products at the same time, consider using other promotion types.

Product Types

Product type Details
Variation You can include a base product or a subset of its variation products in a Choice of Bonus Product promotion. If the base product is in the list, the shopper can select any of its variation products. If the discount allows multiple bonus products, the shopper can select multiple variation products. The shopper can change selection by removing the selected product and selecting different variation products. If specific variation products are listed, the shopper can only choose from those. In this case, each appears as a separate choice with no way to change variation attribute values.
Option The shopper can select any option on the bonus selection page. To change option selections, shoppers can remove the selected product and add it again with different options.
Bundle Bundled products don't count toward max bonus items, because a bundle only counts as one item. If the bundle contains base products, the shopper must select variations before adding the bundle to cart. In this case, all variation products of the base product are selectable. If the bundle contains option products, the shopper must select options before adding the bundle to cart. STo change option selections, shoppers can remove the selected product and add it again with different options.
Note: You can't use product sets for this discount.
Note: The configured promotion-specific price of a variation group included in a Choice of Bonus Product discount doesn’t affect the promotion evaluation.
X Privacy Update: We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used. By continuing to use this site you are giving us your consent to do this. Privacy Policy.