docs
  1. Promotions
  2. Managing A Promotion
  3. Multiple Promotions On Item Level

Multiple Promotions on Item Level

Scayle also supports applying multiple promotions to an item, provided specific conditions are met, allowing for complex and layered discount strategies.

Enabling Multiple Promotions on an Item

For an item to receive the benefit of multiple promotions, both of the following conditions must be met:

1. Promotion Configuration

Each individual promotion must be explicitly configured to be combinable with other promotions.

Please note that once the siblingPromotions = TRUE is selected, an allowlist MUST be created and a blocklist CAN also be added.

Configuration FieldDescriptionDefault ValueRequired for Combination
siblingPromotionsBoolean flag indicating whether this promotion can be stacked with others on the same item.false (NO)true

Default Behavior: By default, promotions are exclusive. Once two exclusive promotions can apply to the same item, only the highest-priority applicable promotion will be applied.

2. Endpoint Application

The promotion must be assigned to the Basket in either the Add a Variant call or Update an Item call.

Promotion Priority and Application Rules

When multiple combinable promotions are applied to an item, a pre-defined priority mechanism determines the order of application and calculation.

Priority LevelPromotion TypeCalculation RuleExample
1 (Highest)Combo DealsApplied first, setting the item's price to the fixed deal price (e.g., '2 for $X' or 'Item A + Item B for $Y'). All subsequent discounts are calculated on this new fixed price.Combo Deal: Buy Jeans and Shirt for $20.00.
2Percentage DiscountsApplied second, calculated on the current item price (which may be the original price or the fixed price after a Combo Deal).Percentage Discount: 10% off.
3 (Lowest)Absolute Discounts / Monetary ReductionsApplied last, subtracting a fixed monetary amount from the current item price.Absolute Discount: $5.00 off.

Some important topics to be considered:

  1. We only allow ONE Buy X Get Y promotion to be applied for each item. In case more than one Buy X Get Y promotion effects apply to an item, the one with highest priority is applied.
  2. In case the same promotion type applies to an item (e.g. 2 promotions with absolute discounts), the priority follows the order of application - the first promotion applied to the item is the first one to have the discount calculated.
  3. In case the Basket configuration basket.filter.price.disableZeroPrices=1, configured via the Config API, AND the promotion will make the item price go into 0, Scayle exposes the price of that item as 0,01 cents.

Example of Priority Application

Scenario: An item (Original Price: $50.00) qualifies for three combinable promotions:

  1. Combo Deal: Item fixed at $40.00 (Priority 1)
  2. Percentage Discount: 10% off (Priority 2)
  3. Absolute Discount: $5.00 off (Priority 3)
StepActionCalculationItem Price After Step
0Original PriceN/A$50.00
1Apply Priority 1 (Combo Deal)Price is set to $40.00$40.00
2Apply Priority 2 (10% off)10% of $40.00 = $4.00 discount$36.00
3Apply Priority 3 ($5.00 off)$36.00 - $5.00 discount$31.00

Final Price: $31.00 (Total Discount: $19.00)

API Response Structure for Applied Promotions

On all basket and checkout related endpoints, the item object will no longer use a single promotion attribute. Instead, all applied promotions will be detailed within the promotions array attribute.