Tuesday, February 8, 2022

#900 OIC & Simphony - Food & Beverage for All!


Welcome to what will hopefully be the first post of many on integrating with Simphony. For those who don't know - 

The Simphony POS system from Oracle is built for complete restaurant management. Simphony powers the most successful food and beverage venues across the globe, from local cafés and iconic fine dining restaurants to global quick-service chains, stadiums, and theme parks. As an all-in-one cloud POS platform, it helps restaurateurs optimize their online and in-house operations in real time from any device.

I couldn't have put it any better myself!

OHIP gives us access to Opera Cloud, the Hotel Property Management System. We all hope guests will visit the hotel bars and restaurants, where Simphony rules. Now we have REST apis that allow us to interact with this POS system.

This initial post will cover the basics, retrieving menu data from Simphony and displaying it in a Visual Builder app.

Check out the Simphony APIs

The Simphony folks kindly gave me access to a Postman collection - 

The first thing to note is the hierarchical nature of Simphony - e.g. I have an hotel chain, with multiple hotels, each of which may have multiple food and beverage outlets e.g. Commiskey Hotels EMEA has hotels in 40 European countries - mainly Ireland. Let's look at one of them - Óstán Mac Cumascaigh, the pride of Baile Áthe Cliath. It has multiple bars and a fine restaurant, Jimmy's Cistine. 

Let's transfer these entities to Simphony speak - 

Commiskey Hotels EMEA - Organization
Óstán Mac Cumascaigh - Location
Jimmy's Cistine - Revenue Centre

Ok, that's the complexity dealt with - now to security - a with OHIP, we have a REST api to retrieve the Bearer Token. 


Now to the Organization apis - you know the hierarchy, here are some apis to retrieve the data -

Note: each location is identified by a unique locRef value.

Note: the posPlatform section and the reference to the Organization - orgShortName.

Ok, we have our properties, what about the POS outlets - our Revenue Centres?

This location has 13, including - 



Note the rvcRef values, these will be used later to retrieve the actual menus. 

Menus are specific to a revenue centre, many items can appear on multiple menus, but they my have different prices. Think of the room service price of a bottle of Spalter Export Dunkles, compared to the price of this premium beer in the Simple Bar.

Note the :menuId - this is a string containing the following - orgShortName:locRef:rvcRef.

We also need 3 headers for these values - 

The results include all the salient info this item - take our pizza as an example - 

Check out the familyGroupRef - an item can belong to a family of items. In this case, our pizza belongs to the Sandwiches family - the familyGroups section is also included in the menu response.

Back to the pizza - we also have the price information as well as condimentGroupRules -  

The latter refers to the following- also part of the menu response - 


Why is this data important? For example to highlight possible allergies - the 2nd entry in the list - 910000101 - refers to - 

The response from the menu api call will provide me with the data for my simple Visual Builder app. I will display the menu, allowing the user use to click on Details of each menu item. There they will see all details, as well as an image of the item. 

I plan to use this as the basis for a future post where I will combine Simphony with Opera. The use case is as follows - menus tailored to suit guests. I will create a guest profile in Opera and specify a shellfish allergy therein. This guest will then login to my native mobile app and see a menu that will highlight their particular allergies.

Now back to this simple example and OIC...

Creating the Simphony Integration in OIC

I create a REST connection to Simphony, based on the Postman collection variables.

I specify No Security Policy - this I will set up for OAuth later.

The Bearer token will be passed via the standard http Header - Authorization. Simphony tokens are valid for a couple of weeks, so for this basic POC, I just put the token value into an OIC Lookup - 

Now to the integration - this is a scheduled job that will update a couple of Visual Builder Business Objects I have created. The initial flow will update the MenuItem and Allergen business objects.

These VB BOs expose REST services which the integration will leverage - 

The integration is as follows - GetMenu is the invoke of the Simphony menu api.

I check out the result in VB - 

I then create a simple app in VB - here is the result - 

I click on the pizza and click Details.

I augment with possible allergens data - 

No comments: