Promotions

Promotions and campaigns are an integral part of growing a digital commerce business. The Platform provides business users with the tools to build promotions and vouchers that can be applied at a product line or order level and targeted at specific customers.

They can be used to increase revenue and/or conversion rate or specific discount codes can be used for customers to reward loyalty or first-time customers or address customer support issues. The platform provides business users with the tools to build promotions and vouchers that can be applied at different levels.

Configurable promotions can be grouped as follows:

Promotion %Promotion ££Multi-Buys
X% off X% off on specific date X% off on specific time(s) X% off between a and b date(s)/time range££s off ££s off on specific date ££s off on specific time(s) ££s off between a and b date(s)/time(s) additional clauses can be added, such as BrandN for ££s Buy X save ££S BOGOF BOG Cheapest Free Spent ££s Get Y Free Buy X Get % Off

Order Level Promotions

Any Promotion where the offer applies to the Order and not to a specific Product Line e.g. £10 Off, where there are no qualifiers against a product.

Product Line Level Promotions

The Promotion would be at Product Line Level, if tied to a Product or Products e.g. £10 Off Joop WOW Eau de Toilette 100ml, another example of a Product Line Promotion would be a BOGOF.

Below are different Promo types available in BetterCommerce:

Promotion TypeDescription
Value DiscountSimple promotion offering % or a fixed ££s discount
Buy 1 Get 1 FreeBOGOF promotion
Buy X cheapest freeBuy x number of units and get the cheapest one free
X For y Fixed priceX number of products for a fixed price. i.e. 2 products for a fixed price.
Spend more than ££s get 1 X Freespend more than ££s get X units free
But X Get 50 Percent Off on YBuy x units get % off
Category WiseUse one promotion to offer different % or ££s category wise. for eg, 1 promo code, user gets 10% discount on T-shirts, but 20% discount on jeans.
TieredGet 10% off when you spend £100, get 20% off when you spend £200, get 30% off when you spend £300
Shipping promoShipping promotion - free shipping over a threshold, etc. 
Service ChargeReverse promotion to charge for a specific service offered for specific products or order types
Subscription SignupPromotion to offer free signup for new subscribers for subscription orders.
Subscription GWPPromotion to offer any month / year free during the subscription

Once these promotions are setup in Commerce Hub these can be retrieved using multiple endpoints provided for different purposes.

Promotions are mainly applied on the basket based on the rules setup in promos, All the promotion logic is calculated at backend, and the promotions are applied to the basket as per the rules.

There are two endpoints that are used on storefront to get promotion details for:

OperationEndpointResponse
Display CRO messages in basket/api/v2/commerce/promotion/basket-promotionsReturns list of promotions applied on basket products.
Product Best price on PDP/api/v2/commerce/promotion/product-promotionsReturns list of best offers applied on product.

The output of these APIs (basket-promotions and product-promotions) have the below properties for each promotion:

AttributePurpose
promoTypeType of the Promo: Value Discount, Tiered promo, etc
nameName of the Promotion
codePromo Code (Unique)
statusTells if Promo is Active(true) or InActive(false)
fromDatePromo Valid from
toDatePromo Expires on
additionalInfo1, additionalInfo2, additionalInfo3, additionalInfo4, additionalInfo5, additionalInfo6, additionalInfo7, additionalInfo8, additionalInfo9, additionalInfo10Each of these fields are used for different purpose for different promo types, details for each of these per promo type has been provided in below section
useWithOtherDiscountCodeTells if the promo is a Green, Red or Amber Promo 1 – Red, 2 – Amber, 3 - Green (No handling required on the front-end)
isCROEnabledTells weather this promo is enabled to CRO messaging or not. On basket only the promos with isCROEnabled = true are displayed
croMessageThis provides the calculated CRO message if this promo is coming under Available promos (mainly used for /api/v2/commerce/promotion/basket-promotions endpoint)
croSuccessMessageThis provides the calculated CRO message if this promo is coming under Applicable promos (mainly used for /api/v2/commerce/promotion/basket-promotions endpoint)

Value Discount Promotion Promo Type = 1

AttributePurpose
additionalInfo1Discount to be given (flat or percentage value)
additionalInfo2If true then the value in additionalinfo1 is % discount; if false then the value in additionalinfo1 is flat discount
additionalInfo8Tells if the promo has vouchers or not. If false, then this promo does not have vouchers; if true, then this promo has vouchers

Tiered Promotion Promo Type = 21

AttributePurpose
additionalInfo1Will have a string value which will have multiple quantities and the discount to be given for that specific quantity. Ex: 1:100;3:200;4:300;5:400;8:500; Here first split on; then you get 1:100 3:200 4:300 5:400 8:500.
The value before the : is the Quantity of the items in basket if additionalinfo3 is 1 or Amount of the basket if the additionalinfo3 is 0
The value after the : is flat discount amount if additionalinfo2 is 1
% discount if additionalinfo2 is 0
Ex: So, in this example considering additionalinfo3 = 1 and additionalinfo2 = 1
1:100 – means if quantity is greater than 1 then give discount 100/- INR
additionalInfo2Tells if the promo is % or flat value promo. If 1 then the value in additionalinfo1 is flat discount; If 0 then the value in additionalinfo1 is % discount
additionalInfo3Tells if the tier is quantity-based or amount-based. If 1, then the tier is quantity-based; if 0, then the tier is amount-based
additionalInfo8Tells if the promo has vouchers or not. If false, then this promo does not have vouchers; if true, then this promo has vouchers

Buy X - Cheapest Free Promo Type = 4

AttributePurpose
additionalInfo1No. of Qualifying units

X for £Y - Fixed Price Promo Type = 5

AttributePurpose
additionalInfo1No. of Qualifying units

Buy X - Cheapest –y% - Once Promo Type = 6

AttributePurpose
additionalInfo1No. of Qualifying units

BuyXGet50PercentOffOnY Promo Type = 16

AttributePurpose
additionalInfo1No. of units
additionalInfo2Discount %
additionalInfo3Indicates whether this promotion should be considered if the basket quantity is an even or odd number. 

Apart from the ones detailed above, all other promotions are calculated and applied at the back-end.