Revel Product Configuration for Pre-Order

This document describes how the Revel product catalogue must be configured in order that the app Pre-Order service can work as expected. Once of the settings are enabled correctly, all the POS stations in Revel must be refreshed before being able to start testing pre-orders. 

In order to check settings and make sure everything is set up correctly, it's strongly suggested to ask the Pepper Merchant to share with us some login details. That will save a lot of time in the Revel configuration between Pepper, the Merchant and Revel Support. 

#1. Access to the Revel API (Revel  Support)

E-mail and cc our main point of contact (eg. Josh Mukai) with the Client API access letter signed by the merchant. You can find that document in the Gdrive by searching for 'Client API Access letter'.

Save the Reve API keys in the Pepper Console under Content Management >  Mobile App > Revel > API Key

#2. Run Patch - Discount_code: true (Pepper)

Once Revel Support has sent us the Revel API keys, you will need to run a patch on your laptop using Terminal (on Mac). Your Mac will need to be configured beforehand by someone from the Dev Team (eg. John)  using a documentation here:

The next step is to find the Discount Codes and Establishment IDs used in Revel back-office for the loyalty program for EACH revel establishment (aka location in Pepper). 

Establishment ID: You can find it very easily next to the Establishment name when you select Establishment(s). On the below example, the establishment ID for Test HK is 4. 

Discount Code: For stamp cards, it's called 'item reward' under  Products >  Discounts >  Loyalty Discounts > item reward. If you go and view the discount details, you will see the discount code in the revel url. Save all the discounts along with the establishment IDs in the Pepper Console under Content Management > Mobile App > Revel > Location Settings. 

Once you have all the discount codes from Revel back-office, you will need to find the file 'patch-revel-discounts.js' saved in your local disk under Pepper / support / api. Open the file with TextEdit and do the following :

1. Change the Revel API keys using the keys you have saved in the Pepper Console under Content Management > Mobile App > Revel. 

2. Change the Revel URL using the following example replacing xxx by the Revel backend URL saved in the Pepper Console under Content Management > Mobile > Revel and replacing y by the discount code saved under Content Management > Mobile > Revel > Location Settings. If you have several locations, you can add other Revel URL with a different discount code separating the URLs with commas. 

Save the file on Text Edit, close Text Edit and open Terminal and do the following:

1. Type cd Pepper/support/ and Enter

2. Type node api/patch-revel-discounts.js and Enter

If you have login details to access the Merchant Revel back-office, there is a way to double check that the Patch worked. Copy and paste the Revel URL that you have used in the Patch (eg. in a Web browser and search for Discount_code. You should that that it's now set to TRUE and not FALSE, see example below.  

Successful PATCH

Unsuccessful PATCH

In the console, under each individual location you need to regenerate the menu. 

Content Management > Locations > Menus > Regenerate 

#3. Web Ordering turned on for each Revel Establishment (Revel Support)

The Establishment must be enabled for ‘online and app orders’ in order for the menu to include its categories and products.

Additionally, if an Establishment is enabled for online and app orders, the SSMC payment settings must be complete and must include the correct location id. See document here

‘Settings' > 'Online Ordering Settings' > 'Online and app orders' 

Note : You will need to ask Revel Support to enable the following settings :

Please make sure the following settings are completed :

(NB : this setting must be turned on but it can be an issue if the Revel customer also wants to use the Revel Web Ordering platform such as The Station SF. See ticket in Jira Pep-2721)

#4. Enable pre-orders in each location (Revel Support)

For each location where you will have pre-orders available, one (and only one) Revel POS station must have the setting "Is Print Online orders" enabled as described below

Note : You will need to ask Revel Support to enable this setting.

#5. VAT - TAX (Pepper or Merchant)

Firstly, make sure the below settings are NOT enabled under ' Settings' > 'Advanced POS settings' > 

1. 'Removing Tax Lowers Product Price On Tax Included Products'  > untick

2. 'Recalculate Price of Tax Included Products if Dining/Order option is not default' > untick

If you are located in the UK or any county where TAX / VAT is included in the price you will need to be sure that all you have enabled "support tax included product" in Revel backoffice.

' Settings' > 'Advanced POS settings' > 'support tax included product'  

‘Products’ > ‘Products’ >  {Category} > {Sub Category} > {Product} > ‘Details' > 'Tax Options' > 'Tax included' enabled.

#6. Setting up opening hours (Pepper or Merchant) 

Once done, please make sure that you do not have "Accept Online order when store is closed" in the Online Ordering Settings as described below. 


The below steps #7 is only possible if the Revel customer does not use the Revel feature called 'Product Attributes' / 'Matrix Inventory' as part of the Pre-Order Menu. 

For internal user, that important note is fully detailed in gdrive in the document called 'Revel customers using Product Attributes / Matrix Inventory'

If a Revel customer is using Product Attributes / Matrix Inventory they will need to create a new category just for the pre-order menu using only Category, Products and Modifiers. 

#7. Set up Revel to generate a pre-order with the Pepper Console

In order to generate a Pre-Order Menu for a Revel customer using the Pepper Console under Location > Menus > Regenerate, you will need to configure to configure a Custom Menu, Categories, Products and Modifiers as follows:

Custom Menu (Pepper or Merchant)

For each location, a custom menu must be set up called "online" containing the time slots the products are available for pre-orders.

‘Products’ > 'Products' > 'Custom Menus'> 'New Custom Menu Name' and  '+create'

  • Menu Name : Online
  • Mode : Mode
  • Mode/Stations : Online
  • Active : Yes
  • Time Slots : create the time slots for pre-order availability during the week
  • Included products : check the Categories and Products that are available for pre-orders


To include a Category in the Pre-Order Menu, please ensure that it is selected in the Online Custom Menu (as described above).

If the Category 'name' in Revel is not the same as that which you would like your customers to see, please use the 'Third Party ID' value.

‘Products’ > ‘Products' > {Category} > {Sub-Category} > Details > Third Party ID.


To include a Product in the pre-order menu, please ensure that it is selected in the Online Custom Menu (as described earlier in this document).

If the current name of the Product is not that which you want the Customer to see, you can override it by entering a value in ‘Third party id’.

‘Products’ > ‘Products’ >  {Category} > {Sub Category} > {Product} > ‘Details' > 'Third Party Preferences' > ’Third party id’.

Modifiers (& Modifier Classes)

Modifier Classes that contain Modifiers that have the 'Display on 3rd Party' setting enabled will be included automatically.  If a Modifier Class doesn't contain any Modifiers that are enabled then they will be ignored.

Modifier ‘Description’ Field

A Modifier’s description field may be used to adjust the way that Modifiers are displayed in the app.  This allows for modifiers that are displayed in the Revel PoS to be presented differently to those that are visible in the app.

There are two different scenarios in which this may be useful:

1) To 'rename' Modifiers and Modifier Classes

