Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Contents

Table of Contents
minLevel1
maxLevel4
outlinefalse
stylenone
typelist
printabletrue

...

Action

Tests

Expected Vendor Behavior

Expected Result

Pricing Order

  • Orders are priced at the checkout to confirm how much a user will be charged. Regardless of the pricing and availability information cached at the application level, the POS is queried one last time to provide the final answer for Pricing and Availability of the different cart products.

Authenticated user selects ordering for the corresponding store, builds a cart and navigates to the checkout.

All Cart Structures must be tested in this category:

  • Item

  • Item w/ modifiers

  • Combo

  • Combo with items w/ modifiers

  • Systemwide Offer Item

  • Systemwide Offer Combo

  • Systemwide Offer Combo w/ modifiers

  • Promo Codes - Amount Discount

  • Promo Codes - Percentage Discount

  • Reward Item

  • Reward Combo

  • Reward Combo with modifier

Partner is subscribed to the ORDER_PRICE webhook (docs), which provides details about a new order to be priced.

Partner utilizes the Price Webhook Callback to answer the Price request.

Error Handling to follow the message and code standards:

  • Message: include a clear error message, mentioning the PLUs responsible for the failure and the designated store. Do not include unhelpful information like Error occurred while processing request

  • Code Enum: "MENU" "STORE" "TIMEOUT" "UNKNOWN"

→ /cart page loads total price of the user cart, corresponding to the sum of all products within.

→ loading time does not exceed 3 seconds for p99.

→ Tax, Subtotal, and Total are visible at checkout (as applicable according to local regulation).

→ [OPTIONAL] Fees, such as “Bag Fee”, are visible in the /cart page, separately from total cart amount.

Commit Order

  • After successfully pricing and payment, order is injected in the POS.

Authenticated user selects ordering for the corresponding store, builds a cart, navigates to the checkout and places an order.

All Cart Structures must be tested in this category:

  • Item

  • Item w/ modifiers

  • Combo

  • Combo with items w/ modifiers

  • Systemwide Offer Item

  • Systemwide Offer Combo

  • Systemwide Offer Combo w/ modifiers

  • Promo Codes - Amount Discount

  • Promo Codes - Percentage Discount

  • Reward Item

  • Reward Combo

  • Reward Combo with modifier

Partner is subscribed to the ORDER_COMMIT webhook (docs), which provides details about a new order to be injected in the POS.

Partner utilizes the Commit Webhook Callback to answer the Commit request.

Error Handling to follow the message and code standards:

  • Message: include a clear error message, mentioning the PLUs responsible for the failure and the designated store. Do not include unhelpful information like Error occurred while processing request

  • Code Enum: "MENU" "STORE" "TIMEOUT" "UNKNOWN"

→ Order is injected in the POS.

(further details included below, as per service mode and payment method)

Cancel Order

→ 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)

→ When the order is canceled in the POS the payment should be refunded.

In-Restaurant Service Modes

...

Action

Tests

Expected Vendor Behavior

Expected Result

Place a Delivery order

Authenticated user inputs address within delivery area on restaurant search in App, builds a cart and navigates to checkout.

Authenticated user clicks on “Continue” on the checkout page, and confirms selecting any payment method by clicking “Place Secure Order”.

Partner collects the service mode (serviceMode) from the GET Order endpoint (DELIVERY) and injects in the POS.

  • fireOrderInSeconds: null indicates the order should not be fired to the kitchen, and instead be injected to the POS in suspended mode.

Partner collects the order number (number) from the GET Order endpoint and injects in the POS.

→ Order is injected in the POS.

→ Order does not appear in the KDS (not fired into the kitchen).

Fire a Delivery order into the kitchen

Delivery vendor request to move the order to kitchen

  • Based on driver’s geolocation OR driver’s ETA to the restaurant.

Partner is subscribed to the ORDER_FIRE webhook, which triggers a request to fire an order into the kitchen.

Partner fires the order through a POST call to the Fire Order endpoint.

  • Firing is expected to happen when the driver is at a distance / time from the restaurant equal or lower to the preparation time (prep time). The POS vendor is not required to compute any logic, as RBI is responsible for informing the POS vendor when to fire orders.

→ Order appears in the KDS (is fired into the kitchen).

→ KDS identifies the service mode.

→ DSS ticket printed according to the service mode.

→ 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

Drivers rely exclusively on this number to identify the order they are supposed to pick up at the restaurant.

Cancel a Delivery order

Delivery cancelation

→ Delivery Order successfully sent and placed in Partner’s POS.

→ If a delivery cancellation is requested:

  • The order should be canceled in the POS.

Info

Payment Methods do not interfere with order firing for Delivery orders.

...