Contents
Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Order |
...
Action
...
Tests
...
Expected Vendor Behavior
...
Expected Result
...
Place a Dine In order
...
As per above.
...
Partner collects the order number (number
) from the GET Order endpoint and injects in the POS.
...
Order is injected in the POS.
Receipt printed with Order Number from RBI.
RBI’s order number is expected to substitute the POS order number.
RBI’s order number is configurable, allowing numerical interval restriction and / or utilization of an alphanumerical prefix.
Note |
---|
Guests rely exclusively on this number to identify their online orders. |
...
Place a Table Service order
...
Place a Delivery In order
Note |
---|
Drivers rely exclusively on this number to identify the order they are supposed to pick up at the restaurant. |
...
Injection: Time to Kitchen | |||
When orders are expected to reach the kitchen immediately: Select Slot Now on checkout page ( → Order should be injected to POS with → The order should be fired immediately to the Kitchen. → KDS receives the order | |||
When pre-ordering is expected, orders to reach the kitchen after a determined delay: Select Future Slot of pickup on checkout page ( → Order should be injected to POS with → After |
In-Restaurant Service Modes
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Place a |
Dine In / Pickup / Drive-Thru order
| As per above. | Partner collects the |
service mode ( |
CASH
or UNPAID
|
POS |
. |
Partner collects the order number (
| → Order is injected in the POS. → |
→ Order is injected in KDS after user performs the payment.
Place an online payment (paid) in-restaurant order
As per above.
Partner collects the payment method from the GET Order endpoint and injects in the appropriate POS field.
Typically, POS systems define Tender IDs for this purpose.
Any payment method besides CASH
and UNPAID
falls under this category.
KDS identifies the service mode. → DSS ticket printed according to the service mode. → Receipt printed with Order Number from RBI. → ORB displays Order Number from RBI.
| |||
Place a Table Service order
| As per above. | Partner collects the service mode ( Partner collects the order number (
| → Order is injected in the POS |
In-Restaurant Service Modes
Action | Tests | Expected Vendor Behavior | Expected Result | |||||
---|---|---|---|---|---|---|---|---|
Place a Dine In order | As per above. | Partner collects the service mode ( | → Order is injected in the POS. → KDS identifies the service mode. → DSS ticket printed according to the service mode.
| |||||
Place a Table Service order | As per above. | Partner collects the service mode ( | → Order is injected in the POS with reference to the table number. → KDS identifies the service mode. → KDS identifies the table number. → DSS ticket printed according to the service mode. → DSS ticket printed with the table number. → Receipt printed with the table number. | |||||
Order Injection: In Store
| Pickup Order → Pickup Order successfully sent and placed in Partner’s POS. → Order shows in the POS as already paid → Order shows in the POS with RBI’s order number → (If Time Slots flows is activated in the Front-End) Order is kept in the POS and only fired to the kitchen after the amount of seconds sent in the fireOrderInSeconds attribute → POS prints the receipt with order number → Order shows in the KDS with RBI’s order number → Order shows in the ORB with RBI’s order number Expand | | ||||||
|
Note |
---|
Crew members rely on an easy identification of the table number to identify where this order should be taken to. |
Place
Order Injection: In Store
Service Modes (if applicable)
Pickup Order
→ Pickup Order successfully sent and placed in Partner’s POS.
→ Order shows in the POS as already paid
→ Order shows in the POS with RBI’s order number
→ (If Time Slots flows is activated in the Front-End) Order is kept in the POS and only fired to the kitchen after the amount of seconds sent in the fireOrderInSeconds attribute
→ POS prints the receipt with order number
→ Order shows in the KDS with RBI’s order number
→ Order shows in the ORB with RBI’s order number
Expand | ||
---|---|---|
| ||
|
Eat in Order
→ Pickup Order successfully sent and placed in Partner’s POS.
→ Order shows in the POS as already paid
→ Order shows in the POS with RBI’s order number
→ (If Time Slots flows is activated in the Front-End) Order is kept in the POS and only fired to the kitchen after the amount of seconds sent in the fireOrderInSeconds attribute
→ POS prints the receipt with order number
→ Order shows in the KDS with RBI’s order number
→ Order shows in the ORB with RBI’s order number
→ The order should include an additional information “Eat in order”
Table Service Order
→ Pickup Order successfully sent and placed in Partner’s POS.
→ Order shows in the POS as already paid
→ Order shows in the POS with RBI’s order number
→ (If Time Slots flows is activated in the Front-End) Order is kept in the POS and only fired to the kitchen after the amount of seconds sent in the fireOrderInSeconds attribute
→ POS prints the receipt with order number
→ Order shows in the KDS with RBI’s order number
→ Order shows in the ORB with RBI’s order number
→ The order should include an additional information “Table service”
→ The order should include the table number provided by the customer in Cart page
Curbside Pickup Order
→ Pickup Order successfully sent and placed in Partner’s POS.
→ Order shows in the POS as already paid
→ Order shows in the POS with RBI’s order number
→ (If Time Slots flows is activated in the Front-End) Order is kept in the POS and only fired to the kitchen after the amount of seconds sent in the fireOrderInSeconds attribute
→ POS prints the receipt with order number
→ Order shows in the KDS with RBI’s order number
→ Order shows in the ORB with RBI’s order number
→ The order should include an additional information “Curbside”
→ The order should include the car plate provided by the customer in Cart page
...
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Place a Delivery order | Partner collects the service mode (
| → Order is injected in the POS. → Order does not appear in the KDS (not fired into the kitchen). | |
Fire a Deliver order into the kitchen | Partner is subscribed to the Partner fires the order through a POST call to the Fire Order endpoint.
| → Order appears in the KDS (is fired into the kitchen). → KDS identifies the service mode. → DSS ticket printed according to the service mode. | |
Cancel a Delivery order Delivery cancelation → Delivery Order successfully sent and placed in Partner’s POS. → If a delivery cancellation is requested:
| |||
Order
...
Number
...
→ Place Order in Whitelabel App
Order’s cart contains an Item → Order successfully sent and placed in Partner’s POS.
Order’s cart contains a Combo → Order successfully sent and placed in Partner’s POS.
Order’s cart contains an item, with a Modifier Multiplier without (0)
→ Order payload contains Modifier Multiplied PLU
→ Order successfully sent and placed in Partner’s POS, describing the without modifier.
Order’s cart contains an item, with Modifier Multiplier with (1)
→ Order payload contains Modifier Multiplied PLU
→ Order successfully sent and placed in Partner’s POS, describing the “with” modifier.
Order’s cart contains an item, with Modifier Multiplier extra (2)
→ Order payload contains Modifier Multiplied PLU
→ Order successfully sent and placed in Partner’s POS, describing the “extra(2)” modifier.
Order’s cart contains a combo, with an item that has a Modifier Multiplier without (0)
→ Order payload contains Modifier Multiplied PLU, inside the item, inside the combo.
→ Partner Integration successfully handles a 3 level nested structure in the cart.
→ Order successfully sent and placed in Partner’s POS, describing the without modifier.
Order’s cart contains a Combo with Premium Items
→ Order payload contains a Combo, with it’s children priced at 0, and premium items priced normally.
→ Order successfully sent and placed in Partner’s POS, priced at combo + premium item cost.
Order’s cart contains a System Wide Offer (Item)
→ Offer contains an item
→ Order successfully sent and placed in Partner’s POS, offer is applied successfully. (Burillo, Alejandro)
The offer is added into cart with correct price
Order’s cart contains a System Wide Offer (Combo)
→ Offer contains a Combo
→ Order successfully sent and placed in Partner’s POS, offer is applied successfully.
The Offer is added into cart with correct price
Order’s cart contains a Config Offer (Item)
→ Offer contains an item
→ Order successfully sent and placed in Partner’s POS, offer is applied successfully.
The Offer is added into cart with correct price
Order’s cart contains a Config Offer (Combo)
→ Offer contains a Combo
→ Order successfully sent and placed in Partner’s POS, offer is applied successfully.
The Offer is added into cart with correct price
Order’s cart contains a Config Offer (Percentage Discount)
→ Offer contains a Order level percentage discount(e.g. 10% discount)
→ Order successfully sent and placed in Partner’s POS, offer is applied successfully.
The price of the Order is 90% of the original price
Order’s cart contains a Loyalty Reward (Item)
→ User with enough loyalty points, selects loyalty reward in loyalty page on Whitelabel App.
→ Order is placed in Whitelabel App, with a cart containing a Loyalty rewards item.
→ Order successfully sent and placed in Partner’s POS.
→ Loyalty reward Item is applied successfully.
Order’s cart contains a Loyalty Reward (Combo)
→ Reward contains a Combo
→ Order successfully sent and placed in Partner’s POS.
→ Loyalty reward Combo is applied successfully.
Example calls:
Identify: During the order placement - We send the offers/rewards so the POS may apply them.
Endpoint: [stage]-[brand]-loyalty-middleware.rbictg.com/loyalty/identify
Code Block |
---|
{
"identifier": "number",
"posVendor": {
"posType": "pos",
"storeId": "number",
"terminal": "number",
"operator": "number",
"transactionId": "number"
}
} |
Endpoint: [stage]-[brand]-loyalty-middleware.rbictg.com/loyalty/transaction/pos/[orderId]
Code Block |
---|
{
"serviceMode": "serviceMode",
"channel": "channel",
"loyaltyId": "LoyaltyId",
"transactionId": "transactionId",
"status": "PENDING",
...
"created": "date",
"transactionDetails": {
"payments": [...],
"posVendor": {...},
"appliedDiscounts": [
{
"details": {
"displayName": "displayName",
"type": "REWARD"
},
"productId": "number",
"referenceId": "referenceId"
}
]
}
} |
Action |
---|
...
panelIconId | atlassian-question_mark |
---|---|
panelIcon | :question_mark: |
panelIconText | :question_mark: |
bgColor | #E6FCFF |
...
Potentially unclear points for integrator:
Curbside pickup extra details
Tests | Expected Vendor Behavior | Expected Result | |||
---|---|---|---|---|---|
Place a Dine In order | As per above. | Partner collects the order number ( | Order is injected in the POS. | ||
Place a Table Service order | |||||
Place a Delivery In order |
| ||||
Payment Methods
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Place a Cash or any other Unpaid in-restaurant order | As per above. | Partner collects the payment method from the GET Order endpoint ( Typically, POS systems define Tender IDs for this purpose. | → Order is injected in the POS. → Order is not injected in KDS (Kitchen Display System), i.e. it is not sent to the kitchen. → Order is injected in KDS after user performs the payment. |
Place an online payment (paid) in-restaurant order | As per above. | Partner collects the payment method from the GET Order endpoint and injects in the appropriate POS field. Typically, POS systems define Tender IDs for this purpose. Any payment method besides | → Order is injected in the POS and in KDS. |
Order Events
Action | Tests | Expected Vendor Behavior | Expected Result | |||||
---|---|---|---|---|---|---|---|---|
| ||||||||
| ||||||||
| ||||||||
| ||||||||
| ||||||||
|
→ Place Order in Whitelabel App | Order’s cart contains an Item → Order successfully sent and placed in Partner’s POS. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a Combo → Order successfully sent and placed in Partner’s POS. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains an item, with a Modifier Multiplier without (0) → Order payload contains Modifier Multiplied PLU → Order successfully sent and placed in Partner’s POS, describing the without modifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains an item, with Modifier Multiplier with (1) → Order payload contains Modifier Multiplied PLU → Order successfully sent and placed in Partner’s POS, describing the “with” modifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains an item, with Modifier Multiplier extra (2) → Order payload contains Modifier Multiplied PLU → Order successfully sent and placed in Partner’s POS, describing the “extra(2)” modifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a combo, with an item that has a Modifier Multiplier without (0) → Order payload contains Modifier Multiplied PLU, inside the item, inside the combo. → Partner Integration successfully handles a 3 level nested structure in the cart. → Order successfully sent and placed in Partner’s POS, describing the without modifier. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a Combo with Premium Items → Order payload contains a Combo, with it’s children priced at 0, and premium items priced normally. → Order successfully sent and placed in Partner’s POS, priced at combo + premium item cost. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a System Wide Offer (Item) → Offer contains an item → Order successfully sent and placed in Partner’s POS, offer is applied successfully. (Burillo, Alejandro) |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a System Wide Offer (Combo) → Offer contains a Combo → Order successfully sent and placed in Partner’s POS, offer is applied successfully. |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a Config Offer (Item) → Offer contains an item → Order successfully sent and placed in Partner’s POS, offer is applied successfully. |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a Config Offer (Combo) → Offer contains a Combo → Order successfully sent and placed in Partner’s POS, offer is applied successfully. |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a Config Offer (Percentage Discount) → Offer contains a Order level percentage discount(e.g. 10% discount) → Order successfully sent and placed in Partner’s POS, offer is applied successfully. |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a Loyalty Reward (Item) → User with enough loyalty points, selects loyalty reward in loyalty page on Whitelabel App. → Order is placed in Whitelabel App, with a cart containing a Loyalty rewards item. → Order successfully sent and placed in Partner’s POS. → Loyalty reward Item is applied successfully. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a Loyalty Reward (Combo) → Reward contains a Combo → Order successfully sent and placed in Partner’s POS. → Loyalty reward Combo is applied successfully. Example calls:
| Order’s cart contains a Loyalty Reward (Percentage Discount) → Reward contains a Order level percentage discount(e.g. 10% discount) → Reward successfully sent and placed in Partner’s POS, offer is applied successfully. |
| Order discounts -
| When an explicit fire order (send to kitchen) event is expected:
→ Order should be triggered to POS with
→ POS receives webhook “Fire Order” (ref: https://eu-bk-partners.rbictg.com/docs/market/#tag/OrderWebhook/operation/webhookOrdersFire ) → KDS receives the order | When orders are expected to reach the kitchen immediately: Select Slot Now on checkout page ( → Order should be injected to POS with → The order should be fired immediately to the Kitchen. → KDS receives the order | When pre-ordering is expected, orders to reach the kitchen after a determined delay: Select Future Slot of pickup on checkout page ( → Order should be injected to POS with → After | Order Events | Test cases for all order events and its flow to mParticle → Braze, etc. Need to create tests for each event.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order’s cart contains a Loyalty Reward (Percentage Discount) → Reward contains a Order level percentage discount(e.g. 10% discount) → Reward successfully sent and placed in Partner’s POS, offer is applied successfully. |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order discounts -
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order Cancellation | After execution call to Partners API with the → Check whether the status has been changed to cancel → Check whether the automatic refund has been processed (if applicable) → Check whether the cancellation email was triggered → Check whether delivery has been cancelled (if applicable) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Payment | → Ensure payments are successfully processed using each payment method | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Order cancelation → When the order is canceled in the POS the payment should be refunded. |
...
Menu Availability Validation
...