NP Retail Support


Table of Contents
83 NP Self Service
83.1 POS Setup
83.2 POS Action
83.3 POS View
83.4 Special Buttons for Self-service POS:
83.5 Major Tom for Self-service
83.6 Specific POS Theme
83.7 EOD Concept for a Self-service POS
83.8 Configuration Checklist
83.9 Hardware
83.10 Appendix

NP Self Service

POS Setup

There are specific POS Actions for the Self-service mode. On the POS unit that is dedicated for Self-service, the POS setup is configured from the POS Named Action Profile.

Apart setting the Profile, you need to specify if the POS Unit is going to be used for a normal cash register or as an unattended Self-service register.
In that case, you will need to specify POS Type as Unattended.

POS Action

You will note that the POS Actions for self-service are specific and has a pre-fix "SS" to differentiate them from the normal POS Actions.




This built- in action displays the self-service admin menu.


This built in function deletes sales or payment line from the POS


This built in function handles idle timeout in self service POS


This is a built-in action for self-service, inserting an item line into the current transaction


This built in function sets the item addon values


This built in function locks the POS


This built in function for Unattended payment


This built in function changes to payment view


This is a build in function to change quantity.


This is a build in function to change quantity.


This built in function changes to sale view


This built in actions starts the POS in Self-service mode


This action prompts for a employee (customer) number prior to starting the POS.


As the POS is locked on the login screen, with predefined buttons and most importantly as it is unattended a Self-service user should not be able to do any configuration or administration work like changing the URL, or Salesperson code, reprint a ticket and so on.

For this function, there is a new hidden feature in Major Tom whereby you can call an administration menu to perform various actions. This action is protected by a password that you will need to key in or scan a card with a predefined password.

By entering the password, you will get access to an Admin View. In the Admin view, you will have a button to access some user defined function based on the business requirements. The functions are defined in a POS Menus.

The "POS Admin Menu" feature is implemented in Major Tom so you can switch to POS and run a preconfigured pos action. In the backend, it is configured in "POS Named Action Profile" of the Unattended POS Unit.
In the POS setup Card, we can set the link to a POS Menu which is user definable.
For example, you can have the following:


This function is used to delete a line in both Sale and Payment view of the POS. Hence, we can set a button in a POS Menus to delete a line.

We also use the SS-DELETE-LINE action to trigger the remove of a line in the Cart View . This is set in the Json for the Cart as defined in a View.



This function is just like Item POS Action, but it is a built-in action for self-service. It will insert an item line into the current transaction.


The SS-ITEM-ADDON is like the Item AddOns POS action that allows you to get a popup that will present to you a list of items in a menu format (for example, Burger Menu).
Then there is also the function whereby you can associate a list of items to a main item whereby when you sell the main item, the menu is automatically show on the screen for you to select from. This is used for extras that can be order when buying the main item.


This built in function locks the POS. It is the login page. In the Self-service logic, if we want to exit the sales or payment view and back to the login view, we can use the following in the POS Menus:


This built in function for Unattended payment. In practice, it will work with Credit Cards (EFT). You will need to set the EFT interface for the payment type Terminal T for it.

We set the payment button to terminal T as payment method in the POS menu.


This built in function changes to payment view.


This is a build in function to change quantity. It is used in the Item POS Action, Item AddOn and the Cart View.
In the Cart View, you will find the configuration in the Json for Cart View

