Introduction

Self-Service Kiosk or r_keeper_SelfServiceTerminal_7 is a system enabling the customer to independently select dishes and pay for the order using a bank card. It can also be called a kiosk, a self-service terminal, and a self-service cash register.

System Requirements

To ensure that the r_keeper_SelfServiceTerminal_7 operates properly you need the following components:

Processor (CPU)

Minimum (no videos played)

Processor Type: Intel Atom Dual Core

CPU Speed: 1.6 GHz or higher

1.8 GHz or higher recommended

You should use a computer with a discrete video adapter if the terminal is to play commercials based on Adobe Flash.


Video Adapter (VGA)

The video adapter should support Direct X versions 9.0c and up.

The minimal video memory (inbuilt and allocated): 256Mb

Minimal resolution: 1024х768

Random Access Memory (RAM)

1 GB minimum

It is recommended using 2 GB and more

Disk SpaceA minimum of 20 GB free disk space
Local Area NetworkEthernet (10/100/1000 BaseT)
Interfaces

You need a free USB port to connect the Guardant security key.

The cash server requires a security key. If you are not planning to install a cash server on the kiosk's computer a USB key is optional.


Block Diagram of r_keeper_SelfServiceTerminal_7

The SB Pilot bank card authorization driver is given as an example

Distribution Package

This product is available at FTP: ftp://ftp.ucs.ru/rk7/INSTALL/RK7_Kiosk/

Licensing

r_keeper_SelfServiceTerminal_7 demands a license starting  with version 1.0.1.6 . There are two types of licenses for this product:

The license will be linked to a virtual key generated by r_keeper 7 cash server which is to be licensed for at least zero stations.

You can generate a license for zero stations only if you have a master license.


The virtual key is requested from the license server and is stored in an encrypted form in the HKLV\SOFTWARE\UCS\SelfService (x86) or in the HKLM\SOFTWAREWow6432Node\UCS\SelfService (x64) register section.

License Verification Mechanism:

The LicReq.exe app is used to generate a license request code. The app is launched from the SelfOrderService.exe working directory.

LicReq.exe should be launched on behalf of the administrator or a user with a right to make records in the register.

To generate a request code, take the following steps:

Before generating a license, obtain a master license for this kiosk type (with or without the payment option) and enter the respective type of kiosk operation in SelfOrderService.ini

Manager Station Settings

It is recommended to use a separate cash server that will be launched on the same computer as the kiosk.

XML Interface

To ensure the interaction between the Kiosk and r_keeper 7 cash server, you need to add and configure the XML interface:

  1. Go to Service > Stations and Devices select the cash server or create a new one
  2. Add the XML Interface for Windows in the cash server properties in the Drivers tab
  3. Specify the Port parameter in the attributes of the added XML interface in the Options section — the value of this parameter will be used for Kiosk server setup
  4. Then, link the added interface to the logical one. To do so, go to Service > Interfaces and create a copy of the existing XML interface. The interface should use ITcpXML.dll. Open the Library Files section, select the cash server, and add the previously created XML interface
  5. Reboot the cash server

Starting version 0.7.0, an r_keeper_SelfServiceTerminal_7 (RKeeperKiosk.exe) client interacts with the cash server directly using the HTTP protocol. Take the following steps to set up the protocol:

  1. In Service > Manager Station > Object Privileges, create a new rule for the HTTP Access object
  2. In Service > Stations and Devices, select the cash server used for linking with the Kiosk
  3. Set the previously created HTTP Access privilege for all parameters in the cash server properties in the HTTP Rights section
  4. Set up the HTTP connection parameters in the cash server properties in the HTTP Server section, where:
  5. In Personnel > Employees, select or create an employee, for example, Kiosk, for the XML-Editing role to use in the kiosk connection settings and specify the employee's password
  6. In the role properties of this employee, in the Manager Restrictions section, open the Object Privileges parameter and choose the previously created HTTP Access privilege
  7. Specify the <user>...</user> и <password>...</password> parameters in the \App\settings.xml kiosk client configuration file in the <xmlinterface>...<xmlinterface> section:

    <xmlinterface>
    <host>127.0.0.1</host>
    <port>5252</port>
    <user>HTTPUSER</user>
    <password>1</password>


Equipment Support

The kiosk's hardware is supported only by r_keeper 7 cash register and/or third-party bank card authorization software — none of the kiosk's modules needs to directly interact with the peripheral equipment.

