Oracle Simphony POS
What is Oracle Simphony
Oracle Simphony POS is a hospitality POS platform. EagleEye has built an extensibility application that runs inside the Simphony POS platform allowing a merchant to provide loyalty offerings to their customers.
The extensibility application allows the merchant to use simple token-based promotions or an identity-based setup allowing full use of the AIR wallet and Cloud Based Adjudication.
The integration supports discount coupons that can be applied against a single item on a Simphony check or against the full check total.
Feature Overview
The Oracle Simphony integration supports both full basket adjudication where AIR calculates the discounts to apply to the check as well as simple token-based integrations where the POS platform gets a promo ID from a verified code and calculates the the reward inside the POS.
These two different modes of operation mean the setup of offers is different between both of the forms of operation. The below page outlines these different setup requirements.
A short section outlining the capabilities of the integration
Integration Overview
In order for Simphony to communicate with AIR, an application extension has been written. This extension is hooked into the POS functions and acts as a middleware between the Oracle Simphony POS platform and the Eagle Eye AIR POS Connect APIs.
The application currently only support Windows based platforms and versions of Oracle Simphony 19.6 and below.
Our extensibility application is then deployed onto the Oracle Simphony Marketplace which can then be downloaded to specific POS deployments using the Oracle Enterprise Management Cloud (EMC).
The Simphony Extension has been written to work with either token-based Campaigns or Wallets with full basket adjudication. For the POS to know if a token or an identity value has been entered, there is a configuration defining the prefix in place for these. E.g. any value entered that starts with EE should be considered a token so the verify/redeem route is taken. Any value entered that starts with ID should be considered an identity so the Cloud Based Adjudication route is taken.
When the transaction is closed in the POS, the relevant actions are taken by the extensibility application to redeem vouchers if the token route is taken or to settle the transaction if the full basket adjudication route is taken. If the wallet open endpoint was not called, any token-based accounts are redeemed using the POS Connect Accounts endpoints. If any of these accounts have a walletId associated with them, POS Connect Settle is called and the redemptions are linked to this transaction. The "settle" transaction contains the basket contents as well as basket summary information.
If Wallet Open was called earlier in the flow, POS Connect Settle is called passing in the stored enriched basket from the POS.
Installation and Configuration
The installation of the extensibility application and configuration are all manged via the Oracle Simphony Enterprise Management Console (EMC). To do this the below steps need to be followed:
- Navigate to the Extensibility Applications section of the EMC
- Add a new entry and add the below "Zoneable" keys
| Key Name | Key Value |
|---|---|
| Application | File location to the relevant DLL file (provided as part of the release). |
| Newtonsoft | File location of the Newtonsoft DLL file (provided as part of the release) |
| Settings | This key holds all the settings for the application. Details are outlined below. |
| Translations | This key holds any translation settings required. Detail are outlined below. |
- Setup the application configuration details as below.
| Property Name | Required | Description |
|---|---|---|
| PosUrl | Y | The POS Url from AIR (E.g. https://pos.sandbox.uk.eagleeye.com |
| WalletIUrl | Y | The Wallet API Url from AIR (E.g. https://wallet.sandbox.uk.eagleeye.com) |
| ClientId | Y | The clientID of the credentials configured in Air |
| ClientSecret | Y | The secret of the credentials configured in Air |
| CredentialsEncrypted | Conditional | If required, credentials can be stored as encrypted in the config. |
| ParentIncomingIdentifier | N | The Parent Incoming Identifier set in Air. If not set then it pulls it from the PARENTIDSOURCE column on the REVENUE_CENTRE table (Data Extension) |
| IncomingIdentifierSource | N | Property to look at for Incoming Identifier value (RVCNumber or PropertyNumber). Defaults to PropertyNumber if not set. These are properties of the OpsContext instance. |
| TokenPrefix | Y (can be empty) | The prefix to the AIR token E.g. EE |
| TokenLengthIncludingPrefix | Y (can be empty) | The total length of the token codes that belong to AIR. |
| DiscountMapping | Y (can be empty) | Discount Mapping in the format {ResourceId}:{PosDiscountId},{ResourceId2}:{PosDiscountId2} set against discount not set by campaign (Loyalty - v2 POS). See below for mapping of AIR discounts to POS discounts. |
| IdentityPrefix | Y | The prefix for the identities to be used in AIR. E.g. ID. |
| DiscountPrefix | Y | Token prefixes for Loyalty. These rae comma-separated string values |
| OrderTypesToIgnore | Y | The Oracle Simphony order types where Loyalty should not applied |
| ShowUserInformation | N | If set to true, it will show detailed user information when the identity is scanned such as subscription information. Default is false and doesn't show this information. |
| SubscriptionClientType | Conditional | The client type to look at to identify the subscription account. Required if ShowUserInformation is set to true |
| EmployeeVerificationClientType | N | If set, it checks if the customer is an employee by checking for this specific client type in the customers accounts, if they do, the till operator is prompted to confirm if they are an employee. If confirmed, the extensibility app will continue with normal flow, if not confirmed, the employee account will be ignored from the remainder of the flow. If the customer is not an employee (i.e. doesn’t have this client type account), then normal flow will resume. If unset, the employee account verification step is ignored. |
| IdentitySecurityEnabled | N | Boolean flag determining if checks should be completed against the identity scanned. The checks can include validating an embedded timestamp in the scanned value and validation of a hash value. This functionality allows the client to prevent fraud by rotating the QR code in a client APP and prevent screenshotting the APP |
| IdentityPrefixIgnoreTimestamp | N | Any identity value with this prefix, will not have the security checks performed against them. A use case for this is physically generated barcodes. |
| IdentitySecurityEnforced | N | This boolean flags allows the retailer to set the POS to reject identities scanned that contain an expired timestamp. If ignored, a flag is added to the check so analysis can be performed on the value scanned before enabling enforcement. |
| IdentityTimestampWindowSeconds | N | This flag gives a "window" of time for a passed identity value is valid. E.g. give a customer a windows of 10 minutes after generating the Identity value to be scanned for it to remain valid. |
| IdentityHashKey | N | The value of a key used to generate a hashing value. This step makes it impossible for a customer to generate their own hashing value as the key is secret and not available for customers to scan. |
Discount Mapping
For a discount to be applied to a check, a linkage from the reward returned form AIR and the reward in the POS needs to be mapped. There are several layers of how this value is mapped as below:
- DiscountMapping as stored in the EMC extensiblity APP config. This maps an AIR campaignId to the POS promotion code
- Details returned in the wallet Open call
- The "promoId" as stored on Open and targeted offers
- A field added to the campaign custom forms entered into AIR.
NoteToken Codes scanned in the POS require the DiscountMapping key to be updated as the promoId on the campaign in AIR is not surfaced in the POS Connect response.
If the POS is unable to find the relevant promotion code in the POS or map to a value, an error message is flagged on the POS stating that the Offer can not be found.
Translations
If no translations are required in the POS, please enter the value as below:
version = 1.0
If there is a requirement to change the display strings displayed on the POS, the following can be entered.
Please Confirm Employee Identification. Press Yes if Successful or No if not=Add Employee Discount?
This setting will replace the values on the right hand side of the = sign with the value on the right. The translation structure is as below:
<original string>=<replace string>
Creating an Offer
The below sections outlines the relevant steps required to setup an offer in both the Oracle Simphony EMC platform and the AIR Dashboard. There are overlaps in the data required in the AIR setup so the EMC offer needs to be added first.
Supported Offer TypesAt the time of writing, only discount based offers are supported in the Simphony POS. Work is scheduled to add deeper integrations and functionality to the POS platform to support Points, Continuity, Quest and other mechanics.
Oracle Simphony EMC
A discount needs to be added to the EMC for the offers setup in AIR. When using Oracle Simphony and AIR integration in a fully integrated Wallet Open scenario and have AIR provide the POS platform with the amount of discount to apply, the offer needs to be setup as below:
- The "number" field on the setup needs to align to the Promotion ID field in the AIR campaign (see below for details).
- The "Activation Type" field needs to be setup as "0 - Manual".
With this setup, the amount of discount to apply is extracted from the adjudication taking place within AIR rather than the POS calculating the discount amounts.
See below for an example offer setup.
AIR Set Up
To create an offer in the AIR platform, the "Promotion ID" for the offer that needs to be added to the reward tab on the campaign in AIR. The value entered here needs to align to the Offer setup in the Oracle EMC. When the basket is adjudicated, this data point links the two together.
Field DisplayThe options available in the offer creation wizard in AIR depends on the configuration of the platform. The options on screen in the above may differ but the "Promotion ID" field is mandatory to be linked back to the offer in the POS.
Releases
When a new release of the Simphony plugin is created, a new DLL will be compiled and shared. This will contain the release notes for the most recent release documenting all changes made in this releases including any new configuration requirements, integration details or other necessary details.
Supported Versions
The current support for Oracle Simphony ranges from v18.x up to v19.6. Support for versions before v19.3 are in bugfix support only. New features and deeper integrations are added to versions later than v19.3.
Updated about 4 hours ago
