Simphony 19.5
Oracle® MICROS Simphony
Simphony Kiosk JavaScript API Reference Guide
Release 19.5
F83211-01
June 2023
Copyright © 2023, Oracle and/or its affiliates.
The Simphony Kiosk JS API provides an interface that can be utilized by an HTML5 Kiosk ordering application to access the necessary pieces of the POS logic in the Simphony ServiceHost to obtain configuration datasets, be notified of pertinent system events, trigger tax and totals calculation, initiate payment processing and create checks in the Point of Sale.
Additionally, the API offers capabilities to allow a custom HTML5 App to send print commands to a local receipt printer as well as write errors and other important troubleshooting information to the EGateway log, allowing for a consistent source for troubleshooting information.
Simphony Kiosk JavaScript API solution overview.
The SimphonyKioskApi must be initalized before use. This allows it to make the necessary websocket network connections and fetch any data it needs from Simphony.
When initialization is complete the ApiReady
event will be raised. (See Events below.)
initialize(config)
The initalize(config)
function takes a single argument, config
, with two properties:
key
: This is a string to identify your client app, e.g. 'MyKioskWebApp'. Used by Simphony logging.onApiEvent
: This is the callback function to handle events raised by SimphonyKioskApi. It should take one argument, the event
object.// Initializing SimphonyKioskAPI
var config =
{
key: 'MyKioskWebApp',
onApiEvent: myOnApiEventHandler,
};
SimphonyKioskAPI.initialize(config);
onApiEvent
function myOnApiEventHandler(event)
{
switch (event.Message) {
case 'ApiReady':
console.log('SimphonyKioskAPI initialized successfully and is ready for use.');
break;
default:
console.log(event.Message);
break;
}
The SimphonyKioskApi raises asynchronous events which can be handled.
The callback handler is set in the onApiEvent
property passed when calling initialize()
.
Events will have one of the folowing values for Message
:
ApiReady
ServerConnectionLost
Error
ConfigurationDataUpdated
MenuItemAvailabilityDataUpdated
Scanner
ScannerError
Events may have one or more of the following properties populated:
Description
Data
IsFatal
Message
ApiReady
Raised when the SimphonyKioskApi is initialized and ready for use.
Description
: The event code which was returned from the websocket connection.ServerConnectionLost
Raised when the websocket loses connection.
Description
: The event code which was returned from the websocket connection.Error
Raised when there is an error from the websocket connection.
Description
: The string 'Server communications error: '
followed by the event code which was returned from the websocket connection..IsFatal
: boolean which indicates if the error is recoverable or not.ConfigurationDataUpdated
Raised when updated configuration data is sent to SimphonyKioskApi from the POS.
MenuItemAvailabilityDataUpdated
Raised when the updated menu item availability data is sent to SimphonyKioskApi from the POS.
Scanner
Raised when a barcode is scanned.
Data
: The value of the scanned barcode as a string.ScannerError
Raised when a barcode is scanned unsuccessfully.
Description
: The reason for the failure.This is a JSON string containing various settings for the Kiosk web app.
Its value is the _KioskParameters_
entry in EMC's "Content" for the current revenue center.
The SimphonyKioskApi's posConfiguration
property contains all the configuration settings for the revenue center.
Note: posConfiguration
must not be accessed before the ApiReady
event has been raised. Attempts to do so before initalization is complete will result in errors or incorrect data.
The properties of posConfiguration
contain the various types of data.
posConfiguration
The following properties are defined on posConfiguration
. A brief description is given below. A more complete specification can be found at LINK_TO_JSDOC.
menu
A menu describes the set of items that can be ordered from a revenue center. The menu includes the menu items, prices, and related information necessary to order an item.
discounts
The discount collection is a list of discounts that can be used when interacting with the checks endpoint. The API returns a collection of discounts that can be used at the specified revenue center.
tenders
The tender collection is a list of tenders that can be used for payment when interacting with the checks endpoint. The API returns a collection of tenders for the specified revenue center.
servicecharges
The service charge collection is a list of service charges that can be used when interacting with the checks endpoint. The API returns a collection of service charges that can be used at the specified revenue center.
barcodes
The barcodes array contains all available barcodes
rvc
A revenue center represents the organizational entity that produces and sells items and services.
location
A location represents the places of business within a customer's organization. A location can have one or more revenue centers.
menuitemAvailability
This contains data about which menu items which are currently unavailable for sale.
logToHost
Log entries can be sent to the EGateway logs using the logToHost(message, logLevel)
function.
The parameter message
is a string containing the message for the entry.
The parameter level
is a number indicating the Simphony log level severity for the entry:
level value |
Simphony log level |
---|---|
-99 | NONE |
-3 | LOG_ALWAYS_ERROR |
-2 | LOG_ALWAYS_WARN |
-1 | LOG_ALWAYS_INFO |
0 | LOG_ALWAYS_DEBUG |
0 | LOG_ALWAYS |
1 | LIGHT_FLOW |
2 | GENERAL_FLOW |
3 | DETAIL_FLOW |
4 | BUFFER_DUMPS |
5 | ULTIMATE_DEBUG |
SimphonyKioskAPI.logToHost('My General Flow message', 2);
SimphonyKioskAPI.logToHost("Some message at level zero" 0);
It is required to retrieve Kiosk parameters from KioskParameters file in order to be able to make subsequent API calls Calculate totals for a Check, Create Payment for a Check and Submit a Check. The configuration details from the KioskParamaters have to be used to make API calls to get posConfiguration, Calculate totals for a Check, Create Payment for a Check and Submit a Check.
SimphonyKioskApi has two functions for calculating a check, one asynchronous and the other not. Both functions take a Check as the only parameter.
The calculateTotals(check)
function will return a Check containing the result of the calculation, or an error message if unsuccessful.
The calculateTotalsAsync(check)
function returns a resolved Promise with a Check containing the result of the calculation, or a rejected Promise with an error message if unsuccessful.
Before a Check is submitted any required payments in its tenders should be created and processed. For Service Total tenders the payment will need to be removed.
You must use the removePaymentData()
to remove the empty payment created by the TenderItem constructor.
SimphonyKioskApi has two functions for creating a payment, one asynchronous and the other not. Both functions take a AuthAndPayRequest
as the only parameter.
The submitPayment(req)
function takes an AuthAndPayRequest as an argument and returns an AuthAndPayResponse.
The submitPaymentAsync(req)
function takes an AuthAndPayRequest as an argument and returns a resolved Promise with an AuthAndPayResponse, or an error message if unsuccessful.
If successful the response should be added to the Check's tenders.paymentData
before it is submitted.
AuthAndPayResponse
This contains the response from the payment provider.
If DriverSuccess
is true then the payment provider was contacted successfully. If it is false then there was a problem contacting the payment provider and the payment was not processed. In this case DriverMessage
may describe the problem encountered.
If the payment provider was contacted successfully then RespCode
will contain the response code from the payment provider indicating whether the request was successful or not.
You can access Oracle Payment Interface documentation through the following Oracle Hospitality documentation page: https://docs.oracle.com/en/industries/hospitality/integration_platforms.html
Once a Check is ready it can be submitted.
SimphonyKioskApi has two functions for submitting a Check, one asynchronous and the other not. Both functions take a Check
as the only parameter.
The submitCheck(check)
function returns the Check.
The submitCheckAsync(check)
function returns a Promise containing a Check.
The Simphony Kiosk JavaScript API can be used to get information about a revenue center and place orders.
Initializes the API. It opens a connection to the POS and loads kioskParameters and posConfiguration data
Type: Function
(any)
Configuration for the API
Name | Description |
---|---|
config.key string
|
A string identifying the client, e.g. 'DeveloperKioskWebApp' |
config.onApiEvent any
|
A function to handle events raised by the API #events raised by the API will have one of the folowing values for event.Message:'ApiReady', 'Scanner', 'ScannerError', 'Error', 'Startup', 'ConfigurationDataUpdated', 'MenuItemAvailabilityDataUpdated', 'ServerConnectionLost', 'DataStore' |
Contains properties for each type of data: menu, barcodes, discounts, servicecharges, tenders, location, rvc
Type: ConfigurationData
any
:
An object containing all configuration data for this POS, or null if not found
Get parameters for this kiosk
any
:
an object containing the kiosk parameters, or null if not found
Sends a log message to the EGateway log
Submits a payment for processing
(AuthAndPayRequest)
The payment request
AuthAndPayResponse
:
The payment response
Submits a payment for processing
(AuthAndPayRequest)
The payment request
AuthAndPayResponse
:
A promise containing the payment response
These are the types used for creating and placing Checks.
The model for a Check.
Array of extension detail. (optional)
(Array<ExtensionItem>?)
Array of service charges. (optional)
(Array<ServiceChargeItem>?)
Array of discounts. (optional)
(Array<DiscountItem>?)
Array of combo meal items. (optional) If there were no combo meal items on the check the returned array will be empty.
(Array<ComboMealItem>?)
Array of tender items. (optional)
(Array<TenderItem>?)
The check header contains information describing the overall check.
(CheckHeader)
Contains a set of totals for aspects of the check. (optional)
The values from the check total object relate in the following way:
subtotal (sum of menu items sales - discounts) - discountTotal + autoServiceChargeTotal + serviceChargeTotal + taxTotal - paymentTotal = totalDue
(CheckTotals)
The check header contains information describing the overall check.
Flag used to identify a training check. (optional)
(boolean?)
The language culture reference associated with the check. (optional) This value is used to return "name" property of check items in a desired language.
(string?)
The number of guests on the check. (optional)
(int?)
The time requested for the order to be collected. (optional)
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.
(Date?)
The time requested for the order to "fire" to the kitchen. (optional)
This is when preparation will start. If not provided, the current time is assumed. The dateTime in requests should be reflected in the Location/RVCs localized time, while responses will be shown in Zulu/UTC+0.
(Date?)
The time the check is opened/created. Time is UTC. (optional)
(Date?)
The table-group of the check. (optional)
Assigned by POS and indicates the number of checks open checks with the same table.
(int?)
Table number or name (optional)
The table for the check from the revenue center configuration.tableName attribute can reflect either a single table number or a table name (in both cases represented by a string data type in the api).
RVC option bit 18 is responsible for deciding if the value reflected in the tableName is utilized by the POS as the table name or the table number.
(string?)
The order type identifier from the revenue center configuration.
(number)
The identifier of the employee that is used for the operations.Simphony: the employee object number.
(number)
The reference for the check provided at time of check creation. (optional)
This must be unique among all open checks at the revenue center.
(string?)
A check identifier generated by the POS when the check is created. (optional)
(int?)
A unique identifier for the request generated by the integrator.
Pattern: [0-9a-f]{32} This should be a UUID v4 formatted value minus dashes.
(string)
The unique check reference generated by the POS system when the check is created. (optional)
(string?)
Contains a set of totals for aspects of the check.
The values from the check total object relate in the following way:
subtotal (sum of menu items sales - discounts) - discountTotal + autoServiceChargeTotal + serviceChargeTotal + taxTotal - paymentTotal = totalDue
The subtotal of the check. (optional)
This is the sum of net menu item totals.
The net menu item total for a single menu item is: (menu item total + item discounts + surcharge)
.
(decimal?)
The total of discounts applied to the subtotal. (optional)
(decimal?)
The total of service charges automatically added to the check. (optional)
(decimal?)
The service charge total of the check. (optional)
(decimal?)
The tax total of the check. (optional)
This value excludes any inclusive tax.
(decimal?)
The total of the payments on the check. (optional)
(decimal?)
The remaining balance due for the check. (optional)
(decimal?)
A Combo Meal that can be ordered.
Seat assignment for the item. (optional)
(int?)
A menu item on the check represents an item that is purchased.
(MenuItem)
A menu item on the check represents an item that is purchased.
(MenuItem)
Array of extension detail (optional)
(Array<ExtensionItem>?)
Object that can contain extensibility detail to be stored with the check.
Array of options that define behavior of the extension item. (optional)
Option | Description |
---|---|
printOnDisplay | When specified the displayName is shown on the display |
printOnReceipt | When specified the displayName is printed on the receipt/check |
printInKitchen | When specified the displayName is printed on the kitchen chit |
includeInApiResponse | When specified the extension item is return as part of the check in the API responses. |
A string displayed and/or printed if this item is displayed or printed. (optional)
(string?)
The name of the application associated with this data. (optional)
Defined by the caller.
(string?)
Name of the data stored by this extensibility item. (optional)
(string?)
Payment data for the Check.
You can access Oracle Payment Interface documentation through the following Oracle Hospitality documentation page: https://docs.oracle.com/en/industries/hospitality/integration_platforms.html
Describes the type of data contained in this payment data object.
Type structure identifier, format identifier values can be found at https://docs.oracle.com/en/industries/hospitality/integration_platforms.html.
(string)
Object containing data for the type of payment.
These are the types returned by SimphonyKioskApi posConfiguration()
Configuration data for this revenue center
Type: Object
(Menu)
: The menu for this revenue center
(DiscountCollection)
: The discounts for this revenue center
(TenderCollection)
: The tenders for this revenue center
(ServiceChargeCollection)
: The service charges for this revenue center
(BarcodeCollection)
: The barcodes for this revenue center
(RevenueCenter)
: Information about this revenue center
(Location)
: The location for this revenue center
(MenuItemAvailability)
: The currently unavailable menu items for this revenue center
A menu describes the set of items that can be ordered from a revenue center. The menu includes the menu items, prices, and related information necessary to order an item.
Array of combo meals
Type: Array<ComboMealItem>?
Array of condiment items
Type: Array<CondimentItem>?
Array of family groups
Type: Array<FamilyGroupItem>?
A menu item on the check represents an item that is purchased.
Array of discounts applied to the menu item. (optional)
(Array<DiscountItem>?)
The calculated surcharge amount based on the rate configured for the surcharge associated with the item. (optional)
(decimal?)
Additional text associated with the item. (optional)
Maximum Length: 20
(string?)
Seat number of item on the check. (optional)
(int?)
The total cost of the item (extended to account for the quantity). (optional)
(decimal?)
The price sequence number to set the appropriate price level. (optional)
(int?)
The price associated with the item. (optional)
(decimal?)
The quantity of this menu item. (optional)
If present minimum value is 1.
(decimal?)
The menu item definition sequence identifier. (optional)
Indicates the definition of item that is used.
This value is ignored on Oracle.RES platform.
(number)
Array of condiments represented in menu item. (optional)
If there are no condiments configured, this array will be empty.
(Array<CondimentItem>?)
Array of extension detail.
(Array<ExtensionItem>)
A menu item definition contains operational attributes of a menu item.
The number of the definition. This value is used when ordering the item.
Type: number
The menu item definition's name translated into multiple languages.
Type: TranslatedString?
The menu item definition's name2 translated into multiple languages.
Type: TranslatedString
A collection of the screen-lookup groups for the item. This value is provided to group or filter items on a user interface.
Type: Array<ScreenLookup>?
Collection of prices that can be uses when ordering a menu item.
Type: Array<MenuItemPrice>?
The collection of condiments associated with the menu item by default.
Type: Array<DefaultCondiment>?
Defines a set of condiment groups from which items are selected when adding an the menu item to a guest check.
Type: Array<CondimentGroupRule>?
The consumer name translated into multiple languages.
Type: TranslatedString?
The consumer description translated into multiple languages.
Type: TranslatedString?
The consumer advisory text translated into multiple languages.
Type: TranslatedString?
A list of nutritional data for the menu item. It is assumed that nutritional items are defined where the serving size is one of the menu item.
Type: Array<NutritionalData>?
Represents a price for a menu item.
CondimentItem class
Additional text associated with the item. (optional)
(string?)
Seat number of item on the check. (optional)
(int?)
Amount of item for the specified quantity. (optional)
(decimal?)
The price sequence number to set the appropriate price level. (optional)
(int?)
The price that should be used for the item. (optional)
(number)
The quantity of this item. (optional)
If present minimum value is 1.
(decimal?)
The menu item definition sequence identifier.
Indicates the definition of item that is used.
This value is ignored on Oracle.RES platform.
(number)
Surcharge amount. (optional)
(decimal?)
Array of discounts applied to the menu item. (optional)
(Array<DiscountItem>?)
A condiment item definition contains operational attributes of a condiment item.
The number of the definition. This value is used when ordering the item.
Type: number
The name of this condiment definition translated into multiple languages.
Type: TranslatedString
The name2 of this condiment definition translated into multiple languages.
Type: TranslatedString
A collection of the screen-lookup groups for the item. This value is provided to group or filter items on a user interface.
Type: Array<ScreenLookup>?
Collection of prices that can be used when ordering a condiment item.
Type: Array<MenuItemPrice>?
The consumer name translated into multiple languages.
Type: TranslatedString?
The consumer description translated into multiple languages.
Type: TranslatedString?
List of nutritional Data that apply to this condiment item.
Type: Array<NutritionalData>?
A list of option values. If present the corresponding option is set. Duplicates are ignored. (Note - Supported by Simphony version 19.2.1 or greater. Ignored for Simphony version 19.2.0.).
Type:
Array<"containsAlcohol"
>?
Model for a Family Group
The name of the family group translated into multiple languages.
Type: TranslatedString?
The consumer facing name of the family group translated into multiple languages.
Type: TranslatedString?
The consumer facing description of the family group translated into multiple languages.
Type: TranslatedString?
Model for an allergen
The name of the allergen translated into multiple languages.
Type: TranslatedString?
Information about a Screen Lookup (SLU)
Represents the SLU property name of the POS menu item definition. SLU2 is sluNumber = 2, SLU8 is sluNumber = 8 etc. SLU is sluNumber = 1.
Type: number
The SLU name translated into multiple languages.
Type: TranslatedString?
A collection of barcode items for a revenue center.
A collection of discount information for a revenue center
Definition of a discount that can be applied to a transaction.
Seat number of item on the check. (optional)
(int?)
Additional text associated with the discount. (optional)
(string?)
The value of the discount for the associated line number. (optional)
In the request, if the discount is an open discount then set value to the amount (1.25) or percentage (0.1250 for 12.5%) that should be applied.
For preset discounts the total property in the request is ignored.
In the response, the total is the amount by which the transaction is discounted.
(decimal?)
Flag to indicate the item was applied by automatically by the POS system. (optional)
(boolean?)
Array of extension detail.
(Array<ExtensionItem>)
A collection of service charges for a revenue center
The service charges for this revenue center
Type: Array<ServiceChargeItem>?
A service charge that can be applied to a transaction.
The service charge's object number reference.
(number)
The value of the service charge. (optional)
In the request, if the service charge is an open then set value to the amount (1.25) or percentage (0.1250 for 12.5%) that should be applied.
For preset a service charge the total property in the request is ignored. In the response, the total is the amount of the service charge applied to the check.
(decimal?)
Seat number of item on the check. (optional)
(int?)
Additional text associated with the service charge. (optional)
(string?)
Array of extension detail. (optional)
(Array<ExtensionItem>?)
Tax definitions for a revenue Center
A collection of tax classes
Type: Array<TaxClassItem>
A collection of tax rates
Type: Array<TaxRateItem>
Definition of a tax rate.
The tax rate type. Valid values are
Type:
("disabled"
| "addonBreakpoint"
| "addonPercent"
| "includedPercent"
| "surcharge"
)?
"addonBreakpoint"
Tax rate names translated into multiple languages
Type: TranslatedString?
Definition of a tender that can be applied to a transaction.
TenderItem class
The total of the tender item. (optional)
A value of zero will result payment for the full amount.
(decimal?)
The amount of charged tip to apply to the transaction. (optional)
This amount is the portion of the payment that represents the charged tip.
The chargedTipTotal field will not have an impact on a check if the "total" field is not specified.
(decimal?)
Additional text associated with the tender. (optional)
(string?)
Payment data for the tender (optional)
You can access Oracle Payment Interface documentation through the following Oracle Hospitality documentation page: https://docs.oracle.com/en/industries/hospitality/integration_platforms.html
(PaymentData?)
Array of extension detail. (optional)
(Array<ExtensionItem>?)
Sets paymentData to 'undefined'. This should be used when using a serviceTotal tender.
A collection of currently unavailable menu items.
Information about unavailable menu items.
Type: Array<MenuItemAvailabilityData>?
Availability data for a menu item.
The unavailable definition sequences of the menu item.
Organization An organization is the business entity that manages food service operations.
{"orgShortName":"HWFC","name":"Hermit Woods Food Co."}
Location A location represents a physical place managed by an organization.
{"orgShortName":"HWFC","locRef":"HWFCrobbie","name":"Robbie Mills Stadium","currency":"USD","languages":["en-GB","fr-FR","de-DE"],"timezone":{"ianaName":"Europe/London","windowsName":"GMT Standard Time","tzIndex":85},"address":{"addressLine1":"144 W 54th St","addressLine2":"Suite 11B","floor":"42A","locality":"New York","region":"NY","postalCode":"10019","country":"USA","notes":"West Entrance"},"phoneNumber":"(0030) 0453 343 234","geoLocation":{"latitude":40.763188,"longitude":-73.914835},"posPlatform":{"name":"Oracle.Simphony","version":"19.2.0.1234"}}
The currency of the location. Pricing displayed on menus from the location are in this currency, and all check operations are in this currency. Currency is presented in.
Type: string?
"EUR"
Associated phone number.
Type: PhoneNumber?
Represents a postal address.
Type: PostalAddress?
Coordinate of a location.
Type: GeoLocation?
Identifies the POS Platform running at the location.
Type: PosPlatform?
Revenue Center Revenue Center (Rvc) is the organizational unit that produces and sells items. A Revenue Center has a Property.
{"orgShortName":"HWFC","locRef":"HWFCrobbie","rvcRef":5234,"name":"Bar","orderTypes":[{"orderTypeRef":1,"name":"Eat In","serviceLevelTime":20,"suggestedTips":[{"isDefault":false,"percentage":10},{"isDefault":true,"percentage":20},{"isDefault":false,"percentage":25}]},{"orderTypeRef":2,"name":"Take Out","serviceLevelTime":30,"suggestedTips":[{"isDefault":true,"percentage":18},{"isDefault":false,"percentage":20},{"isDefault":false,"percentage":25}]}],"tables":["1","2","3","B1","B2"],"address":{"addressLine1":"144 W 54th St","addressLine2":"Suite 11B","floor":"42A","locality":"New York","region":"NY","postalCode":"10019","country":"USA","notes":"West Entrance"},"phoneNumber":"2741022334","geoLocation":{"latitude":40.763188,"longitude":-73.914835}}
Represents a postal address.
Type: PostalAddress?
Coordinate of a location.
Type: GeoLocation?
Coordinate of a location.
Both latitude and longitude must contain valid values.
Defines an order type. The Order Type is used by the POS to define the workflow of an order, e.g., Dine-In vs Take-Out.
{"orderTypeRef":1,"name":"Eat In"}
The required time for the given order type to be prepared.
Type: number?
An array of suggested tip values.
Type: Array<SuggestedTip>?
Defines a suggested tip type. The Suggested Tip is representing a predefined percentage that can be used as a tip and may be marked as a default one when used in a list.
{"isDefault":true,"percentage":10}
Represents a postal address.
Represents the associated timezone.
{ianaName: "Asia/Kathmandu", windowsName: "Nepal Standard Time", tzIndex: 193 }
The integer representation of the Index column from https://support.microsoft.com/en-us/help/973627/microsoft-time-zone-index-values
Type: number
193
{"en-US":"Coffee","de-DE":"Kaffee","ar-AR":"قهوة"}
{
"orgShortName": "mymeal",
"locRef": "store66",
"rvcRef": 2,
"menuId": "myb:store2:dining",
"name": "Bar Menu",
"description": "string",
"menuItems": [
{
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"menuItemId": 32,
"familyGroupRef": 0,
"definitions": [
{
"definitionSequence": 0,
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"name2": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"slus": [
{
"sluNumber": 0,
"sluId": 0,
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"images": [
{
"index": "string",
"url": "https://oracleObjectStore.com/images/coffee822815.jpg",
"altText": "pizza",
"description": "string",
"isCloudImage": true,
"size": "string"
}
]
}
],
"taxClassRef": 0,
"prices": [
{
"priceSequence": 0,
"price": 0,
"name": "string"
}
],
"defaultCondiments": [
{
"condimentRef": 0,
"quantity": 1
}
],
"condimentGroupRules": [
{
"condimentGroupRef": 5802109,
"minimumCount": 1,
"maximumCount": 0
}
],
"consumerName": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"consumerDescription": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"images": [
{
"index": "string",
"url": "https://oracleObjectStore.com/images/coffee822815.jpg",
"altText": "pizza",
"description": "string",
"isCloudImage": true,
"size": "string"
}
],
"consumerAdvisoryText": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"allergens": [
"milk",
"peanut"
],
"nutritionalData": [
{
"nutritionalItemId": "fat, sodium",
"value": 475,
"unitOfMeasure": "grams, milligrams, calorie",
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
}
}
],
"options": [
"containsAlcohol"
],
"tags": [
"hot",
"cold"
],
"tagGroups": [
{
"id": "string",
"tags": [
"spicy",
"lo-carb"
]
}
],
"extensions": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
],
"dietaryInformation": [
"string"
],
"tags": [
"string"
],
"tagGroups": [
{
"id": "string",
"tags": [
"spicy",
"lo-carb"
]
}
]
}
],
"comboMeals": [
{
"comboMealId": 0,
"name": "string",
"menuItemRef": 0,
"comboGroups": [
{
"comboGroupId": 0,
"name": "string",
"count": 0,
"isMainGroup": true,
"prices": [
{
"priceSequence": 0,
"price": 0,
"name": "string"
}
],
"menuItems": [
{
"menuItemRef": 0,
"count": 0,
"prices": [
{
"priceSequence": 0,
"price": 0,
"name": "string"
}
]
}
]
}
]
}
],
"condimentItems": [
{
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"condimentId": 32,
"familyGroupRef": 0,
"definitions": [
{
"number": 0,
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"name2": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"slus": [
{
"sluNumber": 0,
"sluId": 0,
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"images": [
{
"index": "string",
"url": "https://oracleObjectStore.com/images/coffee822815.jpg",
"altText": "pizza",
"description": "string",
"isCloudImage": true,
"size": "string"
}
]
}
],
"prices": [
{
"priceSequence": 0,
"price": 0,
"name": "string"
}
],
"consumerName": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"consumerDescription": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"images": [
{
"index": "string",
"url": "https://oracleObjectStore.com/images/coffee822815.jpg",
"altText": "pizza",
"description": "string",
"isCloudImage": true,
"size": "string"
}
],
"allergens": [
"milk",
"peanut"
],
"nutritionalData": [
{
"nutritionalItemId": "fat, sodium",
"value": 475,
"unitOfMeasure": "grams, milligrams, calorie",
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
}
}
],
"options": [
"containsAlcohol"
],
"tags": [
"hot",
"cold"
],
"tagGroups": [
{
"id": "string",
"tags": [
"spicy",
"lo-carb"
]
}
],
"extensions": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
],
"dietaryInformation": [
"string"
],
"tags": [
"string"
],
"tagGroups": [
{
"id": "string",
"tags": [
"spicy",
"lo-carb"
]
}
]
}
],
"condimentGroups": [
{
"condimentGroupId": 32,
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"condimentItemRefs": [
0
],
"consumerName": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"consumerDescription": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"images": [
{
"index": "string",
"url": "https://oracleObjectStore.com/images/coffee822815.jpg",
"altText": "pizza",
"description": "string",
"isCloudImage": true,
"size": "string"
}
]
}
],
"familyGroups": [
{
"familyGroupItemId": 0,
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"consumerName": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"consumerDescription": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"images": [
{
"index": "string",
"url": "https://oracleObjectStore.com/images/coffee822815.jpg",
"altText": "pizza",
"description": "string",
"isCloudImage": true,
"size": "string"
}
]
}
],
"allergens": [
{
"allergenId": "string",
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
}
}
]
}
{
"orgShortName": "mymeal",
"locRef": "store66",
"rvcRef": 2,
"items": [
{
"discountId": 13,
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"type": "amount",
"value": 5,
"consumerName": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"consumerDescription": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"extensions": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
]
}
{
"orgShortName": "mymeal",
"locRef": "store66",
"rvcRef": 2,
"items": [
{
"serviceChargeId": 0,
"name": "string",
"type": "amount",
"value": 5,
"consumerName": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"consumerDescription": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"extensions": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
]
}
{
"orgShortName": "mymeal",
"locRef": "store66",
"rvcRef": 2,
"taxClasses": [
{
"taxClassId": 0,
"activeTaxRateRefs": [
0
]
}
],
"taxRates": [
{
"taxRateId": 0,
"percentage": 0,
"taxType": "addonBreakpoint",
"name": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"repeatStartIndex": 0,
"repeatEndIndex": 0,
"startAmount": 0,
"breakpoints": [
0
]
}
]
}
{
"orgShortName": "mymeal",
"locRef": "store66",
"rvcRef": 2,
"items": [
{
"tenderId": 0,
"name": "string",
"type": "serviceTotal",
"consumerName": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"consumerDescription": {
"en-US": "Coffee",
"de-DE": "Kaffee",
"ar-AR": "قهوة"
},
"extensions": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
]
}
{
"orgShortName": "mymeal",
"locRef": "store66",
"rvcRef": 2,
"items": [
{
"barcodeId": 1,
"barcode": "00003000002",
"menuItemId": 32.
"definitionSequence": 1,
"price": 14.99
}
]
}
{
"orgShortName": "mymeal",
"locRef": "store66",
"rvcRef": 2,
"items": [
{
"menuItemId": 32,
"definitions": [
{
"definitionSequence": 1
}
]
}
]
}
{
"limit": 0,
"offset": 0,
"count": 0,
"items": [
{
"orgShortName": "tfoinc",
"name": "The Food Organization Inc"
}
]
}
{
"orgShortName": "tfoinc",
"locRef": "fdmnh144",
"name": "The Food Organization Inc",
"currency": "USD",
"languages": [
"en-GB",
"fr-FR",
"de-DE"
],
"timezone": {
"ianaName": "America/New_York",
"windowsName": "Eastern Standard Time",
"tzIndex": 23
},
"address": {
"addressLine1": "144 W 54th St",
"addressLine2": "Suite 11B",
"floor": "42A",
"locality": "New York",
"region": "NY",
"postalCode": "10019",
"country": "USA",
"notes": "West Entrance"
},
"phoneNumber": "(0030) 0453 343 234",
"geoLocation": {
"latitude": 40.763188,
"longitude": -73.914835
},
"posPlatform": {
"name": "Oracle.Simphony",
"version": "19.2.0.1234"
}
}
{
"orgShortName": "tfoinc",
"locRef": "fdmnh144",
"rvcRef": 5234,
"name": "Bar",
"orderTypes": [
{
"orderTypeRef": 1,
"name": "Eat In",
"serviceLevelTime": 20,
"suggestedTips": [
{
"isDefault": false,
"percentage": 10
},
{
"isDefault": true,
"percentage": 20
},
{
"isDefault": false,
"percentage": 25
}
]
},
{
"orderTypeRef": 2,
"name": "Take Out",
"serviceLevelTime": 30,
"suggestedTips": [
{
"isDefault": true,
"percentage": 18
},
{
"isDefault": false,
"percentage": 20
},
{
"isDefault": false,
"percentage": 25
}
]
}
],
"tables": [
"1",
"2",
"3",
"B1",
"B2"
],
"address": {
"addressLine1": "144 W 54th St",
"addressLine2": "Suite 11B",
"floor": "42A",
"locality": "New York",
"region": "NY",
"postalCode": "10019",
"country": "USA",
"notes": "West Entrance"
},
"phoneNumber": "2741022334",
"geoLocation": {
"latitude": 40.763188,
"longitude": -73.914835
}
}
"geoLocation": {
"latitude": 40.763188,
"longitude": -73.914835
}
"orderTypes": [
{
"orderTypeRef": 1,
"name": "Eat In"
},
{
"orderTypeRef": 2,
"name": "Take Out"
}
]
"suggestedTips": [
{
"isDefault": false,
"percentage": 10
},
{
"isDefault": true,
"percentage": 20
},
{
"isDefault": false,
"percentage": 25
}
]
"posPlatform": {
"name": "Oracle.Simphony",
"version": "19.2.0.1234"
}
"address": {
"addressLine1": "144 W 54th St",
"addressLine2": "Suite 11B",
"floor": "42A",
"locality": "New York",
"region": "NY",
"postalCode": "10019",
"country": "USA",
"notes": "West Entrance"
}
"timezone": {
"ianaName": "America/New_York",
"windowsName": "Eastern Standard Time",
"tzIndex": 23
}