You need to add a new printing station before setting up the equipment:

  1. In the Service > Stations and Devices reference, select a restaurant and a previously created cash server
  2. Add a new station of the Printing Station type
  3. In the Main section of the station properties, pay attention to the Identifier parameter value. This value will be used to set up the Kiosk server.

To set up the equipment, take the following steps:

  1. In the Service > Stations and Devices reference, select a previously created station
  2. On the Drivers tab, add the fiscal data recorder connection interface. As a rule, it is a COM port
  3. Add and set up the fiscal data recorder's driver, for example, SPARK
  4. Add and set up the bank card authorization driver.

Order without Payment Mode

Since SelfOrderService version 1.0.1.12 and RKeeperKiosk version 0.0.3.14, there is a new operation mode — order without payment (Type = 3).

This mode requires another license, see the Licensing section.

The operation principle is similar to the end of the queue technology (ordering from the queue). In the order without payment mode, after saving the order the kiosk forms files in a special XML format to be further processed by the r_keeper 7 cash server.

This mode allows running the kiosk on any computer without using any specialized equipment, such as a fiscal register, PIN pad, card reader, etc.

If the order without payment mode is used, add the Mobile Fast Food Interface to the cash server to enable order processing:

  1. Select the server in the Service > Stations and Devices reference
  2. Add the Mobile Food Interface in the Drivers tab in the cash server properties
  3. In the Options section of the interface properties, specify the DirName parameter which is the path to the directory storing saved kiosk orders
  4. Set up the MCR algorithm according to the order number mask for the file to be found at the cash register
  5. Add a new printer purpose, for example, Self-Service Kiosk, in Options > Printing > Printer Purpose
  6. Pay attention to the Identifier parameter for the new printer purpose as you will need it to configure the PrinterPurposeIdent parameter in the kiosk server's configuration file
  7. On the Printers tab of the cash station used for the kiosk, add a new printer with the parameters matching those set in the kiosk
  8. Specify the newly added printer for the previously created new printer purpose in the Printer Purpose section of the restaurant properties
  9. Enter and configure the TypeOrderQueueAddressPrinterPurposeIdent, and OrderNumAsCode parameters in the SelfOrderService.ini configuration file.

    The value of the DirName parameter should be coordinated with the OrderQueueAddress parameter value in SelfOrderService.ini, the kiosk server's configuration file.


  10. If necessary, fill in the LogName parameter of the interface properties, for example, for debugging or information collection purposes.

Operation Mode 4 — Order without Payment with Entrance Card Technology

This mode operates based on the license without order payment function.
The working principle is the same as for Order without Payment but with the use of Entrance Card technology.
When entering, the guest gets an identification card which can be used to make several orders on different self-service kiosk terminals, for example, at the restaurant, the play area, or the cinema. When leaving, the visitor goes to the cash desk and pays for all the orders with a single payment.
You need to edit SelfOrderService.ini to set up this operation mode.

[XMLIntf]
TwoStepsAuth = 0 — do not use two step authorization

[Settings]
Type = 4 — kiosk operation mode Oder without Payment with Entrance Card technology

Operation Mode 5 — Pay with a Card or at a Cash Desk

This mode operates based on the license supporting the order payment function.

The settings for this operation mode match those for the Pay and Print Using r_keeper Station and Order without Payment.

Settings in SelfOrderService.ini

Type = 5 — Pay with a Card or at Cash Desk operation mode.

When the order is saved at the kiosk and is later paid for at the cash desk it is recommended to use two cash servers — a kiosk at one cash server and a cash register on the other cash server, otherwise, the order could get doubled at the VDU.
Settings:

OrderQueueAddress=\\PC-QA-10\mobilef— address for sending the orders in the Order without payment mode.

[VDU] sectionUseVDUSpecialUnitNum=1

This parameter is needed to ensure that the kiosk order does not get doubled in VDU after payment at the cash desk.

[Settings] Section
Type3NumLength=4

The length of the order number, printed on the slip. The order number on the slip is used to pay for the order at the cash desk.

<vdu>
UseVDUSpecialUnitNum>true</UseVDUSpecialUnitNum>
</vdu>
To ensure that the order does not get doubled in VDU after the payment at the cash desk.


<cashPay>
<orderNumLength>4</orderNumLength>
</cashPay>
The length of the order number printed in the slip. The order number on the slip is used to pay for the order at the cash desk.

The order number should have four digits:

Settings in SelfOrderService.ini:

[Settings]
Type3NumLength=3
OrderPrefix=1
Settings in Settings.xml:

<server>
<cashPay>
<orderNumLength>3</orderNumLength>
<orderPrefix>1</orderPrefix>
</cashPay>
</server>

The orderPrefix is the new setting here: a non-negative integer within the range between 0 and 9. In the settings example above the value equals 1.

Different prefixes should be specified for kiosks working with one cash server. Then numbers from different kiosks will not overlap when paying at the cash desk.

If over ten kiosks operate with one server, the overlapping issue will appear again.

Preparing the Menu

Another obligatory condition for launching r_keeper_SelfServiceTerminal_7 is preparing the menu to be displayed at the kiosk. The r_keeper_SelfServiceTerminal_7 will not run until you configure the menu tree.

Go to Menu > Menu Tree and create catalogs (selector pages) and sub-catalogs to be displayed on the kiosk screen.

The menu tree should have three levels.

These selectors are then filled with sub-catalogs — second-level selectors. For example, the JuiceMineral Water, and Alcohol, etc. selectors are added to the Beverages selector, while the second-level selectors are filled with menu dishes. Only dishes can be added to the second-level selectors. You cannot add combo dishes and sub-catalogs there. 

Once the tree is created, all catalogs — first level selectors — should be moved to the Initial Choice catalog which is the tree root.

The obligatory condition is that the first and second level selectors should only be selector pages and not menu items.

To assign pictures to the dishes in the menu tree you need to show the path to the dish picture catalog in the r_keeper_7 system parameters (Directory Settings — Parameters — Route to Picture Catalog).

The pictures for the dishes are set up in the Self-Service and Online Orders items in the dish attributes. If there is no such item, switch on the Settings — Parameters — Self-Service and Online Orders parameter.



Далее эти селекторы наполняются подкаталогами (селекторами второго уровня), например, в селектор "Напитки" добавляются селекторы "Соки", "Воды", "Алкоголь" и т.д., а селекторы второго уровня, в свою очередь, заполняются блюдами из меню. В селекторы второго уровня можно добавить только блюда. Комплексные блюда и подкаталоги добавлять нельзя. П

После создания дерева, все каталоги(селекторы первого уровня) должны быть перемещены в каталог "Начальный выбор" - корень дерева.

Обязательное условие - селекторы 1го и 2го уровня должны быть только страницами селектора, а не элементами меню. 

Setting up the Self-Service Kiosk

Server

The self-service kiosk communicates with the cash server through the kiosk server.

Note: The kiosk server supports only one kiosk client.

SelfOrderService.exe is the main file executed by the kiosk server, and its configuration file is SelfOrderService.ini

Note: The SelfOrderService.exe file should be launched only on the administrator's behalf!

Before launching the kiosk server, edit its configuration file. The parameter values specified below should match ther_keeper_7 data:

StationIdent is the identifier of the POS station which will generate orders.

TableIdent is the identifier of the table for which the orders will be formed.

WaiterIdent is the identifier of the employee generating the orders.

MaketIdent is the identifier of the receipt print layout.

DelReceipMaketIdent is the identifier for nulling the receipt.

DefaultSelectorIdent is the identifier of the kiosk menu selector in the menu tree.

Ordertype is a list of order type identifiers available for the kiosk.

VoidIdent is the identifier of the reason for deleting a dish from the receipt.

Application

A kiosk client is a user interaction interface featuring dish selection, order payment, and manager's functions. The kiosk client's executive files are in the \Арр subcatalog.

RKeeperKiosk.exe is the kiosk client's main executed file (it is launched automatically at the time of launching the SelfOrderService.exe server). The kiosk parameters are stored in two configuration files: configuration.xml и settings.xml

The configuration.xml file contains the main parameters such as functionality, design, etc.

The settings.xml file contains server and debugging parameters.

The versions.txt file contains infromation about the assembly's current version:server_version — client_version—"*theme"_current_file version

Check the following parameters in the settings.xml configuration file's XML interface section (they are added automatically from SelfOrderService.ini after the kiosk's first launch):

Host — cash server's address;

Port — cash server's HTTP Port (is entered in the HTTP Server block in the cash server's attributes);

User — the user for whom the kiosk's communication with the cash server was created using the HTTP protocol (http_user);

Password — user password;

StationIdent — POS station's identifier;

TableIdent — table's identifier;

WaiterIdent — waiter's identifier;

MaketIdent — receipt layout identifier;

DelReceiptMaketIdent — receipt deletion reason identifier.

Manager's Functions

A manager's functions section has been added to the kiosk interface starting r_keeper_SelfServiceTerminal_7 version 1.0.1.13:

A two-tier authentication is used to enter the manager's section; in addition to the employee's code and password a temporary password which is generated automatically and sent to the specified e-mail address should be entered.

To set up this function you need to go to the LicReq.exe app (launching on behalf of the administration) authenticating as a dealer.

Go to the Email Configuration tab and fill in the SMTP server connection parameters, state the receiver and sender's addresses, and be sure to set the Use EHLO!! parameter.

You can use the Test settings operation to verify the operability — a testing letter will be sent to a specified e-mail address saying the following:

Important

Every time the kiosk is launched the hash of the current shift is being checked (ShiftHash в SelfOrderService.ini) — if there is no hash or it does not match the current date, the hash gets re-generated, and a new temporary password is automatically sent to the specified e-mail address.

Note

A button for sending the password the second time around is added to the authentication window to enter the manager's station when installing the <resendShiftPassword>true</resendShiftPassword> parameter in the kiosk's configuration file \App\configuration.xml.

To enter the manager's section an employee should be authorized to Close the General Shift and Close Cash Register Shift
To enter manager's section, do the following:

Menu Item Pictures

The kiosk supports graphic file viewing for menu items; the files should be located in the \App\Assets\Dishes subcatalog.

Important

Important: The self-service kiosk supports the JPEG, PNG, and JPG formats. The BMP format is not supported!

Localization

The current localized version of the system interface is available for automatic downloading from the localize.ucs.ru server starting kiosk version SelfOrderService 1.0.1.71.

See the localization settings parameters in the SelfOrderService.ini configuration file's [LNG] section.

Launching the Self-Service Kiosk

Important

The Windows user's account which is used to launch the self-service kiosk should be authorized to view/make entries/delete branch of theHKLM\SOFTWARE\Wow6432Node\UCS\SelfService (x64) or HKLM\SOFWARE\UCS\SelfService (x86) registers.

To launch the kiosk, take the following steps:

To ensure an automatic software launch:

To exit the kiosk, close the SelfOrderService.exe kiosk server (a system tray icon) which will automatically closeRKeeperKiosk.exe.

Updating the Self-Service Kiosk

Event-Related Blocking of the Self-Service Kiosk

Starting version RKeeperKiosk 0.8.4. event statuses for which you can set or switch off the kiosk blocking have been added to theconfiguration.xml configuration file:

<deviceState>

<!-- Shift duration has exceeded 24 hours -->

<shift24Out lock="true"/>

<!-- Paper low -->

<paperLow lock="true"/>

<!-- Out of paper -->

<paperOut lock="true"/>

<!-- Printer error -->

<paperOther lock="true"/>

<!-- Fiscal memory device almost full -->

<EKLZNearEnd lock="true"/>

<!-- Fiscal shift has exceeded 24 hours -->

<fisc24Out lock="true"/>

<!-- Discal data recorder unavailable -->

<fiscAvailableLock lock="true"/>

<!-- Unsent receipts intact -->

<OFDUnsendedDocsLock lock="true"/>

</deviceState>

Hot keys

Launching the Kiosk in a Demo Mode

You can launch the r_keeper_SelfServiceTerminal_7 in a demo mode (no license required).

There is no need to launch the cash server in this mode; the kiosk's client part (RKeeperKiosk.exe) does not run on the kiosk server (SelfOrderService.exe) but operates with preset text data (a set of XML files).

Important: A test data set is not a software distribution component. If the test data is available, it should be copied to the \App\TestDataclient's catalog; r_keeper_SelfServiceTerminal_7 will not lauch in a demo mode without this. The menu item pictures for the test data set are copied into the \App\assets\dishes standard catalog.

To switch on the demo mode set the <demo>...</demo> parameter for the true value in the settings.xml configuration file in theRKeeperKiosk.exe app.

<app><!-- Demo mode --><!-- The demo mode has an option of recording the mouse status (up, down, and move). Calling the record panel (shift + "~").

You can also save the status in a file and play from the file. -->

<demo>true</demo>

</app><!-- Managing the Screen Resolution

A description of configuration files

This section will be filled as required as all the main parameters are described in the ini and XML files.

settings.xml

OrderNumLength — the length of the number order printed on the slip. The slip order number is used for paying for the respective order at the cash desk.

SelfOrderService.ini

Type30OrderNum — this parameter shows the number of the next order; there is no need to change this value manually as it is done automatically.

User Guide

A User Guide for r_keeper_SelfServiceTerminal_7 is available at UCS' FTP server.

 Setting Up an Automatic Draft Beer Inventory  Setting Up Cash Desk Fingerprint Authentication