Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Current »

Order injection capabilities and requirements of Oracle

Content

Service modes

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

Question

Answer

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

E.g. Classic Coca-cola

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

Does Oracle require a separate PLU for each fee?

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

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

{
    "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
        }
      ]
  }
 Answer from Oracle
image-20241030-103811.png

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

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

image-20241030-110917.png

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, POS stays online as long as nobody unplugs it.

Can orders be canceled in the POS?

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

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

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

Fiscal integrations

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:

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

This will change market by market.

  • No labels