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 Brand | N 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 Type | Description |
---|---|
Value Discount | Simple promotion offering % or a fixed ££s discount |
Buy 1 Get 1 Free | BOGOF promotion |
Buy X cheapest free | Buy x number of units and get the cheapest one free |
X For y Fixed price | X number of products for a fixed price. i.e. 2 products for a fixed price. |
Spend more than ££s get 1 X Free | spend more than ££s get X units free |
But X Get 50 Percent Off on Y | Buy x units get % off |
Category Wise | Use 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. |
Tiered | Get 10% off when you spend £100, get 20% off when you spend £200, get 30% off when you spend £300 |
Shipping promo | Shipping promotion - free shipping over a threshold, etc. |
Service Charge | Reverse promotion to charge for a specific service offered for specific products or order types |
Subscription Signup | Promotion to offer free signup for new subscribers for subscription orders. |
Subscription GWP | Promotion 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:
Operation | Endpoint | Response |
---|---|---|
Display CRO messages in basket | /api/v2/commerce/promotion/basket-promotions | Returns list of promotions applied on basket products. |
Product Best price on PDP | /api/v2/commerce/promotion/product-promotions | Returns list of best offers applied on product. |
The output of these APIs (basket-promotions and product-promotions) have the below properties for each promotion:
Attribute | Purpose |
---|---|
promoType | Type of the Promo: Value Discount , Tiered promo , etc |
name | Name of the Promotion |
code | Promo Code (Unique) |
status | Tells if Promo is Active(true) or InActive(false) |
fromDate | Promo Valid from |
toDate | Promo Expires on |
additionalInfo1, additionalInfo2, additionalInfo3, additionalInfo4, additionalInfo5, additionalInfo6, additionalInfo7, additionalInfo8, additionalInfo9, additionalInfo10 | Each 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 |
useWithOtherDiscountCode | Tells if the promo is a Green, Red or Amber Promo 1 – Red , 2 – Amber , 3 - Green (No handling required on the front-end) |
isCROEnabled | Tells weather this promo is enabled to CRO messaging or not. On basket only the promos with isCROEnabled = true are displayed |
croMessage | This provides the calculated CRO message if this promo is coming under Available promos (mainly used for /api/v2/commerce/promotion/basket-promotions endpoint) |
croSuccessMessage | This 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
Attribute | Purpose |
---|---|
additionalInfo1 | Discount to be given (flat or percentage value) |
additionalInfo2 | If true then the value in additionalinfo1 is % discount; if false then the value in additionalinfo1 is flat discount |
additionalInfo8 | Tells 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
Attribute | Purpose |
---|---|
additionalInfo1 | Will 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 | |
additionalInfo2 | Tells 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 |
additionalInfo3 | Tells 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 |
additionalInfo8 | Tells 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
Attribute | Purpose |
---|---|
additionalInfo1 | No. of Qualifying units |
X for £Y - Fixed Price Promo Type = 5
Attribute | Purpose |
---|---|
additionalInfo1 | No. of Qualifying units |
Buy X - Cheapest –y% - Once Promo Type = 6
Attribute | Purpose |
---|---|
additionalInfo1 | No. of Qualifying units |
BuyXGet50PercentOffOnY Promo Type = 16
Attribute | Purpose |
---|---|
additionalInfo1 | No. of units |
additionalInfo2 | Discount % |
additionalInfo3 | Indicates 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.