In cases where the mapping between Modifiers and Modifier Classes is the same in Revel as you wish to have them displayed in the Pre-Order Menu, you can use the Modifiers' 'description' values to change the display name for the Modifier and Modifier Class.

The Description field may have the following structure:

Class, Name

Where 'Class' can be used to rename the Modifier Class name and Name can be used to rename the Modifier name.  e.g. Milk, Skimmed

Please note that if this approach is followed, the 'Modifiers' section of each individual product will be used to determine the Default modifier selection as well as the section rules etc.

2) To adjust the grouping of Modifiers and Modifier Classes

In cases where the association between Modifiers and Modifier Classes is different in Revel to that which you wish displayed in the Pre-Order Menu, the Modifiers' 'description' values can be set.

The Description field may have the following structure:

Class, Name, Default, Select, Select

Class allows Modifiers to be grouped together even if they are in the same Modifier Class.  For example Whole, Semi and Soy may all belong to the COFFEE Modifier Class but can be grouped into a Milk section in the app if Class is specified as Milk.

Name allows the name that a Modifier has to be overwritten to be something more Customer friendly if necessary.  e.g. a modifier with the name SK can be presented as Skimmed Milk by setting Name appropriately.

Default determines whether the Modifier is pre-selected by default.  This is only needed if Modifiers are being grouped in a way other than their Modifier Class.

Select determines the ways in which Customers can select Modifiers that are grouped by a common Class.  The three possible values are:

  • NONE - it is possible to select none of the related Modifiers.  e.g. ‘Extras’ of Chocolate and Syrup.
  • ONE - It is possible to select only one of the related Modifiers.  e.g. Milk or Bean.
  • MANY - It is possible to select more than one of the related modifiers.  e.g. ‘Extras’ of Chocolate and Syrup.

Please note that if the Select values contradict each other within a Class, the Modifier who’s settings will ‘win’ is unpredictable so please make every effort to keep these in sync.

It is OK to specify two Select values if necessary.  e.g. NONE, ONE. for a Long Black where it is ok to have a single milk or no milk, but not several milks.  Note that MANY encompasses ONE so it is not necessary to specify MANY and ONE together.

If a value is omitted, please still include the comma so that we can parse correctly.  e.g. if a Modifier is already in a Modifier Class that is OK for the pre-order menu, then “,Guest,,ONE” would be the valid Description for a ‘Guest' bean modifier that is already in the ‘Bean’ Modifier Class.


  • Milk, Skimmed Milk, Yes, ONE” would be appropriate for a milky drink (such as a Flat White) where Skimmed Milk is the default milk option.
  • Milk, Skimmed Milk, No, NONE, ONE” would be appropriate for drink that can be served without milk and where Skimmed Milk is not the default option.
  • Bean, , Yes,ONE” would be ok if a Modifier has a name that is OK for the Customer to see but the Modifier Class does not group appropriately.
  • , Guest, Yes, ONE” would be appropriate for a guest bean where the Modifier is already in a Bean Modifier Class.

Still need help? Contact Us Contact Us