Versions Compared

Key

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

...

Question

Answer

How are PLUs managed for different service modes?

Same PLU for both in-restaurant and delivery service modes. Different pricing is managed through definitionSequence.

  • definitionSequence = 1 is in-store.

  • definitionSequence = 2 is delivery.

Not all items have both definitions (e.g. some items aren’t sold in delivery).

image-20241006-171746.png

How do we distinguish service modes?

  • Use definitionSequence

  • Do not use different revenue centers – this means multiple configurations.

How do we send the table order number for table service orders?

Fees

Clarify requirement for market (BK DE) – do we need to show price of bottle deposit in the menu?

Question

Answer

  • Sugar tax – is it added as surcharge to the product (included in priceSequence)?

E.g. Classic Coca-cola

Do we get the sugar tax as a separate line in the tax object?

  • Bottle deposit (Pfand)

  • . Does it have a separate PLU?

  • In Oracle, sugar tax and cup charges are treated as “forced condiments” (required modifiers) to items.

  • Pfand has its own PLU and is treated as a condiment (modifier) to drinks

. RBI does not need to send the pfand modifier, but Oracle will return the price with the pfand included
  • .

Info

Does Oracle require a separate PLU for each fee?

Are the following fees supported: bag fee, service fee, delivery fee?

Expand
titleAnswer from Jean (TBC)

Fees are sent to Oracle in the commit call as serviceChargeId, which are configured in the oracle portal. They can retrieved using the {{baseUrl}}/serviceCharges/collection?OrgShortName={{OrgShortName}}&LocRef={{LocRef}}&RvcRef={{RvcRef}} endpoint.

Code Block
languagejson
{
    "items": [
        {
            "serviceChargeId": 101,
            "name": "% Tip",
            "type": "percentage",
            "value": 0
        },
        {
            "serviceChargeId": 102,
            "name": "$ Tip",
            "type": "amount",
            "value": 0
        },
        {
            "serviceChargeId": 106,
            "name": "Delivery Chrg",
            "type": "amount",
            "value": 5
        }
      ]
  }
Expand
titleAnswer from Oracle
image-20241030-103811.pngImage Added

Bag fee

  • We treat as a separate menu item (PLU).

Order firing & cancelation

Question

Answer

FireOrder webhook. Does Symphony support ’suspended’ orders? That is, orders sent with fireOrderInSeconds=null which need to get fired at a later time.

Yes.

  • In the “Post a new check” endpoint you include the pickupTime value which determines at what time the order should be ready.

  • Oracle adds prep time to that value to have the order ready in the submitted pickupTime. This time can be changed at any point.

  • pickupTime is the time requested for the order to be collected. If not provided the current time plus the Service Level Time for the given order type is assumed. Time is local in the request but UTC in the response.

  • pickupTime can be equal to current time, Oracle will add the prep time automatically.

  • In Oracle, prep time is called service level time.

image-20241030-105932.pngImage Added

To get the service level time (prep time) you can use this call:

image-20241030-110917.pngImage Added

For pre-ordering outside opening hours – does Oracle support pricing & committing orders outside restaurant opening hours?

E.g.: An order is priced and committed, at 6:00 AM. The order is set with the attribute fireOrderInSeconds = null to wait for an explicit FIRE_ORDER webhook at a later time to be sent to kitchen. While the restaurant opens at 9:00 AM.

Yes.

Can orders be canceled in the POS?

If so, how does Simphony notify our system of canceled orders? Is there a Webhook?

Expand
titleAnswer from Jean (TBC)

Yes.

  1. Unpaid orders comes into the POS. Team member can void unpaid open order.

  2. Paid order comes into the POS. Team member can void closed order.

Check notification webhook should inform RBI when an order is canceled.

Code Block
languagejson
{
        "subscriptionId": "ba637437-b666-4ff9-91ee-a6b11cc62d8e",
        "callbackUri": "https://play.svix.com/in/e_8c35PkfkLdaGK7Rv5oVfLVySc8b/",
        "messageType": {
            "id": "CheckNotification"
        },
        "postOfficeOptions": {
            "postOfficeType": "PushOnePostOffice"
        },
        "orgShortName": "uat",
        "locRef": "99990",
        "rvcRef": "101"
    }
Expand
titleOracle answer
  • Restaurant managers might be able to void orders.

Pricing/Commit errors

Question

Answer

Actionable Feedback for Pricing / Commit errors.

How do we move towards having only actionable feedback?

  • Example of current non-actionable feedback: Incorrect side count for Combo Meal Side #2. Expect 1 but found 0

  • Example of current actionable feedback: 52325 is not a part of combo with id 8763

...

Question

Answer

Do we need to pass any information for fiscal integrations to work?

Is this standard across markets?

E.g. in BK MX in the commit call we need to send the following information for the Harmony fiscal integration:

Code Block
languagejson
"extensions": [
{
"displayName": "DocumentId",
"appName": "Harmonized",
"dataName": "DocumentId",
"dataType": "strings",
"data": "1",
"options": []
},
{
"displayName": "DocumentType",
"appName": "Harmony",
"dataName": "DocumentType",
"dataType": "strings",
"data": "01",
"options": []
}

This information always stays the same as it’s needed for the fiscal integration to workwill change market by market.