Versions Compared

Key

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

Contents

Table of Contents
minLevel1
maxLevel4
outlinefalse
stylenone
typelist
printabletrue

...

{ "loyaltyId": "loyaltyId", "transactionId": "transactionId", "channel": "RESTAURANT", "serviceMode": "TAKEOUT", "status": "PENDING", "created": "date", "transactionDetails": { ... "posVendor": { ... }, "order": [ { "referenceId": "referenceId", "name": "name", "productId": "productId", "incentiveId": "incentiveId", "loyaltyEngineId": "loyaltyEngineId", "quantity": number, "price": price, "productType": "reward" } ] } }

Order Injection: Cart

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

Modifier Multiplier

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.

Modifier Multiplier

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"
    }
}

Validate: After totalization - We send a confirmation if everything is okay with the order and the guest's updated point balance if the order is payed (It is a dry run of the update)
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"
        }
    ]
 
    }
}

Update: After Payment - We confirm the transaction and update the guest's point balance. We also send loyalty receipt information

Code Block

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.

  • The price of the Order is 90% of the original price

Order discounts -

Jira Legacy
serverSystem Jira
serverId255417eb-03fa-3e2f-a6ba-05d325fec50d
keyIREQ-1709
?

Order Cancellation

After execution call to Partners API with the CANCELED Order Event

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

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.

...