"cart": {
"dataSource": "BUILTIN_SALELINE",
"setup": {
"actions": {
"checkout": "SS-PAY-SCREEN",
"delete": "SS-DELETE-LINE",
"increase": "SS-QTY+"
"fields": {
"caption": 10,
"quantity": 12

The POS Actions SS-QTY+ & SS-QTY- , can also be used in a button format.


This built in function changes to sale view to sales screen. On the button, you can define any caption, but if you want to go back to the sales screen, then the POS action to be used will be SS-SALE-SCREEN.


This built in actions starts the POS in Self-service mode. You set it up on the POS menus as well as in the POS Setup for unattended POS unit.

The same POS Action is set in the POS Named Action Profile for a POS Unit that is used for Self Service and used as Login Action Code.


This action prompts for a customer number prior to starting the POS. On pressing the button for login, we have a prompt to insert a customer no. When we move to the Sales Line, the customer is set to that sale.

The same POS Action is set in the POS Named Action Profile for a POS Unit that is used for Self Service and used as Login Action Code.

Note: It is a similar function to SS-START-POS, but with the difference that it has a prompt to scan or insert a customer number prior to starting the sale.

POS View

The POS View is customised according to what you require to see on the screen. But for the Self-service environment, there are additional features that we need to consider:


What happen if a customer starts a transaction & leave it as is, without proceeding further? You will need a logic of Timeout. The timeout is set in the Json of the view itself.
"timeout": {
after: 15,
graceTime: 10,
caption: "Do you wish to continue",
buttonCaption: "Yes, but I need more time",

All the elements in the Timeout logic is configurable according to your needs. Once you are time out, the system will return you to the login view.
In the above example, we have hardcoded the message that we want to display. But if we wish to display the message in different languages, then we can use the l$ which is label defined in BC.

Time Out can be alternatively, configured the following way to follow the normal translation in BC:
  "flow": "vertical",
  "tag": "sale",
  "timeout": {
    "after": 30,
    "graceTime": 20,
    "title": "l$.Sale_TimeoutTitle",
    "caption": "l$.Sale_TimeoutCaption",
    "buttonCaption": "l$.Sale_TimeoutButtonCaption",
    "action": "SS-IDLE-TIMEOUT"

Then the l$ label will therefore follow the normal translation as per (codeunit 6150702 "NPR POS UI Management")

        Sale_TimeoutTitle: Label 'We seem to have lost you...';
        Sale_TimeoutCaption: Label 'Do you wish to continue?';
        Sale_TimeoutButtonCaption: Label 'Yes please, I need some more time.';

In this logic, we can set the message in more than one language in the codeunit 6150702 "NPR POS UI Management". A developer will need to define the message in different languages to be used on the Self-service.

Cart View

What kind of view do you wish to have? Is it a classic sales grid view with the POS sales lines or a Cart View?

Sales Grid View Json


type: "grid",
id: "salesLines",
fontSize: "normal",
base: "20%",
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="c5dc87a0-749d-4703-a5c3-1a52fa96e400"><ac:plain-text-body><![CDATA[ columns : [{fieldId :10 , width :10},12,15,19, {fieldId: 31 , width :10}],
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="cdafcac0-faec-41c8-a6bc-10ad6866b344"><ac:plain-text-body><![CDATA[ totals: [
caption: "l$.Sale_SubTotal",
total: "TotalAmount"
control: "dataGrid"



"cart": {
"dataSource": "BUILTIN_SALELINE",
"setup": {
"actions": {
"checkout": "SS-PAY-SCREEN",
"delete": "SS-DELETE-LINE",
"increase": "SS-QTY+"
"fields": {
"caption": 10,
"quantity": 12
title: "Your Shopping Cart"

Login View

What kind of login view do you wish to have? It needs to be a simple to operate like a button to press.

If you are using image, it is recommended that you insert the image in the Json, instead of doing a POS menus, with a Background Image URL for it as above.
Also if in the POS Menu Button, you insert a URL and you do not have a description in the description field, you need to set Enabled to No to avoid issue if you touch the image on the touch screen.

Samples Views:

Special Buttons for Self-service POS:

Option Plus / Minus on the button.

The additional logic in the POS menus is that on POS Action Type ITEM, we can show a Plus or Minus sign on the button. This Plus or Minus sign will be used as the SS-QTY- & SS-QTY+. You will be able to increase or decrease quantity on the sales line. It is set on POS Menus line.

Display in button.

If you look at the syntax on the Caption, you can interpret it as follows:
<big>, <Small> , <Medium>, <h1>, <h2> : Size of the letter
Day Ticket / From Age 3/100 DKK : The actual caption (hard-coded)
Sum (12, 6,"31001") : The sum of all quantities for item number "31001" in sales line. (Field 12 = Qty & 6=Number – from Table 6014406 - Sale Line POS)

Using SS-ITEM-ADDON in the Self-service environment

  1. To have a menu with a list of items so that we can select from it.

The logic of using Item Addon is mainly, when you select an item, you can increase the quantity without re-selecting it. If you were to re-select an item, it will insert a line, whereas with a menu, you can select and increase the quantity on that sales lien itself.

  1. As an associated item to the main item

Then there is also the function whereby you can associate a list of items to a main item whereby when you sell the main item, the menu is automatically show on the screen for you to select from. This is used for extras that can be order when buying the main item.
A simple example is in the fast food business where you can buy a set menu but, you get to choose which sauce you want to accompany the menu. On selecting the menu, you will have a pop-up to choose from.

Each time you buy the main product, you will be able to choose one or all the Item Addon. Note that the configuration of the Item Addon is to have a fix quantity of one of the sub-products. You cannot choose more than one of each product.

Major Tom for Self-service

Configuration of Kiosk mode

The version of Major Tom has a kiosk mode that is configured for unattended POS.

When you go to the Configuration View of Major Tom, you can change the Display Mode to Kiosk mode.
On selecting the Kiosk mode for Self-service, you will see a new configuration banner for the Kiosk mode. From it, you will come to a Self-service Configuration View.
The Kiosk mode page for DragonGlass is page 6150750. It is important to insert this page number.

When configuring self-service, you can now choose to allow or disallow keypad unlock. If you disallow it, then the only option to get to the admin mode is through keyboard (or RFID). If you allow it, then you must perform the keypad gesture. The gesture is a two-finger swipe from the bottom of the screen all the way to the bottom of the screen. For gesture to be correctly recognized, the following conditions must be satisfied:

  1. The gesture is a swipe-up gesture
  2. The gesture must start in the bottom 10% of the screen (bottom 10% of screen height)
  3. The gesture must end in the top 10% of the screen (top 10% of screen height)
  4. There must be two fingers involved
  5. There must be less than 200ms between two fingers touching the screen
  6. There must be less than 200ms between two fingers leaving the screen

Just touch the screen on the bottom edge with two fingers, then swipe all the way up to the top. Most screens have a non-touch sensitive bezel, so the best way is to start the gesture on the bezel area, then swipe up across the screen and end the gesture again on the bezel area. This way the touch is for sure going to be detected within the bottom 10% and will for sure end within the top 10% of the screen height.
Do not forget to re-start the Major Tom Application for the configuration to take effect.

Admin View

To access the Admin View, you can use either a keyboard, or RFID or keypad gesture as explained above. It will depend on your configuration.

The admin view will give you access to various administrative action that you will need to take on the Self-service machine regarding the application.
You can inspect what errors you had, open a log for the actions on the POS, reload the page or do a full reload, close the application or restart the application and reboot the windows itself.
For example, Inspect POS is used to get a quick glimpse of what might be wrong with POS. Typically, people will get to the Admin Screen after there was a repeated problem with the POS and it got stuck in the "Call for assistance" screen. The idea is that an admin then unlocks into the Admin Screen and then uses Inspect POS to quickly see the screen and what's there.
Typically, it would be a dialog box to be closed, or some error, or whatever else caused the self-service terminal to get stuck in an error. After a few seconds, this feature returns back to the Admin Screen.
The function Inspect POS is similar to the Inspect POS with the only difference that:

  1. The NAV/BC screen doesn't get automatically reverted to Admin Screen
  2. There is a permanent toast message telling the user that they are in the Troubleshoot mode.
  3. Clicking Done in that toast message closes the NAV/BC screen and goes back to the Admin Screen

There is also a button to send you to the configuration page for the kiosk mode, where you can do modifications.
The button "Open POS admin Menu" will open a POS menus. This is configured in the POS setup.

The POS menu is user defined:

Specific POS Theme

To create a new POS theme, you will need the following:

  • Create a new Cascading Style Sheets (CSS file) for the style (e.g. XY.css)
  • In Web Client Dependencies page, create a new Stylesheet dependency, name it XY-THEME. Import the stylesheet from the attachment.

  • In the POS Themes page, create a new record, name it XY. For that new theme, click Theme Dependencies and create a new record:
    • Target Type: View
    • Target Code: (leave blank)
    • Target View Type: (leave unchanged)
    • Dependency Type: Stylesheet
    • Dependency Code: XY-THEME

  • Go to the POS View Profile in the POS Unit and change theme accordingly. For each POS View Profile that requires this theme, set POS Theme Code to XY.

The POS Theme on the Self Service POS might differ from that of the normal POS. Hence each profile will need to be attributed its own POS Theme at the POS Unit level.

When testing, we might experience specific issues like the dialogue is in white on a white background. It seems that STD payment dialog with Adyen EFT is showing white font on white background. This issue was addressed in the FIXCSS below.

EOD Concept for a Self-service POS

By default, a Self-service POS is unattended, hence there is no function to do a balancing and no salesperson will do a balancing on that POS.

The logic we used, is that the Self-service POS is attached to a Main POS, in a Master & Slave relationship.

All the sales & payment received are done on each individual Self-service POS. And at the end of the day, when we initiate the process to balance the Main POS Unit, the payment amounts from the Self-service POS is transferred in total to the Main POS.

Hence, when we do balance of the Main POS, we consider the receipt from the Self-service. At the same time, the statistics for sale of the Self-service POS will merged with that of the Main POS.

For this to happen, we need to do a specific setup in the POS End of Day Profile of our POS Unit Card.

The following setup is required on the POS End of Day Profile:

  • END OF DAY TYPE – Master & Slave, unlike Individual Type, is a process that consolidate more than one POS for the purpose of doing Balancing.
  • MASTER POS UNIT NO – We need to identify which POS Unit is going to be used as Master.

An imperative condition:

  1. BOTH the Main POS & the Self-Service POS must have this specific POS End of Day Profile.
  2. The POS Type in the POS Unit Card must be set to Unattended, else the automatic transfer will not be done.

POS End of Day Profile Setup:

On Self-service POS:

On Main POS:


  1. We have 2 Self-service POS attached to a main POS:

2. Transactions on the Self-service POS:

The total amount to 700.00.

On balancing, the amount is transferred to the Main POS.

  1. To verify what has happened, we follow the following logic:
  • From POS Unit List, set cursor on POS Unit 1 as selection
  • Then under Process, select WorkShift

  • Set a filter on the column date to your date when the balancing was done.

  • And under Navigate or Related, open the Workshift Card

  • Under Action, look for Balance Payment Bin and Open the Balancing card

  • From the Balance Payment Bin Card you should find the sums for each payment method in the Transferred amounts column

Configuration Checklist

  1. Create POS Store (It is Optional, depending on locations, posting setup etc)
  2. Create POS Unit, with the following specificities
    1. POS Type – Unattended
    2. POS View Profile
      1. The After End of Sale View must be set to Login View.
      2. POS Theme is optional
    3. POS End of Day profile – Needs Master & Slave setup. Master POS Unit to be identified

(Both Master & Slave should have the same POS EOD profile).

    1. POS Named Actions Profile – POS Setup with SS-POS Actions
  1. POS Payment Bin – uses the same BIN as the Main
  2. Define POS View for Screen layout.
    1. If we are using a picture ac banner, insert it in the Json
    2. Time-out configuration in done in the Json
    3. Special SS Feature like:
      1. CART View can be configured
      2. Option Plus / Minus on the button
      3. Item Add-Ons Buttons / Options
  3. Define POS Menus to be used within the POS Views. The POS Menus must contain only "SS" POS Actions
  4. POS Posting Setup for Terminal
  5. Specific POS Theme (Optional, but nice to have feature)
  6. EFT interface for the payment type Terminal T (Adyen)

(We do not have a Cash facilities machine that we interface with)

  1. If the Payment Dialogue from Ayden is white on a white background, then there is a fix for it. A CSS (FIXCSS.css) file needs to be installed for the payment dialogue from Terminal T (Adyen). If this fix is not appropriate, then a new CSS will need to be done.
  2. Print Template for ticket with the specific printer format
  3. Configure Major Tom for Self-service
    1. Kiosk
    2. Admin Menus
  4. Configure Hardware
    1. Flexi Outdoor Kiosk
    2. Adyen Payment terminal
    3. Boca Printer


Currently, we have our first client who has chosen our Self-Service solution for their outdoor kiosks. They have selected the following hardware which we support:

Flexi Outdoor Kiosk

FLEXI Outdoor Wall (Newline) is a wall-mounted interactive kiosk based on the FLEXI Outdoor unit. This unit is customizable with many of the same components as the FLEXI Outdoor and the Access Gate editions despite the smaller size. A sleek model that fits well to many different projects with the need for interactivity.
The Newline product line is made in the latest developed aluminium profile with a minimalistic design and feel. Characteristics for the Newline models are a flat uniform design combined with the monitor being one with the surface.

More information can be found on

Adyen Payment Terminal

Verifone UX Series
For always-on or after-hours self-service, the UX Series is ready to accept payments at any time.
Its speed is the focus whether entering a pin or tapping a card, while using preferred payment methods.
It is built with the outdoors and anti-tamper measures in mind to protect information from the elements.

More information can be found on

Boca Printer

The Lemur-X is one of our smallest thermal desktop ticket and label printer.
TLS - Boca Systems offers the Lemur-X as a standard with an adjustable 2" - 3.25" 200 dpi print width, cutter unit and serial & USB interfaces. The LEDs provide feedback in error conditions. The printer allows you to print on ticket stock with a maximum thickness up to .010".

More information can be found on


Different Layouts that we have live companies:


Login Screen

Sales Screen


Login Screen

Sales Screen