Your business rules might require that certain promotions can't be combined (stacked). For example, if there is a global 10% product promotion for everyone, and a special 20% product promotion for registered customers, registered customers should only receive the 20% discount. You might, however, want multiple promotions applied to an order. For example, you might want a customer to receive a 10% discount on a product in the cart, free shipping based on the order value, and a free bonus product with the same order.
You can control which promotions are applied and in what order using compatibility rules, so that all promotions for which a customer is eligible are not automatically applied to the shopping cart. The rank and exclusivity system attributes enable you to do this.
The rank attribute enables you to define which promotions take precedence (with 10 = highest and 100 = lowest, for example). Using the Business Manager promotion editing page, you can set the (optional) rank of a promotion. By default, a promotion has no rank.
The exclusivity attribute enables you to specify if promotions are mutually exclusive, in general or relative to a promotion's class. You can assign an exclusivity value to a promotion either at promotion creation, or any time. This setting is mandatory.
Exclusivity | Definition |
---|---|
NO | Can be combined with any promotion (default). |
CLASS | Cannot be combined with a promotion of the same class. |
GLOBAL | Cannot be combined with any promotion. |
The following table lists the promotion classes, the compatibility choices, and what they mean for a cart or shipment:
Promotion class | Compatibility | Result |
---|---|---|
Product | Global | Not combined with any other promotion in a given order |
Class | Not combined with any other product promotion for a specific product in a given order | |
Order | Global | Not combined with any other promotion in a given order |
Class | Not combined with any other order promotion in a given order | |
Shipping | Global | Not combined with any other promotion in a given order |
Class | Not combined with any other shipping promotion in a given shipment |
Exclusivity Handling for the Same SKU Multiple Times in a Basket
You can configure how you want class exclusivity for product promotions to be interpreted. The default is that class exclusivity for product promotions prevents multiple promotions from stacking on the same SKU in a basket. You can set a preference that changes this behavior. The Configure product promotion class exclusivity setting enables you to prevent promotions from stacking on the same item, but permits (when the same product is in the cart multiple times) distinct items to receive different promotional discounts. Use this to configure overlapping promotions, each with a finite application limit.
For example, using this setting, two skirts (same SKU) in a basket can qualify for other promotions. The default is that only one promotion can be applied to the skirts.
Exclusivity handling for buy-X-get-Y Promotions
B2C Commerce prevents products from being counted twice whereby qualifying products in one promotion are used as discounted products in another promotion. For class-exclusive buy-X-get-Y promotions, both the discounted and the qualifying products are prevented from receiving further discounts.
For example, a merchant configures two promotions for their back-to-school promotion:
Promotion | Qualifying product | Discounted product |
---|---|---|
Buy three pairs of khakis, get 50% off on a polo shirt | khakis | polo shirt |
Buy one pair of kid's sneakers and get 20% off on a pair of khakis | kid's sneakers | khakis |
Both promotions are set to Exclusive, whereby a product promotion can't be combined with any other product promotion for a specific SKU (that is product) in the order. Considering promotion priority rules, the promotion with 50% is prioritized ahead of the 20% offer. The first promotion is used and the second isn't because B2C Commerce prohibits both the qualifying and discounted products from receiving further discounts.
Choice of bonus product discounts
A product promotion with a choice of bonus products discount can define exclusivity rules like any other promotion. The exclusivity parameter only works for promotions with qualifying products. Exclusivity applies to the qualifying product SKUs and not the bonus product SKUs. For example, for three promotions:
Promo1 and Promo2 can't simultaneously apply to the same item (P123). Promo1 and Promo3 can simultaneously apply, because the promotion applied to P123 in one case and B1 and B2 in the other.
Two Promotions Set to Global-Exclusive, One with a Rank
In the following example, there are two promotions set to global-exclusive, one with a rank. All other promotions are non-exclusive.
Name | Promotion | Class | Rank | Exclusivity |
---|---|---|---|---|
PROMO_P1 | 10% off cashmere sweaters | Product | 60 | No |
PROMO_P2 | $2 off cashmere sweaters | Product | 0 | Global |
PROMO_P3 | $1 off cashmere sweaters | Product | 0 | No |
PROMO_P4 | 2.99 product fixed price for all jeans | Product | 30 | No |
PROMO_O1 | 15% off order | Order | 70 | No |
PROMO_O2 | 20% off order | Order | 65 | Global |
PROMO_O3 | $5 off order | Order | 0 | No |
The applied discounts for this basket are as follows:
Product | No discount |
Order | 20% off order |
The following are the applied discounts:
Item | Net price | Discount |
---|---|---|
pale blue cashmere sweater | $100 | None |
wide leg jeans | $25 | None |
Total | $125 | $25 |
One Global-Exclusive Promotion and One Class-Exclusive Promotion
The following example has one global-exclusive promotion and one class-exclusive promotion. All other promotions non-exclusive
Name | Promotion | Class | Rank | Exclusivity |
---|---|---|---|---|
PROMO_P1 | 10% off cashmere sweaters | Product | 60 | No |
PROMO_P2 | $2 off cashmere sweaters | Product | 0 | Class |
PROMO_P3 | $1 off cashmere sweaters | Product | 0 | Global |
PROMO_P4 | $2.99 product fixed price for all jeans | Product | 30 | No |
PROMO_O1 | 15% off order | Order | 70 | No |
PROMO_O2 | 20% off order | Order | 65 | No |
PROMO_O3 | $5 off order | Order | 0 | No |
The applied discounts for this basket are as follows:
Product | $1 off on sweater |
Order | No discount |
Item | Net price | Discount |
---|---|---|
pale blue cashmere sweater | $100 | $1 |
wide leg jeans | $25 | None |
Total | $125 | None |
Two Promotions Set to Global-Exclusive, Both with Same Rank
The following example has two promotions set to global-exclusive, both with same rank. All other promotions are non-exclusive.
Name | Promotion | Class | Rank | Exclusivity |
---|---|---|---|---|
PROMO_P1 | 10% off cashmere sweaters | Product | 60 | No |
PROMO_P2 | $2 off cashmere sweaters | Product | 0 | Global |
PROMO_P3 | $1 off cashmere sweaters | Product | 0 | No |
PROMO_P4 | $2.99 product fixed price for all jeans | Product | 30 | No |
PROMO_O1 | 15% off order | Order | 70 | No |
PROMO_O2 | 20% off order | Order | 65 | Global |
PROMO_O3 | $5 off order | Order | 0 | No |
The applied discounts for this basket are as follows:
Product | $2 off on sweater |
Order | No discount |
The following are the applied discounts:
Item | Net price | Discount |
---|---|---|
pale blue cashmere sweater | $100 | $2 |
wide leg jeans | $25 | None |
Total | $125 | None |
One global-exclusive promotion and one class-exclusive promotion
The following example has one global-exclusive promotion and one class-exclusive promotion. All other promotions non-exclusive
Name | Promotion | Class | Rank | Exclusivity |
---|---|---|---|---|
PROMO_P1 | 10% off cashmere sweaters | Product | 60 | No |
PROMO_P2 | $2 off cashmere sweaters | Product | 0 | Class |
PROMO_P3 | $1 off cashmere sweaters | Product | 0 | Global |
PROMO_P4 | $2.99 product fixed price for all jeans | Product | 30 | No |
PROMO_O1 | 15% off order | Order | 70 | No |
PROMO_O2 | 20% off order | Order | 65 | No |
PROMO_O3 | $5 off order | Order | 0 | No |
The applied discounts for this basket are as follows:
Product | $1 off on sweater |
Order | No discount |
Item | Net price | Discount |
---|---|---|
pale blue cashmere sweater | $100 | $1 |
wide leg jeans | $25 | None |
Total | $125 | None |
Multiple Class-Exclusive Promotions
The following example has multiple class-exclusive promotions. All other promotions are non-exclusive.
Name | Promotion | Class | Rank | Exclusivity |
---|---|---|---|---|
PROMO_P1 | 10% off cashmere sweaters | Product | 60 | No |
PROMO_P2 | $2 off cashmere sweaters | Product | 0 | Class |
PROMO_P3 | $1 off cashmere sweaters | Product | 0 | Class |
PROMO_P4 | $2.99 product fixed price for all jeans | Product | 30 | No |
PROMO_O1 | 15% off order | Order | 70 | Class |
PROMO_O2 | 20% off order | Order | 65 | No |
PROMO_O3 | $5 off order | Order | 0 | Class |
The applied discounts for this basket are as follows:
Product | $2 off on sweater |
Order | 15% off order |
Item | Net price | Discount |
---|---|---|
pale blue cashmere sweater | $100 | $2 |
wide leg jeans | $25 | None |
Total | $125 | $18.75 |
All Class-Exclusive Product Promotions
The following example has all class-exclusive product promotions. While they are all evaluated and applied, there is only one discount per product.
Name | Promotion | Class | Rank | Exclusivity | Item limit |
---|---|---|---|---|---|
PROMO_P1 | 10% off all products | Product | 60 | Class | 1 |
PROMO_P2 | $2 off all products | Product | 40 | Class | 2 |
PROMO_P3 | $1 off cashmere sweaters | Product | 15 | Class | |
PROMO_P4 | $2.99 product fixed price for all jeans | Product | 30 | Class |
The following are the applied discounts:
In cart | Price | Discount |
---|---|---|
cotton sweater | $50 | 10% off all products |
low rise Jeans | $40 | $2 off all product |
polo shirt | $30 | $2 off all product |
denim jacket | $20 | $2.99 product fixed price |
Class-Exclusive and Non-Exclusive Promotions
The following example has class-exclusive and non-exclusive promotions, whereby the class-exclusive promotions are not applicable. Therefore, all non-exclusive promotions are applied.
Name | Promotion | Class | Rank | Exclusivity |
---|---|---|---|---|
PROMO_P1 | 10% off all red shirts | Product | 60 | Class |
PROMO_P2 | $2 off all red shirts | Product | 40 | Class |
PROMO_P3 | $1 off all shirts | Product | 15 | No |
PROMO_P4 | $2.99 product fixed price for all green shirts | Product | 30 | No |
The following are the applied discounts:
In cart | Price | Discount |
---|---|---|
Green shirt | $2.99 | Fixed price and $1 off all shirts |
Yellow shirt | $40 | $1 off all shirts |