Info |
---|
Requirements for Offer and Reward setupthe JSON payload to be sent by the Partners API to Khumbu. |
Contents
...
Rewards are an item benefit that can be redeemed in exchange for points (and sometimes money + points). Read more about it here: /wiki/spaces/HELP/pages/4921819186 .
Reward with an item
Code Block |
"cart": [
{
"menuSelections": [
{
"id": "7ee7338a-a016-47c6-aef6-3783d40c003e", // Reward Sanity id
"externalReferenceId": "123", // Reward constant plu defined in Sanity
"quantity": 1,
"price": Info |
---|
Oracle documentation: https://docs.oracle.com/en/industries/food-beverage/simphony/19.7/simcg/c_discounts_automatic_discount_rules.htm |
Online
In Restaurant
Next steps:
Send all offer and reward information to Oracle team. Multiple different discounts that can be used (100% discount off, item price substitution)
Talk with TRX team about Rewards with prices + loyalty points (using item price substitution discount)
Have internal discussion and setup a call with Oracle team to validate
Understand if there are any implications to analytics (understanding the difference between offers and rewards)
Reward with an item
Expand |
---|
|
Code Block |
---|
"cart": [
{
"menuSelections": [
{
"id": "7ee7338a-a016-47c6-aef6-3783d40c003e", // Reward Sanity id
"externalReferenceId": "123", // Reward constant plu defined in Sanity
"quantity": 1,
"price": {
"amount": 0,
"currency": "SAR",
}
"type": "Reward",
"menuSelections": [
{
"externalReferenceId": "51056", // item constant plu
"id": "item_1862", // item Sanity id
"menuSelections": [],
"price": {
"amount": 2495, // normal price
"currency": "SAR"
},
"quantity": 1,
"type": "Item"
}
]
}
]
}
] |
|
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
Code Block |
---|
{
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}}
},
"menuItems": [],
"comboMeals": [
{
"comboMealId": 51002003, // Cheeseburger reward
"comboItem": {
"menuItemId": 51002003, // Cheeseburger reward PLU
"definitionSequence": 1,
"quantity": 1
},
"mainItem": {
"menuItemId": 1002003, // A la carte cheeseburger
"definitionSequence": 1,
"quantity": 1
},
"sideItems": []
}
],
"tenders": [
{
"tenderId": 901 // payment method ID. Pay at Counter for this example.
}
]
} |
|
Info |
---|
In Oracle, we use a separate combo for reward items so that we can set up a different price (0) vs the single item ALC. Alternatively, we could create a new priceSequence set to 0 for each definitionSequence , and then re-use the single item. |
Note |
---|
Oracle can only handle up to 10,000 combos. |
Reward with an item + premium modifier
Expand |
---|
|
Code Block |
---|
"cart": [
{
"menuSelections": [
{
"id": "7ee7338a-a016-47c6-aef6-3783d40c003e", // Reward Sanity id
"externalReferenceId": "123", // Reward constant plu defined in Sanity
"quantity": 1,
"price": {
"amount": 0,
"currency": "SAR",
}
"type": "Reward",
"menuSelections": [
{
"externalReferenceId": "51056", // item constant plu
"id": "item_1862", // item Sanity id
"menuSelections": [],
"price": {
"amount": 2495, // normal price
"currency": "SAR"
},
"quantity": 1,
"type": "Item"
}
]
}
]
}
] |
|
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
Code Block |
---|
{
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}},
"language": "es-ES",
"Accept-Language": "es-ES"
},
"menuItems": [],
"comboMeals": [
{
"comboMealId": 51002003, // Cheeseburger reward
"comboItem": {
"menuItemId": 51002003, // Cheeseburger reward
"definitionSequence": 1,
"quantity": 1
},
"mainItem": {
"menuItemId": 1002003, // Cheeseburger ALC
"definitionSequence": 1,
"quantity": 1,
"condiments": [
{
"condimentId": 9011005, // Add bacon. Premium modifier (extra cost)
"priceSequence": 2,
"quantity": 2
}
]
},
"sideItems": []
}
],
"tenders": [
{
"tenderId": 901
}
]
} |
|
Reward with a combo
Expand |
---|
|
Code Block |
---|
"cart": {
"menuSelections": [
{
"externalReferenceId": "8351", // reward plu
"id": "43b4cf07-79c9-4aff-98d1-bce9cf2d890f", //reward sanity id
"menuSelections": [
{
"externalReferenceId": "8350", // combo plu
"id": "43b4cf07-79c9-4aff-98d1-bce9cf2d890f", //combo sanity id
"menuSelections": [
{
"externalReferenceId": "10059",
"id": "item_1852",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "SAR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "80007",
"id": "4f99db1e-128a-4e53-b23b-dffc0fedf636",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "SAR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "80001",
"id": "16f482db-2f13-4476-88d3-d2eec26057f3",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "SAR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": "141139",
"id": "141139",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "SAR"
},
"quantity": 1,
"type": "Item"
}
],
"price": {
"amount": 300, // original price of combo
"currency": "SAR"
},
"quantity": 1,
"type": "Combo"
}
],
"price": {
"amount": 0, // final price of the reward
"currency": "SAR"
},
"quantity": 1,
"type": "Reward"
}
]
}, |
|
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
Code Block |
---|
| {
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}},
"language": "es-ES",
"Accept-Language": "es-ES"
},
"menuItems": [],
"comboMeals": [
{
"comboMealId": 51001504, //Whopper with Cheese Combo Reward
"comboItem": {
"menuItemId": 51001504, //Whopper with Cheese Combo Reward
"definitionSequence": 1,
"quantity": 1
},
"mainItem": {
"menuItemId": 1001003, // Whopper with cheese ALC
"definitionSequence": 1,
"quantity": 1
},
"sideItems": [
{
"menuItemId": 1013201, //Small pepsi
"definitionSequence": 1,
"quantity": 1
},
{
"menuItemId": 2102002, //Small fries
"definitionSequence": 1,
"quantity": 1
}
]
}
],
"tenders": [
{
"tenderId": 901
}
]
} |
|
Reward with a combo + premium modifier
Expand |
---|
|
Code Block |
---|
{
"payload": {
"number": "5848",
"fees": [
{
"total": {
"amount": 19,
"currency": "EUR"
},
"type": "BAG_FEE"
}
],
"serviceMode": "DELIVERY",
"channel": "WHITELABEL_DELIVERY",
"callbackUrl": "https://euw3-staging-bk-partners-api.rbictg.com/api/v1/orders/15c3dbe1-5165-404b-8858-088239d14014/price/callback",
"id": "15c3dbe1-5165-404b-8858-088239d14014",
"storeId": "12349",
"cart": {
"menuSelections": [
{
"externalReferenceId": "948351",
"quantity": 1,
"menuSelections": [
{
"externalReferenceId": "502617",
"quantity": 1,
"menuSelections": [
{
"externalReferenceId": "502633",
"quantity": 1,
"menuSelections": [
{
"externalReferenceId": "528232",
"quantity": 1,
"price": {
"amount": 90,
"currency": "EUR"
},
"id": "8ba0df7b35df",
"type": "ItemOptionModifier"
}
],
"price": {
"amount": 0,
"currency": "EUR"
},
"id": "item_11107",
"type": "Item"
},
{
"externalReferenceId": "942258",
"quantity": 1,
"price": {
"amount": 0,
"currency": "EUR"
},
"id": "item_11126",
"type": "Item"
},
{
"externalReferenceId": "527646",
"quantity": 1,
"price": {
"amount": 0,
"currency": "EUR"
},
"id": "9aac0a46-5a73-431d-937c-8848ca01ac86",
"type": "Item"
}
],
"price": {
"amount": 875,
"currency": "EUR"
},
"id": "a2e73fd9-5f3d-4afc-9585-43ebd7bbc6dc",
"type": "Combo"
}
],
"price": {
"amount": 450,
"currency": "EUR"
},
"id": "024f9096-e3ee-45fc-8f76-d75e272ff9e9",
"type": "Reward"
}
]
}
}
} |
|
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
Code Block |
---|
{
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}},
"language": "es-ES",
"Accept-Language": "es-ES"
},
"menuItems": [],
"comboMeals": [
{
"comboMealId": 51001504, // Whopper Cheese combo reward
"comboItem": {
"menuItemId": 51001504, //// Whopper Cheese combo reward
"definitionSequence": 1,
"quantity": 1
},
"mainItem": {
"menuItemId": 1001003, // whopper cheese
"definitionSequence": 1,
"quantity": 1,
"condiments": [
{
"condimentId": 9011005, // Add bacon. Premium modifier (extra cost)
"priceSequence": 2,
"quantity": 2
}
]
},
"sideItems": [
{
"menuItemId": 1013201, // Small fries
"definitionSequence": 1,
"quantity": 1
},
{
"menuItemId": 2000008, // Icy mango. Premium drink (extra cost)
"definitionSequence": 1,
"quantity": 1
}
]
}
],
"tenders": [
{
"tenderId": 901
}
]
} |
|
Reward with a cart discount
The reward is the cart discount. You use points to buy a discount.
Expand |
---|
|
Code Block |
---|
| "payload": {
"number": "5803",
"fees": [
{
"total": {
"amount": 19,
"currency": "EUR"
},
"type": "BAG_FEE"
}
],
"serviceMode": "DELIVERY",
"channel": "WHITELABEL_DELIVERY",
"callbackUrl": "https://euw3-staging-bk-partners-api.rbictg.com/api/v1/orders/60c1983c-8cbc-4aa8-9486-c55fa78566f5/price/callback",
"id": "60c1983c-8cbc-4aa8-9486-c55fa78566f5",
"orderDiscounts": [
{
"type": "amount",
"value": 200
}
],
"storeId": "12349",
"cart": {
"menuSelections": [
{
"externalReferenceId": "502633",
"quantity": 1,
"price": {
"amount": 645,
"currency": "EUR"
},
"id": "item_11107",
"type": "Item"
}
]
}
} |
Info |
---|
Note: the cart discount can be also sent with a plu inside the orderDiscounts object. Please refer to “Reward with a product discount” section for an example. |
|
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
Code Block |
---|
| {
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}}
},
"menuItems": [
{ "menuItemId":1001001, // Whopper ALC
"definitionSequence": 1,
"quantity": 1
}
],
"tenders": [
{
"tenderId": 901
}
],
"discounts" : [
{
"discountId": 104, // PLU for the cart level amount discount
"referenceText": "Reward 1234",
"total": 10 // the amount that you are discounting. 10 euros off. We can send whatever amount we want
}
]
} |
|
Reward with a product discount
Expand |
---|
|
Code Block |
---|
| {
"payload": {
"number": "5807",
"fees": [
{
"total": {
"amount": 19,
"currency": "EUR"
},
"type": "BAG_FEE"
}
],
"serviceMode": "DELIVERY",
"channel": "WHITELABEL_DELIVERY",
"callbackUrl": "https://euw3-staging-bk-partners-api.rbictg.com/api/v1/orders/781f28e9-d6bb-4c8e-9ea6-e65a2e7c3764/price/callback",
"id": "781f28e9-d6bb-4c8e-9ea6-e65a2e7c3764",
"orderDiscounts": [
{
"plu": "948348",
"type": "percentage",
"value": 50
}
],
"storeId": "12349",
"cart": {
"menuSelections": [
{
"externalReferenceId": "948348",
"quantity": 1,
"menuSelections": [
{
"externalReferenceId": "502633",
"quantity": 1,
"price": {
"amount": 0,
"currency": "EUR"
},
"id": "item_11107",
"type": "Item"
}
],
"price": {
"amount": 645,
"currency": "EUR"
},
"id": "fbdead97-5acb-4d1c-a5fe-5794ece61aaa",
"type": "Reward"
}
]
}
}
} |
|
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
Code Block |
---|
| {
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}}
},
"menuItems": [
{
"menuItemId": 1001001, // Whopper
"definitionSequence": 1,
"quantity": 1,
"itemDiscounts": [
{
"discountId": 104, // PLU of the product amount discount off
"referenceText": "Reward Item Discount",
"total": 59 // amount of discount (can be sent as any number). 59 pesos off the whopper ALC price.
}
]
}
],
"tenders": [
{
"tenderId": 901
}
]
} |
|
Offer Payload Structure
Offers are a discount on the order or item. Can take the form of a discounted bundle, cheaper item, order-level % discount, or order-level $ off. Also known as a “coupon” in some markets. Read more about it here: /wiki/spaces/HELP/pages/4854349911 .
Offer with an item
Info |
---|
As with rewards, Oracle also creates a separate combo for an item offer. |
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
Code Block |
---|
{
"header": {
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
"rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": {{check_employee_ref}}
},
"menuItems": [],
"comboMeals": [
{
" | amount04000045, // Offer PLU for vanilla cone
| "currency"SAR",} type"Reward",
4000045, // Offer PLU for vanilla cone
| "menuSelections":[{
"externalReferenceId":"51056",//itemconstantplu"id": "item_1862"//itemSanityid"menuSelections":[],price { 1014013, // Vanilla Cone ALC
" | amount2495, // normal pricecurrency"SAR"quantity 1,type"Item"}]}]} |
...
Offer with a combo
Expand |
---|
|
Code Block |
---|
| "cart": {
"menuSelections": [
{
"externalReferenceId": "8351", // | rewardoffer plu
"id": "43b4cf07-79c9-4aff-98d1-bce9cf2d890f", // | rewardoffer sanity id
"menuSelections": [
{
"externalReferenceId": " | 83508167", // combo plu
"id": " | 43b4cf0779c94aff98d1bce9cf2d890f743330a2f207", //combo sanity id
"menuSelections": [
{
"externalReferenceId": " | 10059item_1852ce847c79-9eb5-4be3-8a1e-842919aa5ba0",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "SAR"
},
"quantity": 1,
"type": "Item"
},
{
"externalReferenceId": " | 800074f99db1e-128a-4e53-b23b-dffc0fedf636142538",
"menuSelections": [],
"price": {
"amount": 0,
"currency": "SAR"
},
"quantity": 1,
| "currency":"SAR"},"quantity":1, type"Item"}500, //price of the combo
| {"externalReferenceId":"80001","id":"16f482db-2f13-4476-88d3-d2eec26057f3", menuSelections[]100, // final price of the offer
"currency": "SAR"
| "price":{amount0"currency":"SAR" |
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
}, "orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
" | quantity1{{RvcRef}},
"idempotencyId": "{{$guid}}",
| type"Item"{{check_employee_ref}}
},
"menuItems": [],
"comboMeals": [
| }, {
"comboMealId": 4000045, // | {Buy one Cone, Get one Cone for free Offer | externalReferenceId"141139",
id"141139"4000045, // Buy one Cone, Get one Cone for free Offer PLU
| "menuSelections":[], price{ amount0,[{
"menuItemId": 1014013, // Vanilla Cone (could be any selection of cones)
| "currency":"SAR"},"quantity":1,type"Item"
1014012, // Strawberry Cone (could be any selection of cones)
| }],"price": {amount300,//originalpriceofcombocurrency"SAR" }, |
Offer with a cart discount
Expand |
---|
|
quantity1"type":"Combo"}],"price":{amount0, // final price of the reward"currency":"SAR" },"quantity":1,typeRewardDELIVERY",
"channel": "WHITELABEL_DELIVERY",
| } ]
}, |
Reward with a cart discount
Reward with a product discount
Offer Payload Structure
Offers are a discount on the order or item. Can take the form of a discounted bundle, cheaper item, order-level % discount, or order-level $ off. Also known as a “coupon” in some markets. Read more about it here: /wiki/spaces/HELP/pages/4854349911 .
Offer with a combo
Code Block |
---|
"cart": {
"menuSelections": [
"callbackUrl": "https://euw3-staging-bk-partners-api.rbictg.com/api/v1/orders/6d66a02e-810f-478f-bf0d-b69bfcb56d51/price/callback",
"id": "6d66a02e-810f-478f-bf0d-b69bfcb56d51",
"orderDiscounts": [
{
| "externalReferenceId":"8351", //offerpluid43b4cf07-79c9-4aff-98d1-bce9cf2d890f //offer sanity idmenuSelections[{externalReferenceId8167//combopluid"d90a7113-0620-44d9-b678-743330a2f207", //combo sanity id "menuSelections":[ "externalReferenceId": "502633",
| { externalReferenceId"80003" id"ce847c79-9eb5-4be3-8a1e-842919aa5ba0",menuSelections[]price {"amount":0,currencySAR}, |
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
quantity1, "orgShortName": "{{OrgShortName}}",
" | typeItem{{LocRef}}",
"rvcRef": {{RvcRef}},
| }"idempotencyId": "{{$guid}}",
"orderTypeRef": 9,
"checkEmployeeRef": | {{{check_employee_ref}}
},
"menuItems": [
| externalReferenceId "142538"1001001, // Whopper ALC
"definitionSequence": 1,
| "id":"142538", menuSelections], price{ "amount": 0,
currency"SAR"
106, // PLU for the cart level percent discount
"referenceText": "Offer | }1234",
"total": 10 // the percentage that you are discounting. 10% off. We | "quantity": 1,
can send whatever percentage we want
}
]
} |
|
Offer with a product discount
Expand |
---|
|
type"Item"{
"number": "5821",
"fees": [
| }], price500, //price of the combo SAREUR"
},
"type": "BAG_FEE"
}
| ],price{"DELIVERY",
"channel": "WHITELABEL_DELIVERY",
" | amount100, // final price of the offer"https://euw3-staging-bk-partners-api.rbictg.com/api/v1/orders/ed50be10-cf7c-4b1c-8bb1-0c2625cbf3be/price/callback",
"id": "ed50be10-cf7c-4b1c-8bb1-0c2625cbf3be",
" | currency"SAR" },quantity1Offer}]}, |
Offer with a picker
Code Block |
---|
"cart":{"menuSelections":[{ "externalReferenceId": "8351"//offerplu
id43b4cf07-79c9-4aff-98d1-bce9cf2d890f//offersanityid menuSelections[{"externalReferenceId":"8168",//combopluid3318d2c2-99d3-40f9-92d2-1798d9c5e987//combosanityidmenuSelections[{"externalReferenceId":"20001",iditem_61936menuSelections[]1,
"price": {
"amount": 0,
"currency": " | SAR"quantity": 1, "id": "item_11107",
"type": "Item"
| }, { "externalReferenceId":"80002",id865a632f-e2f7-4e2b-8fcc-9281aa3f5868menuSelections[]1,
"price": {
"amount": 0,
"currency": " | SARquantity1"item_11126",
"type": "Item"
| },{ "externalReferenceId":"80008",id04462c22-bf58-4eee-842a-213e3d17a072menuSelections[],1,
"price": {
"amount": 0,
"currency": " | SARquantity1,"9aac0a46-5a73-431d-937c-8848ca01ac86",
"type": "Item"
}
],
"price": {
" | externalReferenceId"142538"id142538","menuSelections":[], "id": "a2e73fd9-5f3d-4afc-9585-43ebd7bbc6dc",
| "price":{"amount":0, |
Expand |
---|
title | Oracle TS Gen 2 (Commit call) |
---|
|
currency"SAR"{
"orgShortName": "{{OrgShortName}}",
"locRef": "{{LocRef}}",
| }, "rvcRef": {{RvcRef}},
"idempotencyId": "{{$guid}}",
| quantity19,
"checkEmployeeRef": {{check_employee_ref}}
| type"Item"} "menuItemId": 1001001, // Whopper
| ]"definitionSequence": 1,
"quantity": 1,
| "price":{"amount":500,//priceofthecombocurrency"SAR"
106, // PLU of the product percent discount off
| }, "referenceText": "Offer Item Discount",
| ],price{50 // percentage discount (can be sent as any percentage). 50% off the whopper ALC price.
| "amount":100,//finalpriceoftheoffer"currency":"SAR", "quantity":1,type"Offer"
, |
Offer with a cart discount
...
Reference
NMS guides on how to set up offers and rewards in Sanity for Oracle: /wiki/spaces/MS/pages/4057661622