Contents
Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Action | Tests | Expected Vendor Behavior | Expected Result | ||
---|---|---|---|---|---|
Make an item available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the menu section of the item. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Item appears in App Menu section with correct price.
| ||
Make an item unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the menu section of the item. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Item disappears from App Menu section.
| ||
Make a combo available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the menu section of the combo. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Combo appears in App Menu section with correct price.
| ||
Make a combo unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the menu section of the combo. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Combo disappears from App Menu section.
| ||
Make a modifier multiplier available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the item containing the modifier multiplier. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Modifier Multiplier appears in App Menu section with correct price.
| ||
Make a modifier multiplier unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the item containing the modifier multiplier. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Modifier Multiplier disappears from App Menu section.
| ||
Make a Systemwide Offer available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the offers page. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Offer appears in App Offers page and is available for Mobile redemption with correct price.
| ||
Make a Systemwide Offer unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the offers page. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Offer button for Mobile redemption is grayed out.
| ||
Make a premium item (within a comboslot) available as part of a combo | Authenticated user selects ordering for the corresponding store and navigates to the combo containing the premium item.
| Make a request with price and
| → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Item appears inside the Combo with the desired premium price.
| ||
Make a premium item (within a comboslot) unavailable as part of a combo | Authenticated user selects ordering for the corresponding store and navigates to the combo containing the premium item.
| Make a request with price and
| → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Item disappears from the Combo.
| ||
Make a reward available:→ Make a request with Reward available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the rewards page. | Make a request with price and
→ Make a request to the GET Store Menu PLUs endpoint to validate the same PLUs are returned with the availability values in the API response → Confirm that the systemwide offers appear on the whitelabel application. . | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Reward appears in App Rewards page and is available for Mobile redemption with correct price.
Note that there may be additional rulesets (e.g. only for certain time-between, payment method, etc.) defined for rewards: Mechanics Make a reward unavailable: → Make a request with
| ||
Make a Reward unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the rewards page. | Make a request with price and | → Make a request to the Partners API GET Store Menu PLUs endpoint to validate returns the same PLUs are returned with the same availability value in the API response→ Confirm that the reward(s) no longer appear on the Whitelabel Appcorresponding price and availability. → Reward button for Mobile redemption is grayed out.
|
Order Creation
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
...
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
| |||||||
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 | |||||
---|---|---|---|---|---|---|---|---|
Order Injection: Delivery orders | Delivery → Delivery Order successfully sent and placed in Partner’s POS. → The delivery fee should be included in the order information.
| |||||||
Delivery cancelation → Delivery Order successfully sent and placed in Partner’s POS. → If a delivery cancellation is requested:
| ||||||||
Delivery rejection → Delivery Order successfully sent and placed in Partner’s POS. → If the delivery partner rejects the order:
|
Order Events
Panel | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Potentially unclear points for integrator:
|
→ 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 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
...