Examples
Rules and discounts
Product Promotions
1 - Bundle
ie: Buy A, B, and C for €50
Resolved as fixed price product A plus free products B and C
{
"if": {
"all": [
{"product": {
"id": "pA",
"quantity": 1
}},
{"product": {
"id": "pB",
"quantity": 1
}},
{"product": {
"id": "pC",
"quantity": 1
}}
]
},
"then": {
"all": [
{"product": {
"id": "pA",
"quantity": 1,
"discount": {
"rate": 5000,
"isFixedPrice": true
}
}},
{"product": {
"id": "pB",
"quantity": 1,
"discount": {
"rate": 100,
"isPercentage": true
}
}},
{"product": {
"id": "pC",
"quantity": 1,
"discount": {
"rate": 100,
"isPercentage": true
}
}}
]
}
}
2 - Buy X get Y free
ie: Buy one get one free.
{
"if": {
"category": {
"id": "c1",
"quantity": 2
}
},
"then": {
"category": {
"id": "c1",
"quantity": 1,
"discount": {
"rate": 100,
"isPercentage": true
}
}
}
}
3 - Fixed price
ie: All shirts €5 each.
{
"if": {
"category": {
"id": "shirts-cat",
"quantity": 1
}
},
"then": {
"category": {
"id": "shirts-cat",
"quantity": 1,
"discount": {
"rate": 500,
"isFixedPrice": true
}
}
}
}
4 - Multi-buy
ie: Buy any 3 shirts for €50.
Resolved as 1 fixed price shirt plus two free shirts
{
"if": {
"category": {
"id": "shirts-cat",
"quantity": 3
}
},
"then": {
"all": [
{"category": {
"id": "shirts-cat",
"quantity": 1,
"discount": {
"rate": 5000,
"isFixedPrice": true
}
}},
{"category": {
"id": "shirts-cat",
"quantity": 2,
"discount": {
"rate": 100,
"isPercentage": true
}
}}
]
}
}
5 - Stepped multi-buy
N/A
6 - Perfect partner
ie: Buy a game for €10 with each games console.
{
"if": {
"category": {
"id": "consoles-cat",
"quantity": 1
}
},
"then": {
"category": {
"id": "games-cat",
"quantity": 1,
"discount": {
"rate": 1000,
"isFixedPrice": true
}
}
}
}
7 - One-to-one perfect partner bundle
Buy this game and the selected partner accessory together for €25.00.
Resolved as fixed price game plus free accesory
{
"if": {
"all": [
{"product": {
"id": "p001",
"quantity": 1
}},
{"category": {
"id": "accessories-cat",
"quantity": 1
}}
]
},
"then": {
"all": [
{"product": {
"id": "p001",
"quantity": 1,
"discount": {
"rate": 2500,
"isFixedPrice": true
}
}},
{"category": {
"id": "accessories-cat",
"quantity": 1,
"discount": {
"rate": 100,
"isPercentage": true
}
}}
]
}
}
8 - Perfect partner bundle
ie: Buy a games console and 3 accessories for €200.
Resolved as fixed price game plus free accesories
{
"if": {
"all": [
{"product": {
"id": "p001",
"quantity": 1
}},
{"category": {
"id": "accessories-cat",
"quantity": 3
}}
]
},
"then": {
"all": [
{"product": {
"id": "p001",
"quantity": 1,
"discount": {
"rate": 20000,
"isFixedPrice": true
}
}},
{"category": {
"id": "accessories-cat",
"quantity": 3,
"discount": {
"rate": 100,
"isPercentage": true
}
}}
]
}
}
9 - Percentage discount
ie: 20% off all cameras.
{
"if": {
"category": {
"id": "cameras-cat",
"quantity": 1
}
},
"then": {
"category": {
"id": "cameras-cat",
"quantity": 1,
"discount": {
"rate": 20,
"isPercentaje": true
}
}
}
}
Order Promotions
1 - Order threshold fixed discount
ie: Spend over €50 to receive a €3 discount.
N/A
2 - Order threshold perfect partner
ie: Spend over €50 to get any shirt (up to 99) for €5.
{
"if": {
"subtotal": 50,
"category": {
"id": "shirts-cat",
"quantity": 1
}
},
"then": {
"category": {
"id": "shirts-cat",
"quantity": 99,
"discount": {
"rate": 500,
"isFixedPrice": true
}
}
}
}
3 - Order threshold free gift
ie: Spend over €50 to receive a free t-shirt.
{
"if": {
"subtotal": 50,
"category": {
"id": "shirts-cat",
"quantity": 1
}
},
"then": {
"category": {
"id": "shirts-cat",
"quantity": 1,
"discount": {
"rate": 100,
"isPercentaje": true
}
}
}
}
4 - Order threshold free voucher
ie: Get a free €5 voucher when you spend over €150.00.
N/A
5 - Order threshold change delivery mode
ie: Spend over €10 to get free shipping
N/A
Full Example
Given this promotion:
{
"id": "ryUGgm44",
"title": "Promotion 03",
"class": "default",
"active": true,
"priority": 100,
"if": {
"category": {
"id": "By-4rrmsN",
"quantity": 3,
"lowestPrice": true
}
},
"then": {
"category": {
"id": "By-4rrmsN",
"quantity": 3,
"discount": {
"rate": 1000,
"isFixedPrice": true
}
}
}
}
and this cart:
{
"id": "HyvYROObg",
"items": [
{
"id": "HkgWytObl",
"productId": "By2ZWfAPnV",
"quantity": 1,
"price": { "amount": 57765, "currency": "USD", "precision": 2 },
"title": "001004721736835 - Frigorífico combi Samsung RB31FEJNCSS/EF No Frost (Samsung)"
},
{
"id": "BJmzJtdbe",
"productId": "HyTWWMRw34",
"quantity": 2,
"price": { "amount": 32147, "currency": "USD", "precision": 2 },
"title": "001004721727941 - Frigorífico combi Saivod CT1830DNF No Frost (Saivod)"
},
{
"id": "ryqjio_Ze",
"productId": "rkQMWG0P2V",
"quantity": 2,
"price": { "amount": 46900, "currency": "USD", "precision": 2 },
"title": "001004721744961 - Frigorífico combi Fagor FFK6778A No Frost (Fagor)"
}
]
}
the promotion engine will output:
{
"ok": true,
"almostFulfilledPromos": [
{
"id": "ryUGgm44",
"data": [
{
"collectedQuantity": 2,
"promoQuantity": 3,
"threshold": 0.6666666666666666,
"value": 0.6666666666666666,
"type": "CATEGORY",
"code": "By-4rrmsN",
"items": [
{
"itemId": "ryqjio_Ze",
"quantityToUse": 1
},
{
"itemId": "HkgWytObl",
"quantityToUse": 1
}
]
}
]
}
],
"itemDiscounts": [
{
"id": "BJmzJtdbe",
"discounts": [
{
"promotionId": "ryUGgm44",
"promotionTitle": "Promotion 03",
"quantity": 2,
"price": {
"amount": 32147,
"currency": "USD",
"precision": 2
},
"discount": {
"amount": 31147,
"currency": "USD",
"precision": 2
}
}
]
},
{
"id": "ryqjio_Ze",
"discounts": [
{
"promotionId": "ryUGgm44",
"promotionTitle": "Promotion 03",
"quantity": 1,
"price": {
"amount": 46900,
"currency": "USD",
"precision": 2
},
"discount": {
"amount": 45900,
"currency": "USD",
"precision": 2
}
}
]
}
]
}
and the final cart will look:
{
"id": "HyvYROObg",
"promotions": {
"ok": true,
"almostFulfilledPromos": [
{
"id": "ryUGgm44",
"data": [
{
"items": [
{
"quantityToUse": 1,
"itemId": "ryqjio_Ze"
},
{
"quantityToUse": 1,
"itemId": "HkgWytObl"
}
],
"code": "By-4rrmsN",
"type": "CATEGORY",
"value": 0.6666666666666666,
"threshold": 0.6666666666666666,
"promoQuantity": 3,
"collectedQuantity": 2
}
]
}
]
},
"items": [
{
"id": "HkgWytObl",
"productId": "By2ZWfAPnV",
"quantity": 1,
"price": { "amount": 57765, "currency": "USD", "precision": 2 },
"title": "001004721736835 - Frigorífico combi Samsung RB31FEJNCSS/EF No Frost (Samsung)",
"discounts": [],
"taxes": [
{
"taxDetail": "IVA 21%",
"tax": { "amount": 12130, "currency": "USD", "precision": 2 },
"beforeTax": { "amount": 57765, "currency": "USD", "precision": 2 }
}
]
},
{
"id": "BJmzJtdbe",
"productId": "HyTWWMRw34",
"quantity": 2,
"price": { "amount": 32147, "currency": "USD", "precision": 2 },
"title": "001004721727941 - Frigorífico combi Saivod CT1830DNF No Frost (Saivod)",
"discounts": [
{
"promotionId": "ryUGgm44",
"promotionTitle": "Promotion 03",
"quantity": 2,
"discount": { "amount": 31147, "currency": "USD", "precision": 2 }
}
],
"taxes": [
{
"taxDetail": "IVA 21%",
"tax": { "amount": 420, "currency": "USD", "precision": 2 },
"beforeTax": { "amount": 2000, "currency": "USD", "precision": 2 }
}
]
},
{
"id": "ryqjio_Ze",
"productId": "rkQMWG0P2V",
"quantity": 2,
"price": { "amount": 46900, "currency": "USD", "precision": 2 },
"title": "001004721744961 - Frigorífico combi Fagor FFK6778A No Frost (Fagor)",
"discounts": [
{
"promotionId": "ryUGgm44",
"promotionTitle": "Promotion 03",
"quantity": 1,
"discount": { "amount": 45900, "currency": "USD", "precision": 2 }
}
],
"taxes": [
{
"taxDetail": "IVA 21%",
"tax": { "amount": 10059, "currency": "USD", "precision": 2 },
"beforeTax": { "amount": 47900, "currency": "USD", "precision": 2 }
}
]
}
],
"taxes": {
"beforeTax": { "amount": 107665, "currency": "USD", "precision": 2 },
"tax": { "amount": 22610, "currency": "USD", "precision": 2 },
"ok": true
}
}