A configuration guide for the Dojo pay at table (PAT) integration, using the Dojo EPoS Data
WebSocket Specification.
TouchPoint Setup
Application Setup
Pay at Table Operation
Troubleshooting and Support Guide
Dojo Pay at Table
(PAT) configuration
guide
Dojo's Pay at Table (PAT) feature allows waiters to process payments directly at a customer's table
using a Dojo card machine, integrated with the restaurant's TouchPoint system.
This document assumes the reader has completed ICRTouch Partner Training and is familiar with
the TouchPoint network setup, programming, and the table/check system.
1. The Pay at Table application runs on a single machine and connects to the check master.
It's recommended to install and run it on the check master.
2. You must define a back office TCP Socket Password for the site.
Note, this is the same password for PocketTouch and other programs connecting to
the check master.
1. On the TouchPoint Master, go to Programming > System programming > System
configuration. The settings should be as follows:
Use centralised check system: YES
This machine check tracking master: YES
Use TCP/IP: YES
TouchPoint Setup
Prerequisites:
TouchPoint 2024
Dojo PayAtTable Supported Hardware
Windows 10 or newer
.NET Runtime
Overview
To view the instructions below with images, click here.
Verify the check master settings
Back Office TCP Socket Password : ensure this is set.
1. On TouchPoint non-master terminals ensure Use centralised check system? is set to YES.
2. Exit Programming. Then go to the check master Manager Functions and select the Inline
Functions and IRC Initialise.
3. Check the printout to confirm the master is set.
1. Configure Till 1 to be the check master:
1. Select Program > All Prog > System programming > System configuration in
TouchPoint.
2. Scroll down to Use centralised check system? Select YES.
3. Scroll down to This machine check tracking master? Select YES.
4. Scroll down to I am Check backup master? Select No.
2. Configure Till 2 to be the check backup master:
1. Select Program > All Prog > System programming > System configuration in
TouchPoint.
2. Scroll down to Use centralised check system? Select YES.
3. Scroll down to This machine check tracking master? Select NO.
4. Scroll down to I am Check Backup Master? Select Yes.
Out of sync
If the check file is out of sync resync it on Till 1 (the check master).
1. In TouchPoint select Manager > Inline functions > IRC initialise.
2. Select Manager > Inline functions > Send chk file to back up.
Non master terminals
Resynchronising the centralised check system with the
check backup master
You will only have this option if you have more than one till in the system and got
the other till set as backup.
3. If you do not see anything happen on the screen restart TouchPoint and select Manager >
Inline functions > IRC initialise once again.
4. Once it has been sent, check the back up to ensure the correct tables and checks are
showing.
When the check master goes offline the backup master will tell you there is no check tracking
master when you try to open a table or check. Make the back up master the check master:
1. In TouchPoint (till 2) select Manager > Inline functions > IRC initialise > Switch to backup
Chk Mst. This will IRC initialise with the tills still online in the system and make it the
master. You can now use checks and tables. The backup is now the master.
2. Once Till 1 (Check master) comes back online a message will appear “Check Backup
Master is now Master”. Contact your dealer as soon as possible.
In Program > All Prog > System programming > System configuration in TouchPoint -
This machine check tracking master? and I am Check Backup Master? are set to No.
To switch back to the original master, set Till 2 to backup master.
1. On Till 2 (current master) Select Manager > Inline functions > Send chk file to back up.
2. Check everything is in sync.
3. Once this has been done, on Till 2 select Program > All Prog > System programming >
System configuration.
4. Scroll down to Use centralised check system? Select YES.
5. Scroll down to I am Check Backup Master? Select YES.
1. Select Program > All Prog > System programming > System configuration in TouchPoint.
2. Scroll down to Use centralised check system? Select YES.
Switching to Till 2 - check backup
Switching back to check master
Configure Till 1 to be the check master:
3. Scroll down to This machine check tracking master? Select YES.
1. In TouchPoint, select Manager > Inline functions > IRC initialise.
Once these flags have been changed:
1. Copy the application installer file to the machine running the TouchPoint till master
application.
2. If the installer was downloaded from the internet, you may need to unblock the file:
Right-click on the installer file.
Select Properties.
After copying the installer and checking the Properties to ensure the file is unblocked:
1. To Run with Administrator Privileges:
Right-click on the installer file.
Select Run as administrator.
This ensures the application has the necessary permissions to make system changes during
installation.
1. Once installed, the application should automatically start. The icon will be displayed in
the Taskbar (specifically, in the system tray/notification area).
2. Right-click the application's icon in the Taskbar.
3. Select the Settings option from the menu that appears.
4. The settings interface is split into two sections: TouchPoint and Dojo.
Application Setup
Installation preparation
Note: In the Properties window, if you see a section at the bottom indicating the file is
blocked, check the Unblock box and click OK before proceeding.
Ensuring administrator privileges
Accessing application settings
This ensures the user doesn't try to right-click one of the main application buttons on the Taskbar,
but rather the smaller icon that confirms the application is running in the background.
TouchPoint Master
IP to connect to the Master terminal.
Usually, the loopback IP address, e.g. 127.0.0.1
Socket Password The predefined backoffice socket password used on
TouchPoint
Payments Finalise Key Payment Finalised Key sale total used when sending
payment to TouchPoint.
Fallback Clerk
If no clerk sign (waiter sign on) on is defined on Dojo then
this clerk is used instead.
Its always advised waiters use individual numbers. Setting
this to NONE will prevent ped set without waiter ids using
the system.
Journal Name MC Name used in communications with TouchPoint.
Shows on socket Journal.
Dojo API Key (supplied by Dojo)
The key used to identify this
application and merchant to Dojo.
This key can usually be found in the
Dojo Portal under the API Keys
section.
Reseller Id (supplied by Dojo) The Reseller ID of the ICRTouch
Partner.
Currency Setting Sets the currency used by the
payment terminal (Ped).
Overnight Restart Time
The time when the connection is
closed and refreshed overnight.
Select a time that is outside of
standard business hours.
After configuring these settings, use the Test Dojo Settings option to confirm the key is working.
Dojo TouchPoint settings
After entering a socket password, select the Test Socket Password button to confirm it is
working and to check that Pay At Table is connected to the Checkmaster till.
Dojo settings
1. Select the Menu (☰) button.
2. Select Settings, then Integrated payments.
3. Select Pay at Table.
4. Set the Pay At Table Enabled slider to the right (On).
5. Set the Waiter Id slider to the right (On).
6. Use the Back button to exit settings.
7. Select the Menu button, then select Integrated sale.
Set device for Pay At Table
Result: The integrated sales screen's interface incorporates a Settle table button when the
feature is enabled.
User Intervention: Once setup is complete, Pay at Table should not require any direct
user intervention and can be minimised to the system tray.
Running Applications: The TouchPoint till master and the integrated application must be
left running for Pay at Table operations to function.
Internet Access: The hosting machine requires ongoing access to https://api.dojo.tech
Follow these steps on the Dojo Device to process a payment:
1. To initiate payment, select the Settle Table button on the Dojo Device.
2. When prompted for a Waiter ID, enter the TouchPoint Clerk's secret sign-on number.
3. After entering a valid number, a list of open tables is displayed.
4. Select the desired table, then select one of the following payment options:
Print Bill Issues a table bill from the printer on the device.
Pay In Full Pays the full table total on a single card.
Equal Split Divides the bill equally by a specified number of
people.
Custom Split Allows you to pay a lump sum of the bill.
5. After selecting a payment option, you will be prompted to insert or present a card for
payment.
6. Payment Result:
Success: The system will deduct the authorized amount from the table total.
Failure: You will be directed to try the payment again.
Pay at Table Operation
System Requirements and Monitoring
Paying at table
Table locking and auto-unlock behavior
This section explains how the system manages table locks between the Dojo device and
TouchPoint (TP).
1. System Rule
Tables cannot be unlocked on the Dojo devices for 30 seconds after they are initially
opened.
2. Table Lockout Process
If a table is opened on a device, it sends continuous "lock extension" requests to
TouchPoint to maintain control:
Tables will lock out if opened and then continue their unlock requests to TP.
Example Log of Lock Request: — OnExtendOrderLock 6c40945e-61d4-4c52-a7c5-
daf17c8b412b —
3. Inactivity Auto-Unlock (Self-Correction)
The application includes an internal mechanism to automatically unlock tables that were
opened but then left inactive without being paid.
1. The application continuously checks its internal logs to determine the status of
tables: locked or paid.
2. If Paid: The process is complete.
3. If Not Paid & Inactive: If a significant amount of time has passed since the last
extend lock request, the application assumes the process was abandoned or failed,
and it begins the unlock process. This is logged as an unlock "due to inactivity."
Log Entry Meaning
2025-11-14 14:35:04.662 Queuing Unlock CHECK-5-532 due
to inactivity, no payments pending
The application has detected a long period of inactivity for
the table and is starting the unlock process.
2025-11-14 14:35:04.693 Unlocked table CHECK-5 Confirmation that the table has been released.
2025-11-14 14:35:04.693 Cleared Display Table Lock State
for CHECK-5-532 The internal lock state on the display has been reset.
Log example
While the application should provide feedback on errors, silent failures or crashes can occur
without notice.
1. Action: Search the log files for the events that led to the error or crash.
2. Log Location: The logs are located within the TouchPoint directory structure:
%APPDATA%\ICRTouch\DojoPayAtTable\Log\
3. Next Steps: Use the information in the log file to recreate the issue and provide detailed
feedback to the ICRTouch support team if appropriate.
A. Waiter ID Not Working or Log Error: 'Not allowed table operations'
The system matches the Waiter ID (entered on the Dojo device) to a specific TouchPoint Clerk
using their sign-on code. To avoid this error, ensure the relevant TouchPoint Clerks have the
following permissions:
1. Must be allowed to use Reg Mode.
2. Must be allowed to open other clerks' tables.
3. Must never be set to Non-Turnover.
4. Must never be set to Training.
B. Connection Failures & Application Not Starting
These issues are often linked to the external Dojo service status.
1. Check Service Status: Always check Dojo's service status for outages or maintenance:
https://status.dojo.tech/
Troubleshooting and
Support Guide
Log file analysis (Silent errors/crashes)
Common errors and solutions
2. Note: In cases where the application does not start, Dojo server outages may be the
culprit for failures.
If the application fails to start or encounters system-level errors, ensure the correct runtime is
installed.
1. Required Component: .NET Runtime 8.0
2. Download Link: https://dotnet.microsoft.com/en-us/download/dotnet/8.0/runtime
Required runtime environment
A configuration guide for the Dojo pay at counter (PAC) integration, using the Dojo EPoS Data
WebSocket Specification.
Dojo Pay at Counter setup
TouchPoint Setup
Application Settings
Troubleshooting
Dojo Pay at Counter
(PAC) configuration
guide
This guide provides the step-by-step procedure for installing and configuring the Dojo "Pay at
Counter" feature, which integrates TouchPoint with your Dojo card machine for seamless
Electronic Funds Transfer (EFT) payment processing.
The EFT application facilitates communication between TouchPoint and the Dojo terminal.
1. Download the installer from the ICRTouch Forum.
2. Run the installer with the default settings as prompted.
3. Upon completion, the integration application should launch automatically and display a
status icon in the system taskbar (near the clock).
4. Link the application to your Dojo account:
Open the integration application via the taskbar icon or Windows start menu.
Enter API key: Navigate to the application's settings and enter your unique Dojo API
Key in the designated field.
Dojo Pay at Counter setup
Prerequisites:
TouchPoint 2024
Windows 10
The application requires the .NET Runtime to operate. If it is not installed, download it from
https://dotnet.microsoft.com/en-us/download/dotnet/8.0/runtime
Dojo supported hardware
Send an email with your TouchPoint licences to the ICRTouch Support Team to complete and
enable the integration.
Installing the EFT application
1. Select Programming > All programming > System Flags > EFT Control. Configure as
follows:
EFT SYSTEM (1) Local EFT App
Prompt for cash back? Whether to receive a prompt for cash back
Use SaleID in Merchant Ref?
Whether to use the unique Sale ID as the
transaction reference for easier payment
reconciliation.
Begin transaction for transaction key EFT?
This begins a sale early if a transaction key is used
and finalises to EFT, for example a Received on
Account key.
This is required for some EFT providers so that the
Sale ID has been created prior to the card sale being
processed.
This has the downside that if the EFT transaction
fails, TouchPoint will be left in the middle of a
transaction requiring remedial action, for example
pressing [Cancel] or finalising to [Cash].
2. Select Programming > Function keys > Finalise Key to setup the EFT credit card button.
Select an unused key, then configure as follows:
Key Type EFT
3. Add the key to a keyboard level.
To print a local store of Pay at Counter transaction initiated from Touchpoint:
Local EFT, Z Report (Summary Totals)
Local EFT, Banking Report (Transaction List)
TouchPoint Setup
Reports
The application settings window will be displayed on first run. It can also be accessed via the rightclick
taskbar tray.
1. Select the test button to confirm that the API key and Reseller ID are correct.
2. Use the save button to store the settings.
Dojo Api Key Provided by Dojo. May be found in the Dojo Portal.
Reseller ID The Reseller ID is a Dojo-assigned identifier to the
company supporting the site.
Currency Code Primary currency used for all transactions.
Preferred Terminal Select which Dojo terminal should be used for this
TouchPoint.
Enable Cancellation Hides the cancel buttons.
Printer Width Char width used when formatting printing output.
Print Customer Receipt Auto print customer receipt.
Print Merchant Receipt Auto-print the merchant receipt.
Application Settings
The application logs most error messages; however, there may be cases of silent errors, and the
application can crash without notice.
1. In some cases, failures may be due to external server outages. Check the official Dojo
system status at https://status.dojo.tech/ before contacting ICRTouch support.
2. Search the log files for the events that led to the error/crash. Locate the logs in
C:\ICRTouch\DojoPayAtCounter\Log\.
3. Use the information in the log file to recreate the issue and provide feedback to the
ICRTouch support team if appropriate.
4. Download the .NET Runtime from - https://dotnet.microsoft.com/enus/
download/dotnet/8.0/runtime
Troubleshooting
Gift Aid
Gift Aid admission PLUs
During the sale of a Gift Aid donation admission ticket you are prompted to select whether the Gift Aid prompt is:
On PLU entry.If you have more than one Gift Aid admission PLU we recommend you increase the maximum Gift Aid prompts in TouchPoint. For instance, if you have 3 Gift Aid admission ticket types, child, adult, and senior citizen, increase your max Gift Aid number prompts to 3. TouchPoint will prompt you to enter the Gift Aid donor's details up to 3 times during the sale. The prompt disappears after entering the donors' information on the 1st, 2nd, or 3rd prompt.
At the end of sale.The Gift Aid prompt is triggered when you press the finalise key. The Max Gift Aid number prompts field is ignored.
Prompt trigger PLU entry
In TouchPoint, select Program > All programming > ETAL > Gift Aid > Admission settings.
Scroll down to prompt trigger.
Select PLU entry.
Press enter to increase the number of prompts.
Prompt trigger end of sale
In TouchPoint, select Program > All programming > ETAL > Gift Aid > Admission settings.
Scroll down to prompt trigger.
Select End of sale.
Gift Aid donation sale
Follow all the steps below to register a Gift Aid donation:
When prompted whether the donation is for Gift Aid, select YES.If the Gift Aid donation prompt does not appear during an admission or cash donation sale, and you have not added the customer's details, cancel the sale and start again.This prompt does not appear when processing Gift Aid product donations.
Enter the postal code and select the address. Try again if the address list is empty, or enter the address manually.
Select or enter the customer's details.
Ensure the donor signs the declaration - select YES when prompted.
Gift Aid admission
During the sale of a Gift Aid donation admission ticket you are prompted to select whether the donation is for Gift Aid.If the prompt trigger is PLU entry and you select NO on the last Gift Aid donation prompt, you will have to error correct the PLU from the reg window or cancel the sale and start again as the sale will not be linked to Gift Aid.
If you select YES enter the postcode. If the postal address is found select the address from the list. If you include the house number or name in the search the address list is narrowed down.If the postal address is not found try again or manually add the address.If you do not enter a postcode you will have to error correct the PLU from the reg window or cancel the sale and start again as the sale will not be linked to Gift Aid.
If the customer has donated previously select the customer from the list. If not, enter the customers information when prompted.
If the donor has signed the declaration select YES.If you select NO you will have to error correct the PLU from the reg window or cancel the sale and start again as the sale will not be linked to Gift Aid.
Finalise the sale.
If the prompt trigger is end of sale the Gift Aid entry is triggered when you select the finalise key.
Gift Aid cash donation
Select the Gift Aid cash donation PLU and then enter the donation value.
When prompted whether the donation is for Gift Aid, select YES. If you select NO you will have to error correct the PLU from the reg window or cancel the sale and start again as the sale will not be linked to Gift Aid.
If you select YES enter the postcode. If the postal address is found select the address from the list. If you include the house number or name in the search the address list is narrowed down.If the postal address is not found try again or manually add the address.If you do not enter a postcode you will have to error correct the PLU from the reg window or cancel the sale and start again as the sale will not be linked to Gift Aid.
If the customer has donated previously select the customer from the list. If not, enter the customers information when prompted.
If the donor has signed the declaration select YES.If you select NO you will have to error correct the PLU from the reg window or cancel the sale and start again as the sale will not be linked to Gift Aid.
Finalise the sale.
Gift Aid product donation
Select the Gift Aid donation key.
Enter the postcode. If the postal address is found select the address from the list. If you include the house number or name in the search the address list is narrowed down.If the postal address is not found try again or manually add the address.
If the customer donated previously select the customer from the list. If not, enter the customers information when prompted.
If the donor has signed the declaration select YES.If you select NO you will have to error correct the PLU from the reg window or cancel the sale and start again as the donation will not be linked to Gift Aid.
Enter the product descriptor, the department it is linked to and the price.
The barcode is printed and can be placed on the product.
To edit the price of the product select the edit price key.
Scan the barcode and edit the price.
Just Eat integration
This document is aimed at ICRTouch Authorised Partners and is a reference manual to ICRTouch’s Just Eat integration services. Just Eat orders are sent straight to TouchPoint, enabling restaurants to see all their orders in one place, in real-time.
This manual contains information relating to services owned and operated by third parties. This information is provided for your information and convenience only and is not an endorsement of such third party services. ICRTouch is not responsible for, nor has any control of the content, availability, functionality, pricing or charges of any 3rd party service.
Just Eat PLU webshop options
In TouchOffice Web if not applying to all sites (Head Office), select the appropriate site from the dropdown.
Select Products and click on the product number.
Select the Webshop Options tab.
Ensure the Just Eat Product tick box is ticked.
If you are using a separate price level, you can also select the Price Level here.
Save.
Repeat for all products that will be delivered by Just Eat.
TillConfig menu
TillConfig Just Eat setup
In TillConfig navigate to Webshop > Just Eat > General Settings > select the Site.
Enter the Delivery Charge PLU.
If you require a Small Order Fee PLU, repeat the process used above for adding your Delivery Charge PLU.
Save.
Select Just Eat.
Select Opening Times.
Select the Site.
Click on 'Add' under each day to enter the opening & closing times.
Scroll down the page to enter the collection times - click on Add under each day.
Save.
TillConfig Just Eat API
Once your menu has been setup and the initial process has been confirmed by our Support team, you will be provided with your Just Eat FLYT API Credentials.
In TillConfig select Just Eat.
Select API Credentials.
Enter the FLYT API Key provided to you by ICRTouch Support.
Save.
TillConfig Just Eat menu
Select the Just Eat breadcrumb.
Select Menus.
Select the Site from the drop down menu.
Load the Menu from the Site that you have programmed and preview to confirm it has been configured.
Once you have confirmed that the menu is visible, notify ICRTouch Support so they can communicate with Just Eat to ensure the site has been successfully integrated.
Once confirmed, you can now click 'Push Menu'.
You can also save your menu configuration at this point for later use to update your menu. (Ensure future menu updates are only pushed from Tillconfig rather from the standalone Just Eat device).
You can configure a menu on one site and push it to a number of different ones at the same time.
TillConfig Just Eat stock
In TillConfig select the Just Eat breadcrumb.
Select Stock.
Select the Site from the drop down menu.
You can make products available or unavailable on your menu from this interface as well as view your current stock levels.
Reserve with Google Integration for TouchReservation
Google Business Profile
Reservation screenshots
Reserve with
Google Integration
The Reserve with Google integration allows customers to book services directly through Google
Search, Maps, and Assistant. The integration streamlines the booking experience by connecting
customers with TouchReservation in real-time.
The Reserve with Google integration provides access to the following application programming
interfaces:
Inventory - submit availability, services, and merchants.
Booking - receive and manage booking requests.
Order update - manage updates, cancellations, and status changes.
View customer facing reservation screenshots.
Restrictions:
Deposits are not possible with this integration.
Reservations are only available up to 30 days in advance.
Reserve with Google
Integration for
TouchReservation
Reserve with Google is only available on Google Business accounts in the following
categories:
Pub, Café, Bistro, Restaurant, Gastropub, Wine Bar, Brewery, Modern European Restaurant,
Tapas Restaurant, Seafood Restaurant, Mediterranean Restaurant, Asian Fusion
Restaurant…and similar restaurant or hospitality types.
The same applies for demo accounts. We recommend utilising this account for
demonstrations: https://share.google/tyA8WOJZQdzYQTT3f
1. TouchOffice Web.
View the Partner portal reference guide.
2. TouchReservation.
3. Reserve with Google Web service - Partners must complete a request form at
https://icrtou.ch/rwg.
4. Set up your Google Business Profile - Refer to the Google Business Profile Help Get
started guide for details.
1. Go to tillconfig.net, then sign in.
2. Configure TouchReservation.
Prerequisites:
TillConfig instructions
3. Select Reservations, then select View sites. Add and edit sites as required. Google
requires the full business address listed here to match the Google Business Profile.
4. Select Reservations, then select Reserve with Google.
5. Select the Enable checkbox on each site which requires the integration.
TillConfig changes are synchronised with Google at 2am UTC each day. When a reservation is
requested, Google checks the information in TillConfig in real-time.
To cancel the service, complete the form at https://icrtou.ch/rwgcancel
Cancellations
1. Refer to the Google Business Profile get started guide for details.
2. Find the listing:
Open Google Maps or Google Search on a computer or mobile device.
Search for the business name.
If a listing appears, select it to ensure it's the correct business.
3. Claim the business:
Select "Claim this business".
4. Verify ownership:
Select a verification option (phone or email).
Follow the on-screen instructions to complete the verification process.
5. Manage your profile:
Google Business Profile
Once verified, you can manage your business information, including adding photos,
operating hours, and other details.
6. Drop a pin for your business on Google Maps:
With Google Maps, select Edit profile and then Business information and then
location.
Next to 'Business location', select Edit Edit.
To adjust your pin location, select Adjust.
Move the map so the pin points to your business location.
Select Done and then Save.
Book a reservation
Reservation confirmation
Reservation screenshots
Google Maps screenshots
Reservation summary
Modify a reservation
Cancel a reservation
WooCommerce's target market is online retail stores, not hospitality. Therefore, we do not
recommend using this solution for food service businesses, as it has multiple limitations that may
not meet the needs of most business owners. While WooCommerce provides support for multisite
operations, comprehensive stock control is unavailable.
API key
Request your WebShop WooCommerce API key from support@icrtouch.com. The email should
include the account alias and specify the request is for WooCommerce.
WooCommerce
TouchPoint 2016 or newer required
On the till you will need to configure the Access Key in System Programming ≥ System
Configuration.
Terminal Access Key
1. Go to www.tillconfig.net.
2. Select Terminal Access Key.
3. On TouchPoint, select Programming > System programming > System configuration.
Enter the Terminal Access Key in the Terminal ID field.
4. You will need to set Webshop to YES. When the till is setup any sales waiting on the
website will be sent to the till.
If you are using stock with your webshop, you will also need to set 'Enable stock download' to 'YES'
in System Programming ≥ System Configuration.
For the stock figures to upload you will need to set the stock figures on your PLU’s on the tills and
set the “Maintain Stock” flag to “YES”.
This is set via “Program 3” ≥ “PLU” ≥ “PLU” ≥ (Select a product you wish to enter stock for).
The stock figures for all PLU’s set to “Maintain Stock” will be uploaded to the cloud when the till is
started and any subsequent sales on the terminal will upload to the website.
The webshop (woocommerce) will then get the latest stock figures from here.
The ICRTouchPLU setting must be configured on all PLU’s on the webshop that you wish to link
with TouchPoint.
The ICRTouchPLU number can be set under “General” settings for normal products, or under the
variation options for products with different sizes or colours etc.
In addition the ICRTouchPLU numbers are now shown on the main products page on the website in
an extra column.
Variation Products
Variation products are products which have been assigned multiple attributes i.e. different sizes of
clothing or different designs etc.
When a product becomes a variable product the ‘ICRTouchPLU’ attribute is no longer assigned to
the main product but instead it is assigned to each variation so different sized clothes for example
can refer to different PLU numbers on the TouchPoint Terminal.
In this example we have a Jura Giga X8 Coffee Machine with 3x different colours for Silver, Black
and White.
Each of these different colours has been configured with different PLU numbers to refer to the
products on the till.
All Products
The main product page will show all of the ICRTouchPLU numbers currently assigned to a product.
Variable products will show each product separated by a “|” separator.
ICRTouch Tillconfig Stock Figures
You can now view the stock figures uploaded from the tills by logging into your account at
www.tillconfig.net and clicking on the “View Stock” page.
Multisite Limitations
WooCommerce's target market is online retail stores, not hospitality. Therefore, we do not
recommend using this solution for food service businesses, as it has multiple limitations that may
not meet the needs of most business owners. While WooCommerce provides support for multisite
operations, comprehensive stock control is unavailable.
The available stock shown on the product pages, shows the available stock on the site set in the
Site ID box on the plugin settings page.
Using the plugin settings, you can set up a 'site picker'. When enabled, and site names are set, an
extra option will appear on the checkout page asking which site the customer wants to use for
their order.
This would primarily be used for setting which site the order would be collected from. The stock
adjustment for products purchased in the order will be made on the site chosen using the picker
on the checkout page, however the available stock showing on the product will still show the stock
in the Site as set in the Site ID box.
Revision #7
Created 19 March 2025 11:21:58 by Louise Friedman
Updated 19 March 2025 15:31:20 by Louise Friedman
This document describes how to set up the Stripe EFT Payments for TouchPoint.
Getting started
TouchPoint setup
Linking to TouchOffice Web
EFT Application Settings
Troubleshooting
Stripe EFT for
Touchpoint
Use Stripe Terminal and TouchOffice web to accept in-person payments on TouchPoint.
Windows 10
TouchPoint 2024 VID8004 or Later
TouchPoint must be licensed
TouchOffice Web Account
Stripe Account onboarded via TouchOffice Web.
Supported Stripe Smart Reader.
Net8.0 Desktop Runtime
Note: only readers supplied by ICRTouch are supported:
1. Stripe Reader S700 - https://stripe.com/gb/terminal/s700
Getting started
Overview
Prerequisites
Supported Readers
Total
£31.66
Tap or insert
2. Stripe BBPOS WisePOS E - https://stripe.com/gb/terminal/wisepose
1. Contact ICRTouch support team to request the integration installer.
2. Run the installer with the default settings on the Point of Sale Terminal.
3. When complete the EFT Application should start and display an icon in the Taskbar.
Installing the EFT Application
4. The application can also be manually started from the Start Menu.
5. After Installing Start Touchpoint and perform the steps detailed TouchPoint Setup page.
Linking Stripe to Touchoffice Web
Link the Stripe terminal to TouchOffice Web
ICRTOUCH
CANCEL
D
This device is not
1. In TouchPoint, select Programming > System programming > System flags > EFT control
program menu navigate go to the EFT Control options.
TouchPoint setup
EFT Control
2. The settings should be set as follows.
No Name Setting
1 EFT system Local EFT App
2 Prompt for cash back NO
3 Use SaleId in merchant ref YES
To Pay using the EFT Integration you will need a EFT Finalise key on your Touchpoint screen.
1. In TouchPoint, select Programming > Function keys > Finalise key.
2. Select a Finalise key to be your EFT finalisation key. This should be a EFT type button
linked to its own In Drawer totalizer.
3. The settings should be set as follows:
No Name Setting
1 Descriptor EFT
2 Update keyboard text? NO
3 Key type EFT
4 Low amount limit £ 0
5 Low amount limit £ 0
6 Drawer in
CREDIT in Drawer
Drawer in will be reflected in your
End of Day reports and
TouchOffice Web.
7 Drawer out
CashBack
Drawer out will be reflected in
your End of Day reports and
TouchOffice Web.
8 Open drawer YES
9 Enforce amount tendered YES
10 Inhibit partial tendering NO
11 Inhibit amount tendering NO
12 Enforce subtotal NO
13 Automatic receipt printing NO
EFT Finalise Key
No Name Setting
14 Warn if a check is open NO
15 No over-tender
16 Print tax break down
17
Print extra ticket with signature
strip
18 Compulsory Eat In/Take Out
19 Tendered amounts in EUROs (sub)
20
Prompt with numeric keypad for
tender
21 Prompt for device
If set to yes, the application will
display a select terminal dialog
before starting the transaction.
4. Link the key on your keyboard level. In TouchPoint select Programming > Keyboard.
There are no locally printed Touchpoint reports required for Stripe. TouchOffice web will include
Interactive sales explorer detailing stripe payments.
Reports
A TouchOffice Web account that has an onboarded Stripe account is required to use this
Integration. A login with access to the API authorisation page is required to complete this step.
1. The first time you attempt a transaction the application be prompted to link to
TouchOffice Web. The linking screen can also be launched from a connect option on right
click menu.
Linking to TouchOffice Web
2.
Press the Connect button to start the linking process.
3. Make a note of the short digit code displayed and then Login to TouchOffice web and go
to the API Authorisation page.
4. From the Authorisation page use the Activate Button
5. Enter the code into TouchOffice Web. The EFT Application connect screen will now update
to show connected.
6. Once connected. You can close this screen. You will now be able to process card
payments
Some options are supplied by the application for the ICRTouch Partner to find tune the Integration
to the customers needs. Settings can be accessed by right clicking the icon and choosing settings
option.
[Image]
No Setting Description
1 Language*
Set Default Language for prompts
and feedback supplied by the
Integration.
* Language files are defined
in
%AppData%\ICRTouch\StripeE
FTInterface\Language
2 Currency Set currency code
3 Preferred Terminal
Which terminal is used for
transactions when TouchPoint Select
Device flag is off.
4 Preferred Location Select device prompt will limit list to
terminals in this location.
5 Receipt Width
Column width for EFT Receipt. Should
match TouchPoint Receipt width
setting.
6 Print Customer Receipt Print Customer Receipt to TouchPoint
7 Includes address Add location address header?
8 Print Merchant Receipt
Print Merchant Receipt To
TouchPoint. ( Note payment detail
will be viewable in TouchOffice Web)
9 Includes address Add location address header?
EFT Application Settings
1. Check the POS terminal and Ped has network internet access.
2. Check the POS terminal has access to https://api.touchoffice.net
Stripe uses the following fully qualified domain names to interact with your integration:
api.emms.bbpos.com
armada.stripe.com
gator.stripe.com
*.terminal-events.stripe.com
Stripe Terminal uses the following fully qualified domain names to sync the device date over NTP:
time.android.com
time.cloudflare.com
2.android.pool.ntp.org
Stripe Terminal uses the following partially qualified domain name to interact with your integration:
*.[random-string].device.stripe-terminal-local-reader.net
Troubleshooting
Troubleshooting
Stripe terminal domains
Fully qualified domain names
Partially qualified domain names
ICRTouch support
1. Send the ICRTouch support team the EFT application log for the relevant day/day of
problem - it can be found in %AppData%\ICRTouch\StripeEFTInterface\Log\
2. When contacting ICRTouch support you will need to include the log file for day of your
issue.
3. The application requires .Net 8.0 desktop runtime to work properly.
4. Installed runtimes can be queried in windows by running the following command in
terminal or command line.
dotnet --info
Failed to connect to Reader
We attempted to start a sale but the
reader did not response. Check the
Reader is connected to a network
with Internet Access.
Failed to JackRabbitService
Ped contact lost and did not
reconnect in a timely manor. This
may be caused by low battery device
losing power during transaction.
Charge the device and retry.
Common errors Resolution
Common issues
Installation and initial configuration
Gift Aid general settings
Program Gift Aid departments
Gift Aid Admission or charity membership
Retail Gift Aid - shop
Gift Aid - recycling
Administration
Gift Aid donor emails
Gift Aid wastage
Troubleshooting
Non Gift Aid cash donations TouchPoint setup
Non Gift Aid cash donations TouchTakeway, ByTable and ByRetail setup
Gift Aid
1. Monthly ICRTouch Gift Aid subscription service.
2. The Gift Aid service Terminal Access Key and admin login from ICRTouch.
3. A Point of Sale terminal running TouchPoint 2017+.
4. An understanding of Shop Gift Aid requirements.
5. A receipt printer.
6. A label printer setup to print in Windows.
7. EAN-JK font (eanjk.ttf is included in the script download).
The following setup and configuration tasks should be done on each TouchPoint terminal that
will be connecting to Gift Aid.
The Gift Aid functionality is provided as an Etal script which sends and receives requests from the
web service.
1. Download the Gift Aid Etal script.
2. Extract the files to ICRTouch > Etal.
3. Open the ICRTouch > Etal > Giftaid2 folder.
Installation and initial
configuration
Prerequisites
TouchPoint installation and configuration
Etal script
The Gift Aid script is dependant on bundled application binaries which may be blocked by default.
Follow the instructions below to unblock msxsl.exe and Print32.exe:
1. Unblock msxsl.exe:
Open Microsoft Windows Explorer.
Right-click on ICRTouch > Etal > Giftaid2 > msxsl.exe.
Select Properties from the context menu.
Click the Unblock button in the lower right-hand corner of the resulting dialog.
Click OK or Apply.
2.
Windows security block
Unblock Print32.exe:
Open Microsoft Windows Explorer.
Right-click on ICRTouch > Etal > Print32.exe.
Select Properties from the context menu.
Click the Unblock button in the lower right-hand corner of the resulting dialog.
Click OK or Apply.
Etal.xml
1. Edit ICRTouch > Etal > Etal.xml in a text editor that understands xml highlighting such as
Notepad+ or Visual Studio Code.
2. Make sure the file is pointing to the correct Gift Aid file in bold below:
<?xml version="1.0"?>
<ETAL>
<FILE>GiftAid2.emoc2</FILE>
<OUTPUTFILE>output.txt</OUTPUTFILE>
<NAME>Gift Aid</NAME>
<CREATED>01/12/2017</CREATED>
<LASTMODIFIED>17/02/2020</LASTMODIFIED>
<MINVERID>6800</MINVERID>
<AUTHOR>ICRTouch</AUTHOR>
</ETAL>
3. Save
To customise the label you need to edit the ICRTouch > Etal > config.xml file - you are able to
change the position, size, font, colour etc. of each label component.
Components are the main block of the document. A component may be written by a script or may
be a generic component. Components are positioned on the label in the order set up in the
config.xml file.
There are a number of components that make up the label:
Text components - text components are automatically updated by the application and
include the date, barcode, randomcode and name.
Label components - label components are used for adding custom text or headers.
Shape components - shape components add label shapes such as a circle, rectangle,
hline, vline
Setup the Windows label
Image components - image components are useful for adding your logo and branding.
To configure the printer settings and the label components:
1. Open the ICRTouch > Etal > Giftaid2 folder.
2. Duplicate config.xml and name it config-backup.xml (this is a backup in case you would
like to revert back to the original file).
3. Edit config.xml, in a text editor that understands xml highlighting such as Notepad+ or
Visual Studio Code using the guidance in the table below:
Code Description
Printer settings
Syntax Description
<printer>Windows Printer Name</printer>
Replace Windows Printer Name with the name of
the label printer as it appears in Windows.
<width>51<width>
Replace 51 with the page width as required.
<height>28</height>
Replace 28 the page height as required.
<landscape/>
</page>
<landscape/>
The orientation can be configured as landscape or
portrait. Replace landscape with portrait if required.
<!--<preview/>-->
If you would like to setup a preview before printing
whilst you are setting up the layout of the barcode
labels replace:
<!--<preview/>--> with <preview/>
Once you have finished testing replace:
<preview/> with <!--<preview/>-->
Code Description
The printer section will look something like this:
<config>
<printer>OKI C5250n</printer>
<page>
<width>51</width>
<height>28</height>
<landscape/>
</page>
<landscape/>
<!--<preview/>-->
The date, barcode, randomcode, name and price components are created by the Gift Aid script and are
standard in the config.xml file. The following settings are to format the date on the label.
Text components
Syntax Description
<name>Date</name>
The name is to identify the component in the
print.xml file.
<type>text</type>
Identifies the type of component.
<left>26</left >
The position from the left in mm's.
< top>2.5</top >
The position from the top in mm's.
<face>Arial</ face >
The typeface.
<colour>000000</colour>
<colour>black</colour>
The colour can be specified by the RGB colour value
or by the colour name.
<italic/> Characters that slant upward to the right.
<bold/> Characters that are darker and heavier than normal.
<size>10</size > Print size.
<alignment>left</alignment >
<alignment>centre</alignment >
<alignment>right</alignment >
Sets the alignment, options are left, centre and right.
Code Description
Labels will print out the text written in the caption field. Used for adding custom text or headers.
Label Component
Syntax Description
<name>Unique name</ name >
The name is to identify the component in the
print.xml file.
<type>label</type>
Identifies the type of component.
<caption>This is a text label</caption>
Caption to be printed.
<left>26</left>
The position from the left in mm's.
<top>2.5</top>
The position from the top in mm's.
<face>Comic Sans MS</face>
The typeface.
<colour>ff0000</colour>
The colour can be specified by the RGB colour value
or by the colour name.
<italic/>
Characters that slant upward to the right.
<bold/>
Characters that are darker and heavier than normal.
<size>10</size>
Size.
<alignment>centre</alignment>
Aignmentl.
This will add a circle, rectangle, hline or vline shape to the label.
Shape component
<name>Unique name</name>
The name is to identify the component in the
print.xml file.
<type>Shape</type>
Identifies the type of component.
<subtype>Circle</subtype>
Identifies the subtype of component.
<left>47</left>
The position from the left in mm's.
Code Description
<top>6</top>
The position from the top in mm's.
<width>20</width>
Width.
<height>20</height>
Height.
<line>RGB colour and width of the outline
Outline colour.
<fillcolour>00FF00</fillcolour> RGB fill colour, if
no present the fill is transparent
The colour can be specified by the RGB colour value
or by the colour name.
This will add an image to the label.
Image Component
<name>Unique Name</name>
The name is to identify the component in the
print.xml file.
<type>Image</type>
Identifies the type of component.
<file>c:\image.jpg</file>
Image path and file name.
<left>47</left>
The position from the left in mm's.
<top>6</top>
The position from the top in mm's.
<width>20</width>
Width.
<height>20</height>
Height.
<stretch/>
If set the image is stretched to fit in the size, else
the image is cropped to fit.
4. Save the file and exit. The Windows print job is generated using the print layout specified
in the config.xml file.
Config.xml file example
The following table shows the formatting of a collector teapot label. The settings in the config.xml
file are edited not the print.xml file. The config.xml file sends the print instructions to the print.xml
file.
config.xml print.xml
In the example the printer is specified as Microsoft Print to PDF instead of a printer. Once
you have fully tested how the label will print you can change the printer to an actual printer.
<config>
<printer>Microsoft Print to PDF</printer>
<page>
<width>63.5</width>
<height>32</height>
<!--<landscape/>-->
</page>
<!--<preview/>-->
<components>
<component>
<name>Barcode</name>
<type>text</type>
<left>2</left>
<top>7</top>
<font>
<face>EAN JK</face>
<size>48</size>
</font>
<alignment>left</alignment>
</component>
<component>
<name>Randomcode</name>
<type>text</type>
<left>3</left>
<top>21</top>
<font>
<face>Arial</face>
<size>8</size>
</font>
<alignment>left</alignment>
</component>
<component>
<name>date</name>
<type>text</type>
<left>60</left>
<top>21</top>
<font>
<face>Arial</face>
<size>8</size>
</font>
<alignment>right</alignment>
</component>
<component>
<name>Name</name>
<type>text</type>
<left>2</left>
<top>3</top>
<font>
<face>Arial</face>
<size>10</size>
</font>
</component>
<component>
<name>Price</name>
<type>text</type>
<left>60</left>
<top>12</top>
<PRINT>
<ITEMS>
<ITEM>
<DATE>26/10/2022</DATE>
<BARCODE>2900100004213</BARCODE>
<RANDOMCODE>2900100004213</RANDOMCODE>
<PRICE>£5.00</PRICE>
<NAME>Collector Teapot</NAME>
</ITEM>
</ITEMS>
</PRINT>
Do not edit this file.
Label components illustration
Label print illustration
The donor label is similar to the item label except there is no price.
Getting the alignment working as intended can take a little trial and error. Once you have
configured the settings you can test the printer double clicking the print32.exe file.
Donor label
The Print.xml file is recreated for each print and should not be modified. The Items in this file have
a corresponding component in the config.xml file.
<PRINT>
<ITEMS>
<ITEM>
<DATE>26/10/2022</DATE>
<BARCODE>2900100004213</BARCODE>
<RANDOMCODE>2900100004213</RANDOMCODE>
<PRICE>£5.00</PRICE>
<NAME>Collector Teapot</NAME>
</ITEM>
</ITEMS>
</PRINT>
1. In TouchPoint select Program > All programming > System programming > System
configuration.
2. Scroll down to Access Key and enter the access key found in TillConfig > Other settings >
Terminal Access Key.
TouchPoint, Program, All programming, System programming > System
configuration illustration
Print.xml file
Setup the Terminal Access Key
1. In TouchPoint select Program > System > Check for update.
TouchPoint, Program, System, Check for update illustration
Update the TouchPoint libraries
2. Enter ETALLIB in the Check for update field and then select enter.
Update software illustration
3. Select Yes to update the software.
4. Restart TouchPoint.
5. The Gift Aid functionality is activated.
6. The Gift Aid status keys are created:
GiftAidDonate = 528
EditGoodPrice = 529
NonGiftAidDonate = 581 (this status key is no longer in use).
RePrintLastLabel = 582
GiftAidCustBarcode = 583
DeclarationTestPrint = 584
ProgramGADepts = 585
GiftAidCustNo = 586
1. In TouchPoint select Program > All Programming > Etal > Gift Aid.
TouchPoint Program, All programming, Etal, Gift Aid illustration
2. Update the settings using the guidance in the table below:
No Field Description
TouchPoint Program, All programming, Etal, Gift Aid fields
Gift Aid general settings
Gift Aid general settings
1 3 Digit Site ID for GiftAid
Retail barcodes generated by the
system will contain a site ID. The
default value is 100.
2 PLU range start
The PLU range start
automatically
reprograms a range of
250 continuous PLUs
when setting retail
shop items.
The range should be
at least 250 lower
than the Scanning
PLU Start Record
and not clash with any
pre-programmed
products.
To check the Scanning
PLU start record select
Program > System
programming >
System flags > PLU
control > Scanning
PLU start record and
Scanning PLU end
record.
3 Show wait window
Displays a wait message whilst
the system is loading.
Options:
YES
NO
4 Allow blank email
Options:
YES
NO
By default the system will force
the email request.
It is a legal requirement
for the charity to contact
the donor regarding the
declaration details. If the
charity wishes to contact
by post then you can
allow blank emails.
5 Print settings
Settings regarding whether to
print a declaration, which printer
is used and whether to print gift
aid barcodes on the receipt.
5a Print declarations
You need to make a Gift Aid
declaration in order for the
charity to claim.
Options:
YES
NO
5b Connected to MC No.
Options:
My device
5c Connected to Port No.
Options:
Not connected
COM1
COM2
COM3
COM4
COM5
COM6
COM7
COM8
LPT1
LPT2
OPOS1
OPOS2
OPOS3
OPOS4
OPOS5
OPOS6
5d Reprint declarations every
visit
Options:
YES
NO
5e Print barcode
Options:
YES
NO
6 Logo settings Logo and Text Content settings.
6a GiftAid declaration heading This must identify your charity.
6b Line 1 Name of charity
6c Line 2 Charity address 1
6d Line 3 Charity address 2
6e Line 4 Charity address 3
6f GiftAid declaration footer This must declare that the
donation is for Gift Aid.
6g Line 1 I want to Gift Aid my current
donation
6h Line 2 and any donations I may make in
the
6i Line 3 future or have made in the past 4
years
6j Line 4 to (Name of Charity).
6k Line 5
6l Line 6 I am a UK taxpayer and
understand that
6m Line 7 if I pay less Income Tax and/or
Capital
6n Line 8 Gains Tax than the amount of Gift
Aid
6o Line 9 claimed on all my donations in
that tax
6p Line 10 year it is my responsibility to pay
6q Line 11 any difference.
6r Line 12
6s Line 13 I will notify
6t Line 14 (Name of Charity)
6u Line 15 of any change in my personal
6v Line 16 circumstances, such as name and
6w Line 17 address, or that I no longer pay
UK
6x Line 18 Income or Capital Gains tax or I
wish
6y Line 19 to cancel the declaration.
7 Debug settings
7a File Gift Aid
7b Output file GiftAid2.emoc2
7c Author output.txt
7d Created ICRTouch
7e Last modified
3. The Range PLU will automatically create 250 PLUs with the fields set as per the table
below (do not modify these PLUs as they are reserved for the Gift Aid functionality):
No Field Description
1 List box link 1
The following Gift Aid
fields are set to No link:
List box link 1
List box link 2
List box link 3
List box link 4
List box link 5
List box link 6
2 List box link 2
3 List box link 3
4 List box link 4
5 List box link 5
6 List box link 6
7 Set menu
The Set menu field is set
to NO.
8 Tax rate
The Tax rate field is set
to No tax.
9 Mix & match
The Mix & Match field is
set to NONE.
10 Quantity of 1st @ price
The Quantity of 1st @
price is set to 1.00.
11 Selective Itemiser 1
Selective itemiser 1 is
set to NO.
12 Selective Itemiser 2
Selective itemiser 2 is
set to NO.
13 GA sell a weight PLU +250
GA sell a weight PLU
+250 is set to NO.
14 GA misc CASH donation
GA misc CASH donation
is set to NO.
15 GA admission
GA admission is set to
NO.
4. When the Gift Aid script runs for the first time it will create 8 Gift Aid status keys near the
end of the other status keys. To view these status keys in TouchPoint select Program >
All programming > Functiion keys > Status key.
TouchPoint, Program, All programming, function keys, status key Retail Shop
Gift Aid keys illustration
The status key creation status is logged in ICRTouch > Etal > Giftaid2 > output.txt.
The function of the ProgramGADepts status key is to update the Gift Aid PLU range descriptor. This
action only needs to be done once.
Assign the ProgramGADepts status key:
Program Gift Aid
departments
ProgramGADepts
1. In TouchPoint, select Program > Keyboard.
2. Select the Screen level using the arrows.
3. Select an empty button.
4. Select Status key from Choose file type.
5. Scroll down and select ProgramGADepts and select OK.
6. Exit Program mode.
7. In TouchPoint select Sales and then select the keyboard level.
8. Select the ProgramGADepts button to create the Gift Aid department links (this only
needs to be done once).
9. In TouchPoint select Program > All programming > PLU > PLU.
10. Enter the first PLU number to jump to the PLU (or use the arrow keys to scroll down). The
PLUs will be named Dept 1, Dept 2 etc.
TouchPoint, Program, All programming, PLU, PLU Range PLUs illustration
11. Exit Program mode.
The function of Gift Aid admission is to include an optional Gift Aid cash donation with the
purchase of an admission fee/ticket.
An uplift is configured and the customer asked whether they would like to make a voluntary cash
donation to a charitable cause. The charity is allowed to claim an additional 25p for every £1 (from
HM Revenue & Customs) donated under the Gift Aid scheme.
Money raised from this scheme goes towards vital charitable causes. An extra £1 paid under the
scheme can be worth 25% more to the charity as shown below:
Admission type Amount paid by visitor Amount paid by
government Total Received
Gift Aid admission* £11.00 £0.25 £11.25
Standard admission £10.00 £0.00 £10.00
*Gift Aid donations must be supported by a valid Gift Aid declaration - a Gift Aid declaration can
only cover donations made by an individual for themselves and members of their family.
Anyone can pay the Gift Aid on admission price, but the charity can only reclaim the tax on the
admission if the donor is a UK taxpayer. The donor needs to pay enough income tax or capital
gains tax in each tax year to cover the Gift Aid claimed on all their donations to charity. For more
information on the Gift Aid program go to https://www.gov.uk/donating-to-charity/gift-aid.
Gift Aid Admission or charity
membership
Admission
Charity membership fees
The Gift Aid admission functionality is to claim the Gift Aid benefit for charity membership fees.
Add your charitable causes as separates reasons when a customer purchases a ticket.
1. In TouchPoint, select Program > System programming > Reason table.
2. Select an empty reason.
3. Type a reason description.
Configure a reason table
The Gift Aid transaction key allows you to setup how the Gift Aid will be allocated.
1. In TouchPoint, select Program > All programming > Function keys > Transaction key.
2. Select an empty transaction key.
3. Populate the fields using the guidance in the table below:
No Field Description
Create a Gift Aid transaction key
1 Descriptor
GIFTAID.
2 Update keyboard text?
YES.
3 Key type
+AMOUNT.
4 Value
Enter the value of 0.00. The value
of the donation is configured in
the next step.
5 Show reason table
YES.
6 Print extra ticket with
signature strip?
YES.
1. In TouchPoint, select Program > All programming > ETAL > Gift Aid.
2. Select Admission settings.
3. Populate the fields using the guidance in the table below:
No Field Description
Update the Gift Aid admission settings
1 Surcharge admissions
Select YES.
2 Surcharge rate
Enter the surcharge percentage
i.e. 20.000 is 20 percent.
3 Surcharge amount key
Select the surcharge amount key
GIFTAID.
4 Prompt trigger
Select whether to prompt Gift aid
on PLU entry or at the end of the
sale.
4 Max GiftAid no prompts
Select the number of Gift Aid
prompts:
5 GA infoline on receipt?
Select YES.
6 GA amount line
Select YES.
7 GA amount text
Enter the amount text:
1. In TouchPoint, select Program > All programming > PLU > PLU.
2. Select an empty PLU and populate the fields using the guidance below:
No Field Description
Create the PLU
1 Descriptor
Enter a descriptor.
2 1st @ price Enter the admission price.
3 Department link Select the department.
4 Quantity of 1st @ price Select 1.
5 GA Admission Select YES.
1. In TouchPoint, select Program > Keyboard.
2. Select the Screen Level.
3. Select an empty button.
4. Choose PLU from Choose file type.
5. Select the PLU created for Gift Aid.
When the button is selected the teller is prompted to:
1. Include a Gift Aid donation
Assign the PLU to the keyboard
Selling a ticket with Gift Aid admission
2. Enter a postcode:
3. Select the charitable cause:
4. If the donor is found select the donor's address. If the donor is not found the teller will be
prompted to enter the title, first name, last name, house no or name, street, address line
1, address line 2, town/city, county and email address.
The function of the GiftAidDonate status key is to:
1. Register the donor's information.
2. Add new donated Gift Aid items that will be resold in the shop.
Retail Gift Aid - shop
GiftAidDonate status key
3. The GiftAidDonate status key is automatically created by the Etal script and should not be
modified.
To add the functionality to accept donated Gift Aid items that will be sold in a charity shop create
the Run Etal script status key.
1. In TouchPoint, select Program > All programming > Function keys > Status key.
2. Select an empty status key.
3. Populate the fields using the guidance in the table below:
No Setting Description
Donated items to be sold in a shop
1 Descriptor
Enter a description.
2 Update keyboard Text?
Select No.
3 Key type
Select Run Script (Etal).
4 Number
Enter 528.
4. Create the PLU number status key.
5. In TouchPoint, select Program > All programming > Function keys > Status key.
6. Select an empty status key.
7. Populate the fields using the guidance in the table below:
No Setting Description
1 Descriptor
Enter a description.
2 Update keyboard Text?
Select No.
3 Key type
Select PLU number.
4 Use random PLU codes (if no
mem num)?
Select Yes.
8. Assign the status key to the keyboard.
9. In TouchPoint, select Program > Keyboard.
10. Select the keyboard level and then select an empty button.
11. Select Status key from Choose file type.
12. Select the status key number that you created for the Donate GiftAid items status key.
13. Add a button image.
To accept a donated item that will be resold:
1. Enter the donor's postcode:
Registering the donor and accepting a donation
2. If the donor is found select the donor's address. If the donor is not found the teller
will be prompted to enter the title, first name, last name, house no or name, street,
address line 1, address line 2, town/city, county and email address.
3. A summary is displayed. Press ESC to exit:
4. Enter the donated item description:
5. Select the department:
6. Enter the price without the decimal point i.e. 1000 = £10.00.
7. Select Add to add additional Gift Aid stock items:
8. Select EDIT to modify the stock item if there is more than one item being donated.
9. When all stock items have been added select DONE.
10. The labels are printed.
Label components illustration
The function of the GiftAidDonate status key is to:
1. Add stock for recycling.
2. The GiftAidDonate status key is automatically created by the Etal script and should not be
modified.
Gift Aid - recycling
GiftAidDonate status key
To add the functionality to accept donated Gift Aid items that will be recycled create the Run Etal
script status key.
1. In TouchPoint, select Program > All programming > Function keys > Status key.
2. Select an empty status key.
3. Populate the fields using the guidance in the table below:
No Setting Description
Donated items to be recycled
1 Descriptor
Enter a description.
2 Update keyboard Text?
Select No.
3 Key type
Select Run Script (Etal).
4 Number
Enter 528.
4. Create separate departments for each category of recycled items. For example:
GLASS PLASTIC APPLIANCES
CARDBOARD
AND PAPER
METAL BATTERIES
5. In TouchPoint, select Program, All programming > PLU > Department.
6. Select an empty department and enter a description.
No Setting Description
1 Descriptor
Enter a description.
7. Create separate PLUs for each category of recycled items.
GLASS PLASTIC APPLIANCES
CARDBOARD
AND PAPER
METAL BATTERIES
8. In TouchPoint, select Program, All programming > PLU > PLU.
9. Populate the fields using the guidance in the table below:
No Setting Description
1 Descriptor
Enter a description.
2 1st @ price
Enter 1.00.
3 Department link
Select the relevant recycling
department.
4 Group link
Select the relevant recycling
group.
4 Enable preset overide?
Select Yes.
5 High digit limit
Enter 8.
6 PLU is weight PLU?
Select Yes.
7 Allow manual weight entry?
Select Yes.
8 Quantity of 1st @ price
Enter 1.00.
9 GA sell a weight PLU +250
Select Yes.
10 GA misc cash donation
Select No.
11 Ga admission
Select No.
10. Assign the PLU to the keyboard. In TouchPoint, select Program > Keyboard.
11. Select the keyboard level and then select an empty button.
12. Select PLU from Choose file type.
13. Select the PLU that you created in the previous step.
14. Add a button image.
The function of the GiftAidCustBarcode status key is to add a Gift Aid donors information and print
a barcoded label without adding donated stock. The label is printed and the Item entry resolved at
point of sale.
The reasons a charity shop may want this option is:
Administration
GiftAidCustBarcode status key
1. To print out labels with a barcode in preparation for the donation. This saves time when
the donor brings the donated items to the shop or is a regular donor.
2. Stock can sit on the shelf for several weeks or months. By not entering the stock details
at the time of the donation the charity shop can decide the price when a customer
purchases the item.
Assign the GiftAidCustBarcode status key:
1. In TouchPoint, select Program > Keyboard.
2. Select the Screen level using the arrows.
3. Select an empty button.
4. Select Status key from Choose file type.
5. Scroll down and select GiftAidCustBarcode and select OK.
When the button is selected the teller will be prompted to:
1. Enter a postcode:
2. Select a title:
3. Enter a first name:
4. Enter a last name:
5. Enter the house number or name:
6. Enter the street name:
7. Enter address line 1:
8. Enter address line 2:
9. Enter the town or city:
10. Enter the county:
11. Enter the customer's email address:
12. The label is printed.
13. When the donor brings in an item to donate the teller will scan the barcode and be
prompted to choose the department:
The function of the DeclarationTestPrint status key is to test print the Gift Aid declaration..
DeclarationTestPrint status key
The function of the GiftAidCustNo status key is to reprint the donor's barcoded label.
GiftAidCustNo status key
1. In TouchPoint, select Program > Keyboard.
2. Select the Screen Level.
3. Select an empty button.
4. Choose Status key from Choose file type.
5. Scroll down and select GiftAidCustNo and select OK.
6. When the button is pressed the teller will be prompted to:
Enter a customer number:
Enter the quantity of labels required:
The function of the EditGoodPrice status key is to edit the price of a previously added Gift Aid
stock item.
To assign the GiftAid EditGoodPrice status key:
1. In TouchPoint, select Program > Keyboard.
EditGoodPrice status key
2. Select the Screen level using the arrows.
3. Select an empty button.
4. Select Status key from Choose file type.
5. Scroll down and select GiftAid EditGoodPrice and select OK.
6. When the button is selected the teller will be prompted to scan the barcode.
7. Enter the price.
8. Enter the department.
The function of the RePrintLastLabel status key is to reprint the last label.
RePrintLastLabel status key
1. In TouchPoint, select Program > Keyboard.
2. Select the Screen Level.
3. Select an empty button.
4. Choose Status key from Choose file type.
5. Scroll down and select Reprintlastlabel and select OK.
The function of the NonGiftAidDonate status key is not in use.
NonGiftAidDonate status key
Email content
1. In TillConfig select GiftAid > Emails.
2. Select the Email editor button.
3. Position your cursor in the email content area to edit.
Gift Aid donor emails
4. Text in curly brackets are tags that are populated with data by the application - for
example {COMPANY_NAME} will be populated with the company name.
Email editor illustration
Do not hard code information into these tags unless you want them to appear in
every email. For instance, hard coding a donors name will result in all donors being
addressed by that donors name.
5. To add tags position your cursor in the email content where you would like the tag to
appear and select Email tags > Giftaid - select the tag type followed by the tag to insert:
General tags:
- Company name - {COMPANY_NAME}
- End of current tax year - {YYYY}
- Commission percentage - {CP}
- Commission value - {C}
-Customer tags:
- Title - {CUSTOMER_TITLE}
- Firstname - {CUSTOMER_FIRSTNAME}
- Surname - {CUSTOMER_LASTNAME}
Giftaid tags:
- Company name - {COMPANY_NAME}
- End of current tax year - {YYYY}
- Commission percentage - {CP}
- Commission value - {C}
6. Select the paragraph tab and then select the paragraph type:
- Paragraph
- Address
- Pre
- Heading 1
- Heading 2
- Heading 3
- Heading 4
- Heading 5
- Heading 6
7. Select the font family tab and then select the font:
- Andale mon
- Arial
- Arial black
- Book antiqua
- Comic sans MS
- Courier new
- Georgia
- Helvetica
- Impact
- Symbol
- Tahoma
- Terminal
- Times new roman
8. Select the Font sizes tab and then select the size:
- 8pt
- 10pt
- 12pt
- 14pt
- 18pt
- 24 pt
- 36 pt
9. Select Send email automatically for goods sold if you would like to automate the goods
sold email - save.
10. Select Send email manually to push emails immediately.
11. Select Send email automatically for remaining stock if you would like to automate the
stock remaining email - save.
We recommend that you do not select Send email automatically for remaining
stock as an email will be sent to the donor each time an item is sold.
To record damaged stock:
1. In TillConfig, select Gift Aid > Stock Wastage.
2. Record the reason and select the tick box to record as wastage.
Gift Aid wastage
Troubleshooting
The status key creation status is logged in ICRTouch > Etal > Giftaid2 > output.txt.
The function of the Cash donations PLU is to accept cash or credit card donations directly via the
till.
1. Select Program > All programming > PLU > PLU.
2. Select an empty PLU and populate the fields using the guidance below:
No Field Description
Non Gift Aid cash donations
TouchPoint setup
Cash donations PLU
1 Descriptor Enter a description.
2 1st @ price Enter 0.00.
3 Tax rate This is used for tax calculation.
See Tax Table programming.
If the multi tax rates flag is set,
then you will be able to select
any combination of the first 8 tax
rates. Only tax rates with
configured name or a rate will be
shown.
Select No Tax.
4 Enable preset overide? When set, prices can be typed
into the button, for misc buttons
etc. Repeat price when pressed
again (see flag in PLU Control).
Select YES.
5 High digit limit Specifies the maximum number
of digits that can be keyed in
against an open price PLU.
Enter 8.
1. In TouchOffice Web select Products.
2. Select 0 - Head Office from the drop down list.
3. Select the Webshop options tab.
4. Ensure Shop on Webshop is ticked.
5. Select the Edit button under the Web category section.
6. Enter the name of the new category i.e. Adopt an elephant.
7. Save and then select Ok.
8. Make sure the new category is selected and then select the Edit button.
9. Press the pencil icon next to the category.
10. Upload an image, add a description and then select Save.
Edit web categories illustration
Non Gift Aid cash donations
TouchTakeway, ByTable
and ByRetail setup
Webshop options
11. Repeat if you would like to include additional web categories for other charities.
12. Drag and drop to reorder web categories.
Edit web categories illustration
Associate List PLUs with the PLU
You can create sub-web categories with a colon provided they do not exceed 255
characters.
Parent categories can contain a mixture of PLUs and sub-categories if desired. The
parent category must exist in your category list regardless of whether it is linked
directly to the PLU.
13. Select Web List Link 1 from the drop down list box.
14. Select Web List Link 2 from the drop down list box. Repeat if you have set up other List
PLU's.
Refer to the ICRTouch Foundational documentation for more information regarding the
classification, organisation and separation of data.
This is the flag reference manual to be used alongside the data layout manual.
File 1 - PLU
File 5 - Clerk
File 10 - List PLU
File 24 - Tax
File 50 - Fixed Total
File 51 - Finalise Key
File 52 - Transaction Key
File 53 - Status Key
File 54 - Subdepartments
File 59 - Mix & Match 1
File 75 - Keyboard2
File 101 - System Flags
File 149 - Non-PLU Table
File 159 - Mix & Match 2
File 260 - Customer
Flag Reference
Manual
File 270 - Customer Group
File 302 - System Configuration
File 304 - Device connection
File 900 - Journal
34 FLAG1 0x01 Prompt with picture
34 FLAG1 0x02 Prompt with notes
34 FLAG1 0x04 Single item sale
34 FLAG1 0x08 Selective itemiser 1
34 FLAG1 0x10 Selective itemiser 2
34 FLAG1 0x20 Selective itemiser 3
34 FLAG1 0x40 Selective itemiser 4
34 FLAG1 0x80 Selective itemiser 5
Field XML Tag Flag Description
35 FLAG2 0x01 Enable zero price sale
35 FLAG2 0x02 PLU is negative
35 FLAG2 0x04 Enable preset override
35 FLAG2 0x08 PLU is condiment
35 FLAG2 0x10 Do not print on receipts or
bills
35 FLAG2 0x20 PLU is weight PLU
35 FLAG2 0x40 Allow manual weight entry
File 1 - PLU
FLAG1
FLAG2
Field XML Tag Flag Description
35 FLAG2 0x80 Window stays until escape
Field XML Tag Flag Description
36 FLAG3 0x01 Commission 1
36 FLAG3 0x02 Commission 2
36 FLAG3 0x04 Commission 3
36 FLAG3 0x08 Commission 4
36 FLAG3 0x10 List link 6 items enforced
zero price
36 FLAG3 0x20 Set menu premium item
36 FLAG3 0x80 Update keyboard text
Field XML Tag Flag Description
55 FLAG4 0x00000001 Customer verify 1
55 FLAG4 0x00000002 Customer verify 2
55 FLAG4 0x00000004 Marine fuel
55 FLAG4 0x00000008 Generate Range Servant
ball dispenser code
55 FLAG4 0x00000010 Enable SEL printing
55 FLAG4 0x00000020 Pending SEL
Field XML Tag Flag Description
FLAG3
FLAG4
45 STOCKFLAG 0x01 Maintain stock
45 STOCKFLAG 0x02 Error when minimum stock
reached
45 STOCKFLAG 0x04 Inhibit sales when below
minimum stock
45 STOCKFLAG 0x08 Display stock quantity
Field XML Tag Flag Description
64 ALLERGENS 0x00000001 Celery
64 ALLERGENS 0x00000002 Cereals containing gluten
64 ALLERGENS 0x00000004 Crustaceans
64 ALLERGENS 0x00000008 Eggs
64 ALLERGENS 0x00000010 Fish
64 ALLERGENS 0x00000020 Lupin
64 ALLERGENS 0x00000040 Milk
64 ALLERGENS 0x00000080 Molluscs
64 ALLERGENS 0x00000100 Mustard
64 ALLERGENS 0x00000200 Nuts
64 ALLERGENS 0x00000400 Peanuts
64 ALLERGENS 0x00000800 Sesame seeds
STOCKFLAG
ALLERGENS
Field XML Tag Flag Description
64 ALLERGENS 0x00001000 Soya
64 ALLERGENS 0x00002000 Sulphur dioxide
64 ALLERGENS 0x00004000 Allergen 15
64 ALLERGENS 0x00008000 Allergen 16
Field XML Tag Flag Description
49 KPFLAG 0x0001 Print to KP 1
49 KPFLAG 0x0002 Print to KP 2
49 KPFLAG 0x0004 Print to KP 3
49 KPFLAG 0x0008 Print to KP 4
49 KPFLAG 0x0010 Print to KP 5
49 KPFLAG 0x0020 Print to KP 6
49 KPFLAG 0x0040 Print to KP 7
49 KPFLAG 0x0080 Print to KP 8
49 KPFLAG 0x0100 Print to KP 9
49 KPFLAG 0x0200 Print to KP 10
49 KPFLAG 0x0400 Print to KP 11
49 KPFLAG 0x0800 Print to KP 12
49 KPFLAG 0x0FFF Print to KP mask
49 KPFLAG 0x1000 Print in red
KPFLAG
Field XML Tag Flag Description
49 KPFLAG 0x2000 Print to ticket printer 1
49 KPFLAG 0x4000 Print to ticket printer 2
Field XML Tag Flag Description
5 COMPULSIONS 0x0001 Compulsory order number
5 COMPULSIONS 0x0002 Compulsory number of
covers
5 COMPULSIONS 0x0004 Compulsory check number
5 COMPULSIONS 0x0008 Prompt for customer
number
5 COMPULSIONS 0x0010 Prompt for eat in/take out
5 COMPULSIONS 0x0020 Compulsory customer
Field XML Tag Flag Description
6 RESTRICTIONS1 0x0001 Allow use of No Sale
6 RESTRICTIONS1 0x0002 Allow use of Error Correct
6 RESTRICTIONS1 0x0004 Allow use of Void
6 RESTRICTIONS1 0x0008 Allow use of Cancel
6 RESTRICTIONS1 0x0010 Allow use of Refund
6 RESTRICTIONS1 0x0040 Allow use of Price Shift
6 RESTRICTIONS1 0x0080 Allow use of Price Level
Change
6 RESTRICTIONS1 0x0100 Allow use of Menu Level
Shift
File 5 - Clerk
COMPULSIONS
RESTRICTIONS1
Field XML Tag Flag Description
6 RESTRICTIONS1 0x0200 Allow use of View Active
Clerks
6 RESTRICTIONS1 0x0400 Allow use of New Check
6 RESTRICTIONS1 0x0800 Allow use of Old Check
6 RESTRICTIONS1 0x1000 Allow use of New/Old Check
6 RESTRICTIONS1 0x2000 Allow use of Check Transfer
6 RESTRICTIONS1 0x4000 Allow use of Plus Amount
6 RESTRICTIONS1 0x8000 Allow use of Minus Amount
Field XML Tag Flag Description
7 MODECONTROL 0x0001 Allow use of Reg mode
7 MODECONTROL 0x0004 Allow use of Refund mode
7 MODECONTROL 0x0010 Allow use of X mode
7 MODECONTROL 0x0020 Allow use of Z mode
7 MODECONTROL 0x0080 Allow use of Manager mode
7 MODECONTROL 0x0100 Allow use of Program 1
7 MODECONTROL 0x0200 Allow use of Program 2
7 MODECONTROL 0x0400 Allow use of Program 3
7 MODECONTROL 0x0800 Allow use of Program 4
7 MODECONTROL 0x1000 Allow use of Program 5
7 MODECONTROL 0x2000 Allow use of Program 6
MODECONTROL
Field XML Tag Flag Description
8 OPERATION 0x0001 Sign off clerk at close of
sale
8 OPERATION 0x0002 Allowed to open other
clerks checks
8 OPERATION 0x0004 Use drawer 2
8 OPERATION 0x0008 Clerk is manager
8 OPERATION 0x0010 Clerk is trainee
8 OPERATION 0x0020 Default to floorplan at sign
on
8 OPERATION 0x0040 Allowed to correct items
from checks
8 OPERATION 0x0080 Last item error correct only
8 OPERATION 0x0100 Prompt to clock in at sign
on
8 OPERATION 0x0200 Compulsory clocked in
8 OPERATION 0x0400 Use drawer 3
8 OPERATION 0x0800 Non turnover
Field XML Tag Flag Description
9 RESTICTIONS2 0x0001 Allow use of Plus Percent
9 RESTICTIONS2 0x0002 Allow use of Minus Percent
OPERATION
RESTRICTIONS2
Field XML Tag Flag Description
9 RESTICTIONS2 0x0004 Allow use of Exchange
Points
9 RESTICTIONS2 0x0008 Allow use of
Suspend/Resume
9 RESTICTIONS2 0x0010 Allow use of Paid Out
9 RESTICTIONS2 0x0020 Allow use of Received on
Account
9 RESTICTIONS2 0x0040 Allow use of Price Change
9 RESTICTIONS2 0x0080 Allow use of Split Check
9 RESTICTIONS2 0x0100 Allow use of Deposit
9 RESTICTIONS2 0x0200 Allow use of Pay Account
9 RESTICTIONS2 0x0400 Allow use of Customer
Inquiry
9 RESTICTIONS2 0x0800 Allow use of Hot Card
Button
9 RESTICTIONS2 0x1000 Allow use of Customer
Transfer
9 RESTICTIONS2 0x2000 Allow use of Service
Charge Key
9 RESTICTIONS2 0x4000 Allow use of View
Customer Detail
9 RESTICTIONS2 0x8000 Allow use of View Remote
Journal
Field XML Tag Flag Description
10 RESTRICTIONS3 0x0001 Allow use of Credit Card
Capture
10 RESTRICTIONS3 0x0002 Allow use of House Bon
10 RESTRICTIONS3 0x0004 Allow use of View Open
Checks
RESTRICTIONS3
Field XML Tag Flag Description
10 RESTRICTIONS3 0x0008 Allow use of Edit Check
Text
10 RESTRICTIONS3 0x0010 Allow use of Cash2
10 RESTRICTIONS3 0x0020 Allow use of Minimise
10 RESTRICTIONS3 0x0040 Allow use of Menu Level
Shift2
10 RESTRICTIONS3 0x0080 Allow use of Media
Exchange
10 RESTRICTIONS3 0x0100 Allow use of Launch Batch
File
10 RESTRICTIONS3 0x0200 Allow use of Global Eat
In/Take Out
10 RESTRICTIONS3 0x0400 Allow use of Edit Customer
10 RESTRICTIONS3 0x0800 Allow use of Points
Adjustment
10 RESTRICTIONS3 0x1000 Allow use of Customer
Biometrics
10 RESTRICTIONS3 0x2000 Allow use of Preauth
Field XML Tag Flag Description
53 FLAG 0x00000001 Window stays until escape
53 FLAG 0x00000002 Force zero price
Field XML Tag Flag Description
File 10 - List PLU
FLAG
4 FLAG 0x0001 Add in
Field XML Tag Flag Description
File 24 - Tax
FLAG
3 FLAG 0x01 Totaliser is Non-Resetable
3 FLAG 0x02 Totaliser does NOT print on
reports
3 FLAG 0x04
Totaliser does NOT add to
total in drawer (FT 4 - 11)
No currency symbol (Etal
FT 100 - 199)
Field XML Tag Flag Description
File 50 - Fixed Total
FLAG
5 FLAG 0x0001 Open drawer
5 FLAG 0x0002 Inhibit amount tendering
5 FLAG 0x0004 Enforce amount tendering
5 FLAG 0x0008 Enforce subtotal
5 FLAG 0x0010 Automatic receipt printing
5 FLAG 0x0020 Inhibit partial tendering
5 FLAG 0x0040 Print tax breakdown
5 FLAG 0x0080 Prompt for cash back
5 FLAG 0x0100 Warn if a check is open
5 FLAG 0x0200 Tendered amount is Euro
(sub)
5 FLAG 0x0400 Compulsory eat in/take out
5 FLAG 0x0800 Prompt with numeric
keypad
5 FLAG 0x2000 Compulsory non-add
number entry
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
File 51 - Finalise Key
Key type: 1 - Cash
Key type: 2 - Cheque
5 FLAG 0x0001 Open drawer
5 FLAG 0x0002 Inhibit amount tendering
5 FLAG 0x0004 Enforce amount tendering
5 FLAG 0x0008 Enforce subtotal
5 FLAG 0x0010 Automatic receipt printing
5 FLAG 0x0020 Inhibit partial tendering
5 FLAG 0x0040 Print tax breakdown
5 FLAG 0x0080 Print cheque
5 FLAG 0x0100 Warn if a check is open
5 FLAG 0x0200 Tendered amount is Euro
(sub)
5 FLAG 0x0400 Compulsory eat in/take out
5 FLAG 0x0800 Prompt with numeric
keypad
5 FLAG 0x2000 Compulsory non-add
number entry
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Open drawer
5 FLAG 0x0002 Inhibit amount tendering
5 FLAG 0x0004 Enforce amount tendering
Key type: 3 - EFT
Field XML Tag Flag Description
5 FLAG 0x0008 Enforce subtotal
5 FLAG 0x0010 Automatic receipt printing
5 FLAG 0x0020 Inhibit partial tendering
5 FLAG 0x0040 Print tax breakdown
5 FLAG 0x0080 No over tender
5 FLAG 0x0100 Warn if a check is open
5 FLAG 0x0200 Tendered amount is Euro
(sub)
5 FLAG 0x0400 Compulsory eat in/take out
5 FLAG 0x0800 Prompt with numeric
keypad
5 FLAG 0x1000 Prompt for device
5 FLAG 0x2000 Compulsory non-add
number entry
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Open drawer
5 FLAG 0x0002 Inhibit amount tendering
5 FLAG 0x0004 Enforce amount tendering
5 FLAG 0x0008 Enforce subtotal
5 FLAG 0x0010 Automatic receipt printing
Key type: 4 - Account
Field XML Tag Flag Description
5 FLAG 0x0020 Inhibit partial tendering
5 FLAG 0x0040 Print tax breakdown
5 FLAG 0x0080 No tender at partial credit
5 FLAG 0x0100 Warn if a check is open
5 FLAG 0x0200 Tendered amount is Euro
(sub)
5 FLAG 0x0400 Compulsory eat in/take out
5 FLAG 0x0800 Prompt with numeric
keypad
5 FLAG 0x2000 Compulsory non-add
number entry
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Open drawer
5 FLAG 0x0002 Inhibit amount tendering
5 FLAG 0x0004 Enforce amount tendering
5 FLAG 0x0008 Enforce subtotal
5 FLAG 0x0010 Automatic receipt printing
5 FLAG 0x0020 Inhibit partial tendering
5 FLAG 0x0040 Print tax breakdown
Key type: 5 - Hotel Transfer
Field XML Tag Flag Description
5 FLAG 0x0100 Warn if a check is open
5 FLAG 0x0200 Tendered amount is Euro
(sub)
5 FLAG 0x0400 Compulsory eat in/take out
5 FLAG 0x0800 Use booking ref (No, room
number)
5 FLAG 0x2000 Compulsory non-add
number entry
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Open drawer
5 FLAG 0x0002 Inhibit amount tendering
5 FLAG 0x0004 Enforce amount tendering
5 FLAG 0x0008 Enforce subtotal
5 FLAG 0x0010 Automatic receipt printing
5 FLAG 0x0020 Inhibit partial tendering
5 FLAG 0x0040 Print tax breakdown
5 FLAG 0x0100 Warn if a check is open
5 FLAG 0x0200 Tendered amount is Euro
(sub)
5 FLAG 0x0400 Compulsory eat in/take out
Key type: 11 - Cash2
Field XML Tag Flag Description
5 FLAG 0x0800 Prompt with numeric
keypad
5 FLAG 0x1000 Do not display change
5 FLAG 0x2000 Compulsory non-add
number entry
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Open drawer
5 FLAG 0x0008 Enforce subtotal
5 FLAG 0x0010 Automatic receipt printing
5 FLAG 0x0040 Print tax breakdown
5 FLAG 0x0100 Warn if a check is open
5 FLAG 0x0400 Compulsory eat in/take out
5 FLAG 0x2000 Compulsory non-add
number entry
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Key type: 13 - Voucher
5 FLAG 0x0002 Compulsory eat in/take out
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Field XML Tag Flag Description
5 FLAG 0x0001 Allow price increase
5 FLAG 0x0002 Allow price decrease
5 FLAG 0x0004 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x4000 Print extra ticket with
signature strip
File 52 - Transaction Key
Key type: 7 - New Balance
Key type: 9 - Price Change
Key type: 14 - Voucher
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0002 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Force drawer 1
5 FLAG 0x0002 Force drawer 2
5 FLAG 0x0004 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Force drawer 1
Key type: 19 - Media Exchange
Key type: 20 - Paid Out
Key type: 21 - Received on Account
Field XML Tag Flag Description
5 FLAG 0x0002 Force drawer 2
5 FLAG 0x0004 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Force drawer 1
5 FLAG 0x0002 Force drawer 2
5 FLAG 0x0004 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Force drawer 1
5 FLAG 0x0002 Force drawer 2
5 FLAG 0x0004 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Key type: 22 - Deposit
Key type: 23 - Pay Account
Field XML Tag Flag Description
5 FLAG 0x0010 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Allow preset override
5 FLAG 0x0002 Restrict to one use per sale
5 FLAG 0x0004 Allow negative balance
5 FLAG 0x0010 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Allow preset override
5 FLAG 0x0002 Restrict to one use per sale
Key type: 25 - Plus Amount
Key type: 26 - Minus Amount
Key type: 27 - Plus Percent
Field XML Tag Flag Description
5 FLAG 0x0004 Not allowed after item
5 FLAG 0x0008 Not allowed after subtotal
5 FLAG 0x0010 Show reason table
5 FLAG 0x0080 Applies to all products
5 FLAG 0x0100 Applies to selective
itemiser 1
5 FLAG 0x0200 Applies to selective
itemiser 2
5 FLAG 0x0400 Applies to selective
itemiser 3
5 FLAG 0x0800 Applies to selective
itemiser 4
5 FLAG 0x1000 Applies to selective
itemiser 5
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Allow preset override
5 FLAG 0x0002 Restrict to one use per sale
5 FLAG 0x0004 Not allowed after item
5 FLAG 0x0008 Not allowed after subtotal
5 FLAG 0x0010 Show reason table
5 FLAG 0x0080 Discount all products
Key type: 28 - Minus Percent
Field XML Tag Flag Description
5 FLAG 0x0100 Discount selective itemiser
1
5 FLAG 0x0200 Discount selective itemiser
2
5 FLAG 0x0400 Discount selective itemiser
3
5 FLAG 0x0800 Discount selective itemiser
4
5 FLAG 0x1000 Discount selective itemiser
5
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Tendered amount is value
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Adds to points (rather than
subtract points)
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Key type: 29 - Exchange Points
Key type: 31 - Points Adjustment
Field XML Tag Flag Description
5 FLAG 0x0001 Add to tips 2
5 FLAG 0x0002 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Does not affect stock
5 FLAG 0x0002 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Key type: 32 - Tips
Key type: 33 - Refund
Key type: 36 - Cancel
Field XML Tag Flag Description
5 FLAG 0x0001 Complete line void
5 FLAG 0x0002 Show reason table for void
5 FLAG 0x0004 Show reason table for last
item correct
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Force drawer 1
5 FLAG 0x0002 Force drawer 2
5 FLAG 0x0004 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x4000 Print extra ticket with
signature strip
Key type: 37 - Error Correct
Key type: 40 - No Sale
Key type: 64 - EFT Preauth
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Auto new check
5 FLAG 0x0002 Compulsory eat in/take out
5 FLAG 0x0004 Opens tables
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Selected item
Key type: 92 - Check Transfer
Key type: 112 - Reason Table
Key type: 114 - House Bon
Field XML Tag Flag Description
5 FLAG 0x0002 Show reason table
5 FLAG 0x4000 Print extra ticket with
signature strip
5 FLAG 0x8000 Update keyboard text
5 FLAG 0x0001 Print on receipt
5 FLAG 0x0002 Includes service charge
5 FLAG 0x0004 Toggle between local and
Euro (sub)
5 FLAG 0x0008 Subtotal is Euro (sub)
5 FLAG 0x0010 Show end of sale total
window
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
File 53 - Status Key
Key type: 6 - Subtotal
Key type: 8 - Price Inquiry
Key type: 10 - PLU Picture Inquiry
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Print to KP1
5 FLAG 0x0002 Print to KP2
5 FLAG 0x0004 Print to KP3
5 FLAG 0x0008 Print to KP4
5 FLAG 0x0010 Print to KP45
5 FLAG 0x0020 Print to KP6
5 FLAG 0x0040 Print to KP7
Key type: 12 - Stock Inquiry
Key type: 24 - Enable Tax
Key type: 30 - PLU Notes Inquiry
Key type: 41 - Non-add Number
Field XML Tag Flag Description
5 FLAG 0x0080 Print to KP8
5 FLAG 0x0100 Print on receipt
5 FLAG 0x0200 Allow alphanumeric
characters
5 FLAG 0x0400 Print to KP9
5 FLAG 0x0800 Print to KP10
5 FLAG 0x1000 Print on KPs in red
5 FLAG 0x2000 Treat as condiment1
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Generate next order
number
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Print to KP1
5 FLAG 0x0002 Print to KP2
5 FLAG 0x0004 Print to KP3
1. Prior to TouchPoint 76.08 this flag was known as "Use KP status of parent".
Key type: 42 - Order number
Key type: 43 - Text Message
Field XML Tag Flag Description
5 FLAG 0x0008 Print to KP4
5 FLAG 0x0010 Print to KP45
5 FLAG 0x0020 Print to KP6
5 FLAG 0x0040 Print to KP7
5 FLAG 0x0080 Print to KP8
5 FLAG 0x0100 Print on receipt
5 FLAG 0x0200 Send message to terminals
5 FLAG 0x0400 Print to KP9
5 FLAG 0x0800 Print to KP10
5 FLAG 0x1000 Print on KPs in red
5 FLAG 0x2000 Treat as condiment1
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Prompt for customer name
5 FLAG 0x0002 Issue stub receipt
5 FLAG 0x0004 Manual entry only
5 FLAG 0x0008 Print signature strip on
ticket
5 FLAG 0x8000 Update keyboard text
1. Prior to TouchPoint 76.08 this flag was known as "Use KP status of parent".
Key type: 44 - Credit Card Capture
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Print to KP1
5 FLAG 0x0002 Print to KP2
5 FLAG 0x0004 Print to KP3
5 FLAG 0x0008 Print to KP4
Key type: 45 - Fidelity Loyalty Card
Key type: 46 - Change Check Text
Key type: 47 - Edit Customer
Key type: 49 - Preset Text Message
Field XML Tag Flag Description
5 FLAG 0x0010 Print to KP45
5 FLAG 0x0020 Print to KP6
5 FLAG 0x0040 Print to KP7
5 FLAG 0x0080 Print to KP8
5 FLAG 0x0100 Print on receipt
5 FLAG 0x0200 Send message to terminals
5 FLAG 0x0400 Print to KP9
5 FLAG 0x0800 Print to KP10
5 FLAG 0x1000 Print on KPs in red
5 FLAG 0x2000 Treat as condiment1
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Use random codes
5 FLAG 0x0002 Use search dialog
5 FLAG 0x0004 Use QWERTY
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
1. Prior to TouchPoint 76.08 this flag was known as "Use KP status of parent".
Key type: 50 - PLU Number
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Next item only
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Receipt item consolidation
5 FLAG 0x0002 Receipt sort by group
5 FLAG 0x0004 Receipt sort by dept
5 FLAG 0x0008 Receipt sort with totals only
5 FLAG 0x0020 Use receipt printer 2
Key type: 51 - Defer
Key type: 52 - KP Category Shift
Key type: 53 - Seat Number
Key type: 54 - Gift Receipt
Field XML Tag Flag Description
5 FLAG 0x4000 Allow intermediate receipt
printing
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Alphabetical order
5 FLAG 0x0002 Use search dialog
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 View for signed on clerk
only
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 58 - PLU Group Search
Key type: 59 - View Journal
Key type: 61 - Edit Floor Plan
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 62 - Floor Plan
Key type: 63 - Remote Journal View/Tillwatch
Key type: 68 - Suspend
Key type: 69 - Resume
Key type: 70 - Price Shift
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Print on receipt
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001
Use account number
(rather than memory
number)
Key type: 71 - Receipt On/Off
Key type: 72 - Clerk Number
Key type: 73 - Multiply
Key type: 74 - Customer Number
Field XML Tag Flag Description
5 FLAG 0x0002 Use 3rd party customer
server (not ICRTouch)
5 FLAG 0x0004 Use search dialog
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Receipt item consolidation
5 FLAG 0x0002 Receipt sort by group
5 FLAG 0x0004 Receipt sort by department
5 FLAG 0x0008 Receipt sort with totals only
5 FLAG 0x0010 Reprint last EFT receipt
5 FLAG 0x0020 Use receipt printer 2
5 FLAG 0x0040 Opens tables
5 FLAG 0x0100 Bill item consolidation
5 FLAG 0x0200 Bill sort by group
Key type: 75 - Sign Off
Key type: 76 - Receipt Print
Field XML Tag Flag Description
5 FLAG 0x0400 Bill sort by department
5 FLAG 0x0800 Bill print date/time
separator
5 FLAG 0x1000 Bill sort with totals only
5 FLAG 0x2000 Bill print only
5 FLAG 0x4000 Allow intermediate receipts
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Receipt item consolidation
5 FLAG 0x0002 Receipt sort by group
5 FLAG 0x0004 Receipt sort by department
5 FLAG 0x0008 Receipt sort with totals only
5 FLAG 0x0010 Reprint last EFT receipt
5 FLAG 0x0040 Opens tables
Key type: 77 - Download Graphic Logo
Key type: 78 - Slip Print
Field XML Tag Flag Description
5 FLAG 0x0100 Bill item consolidation
5 FLAG 0x0200 Bill sort by group
5 FLAG 0x0400 Bill sort by department
5 FLAG 0x0800 Bill print date/time
separator
5 FLAG 0x1000 Bill sort with totals only
5 FLAG 0x2000 New items only
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0002 Use 3rd party customer
server (not ICRTouch)
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Clear blacklist flag (no sets
flag)
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 79 - Customer Inquiry
Key type: 80 - Customer Hot Card
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Signed on customer only
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 81 - Customer Transfer
Key type: 82 - View Customer Detail
Key type: 83 - Caller ID Logon
Key type: 84 - Customer Biometrics
Key type: 88 - Weight
5 FLAG 0x0002 Get weight from scale
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Auto new check
5 FLAG 0x0002 Do not allow numeric entry
5 FLAG 0x0004 Opens tables
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 90 - Reg Window Down Arrow
Key type: 91 - Reg Window Up Arrow
Key type: 93 - New Check
5 FLAG 0x0004 Opens tables
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Auto new check
5 FLAG 0x0004 Opens tables
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Window stays down until
escape
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 94 - Old Check
Key type: 95 - New/Old Check
Key type: 96 - List PLU
Key type: 97 - Covers
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Removes service charge
5 FLAG 0x0002 Sets service charge
5 FLAG 0x0004 Allow override amount
entry
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 98 - Split Check
Key type: 99 - Service Charge
Key type: 100 - Euro Shift
Key type: 101 - Location
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 102 - Currency Exchange
Key type: 103 - Table Reservation
Key type: 105 - Clock In
Key type: 106 - Clock Out
Key type: 107 - Break In
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Script flag 1
5 FLAG 0x0002 Script flag 2
5 FLAG 0x0004 Script flag 3
5 FLAG 0x0008 Script flag 4
5 FLAG 0x0010 Script flag 5
5 FLAG 0x0020 Script flag 6
5 FLAG 0x0040 Script flag 7
5 FLAG 0x0080 Script flag 8
Key type: 108 - Break Out
Key type: 109 - Validation Print
Key type: 110 - Run Script (Etal)
Field XML Tag Flag Description
5 FLAG 0x0100 Script flag 9
5 FLAG 0x0200 Script flag 10
5 FLAG 0x0400 Script flag 11
5 FLAG 0x0800 Script flag 12
5 FLAG 0x1000 Script flag 13
5 FLAG 0x2000 Script flag 14
5 FLAG 0x4000 Script flag 15
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 111 - Play Macro
Key type: 113 - Set Menu Shift
Key type: 115 - Split Item
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Subtotal after shift
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Subtotal after shift
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 159 - Menu Shift 2
Key type: 160 - Menu Shift
Key type: 161 - Escape
Key type: 162 - Price Level Change
5 FLAG 0x0001 Affects current sale only
5 FLAG 0x0002 Show current price level on
keyboard text
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Exempt tax 1
5 FLAG 0x0002 Exempt tax 1
5 FLAG 0x0004 Exempt tax 1
5 FLAG 0x0008 Exempt tax 1
5 FLAG 0x0010 Exempt tax 1
5 FLAG 0x0020 Shift tax rates (1 - 5 => 6 -
10)
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Exempt tax 1
5 FLAG 0x0002 Exempt tax 1
5 FLAG 0x0004 Exempt tax 1
5 FLAG 0x0008 Exempt tax 1
Key type: 163 - Eat In
Key type: 164 - Take Out
Field XML Tag Flag Description
5 FLAG 0x0010 Exempt tax 1
5 FLAG 0x0020 Shift tax rates (1 - 5 => 6 -
10)
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Use programmed directory
location
5 FLAG 0x0002 Delete file after use
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0002 Show current eat in/take
out record on keyboard text
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Key type: 165 - Sale Item List Import
Key type: 166 - Global Eat In/Take Out
Key type: 172 - Auto Clerk
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Always prompt for number
of bills
5 FLAG 0x0040 Opens tables
5 FLAG 0x0100 Item consolidation
5 FLAG 0x0200 Sort by group
5 FLAG 0x0400 Sort by department
5 FLAG 0x0800 Print date/time separator
5 FLAG 0x1000 Sort with totals only
5 FLAG 0x8000 Update keyboard text
Key type: 173 - View Active Clerks
Key type: 174 - Clerk Change
Key type: 176 - Go Dutch Bill Print
Field XML Tag Flag Description
5 FLAG 0x0001 Print to KP1
5 FLAG 0x0002 Print to KP2
5 FLAG 0x0004 Print to KP3
5 FLAG 0x0008 Print to KP4
5 FLAG 0x0010 Print to KP5
5 FLAG 0x0020 Print to KP6
5 FLAG 0x0040 Print to KP7
5 FLAG 0x0080 Print to KP8
5 FLAG 0x0400 Print to KP9
5 FLAG 0x0800 Print to KP10
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 177 - Send To KP Now
Key type: 178 - Plus Item
5 FLAG 0x0001 Allowed to open check
5 FLAG 0x0002 Show only this clerk's
checks
5 FLAG 0x0100 Show check file 1 (check)
5 FLAG 0x0200 Show check file 2 (table)
5 FLAG 0x0400 Show check file 3 (future)
5 FLAG 0x1000 Show check file 4 (future)
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 195 - View Open Checks
Key type: 196 - View Paid Checks
Key type: 197 - View Receipts
Key type: 198 - View Reports
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Wait until completion
5 FLAG 0x0002 Launch as minimised
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 199 - View Websales
Key type: 209 - Launch Batch File
Key type: 210 - Inline Functions
Key type: 211 - Clerk Functions
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Data backup
5 FLAG 0x0002 Data restore
5 FLAG 0x0004 Location 1 (floppy drive)
5 FLAG 0x0008 Location 2 (data backup
folder)
5 FLAG 0x0010 Location 3 (programmed
location)
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 212 - Send Program
Key type: 213 - Receive Program
Key type: 214 - Data Backup/Restore
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Open drawer when no
amount entered
5 FLAG 0x0002 Add to cash declared fixed
totaliser
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Open drawer when no
amount entered
5 FLAG 0x0002 Add to cash declared fixed
totaliser
5 FLAG 0x0004 Enforce multiply key for
multiple quantity
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 215 - Minimise TouchPoint
Key type: 216 - Cash Declaration
Key type: 217 - Cash Declaration 2
Key type: 218 - End Session
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0004 Prints to display
5 FLAG 0x0008 Prompt for department
range
5 FLAG 0x0010 Prompt for PLU group range
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0004 Prints to display
5 FLAG 0x0008 Prompt for department
range
5 FLAG 0x0010 Prompt for PLU group range
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0004 Prints to display
Key type: 220 - Period 1 Report
Key type: 221 - Period 2 Report
Key type: 222 - Period 3 Report
Field XML Tag Flag Description
5 FLAG 0x0008 Prompt for department
range
5 FLAG 0x0010 Prompt for PLU group range
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0004 Prints to display
5 FLAG 0x1000 Do not print X/Z counter
summary on report
5 FLAG 0x2000 Do not print X/Z counter
summary on journal
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Report for this location only
5 FLAG 0x0002 Report for all locations
5 FLAG 0x0004 Prints to display
5 FLAG 0x0008 Prompt for department
range
5 FLAG 0x0010 Prompt for PLU group range
5 FLAG 0x0020 Report is inline collection
Key type: 224 - Batch Report
Key type: 225 - Inline Period 1 Report
Field XML Tag Flag Description
5 FLAG 0x0040 Report is inline
consolidation
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Report for this location only
5 FLAG 0x0002 Report for all locations
5 FLAG 0x0004 Prints to display
5 FLAG 0x0008 Prompt for department
range
5 FLAG 0x0010 Prompt for PLU group range
5 FLAG 0x0020 Report is inline collection
5 FLAG 0x0040 Report is inline
consolidation
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Report for this location only
5 FLAG 0x0002 Report for all locations
5 FLAG 0x0004 Prints to display
Key type: 226 - Inline Period 2 Report
Key type: 227 - Inline Period 3 Report
Field XML Tag Flag Description
5 FLAG 0x0008 Prompt for department
range
5 FLAG 0x0010 Prompt for PLU group range
5 FLAG 0x0020 Report is inline collection
5 FLAG 0x0040 Report is inline
consolidation
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Report for this location only
5 FLAG 0x0002 Report for all locations
5 FLAG 0x0004 Prints to display
5 FLAG 0x0020 Report is inline collection
5 FLAG 0x0040 Report is inline
consolidation
5 FLAG 0x1000 Do not print X/Z counter
summary on report
5 FLAG 0x2000 Do not print X/Z counter
summary on journal
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 228 - Inline Batch Report
Key type: 230 - Registration Mode
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 231 - X/Z Mode
Key type: 232 - Program Mode
Key type: 233 - Home Mode
Key type: 234 - Close Till Down
Key type: 235 - Refund Mode
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
5 FLAG 0x0001 Open drawer 1
5 FLAG 0x0002 Open drawer 2
5 FLAG 0x0008 Disable drawer alarm
5 FLAG 0x0010 Turn off display
5 FLAG 0x8000 Update keyboard text
Field XML Tag Flag Description
Key type: 236 - Manager Mode
Key type: 238 - Clean Screen
Key type: 239 - Lock Terminal
4 FLAG 0x0001 Don't print total on reports
Field XML Tag Flag Description
File 54 - Subdepartments
FLAG
6 FLAG1 0x00000004 Include old items from
checks
6 FLAG1 0x00000010 Include 2nd & 3rd @ items
6 FLAG1 0x00000020 Warn user when table
starts
6 FLAG1 0x00000040 Price level 1 items only
Field XML Tag Flag Description
14 TIMEFLAG 0x01 Time range applies to
Sunday
14 TIMEFLAG 0x02 Time range applies to
Monday
14 TIMEFLAG 0x04 Time range applies to
Tuesday
14 TIMEFLAG 0x08 Time range applies to
Wednesday
14 TIMEFLAG 0x10 Time range applies to
Thursday
14 TIMEFLAG 0x20 Time range applies to
Friday
14 TIMEFLAG 0x40 Time range applies to
Saturday
14 TIMEFLAG 0x80 Only available in time
range
Field XML Tag Flag Description
File 59 - Mix & Match 1
FLAG1
TIMEFLAG
4 FLAG 0x01 Image instead of text
Field XML Tag Flag Description
File 75 - Keyboard2
FLAG
2 MC1 0x00000001 Compulsory drawer closed
2 MC1 0x00000002 Consolidate REG display
window
2 MC1 0x00000004 Prohibit multiple refunds
2 MC1 0x00000008 Reset consecutive number
after Z1 fixed totaliser reset
2 MC1 0x00000010 Direct entry for option
windows
2 MC1 0x00000020 Auto receipt for refund
mode
2 MC1 0x00000040 Disable clerk interrupts
2 MC1 0x00000080 Zero subtotal opens drawer
2 MC1 0x00000100 Clerk float in location only
2 MC1 0x00000200 Trainee clerk opens drawer
2 MC1 0x00000400 Use price level 1 when no
price in current level
2 MC1 0x00000800 Show end of sale total
window
2 MC1 0x00001000 Only process mix & match
at subtotal
2 MC1 0x00002000
Print extra ticket with
signature strip in refund
mode
2 MC1 0x00004000 Item corrects go to
registration buffer
2 MC1 0x00008000 From checks only (item
corrects)
Field XML Tag Flag Description
File 101 - System Flags
MC1
3 MC2 0x00000001 Net totalising for
PLUs/groups/departments1
3 MC2 0x00000002 IButtons for clerks
3 MC2 0x00000004 IButtons for customers
3 MC2 0x00000100 Disable key press sound
3 MC2 0x00000200 Sign off at removal of
IButton
3 MC2 0x00000400 Manual tax system
3 MC2 0x00001000 Power off at Windows
shutdown
3 MC2 0x00010000 Ignore track 1 magnetic
card swipes
3 MC2 0x00020000 Ignore track 2 magnetic
card swipes
3 MC2 0x00040000 Enable finger print reader
3 MC2 0x00080000 Round EFT sales
3 MC2 0x00100000 Collect contact details
3 MC2 0x00200000 Enable multi tax rates
Field XML Tag Flag Description
5 JOURNALCTRL 0x0001 No journal 2
MC2
1. Removed in TouchPoint 76.00 onwards
JOURNALCTRL
Field XML Tag Flag Description
5 JOURNALCTRL 0x0200 Do not print time on journal
1
5 JOURNALCTRL 0x0400 Do not print consecutive
number on journal1
5 JOURNALCTRL 0x0400 Do not print time on journal
1
5 JOURNALCTRL 0x0800 Do not print consecutive
number on journal1
5 JOURNALCTRL 0x1000 Create CCTV journal
5 JOURNALCTRL 0x2000 Verbose program mode
changes
Field XML Tag Flag Description
6 ORDERCTRL 0x00000001 Automatically calculate
next order number
6 ORDERCTRL 0x00000002 Order numbers only apply
to KP items
6 ORDERCTRL 0x00000004 Print refund mode sales on
KP
6 ORDERCTRL 0x00000010 Auto receipt for KP items
6 ORDERCTRL 0x00000020 Reset order number after
Z1 fixed totaliser reset
6 ORDERCTRL 0x00000040 Compulsory covers only
applies to KP items
6 ORDERCTRL 0x00000100 Prompt for location
6 ORDERCTRL 0x00200000 Enforce order number
when prompted
6 ORDERCTRL 0x00400000 Compulsory check/table for
KP items
1. Removed in TouchPoint 76.00 onwards
ORDERCTRL
Field XML Tag Flag Description
6 ORDERCTRL 0x01000000 Printer supports 180dpi
vertical print
6 ORDERCTRL 0x02000000 Set menu items do not
follow parent
6 ORDERCTRL 0x04000000 Orders go to KP controller
Field XML Tag Flag Description
7 REPORTCTRL 0x00000001 Do not print X count
7 REPORTCTRL 0x00000002 Do not print Z count
7 REPORTCTRL 0x00000004 Compulsory cash
declaration
7 REPORTCTRL 0x00000008 Do not print reports on
journal
7 REPORTCTRL 0x00000010 Do not print report headers
7 REPORTCTRL 0x00000020 Do not print report reset
lines
7 REPORTCTRL 0x00000040 Sort cash declaration
amounts
7 REPORTCTRL 0x00000080 Consolidate cash
declaration amounts
7 REPORTCTRL 0x00000100 Do not print time on reports
1
7 REPORTCTRL 0x00000200 Do not print consecutive
number on reports1
7 REPORTCTRL 0x00000400 Do not print date on reports
1
7 REPORTCTRL 0x00000800 No Z report when active
clerks
7 REPORTCTRL 0x00001000 No Z report when active
checks
7 REPORTCTRL 0x00002000 Skip "Are you sure?" reset
prompt
REPORTCTRL
Field XML Tag Flag Description
7 REPORTCTRL 0x00004000 Do not print random codes
on PLU reports
7 REPORTCTRL 0x00008000 Store reports
7 REPORTCTRL 0x00010000 Print sales ratio on
department reports
7 REPORTCTRL 0x00020000 Print sales ration on PLU
group reports
7 REPORTCTRL 0x00040000 Do not print last date run
Field XML Tag Flag Description
8 CHECKTRACK 0x00000001 Show check number on
table plan1
8 CHECKTRACK 0x00000002 Show covers on table plan1
8 CHECKTRACK 0x00000004 Compulsory covers only
applies to checks
8 CHECKTRACK 0x00000008 Table numbers are checks
8 CHECKTRACK 0x00000010 Allow Z mode open check
report
8 CHECKTRACK 0x00000020 Tracking type is check
tracking
8 CHECKTRACK 0x00000040 Auto receipt for checks
8 CHECKTRACK 0x00000080 Auto new balance at sign
off
8 CHECKTRACK 0x00000100 Do not print time on checks
2
8 CHECKTRACK 0x00000200 Do not print consecutive
number on checks
1. Removed in TouchPoint 76.00 onwards
CHECKTRACK
Field XML Tag Flag Description
8 CHECKTRACK 0x00000400 Do not print date on checks
2
8 CHECKTRACK 0x00000800 Automatic full bill at
finalisation
8 CHECKTRACK 0x00001000 Prompt for text on new
check
8 CHECKTRACK 0x00002000 Prompt for text on new
table
8 CHECKTRACK 0x00004000 Prompt with text when
present
8 CHECKTRACK 0x00008000 Reset auto check number
on Z1 fixed totaliser reset
8 CHECKTRACK 0x00010000 Service charge on selective
item 1
8 CHECKTRACK 0x00020000 Service charge on selective
item 2
8 CHECKTRACK 0x00040000 Service charge on selective
item 3
8 CHECKTRACK 0x00080000 Service charge on selective
item 4
8 CHECKTRACK 0x00100000 Service charge on selective
item 5
8 CHECKTRACK 0x00200000 Service charge on all items
8 CHECKTRACK 0x00400000 Service charge is amount
8 CHECKTRACK 0x00800000 Service charge adds to net
sales
8 CHECKTRACK 0x01000000 Number of covers is 1
when no covers entered
8 CHECKTRACK 0x02000000 Service charge added by
service charge key only
8 CHECKTRACK 0x04000000 Do not print item count on
checks
8 CHECKTRACK 0x08000000 Do not Z reset open check
in batch reports
8 CHECKTRACK 0x10000000 Print barcode on receipt
8 CHECKTRACK 0x20000000 Show check text on
floorplan
Field XML Tag Flag Description
Field XML Tag Flag Description
8 CHECKTRACK 0x40000000 Print check text in double
size
8 CHECKTRACK 0x80000000 Preview floorplan bill prints
Field XML Tag Flag Description
13 CUSTOMERCTRL 0x00000001 Reserved 1
13 CUSTOMERCTRL 0x00000002 Automatically issue a
receipt for customers
13 CUSTOMERCTRL 0x00000004 Allow open balance Z
report
13 CUSTOMERCTRL 0x00000008 Auto create new customers
13 CUSTOMERCTRL 0x00000010 Auto create prompt for
customer group
13 CUSTOMERCTRL 0x00000020 Auto create prompt for
address
13 CUSTOMERCTRL 0x00000040 Auto create prompt for
phone
13 CUSTOMERCTRL 0x00000080 Reserved 2
13 CUSTOMERCTRL 0x00000100 Warn if account customer
finalised not by account
13 CUSTOMERCTRL 0x00000200 Use alphanumeric account
numbers
13 CUSTOMERCTRL 0x00000400 Show called ID information
on display
13 CUSTOMERCTRL 0x00000800 Enable track 1 custom
cards
1. Removed in TouchPoint 78.01 onwards
2. Removed in TouchPoint 76.00 onwards
CUSTOMERCTRL
Field XML Tag Flag Description
13 CUSTOMERCTRL 0x00001000 Enable track 2 custom
cards
13 CUSTOMERCTRL 0x00002000
Search account number for
unknown track 1 card
swipes
13 CUSTOMERCTRL 0x00004000
Search account number for
unknown track 2 card
swipes
13 CUSTOMERCTRL 0x00008000 Auto create new customer
when not found
13 CUSTOMERCTRL 0x00010000 In drawer for account
payments is negative
13 CUSTOMERCTRL 0x00020000 Prompt to post change
amount to account
13 CUSTOMERCTRL 0x00040000 Auto create prompt for
account number
13 CUSTOMERCTRL 0x00080000 Auto create prompt for
mobile phone
13 CUSTOMERCTRL 0x00100000 Auto create prompt for
work phone
13 CUSTOMERCTRL 0x00200000 Auto create prompt for not
allowed selective item 5
13 CUSTOMERCTRL 0x00400000 Auto create prompt for
email address
13 CUSTOMERCTRL 0x00800000 Auto create prompt for
expiry date
13 CUSTOMERCTRL 0x01000000 Auto create prompt for
notes
13 CUSTOMERCTRL 0x02000000 Don't show available
balance at sign on
Field XML Tag Flag Description
14 PRINTCTRL 0x00000001 Print graphic logo
PRINTCTRL
Field XML Tag Flag Description
14 PRINTCTRL 0x00000002 Print receipt header
14 PRINTCTRL 0x00000004 Print commercial message
14 PRINTCTRL 0x00000008 Print bottom message
14 PRINTCTRL 0x00000010 Reserved 1
14 PRINTCTRL 0x00000020 Print report header
14 PRINTCTRL 0x00000040 Print tax symbol
14 PRINTCTRL 0x00000080 Print VAT number
14 PRINTCTRL 0x00000100 Do not print time on
receipts1
14 PRINTCTRL 0x00000200 Do not print consecutive
number on receipts
14 PRINTCTRL 0x00000400 Do not print date on
receipts1
14 PRINTCTRL 0x00000800 Reserved 2
14 PRINTCTRL 0x00001000 Print order number double
height
14 PRINTCTRL 0x00002000 Print order number double
width
14 PRINTCTRL 0x00004000 Do not print item count on
receipts
14 PRINTCTRL 0x00008000 Centre receipt header
14 PRINTCTRL 0x00010000 Centre commercial
message
14 PRINTCTRL 0x00020000 Centre bottom message
14 PRINTCTRL 0x00040000 Centre signature strip
14 PRINTCTRL 0x00080000 Centre VAT number
14 PRINTCTRL 0x00100000 Centre report header
14 PRINTCTRL 0x00200000 Print signature strip on
intermediate bills
Field XML Tag Flag Description
Field XML Tag Flag Description
14 PRINTCTRL 0x00400000 Print signature strip on
final bills
14 PRINTCTRL 0x00800000 Store receipts
14 PRINTCTRL 0x01000000 Print bottom graphic logo
14 PRINTCTRL 0x02000000 Only managers can
duplicate bills
14 PRINTCTRL 0x04000000 Do not print quantity on
condiment items
14 PRINTCTRL 0x08000000 Do not print reason on
receipt
Field XML Tag Flag Description
22 AUTOBROADCAST 0x00000001 Auto broadcast PLUs
22 AUTOBROADCAST 0x00000002 Auto broadcast PLU groups
22 AUTOBROADCAST 0x00000004 Auto broadcast clerks
22 AUTOBROADCAST 0x00000008 Auto broadcast clerk details
22 AUTOBROADCAST 0x00000010 Auto broadcast list PLUs
22 AUTOBROADCAST 0x00000020 Auto broadcast batch
reports
22 AUTOBROADCAST 0x00000040 Auto broadcast receipt
logos
22 AUTOBROADCAST 0x00000080 Auto broadcast scrolling
messages
1. Removed in TouchPoint 76.00 onwards
AUTOBROADCAST
Field XML Tag Flag Description
22 AUTOBROADCAST 0x00000100 Auto broadcast cheque
printing
22 AUTOBROADCAST 0x00000200 Auto broadcast keyboard
level names
22 AUTOBROADCAST 0x00000400 Auto broadcast fixed
characters
22 AUTOBROADCAST 0x00000800 Auto broadcast error
messages
22 AUTOBROADCAST 0x00001000 Auto broadcast fixed
totalisers
22 AUTOBROADCAST 0x00002000 Auto broadcast finalise
keys
22 AUTOBROADCAST 0x00004000 Auto broadcast transaction
keys
22 AUTOBROADCAST 0x00008000 Auto broadcast status keys
22 AUTOBROADCAST 0x00010000 Auto broadcast
departments
22 AUTOBROADCAST 0x00020000 Auto broadcast price level
scheduler
22 AUTOBROADCAST 0x00040000 Auto broadcast keyboard
22 AUTOBROADCAST 0x00080000 Auto broadcast IP printers
22 AUTOBROADCAST 0x00100000 Auto broadcast system
flags
22 AUTOBROADCAST 0x00200000 Auto broadcast customers
22 AUTOBROADCAST 0x00400000 Auto broadcast customer
groups
22 AUTOBROADCAST 0x00800000 Auto broadcast I/O
parameter
22 AUTOBROADCAST 0x01000000 Auto broadcast device
connection
22 AUTOBROADCAST 0x02000000 Auto broadcast floor plan
tables
22 AUTOBROADCAST 0x04000000 Auto broadcast tax table
22 AUTOBROADCAST 0x08000000 Auto broadcast time zones
Field XML Tag Flag Description
Field XML Tag Flag Description
22 AUTOBROADCAST 0x10000000 Auto broadcast non-PLU
22 AUTOBROADCAST 0x20000000 Auto broadcast mix &
match
22 AUTOBROADCAST 0x40000000 Auto broadcast check texts
22 AUTOBROADCAST 0x80000000 Auto broadcast employees
Field XML Tag Flag Description
27 SCANPLUSTATUS 0x00000001 Auto create not found PLUs
27 SCANPLUSTATUS 0x00000002 Lock register at not found
PLU
27 SCANPLUSTATUS 0x00000004 Do not validate check digit
27 SCANPLUSTATUS 0x00000008 Print random code on
receipt
27 SCANPLUSTATUS 0x00000010 Print random code on
journal
27 SCANPLUSTATUS 0x00000020 Disable open priced PLU
repeat
27 SCANPLUSTATUS 0x00000040 Auto create prompt for tax
rate
27 SCANPLUSTATUS 0x00000080 Non turnover sales affects
stock
27 SCANPLUSTATUS 0x00000100 Non turnover sales affects
last time sold
27 SCANPLUSTATUS 0x00000200 Non turnover sales affects
dispense monitoring
27 SCANPLUSTATUS 0x00000400 Non turnover sales prints
to KP
27 SCANPLUSTATUS 0x00000800 Auto create new ISSN
variants
SCANPLUSTATUS
Field XML Tag Flag Description
27 SCANPLUSTATUS 0x00001000 Enable pseudo @ quantities
27 SCANPLUSTATUS 0x00002000 Reason table on customer
verify
27 SCANPLUSTATUS 0x00004000 Enforced tax rate
27 SCANPLUSTATUS 0x00008000 List PLU uses menu level
Field XML Tag Flag Description
31 EFTCONTROL 0x00000001 Prompt for cash back
31 EFTCONTROL 0x00000002 Cash back adds to drawer
totaliser
31 EFTCONTROL 0x00000004 Prompt for gratuity
31 EFTCONTROL 0x00000008 Gratuity adds to drawer
totaliser
31 EFTCONTROL 0x00000010 Allow customer not present
transactions
31 EFTCONTROL 0x00000020 Not used
31 EFTCONTROL 0x00000040 Use bill lodging
31 EFTCONTROL 0x00000080 Use socket mode
31 EFTCONTROL 0x00000100 Not used
31 EFTCONTROL 0x00000200 Use Thyron in portable
mode
31 EFTCONTROL 0x00000400 Bill lodging sends checks
31 EFTCONTROL 0x00000800 Bill lodging sends table
31 EFTCONTROL 0x00001000 Bill lodging only send
printed
EFTCONTROL
Field XML Tag Flag Description
31 EFTCONTROL 0x00002000 Await EFT receipts from
Ocius
31 EFTCONTROL 0x00004000 Use sale ID in merchant
reference
31 EFTCONTROL 0x00008000 Use EFT dialog for CNP
details
31 EFTCONTROL 0x00010000 Prompt for address
31 EFTCONTROL 0x00020000 Process offline transactions
31 EFTCONTROL 0x00040000 Do not print merchant copy
Field XML Tag Flag Description
35 SLIPPRINTCTRL 0x00000002 Print receipt header
35 SLIPPRINTCTRL 0x00000004 Print commercial message
35 SLIPPRINTCTRL 0x00000008 Print bottom message
35 SLIPPRINTCTRL 0x00000040 Print tax symbol
35 SLIPPRINTCTRL 0x00000080 Print VAT number
35 SLIPPRINTCTRL 0x00200000 Print signature strip on
intermediate bills
35 SLIPPRINTCTRL 0x00400000 Print signature strip on
final bills
Field XML Tag Flag Description
SLIPPRINTCTRL
EUROSTATUS
43 EUROSTATUS 0x00000001 Show Euro (sub) total in
reg window
43 EUROSTATUS 0x00000002 Show Euro (sub) total on
receipt
43 EUROSTATUS 0x00000004 Change in Euro (sub)
43 EUROSTATUS 0x00000008 Euro (sub) uses 2nd drawer
43 EUROSTATUS 0x00000010 Show Euro (sub) total on
customer display
43 EUROSTATUS 0x00000020 Show change in both
currencies
43 EUROSTATUS 0x00000040 Currency 1 uses 2nd
drawer
43 EUROSTATUS 0x00000080 Currency 2 uses 2nd
drawer
43 EUROSTATUS 0x00000100 Currency 3 uses 2nd
drawer
43 EUROSTATUS 0x00000200 Currency 4 uses 2nd
drawer
43 EUROSTATUS 0x00000400 Currency 5 uses 2nd
drawer
43 EUROSTATUS 0x00000800 Currency 6 uses 2nd
drawer
43 EUROSTATUS 0x00001000 Currency 7 uses 2nd
drawer
43 EUROSTATUS 0x00002000 Currency 8 uses 2nd
drawer
43 EUROSTATUS 0x00004000 Currency 9 uses 2nd
drawer
43 EUROSTATUS 0x00008000 Currency 10 uses 2nd
drawer
Field XML Tag Flag Description
46 HOTELCONTROL 0x00000001 Post group totals (rather
than departments)
HOTELCONTROL
Field XML Tag Flag Description
46 HOTELCONTROL 0x00000002 Use alphanumeric room
numbers
46 HOTELCONTROL 0x00000004 Use shift allowances
46 HOTELCONTROL 0x00000008 Enclose fields using "" in
CSV export format
46 HOTELCONTROL 0x00000010 Print individual items
46 HOTELCONTROL 0x00000020 Print department/group
totals
46 HOTELCONTROL 0x00000040 Cut ticket after each
posting
46 HOTELCONTROL 0x00000080 Guestline post Z read totals
Field XML Tag Flag Description
57 SPLITREPORTCONTROL 0x00000001 Enable split reporting
57 SPLITREPORTCONTROL 0x00000002 Report 1 adds to period 1
sales
57 SPLITREPORTCONTROL 0x00000004 Report 1 adds to period 2
sales
57 SPLITREPORTCONTROL 0x00000008 Report 1 adds to period 3
sales
57 SPLITREPORTCONTROL 0x00000010 Report 2 adds to period 1
sales
57 SPLITREPORTCONTROL 0x00000020 Report 2 adds to period 2
sales
57 SPLITREPORTCONTROL 0x00000040 Report 2 adds to period 3
sales
57 SPLITREPORTCONTROL 0x00000080 Stop electronic journal 1
during report 2
57 SPLITREPORTCONTROL 0x00000100 Stop electronic journal 2
during report 2
SPLITREPORTCONTROL
Field XML Tag Flag Description
57 SPLITREPORTCONTROL 0x00000200 Stop journal printer during
report 2
57 SPLITREPORTCONTROL 0x00000400 Stop consecutive number
during report 2
57 SPLITREPORTCONTROL 0x00000800 Report 2 uses order
number 2
Field XML Tag Flag Description
92 FIDELITYCONTROL 0x00000001 Enable fidelity loyalty
92 FIDELITYCONTROL 0x00000002 Accept fidelity ID as nonadd
number
106 TICKETISSUANCE 0x00000001 Show price on ticket
106 TICKETISSUANCE 0x00000002 Print ticket number
106 TICKETISSUANCE 0x00000004 Print receipt header
message
106 TICKETISSUANCE 0x00000008 Print 1 line of header
message
106 TICKETISSUANCE 0x00000010 Print receipt bottom
message
106 TICKETISSUANCE 0x00000020 Print 1 line of bottom
message
106 TICKETISSUANCE 0x00000040 Cut ticket
Split reporting was removed in TouchPoint 72.00 onwards
FIDELITYCONTROL
TICKETISSUANCE
Field XML Tag Flag Description
106 TICKETISSUANCE 0x00000080 Dotted line at end of ticket
106 TICKETISSUANCE 0x00000100 Star TSP700 detects start
of ticket
106 TICKETISSUANCE 0x00000200 Print receipt info line
106 TICKETISSUANCE 0x00000400 Info line prints at bottom of
ticket
106 TICKETISSUANCE 0x00000800 Print graphic logo
106 TICKETISSUANCE 0x00001000 Print in double size
106 TICKETISSUANCE 0x00002000 Ticket number resets at Z1
fixed totaliser reset
106 TICKETISSUANCE 0x00004000 Print order info
106 TICKETISSUANCE 0x00008000 Star TSP700 print density
heavy
106 TICKETISSUANCE 0x00010000 Use 3rd@ quantity for
number of tickets
106 TICKETISSUANCE 0x00020000 Increment ticket number
for per item tickets
106 TICKETISSUANCE 0x00040000 Ticket printer 2 uses ticket
number 1
106 TICKETISSUANCE 0x00080000 Print total number of tickets
106 TICKETISSUANCE 0x00100000 Left justify ticket
106 TICKETISSUANCE 0x00200000 Print customer name
106 TICKETISSUANCE 0x00400000 Print customer address
106 TICKETISSUANCE 0x00800000 Print customer phone
number
Field XML Tag Flag Description
TIMEATTENDANCECTRL
117 TIMEATTENDANCECTRL 0x00000001 Log time changes
117 TIMEATTENDANCECTRL 0x00000002 Ignore iffy hours worked
117 TIMEATTENDANCECTRL 0x00000004 Print stub tickets for time
& attendance operations
Field XML Tag Flag Description
119 IRCCONTROL 0x00000001 Auto IRC at startup
119 IRCCONTROL 0x00000002 When auto IRC init, issue
receipt
Field XML Tag Flag Description
121 THIRDPARTYCUSTCONTROL 0x00000001 Enclose fields using " in
.csv format
121 THIRDPARTYCUSTCONTROL 0x00000002 Use track 1 magnetic card
swipes
121 THIRDPARTYCUSTCONTROL 0x00000004 Use track 2 magnetic card
swipes
121 THIRDPARTYCUSTCONTROL 0x00000008 Auto receipt when
customer is used
121 THIRDPARTYCUSTCONTROL 0x00000020 Use rebound barcode
reader
121 THIRDPARTYCUSTCONTROL 0x00000040 Allow alpha account
numbers
IRCCONTROL
THIRDPARTYCUSTCONTROL
DISPENSEMONITORING
128 DISPENSEMONITORING 0x00000001 Enable dispense monitoring
Field XML Tag Flag Description
130 TABLERESERVATIONS 0x00000001 Tables reserved by time
zone
130 TABLERESERVATIONS 0x00000002 Reserved 1
130 TABLERESERVATIONS 0x00000004 Reserved 2
130 TABLERESERVATIONS 0x00000008 Post deposits from
reservation into table
130 TABLERESERVATIONS 0x00000010 Warn user when opening a
table
130 TABLERESERVATIONS 0x00000020 Reserve cashiers not tables
Field XML Tag Flag Description
155 AUTOBROADCAST2 0x00000001 Auto broadcast external
product groups
155 AUTOBROADCAST2 0x00000002 Auto broadcast set menu
155 AUTOBROADCAST2 0x00000004 Auto broadcast KP
categories
155 AUTOBROADCAST2 0x00000008 Auto broadcast reasons
155 AUTOBROADCAST2 0x00000010 Auto broadcast preset
messages
155 AUTOBROADCAST2 0x00000020 Auto broadcast SEL
155 AUTOBROADCAST2 0x00000040 Auto broadcast sub
departments
TABLERESERVATIONS
AUTOBROADCAST2
Field XML Tag Flag Description
158 COINDISPENSECONTROL 0x01 Also display total change in
input window
Field XML Tag Flag Description
163 TABLEANALYSISFLAG 0x0001 Track checks
163 TABLEANALYSISFLAG 0x0002 Track tables
163 TABLEANALYSISFLAG 0x0004 Track departments
163 TABLEANALYSISFLAG 0x0008 Track groups
163 TABLEANALYSISFLAG 0x0010 Store finalised bills
Field XML Tag Flag Description
163 CHECKTRACK2 0x00000001 Service charge applies to
all sales
163 CHECKTRACK2 0x00000002 Calculate service charge
on subtotal
163 CHECKTRACK2 0x00000004 Show date/time line in reg
window
163 CHECKTRACK2 0x00000008 Print transfers to KP
COINDISPENSECONTROL
TABLEANALYSISFLAG
CHECKTRACK2
163 CHECKTRACK2 0x00000010 Set location to floor plan
level on new table
163 CHECKTRACK2 0x00000020 Use alpha check numbers
3 FLAG 0x00000001 Embedded value is weight
Field XML Tag Flag Description
File 149 - Non-PLU Table
FLAG
12 FLAG1 0x00000004 Include old items from
checks
12 FLAG1 0x00000010 Include 2nd & 3rd @ items
12 FLAG1 0x00000020 Warn user when table
starts
12 FLAG1 0x00000040 Price level 1 items only
12 FLAG1 0x00000080 Link items from next table
Field XML Tag Flag Description
20 TIMEFLAG 0x01 Time range applies to
Sunday
20 TIMEFLAG 0x02 Time range applies to
Monday
20 TIMEFLAG 0x04 Time range applies to
Tuesday
20 TIMEFLAG 0x08 Time range applies to
Wednesday
20 TIMEFLAG 0x10 Time range applies to
Thursday
20 TIMEFLAG 0x20 Time range applies to
Friday
20 TIMEFLAG 0x40 Time range applies to
Saturday
20 TIMEFLAG 0x80 Only available in time
range
Field XML Tag Flag Description
File 159 - Mix & Match 2
FLAG1
TIMEFLAG
18 FLAG 0x00000001 Blacklisted
18 FLAG 0x00000002 New customer
18 FLAG 0x00000004 Not allowed selective
itemiser 5 items
Field XML Tag Flag Description
File 260 - Customer
FLAG
When the customer group loyalty type is set to "School Meals", RATE5 houses flags relating to
time zone settings.
7 RATE5 0x0001 Sunday time zone 1
7 RATE5 0x0002 Monday time zone 1
7 RATE5 0x0004 Tuesday time zone 1
7 RATE5 0x0008 Wednesday time zone 1
7 RATE5 0x0010 Thursday time zone 1
7 RATE5 0x0020 Friday time zone 1
7 RATE5 0x0040 Saturday time zone 1
7 RATE5 0x0100 Sunday time zone 2
7 RATE5 0x0200 Monday time zone 2
7 RATE5 0x0400 Tuesday time zone 2
7 RATE5 0x0800 Wednesday time zone 2
7 RATE5 0x1000 Thursday time zone 2
7 RATE5 0x2000 Friday time zone 2
7 RATE5 0x4000 Saturday time zone 2
Field XML Tag Flag Description
File 270 - Customer Group
RATE5
MULTIUSE5
When the customer group loyalty type is set to "School Meals", MULTIUSE5 houses flags relating to
spending.
13 MULTIUSE5 0x0001 Use a morning spend limit
13 MULTIUSE5 0x0002 Use a daily spend limit
13 MULTIUSE5 0x0004 No morning free meal
entitlement
13 MULTIUSE5 0x0008 Tax exempt
13 MULTIUSE5 0x0010 Use a weekly spend limit
Field XML Tag Flag Description
17 FLAG 0x00000001 Print last transaction date
on receipt
17 FLAG 0x00000002 Print spend today on
receipt
17 FLAG 0x00000004 Print times used today on
receipt
17 FLAG 0x00000008 Print spend to date on
receipt
17 FLAG 0x00000010 Print spend to discount on
receipt
17 FLAG 0x00000020 Print discount total on
receipt
17 FLAG 0x00000040 Only print automatic
receipt if discount due
17 FLAG 0x00000080 Print address on receipt
17 FLAG 0x00000100 Print phone number on
receipt
17 FLAG 0x00000200 Account customer
17 FLAG 0x00000400 Print name on KP
17 FLAG 0x00000800 Print address on KP
FLAG
Field XML Tag Flag Description
17 FLAG 0x00001000 Print account number on
receipt
17 FLAG 0x00002000 School can only sign on
during time zone
17 FLAG 0x00004000 Prompt with picture
17 FLAG 0x00008000 Print phone number on KP
17 FLAG 0x00010000 Points apply to subtotal
only
17 FLAG 0x00020000 Award points on whole
pounds only
17 FLAG 0x00040000 Shift to price level 2
17 FLAG 0x00080000 Also print customer details
on KV
17 FLAG 0x00100000 Print notes on KP
Field XML Tag Flag Description
5 FLAG 0x00000001 Clerks float
5 FLAG 0x00000002 Use centralised check
system
5 FLAG 0x00000004 This machine check
backup master
5 FLAG 0x00000010 I am check backup master
5 FLAG 0x00000020 Use centralised customer
totals
5 FLAG 0x00000040 This machine customer
master
5 FLAG 0x00000100 Use centralised time &
attendance master
5 FLAG 0x00000200 This machine time &
attendance master
5 FLAG 0x00000800 Use TCP/IP
5 FLAG 0x00001000 Enable UPNP
5 FLAG 0x00002000 Enable Dynamic DNS
updater
5 FLAG 0x00004000 Enable VNC server
5 FLAG 0x00008000 Enable EHP server
Field XML Tag Flag Description
7 UPNP_FLAG 0x0001 Enabled
File 302 - System
Configuration
FLAG
UPNP_FLAG
Field XML Tag Flag Description
7 UPNP_FLAG 0x0002 Use seed mappings
Field XML Tag Flag Description
77 CONNECT_FLAG 0x00000001 Table reservations
77 CONNECT_FLAG 0x00000002 Webshop
77 CONNECT_FLAG 0x00000004 IDC uploader
77 CONNECT_FLAG 0x00000008 Postcode address lookup
77 CONNECT_FLAG 0x00000010 Text predictions
77 CONNECT_FLAG 0x00000020 TouchTopUp web
77 CONNECT_FLAG 0x00000080 Uploaded non-turnover
sales
77 CONNECT_FLAG 0x00000100 Automatic backup
77 CONNECT_FLAG 0x00000200 Paytable
77 CONNECT_FLAG 0x00000400 Barcode predictions
77 CONNECT_FLAG 0x00000800 Enable stock download
77 CONNECT_FLAG 0x00001000 Online vouchers
77 CONNECT_FLAG 0x00002000 Use SSL
77 CONNECT_FLAG 0x00004000 TouchTopUu is customer
totals master
77 CONNECT_FLAG 0x00008000 Upload program data
changes
Field XML Tag Flag Description
CONNECT_FLAG
146 SOUNDCONTROL 0x00000001 Play sounds for speakers
(rather than buzzer)
146 SOUNDCONTROL 0x00000002 Disable Ctrl + M macro
start
146 SOUNDCONTROL 0x00000004 Search for Dallas iButton
readers
146 SOUNDCONTROL 0x00000008 CCTV Journal output CR
146 SOUNDCONTROL 0x00000010 CCTV Journal output LF
146 SOUNDCONTROL 0x00000020 CCTV Journal persistent
connection
146 SOUNDCONTROL 0x00000040 CCTV Journal output
formatting characters
Field XML Tag Flag Description
147 GRAPHICSCONTROL 0x00000001 Reserved
147 GRAPHICSCONTROL 0x00000002 System contains a mix of
screen sizes
Field XML Tag Flag Description
150 KPCONFIURATION 0x00000001 Print price
150 KPCONFIURATION 0x00000002 Translate KP order
File 304 - Device connection
SOUNDCONTROL
GRAPHICSCONTROL
KPCONFIGURATION
Field XML Tag Flag Description
150 KPCONFIURATION 0x00000004 Do not print English
150 KPCONFIURATION 0x00000008 Insert a line in between KP
items
150 KPCONFIURATION 0x00000010 Print KP in double height
150 KPCONFIURATION 0x00000020 Print KP in double width
150 KPCONFIURATION 0x00000040 Print order number in
double height
150 KPCONFIURATION 0x00000080 Print check/table number
in double height
150 KPCONFIURATION 0x00000100 Condense double size
items when overrun
150 KPCONFIURATION 0x00000200 Compress KP ticket
150 KPCONFIURATION 0x00000400 Auto cut KP ticket
150 KPCONFIURATION 0x00000800 Print dotted line at end of
order
150 KPCONFIURATION 0x00001000 Issue FF at end of order
150 KPCONFIURATION 0x00002000 Sound buzzer at order
150 KPCONFIURATION 0x00004000 Condiments always print
small
150 KPCONFIURATION 0x00008000 Print large time
150 KPCONFIURATION 0x00010000 Consolidate
150 KPCONFIURATION 0x00020000 Consolidate items with
differing condiments
150 KPCONFIURATION 0x00040000 Consolidate set menus
with differing items
150 KPCONFIURATION 0x00100000 Locale use only
150 KPCONFIURATION 0x00200000 Remote use only
150 KPCONFIURATION 0x00400000 CollectionPoint status
150 KPCONFIURATION 0x00800000 Do not send to KP controller
Field XML Tag Flag Description
Field XML Tag Flag Description
150 KPCONFIURATION 0x01000000 Do not print quantity on
condiment items
150 KPCONFIURATION 0x02000000 Print sale total
150 KPCONFIURATION 0x04000000 Is schedulable
Field XML Tag Flag Description
7 FLAG 0x00000001 Condiment item
7 FLAG 0x00000002 Euro item
7 FLAG 0x00000004 Straight number (i.e. check
number)
7 FLAG 0x00000008 No price
7 FLAG 0x00000010 No quantity
7 FLAG 0x00000020 Set menu item
Field XML Tag Flag Description
File 900 - Journal
FLAG
Squirrel Standard Library
Introduction
Input/Output Library
Blob Library
Math Library
System Library
String Library
Squirrel Reference Manual
Introduction
Lexical Structure
Values and Data types
Execution Context
Statements
Expressions
Tables
Etal Developer's
Manual
Arrays
Functions
Classes
Generators
Constants & Enumerations
Threads
Weak References
Delegation
Metamethods
Built-in Functions
ICRTouch Standard Library
Dialog functions
Utility functions
Date functions
Sales mode functions
Data functions
Printing functions
Kitchen printer controller functions
Graphic drawing functions
Device functions
User data functions
Program menu functions
System functions
Display functions
Drawing functions
Email functions
FTP functions
SMS functions
Web functions
Encryption functions
Voucher functions
EHP server functions
System events
Sales mode events
Printing events
XML socket events
Program mode events
Kitchen printer controller events
Display events
Communications events
Table value names
Constant values
Keytype list
Appendix
Squirrel Standard Library
Squirrel Standard Library
Alberto Demichelis
Copyright © 2003-2014 Alberto Demichelis
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the “Software”), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The squirrel standard libraries consist in a set of modules implemented in C++. While are not
essential for the language, they provide a set of useful services that are commonly used by a wide
range of applications(file I/O, regular expressions, etc…), plus they offer a foundation for
developing additional libraries.
All libraries are implemented through the squirrel API and the ANSI C runtime library. The modules
are organized in the following way:
I/O : input and output
blob : binary buffers manipilation
math : basic mathematical routines
system : system access function
string : string formatting and manipulation
Introduction
Introduction
The libraries can be registered independently,except for the IO library that depends from the
bloblib.
Squirrel Standard Library
The input/output library implements basic input/output routines.
dofile(path, [raiseerror]);
Compiles a squirrel script or loads a precompiled one and executes it. Returns the value returned
by the script or null if no value is returned. If the optional parameter raiseerror is true, the
compiler error handler is invoked in case of a syntax error. If raiseerror is omitted or set to false,
the compiler error handler is not invoked. When squirrel is compiled in unicode mode the function
can handle different character encodings, UTF8 with and without prefix and UCS-2 prefixed(both
big endian and little endian). If the source stream is not prefixed UTF8 encoding is used as default.
loadfile(path, [raiseerror]);
Compiles a squirrel script or loads a precompiled one an returns it as as function. If the optional
parameter raiseerror is true, the compiler error handler is invoked in case of a syntax error. If
raiseerror is omitted or set to false, the compiler error handler is not invoked. When squirrel is
compiled in unicode mode the function can handle different character encodings, UTF8 with and
without prefix and UCS-2 prefixed(both big endian and little endian). If the source stream is not
prefixed UTF8 encoding is used as default.
writeclosuretofile(destpath, closure);
Serializes a closure to a bytecode file ( destpath ). The serialized file can be loaded using
loadfile() and dofile() .
File object bound on the os standard error stream.
Input/Output Library
Global Symbols
dofile()
loadfile()
writeclosuretofile()
stderr
stdin
File object bound on the os standard input stream.
File object bound on the os standard output stream.
The file object implements a stream on an operating system file. Its constructor imitates the
behaviour of the C runtime function fopen for eg.
local myfile = file("test.xxx","wb+");
Creates a file with read/write access in the current directory.
close();
Closes the file.
eos();
Returns a non-null value if the read/write pointer is at the end of the stream.
flush();
Flushes the stream. Returns a value != null if succeeded, otherwise returns null.
len();
Returns the length of the stream.
readblob(size);
Read 'n' bytes from the stream and returns them as blob.
readn(type);
stdout
File Class
close()
eos()
flush()
len()
readblob()
readn()
Reads a number from the stream according to the type parameter. type can have the following
values:
'i' 32bit number
's' 16bit signed integer
'w' 16bit unsigned integer
'c' 8bit signed integer
'b' 8bit unsigned integer
'f' 32bit float
'd' 64bit float
seek(seek, [origin]);
Moves the read/write pointer to a specified location. offset indicates the number of bytes from
origin . origin can be 'b' beginning of the stream, 'c' current location or 'e' end of the
stream. If origin is omitted the parameter is defaulted as 'b' (beginning of the stream).
tell();
Returns the read/write pointer absolute position.
writeblob(blob);
Writes a blob in the stream.
writen(n, type);
Writes a number in the stream formatted according to the type parameter. type can have the
following values:
'l'
processor dependant
32bit on 32bit processors
64bit on 64bit processors
seek()
tell()
writeblob()
writen()
'i' 32bit number
's' 16bit signed integer
'w' 16bit unsigned integer
'c' 8bit signed integer
'b' 8bit unsigned integer
'f' 32bit float
'd' 64bit float
Squirrel Standard Library
The blob library implements binary data manipulations routines.
The library is based on blob objects that represent a buffer of arbitrary binary data.
blob(size);
Returns a new instance of a blob class of the specified size in bytes.
castf2i(float);
Casts a float to an integer.
casti2f(integer);
Casts an integer to a float.
swap2(integer);
Swap the byte order of a number (like it would a 16bit integer).
swap4(integer);
Swap the byte order of an integer.
swapfloat(float);
Swap the byte order of a float.
Blob Library
Global Symbols
blob()
castf2i()
casti2f()
swap2()
swap4()
swapfloat()
The blob object is a buffer of arbitrary binary data. The object behaves like a file stream, it has a
read/write pointer and it automatically grows if data is written out of its boundary.
A blob can also be accessed byte by byte through the [] operator.
eos();
Returns a non-null value if the read/write pointer is at the end of the stream.
flush();
Flushes the stream. Returns a value != null if succeeded, otherwise returns null.
len();
Returns the length of the stream.
readblob(size);
Read n bytes from the stream and returns them as a blob.
readn(type);
Reads a number from the stream according to the type parameter. type can have the following
values:
'i' 32bit number
's' 16bit signed integer
'w' 16bit unsigned integer
'c' 8bit signed integer
'b' 8bit unsigned integer
'f' 32bit float
'd' 64bit float
Blob Class
eos()
flush()
len()
readblob()
readn()
resize(size);
Resizes the blob to the specified size .
seek(seek, [origin]);
Moves the read/write pointer to a specified location. offset indicates the number of bytes from
origin . origin can be 'b' beginning of the stream, 'c' current location or 'e' end of the
stream. If origin is omitted the parameter is defaulted as 'b' (beginning of the stream).
swap2();
Swap the byte order of the blob content as it would be an array of 16bit integers.
swap4();
Swap the byte order of the blob content as it would be an array of 32bit integers.
tell();
Returns the read/write pointer absolute position.
writeblob(blob);
Writes a blob in the stream.
writen(n, type);
Writes a number in the stream formatted according to the type parameter. type can have the
following values:
'l'
processor dependant
32bit on 32bit processors
64bit on 64bit processors
resize()
seek()
swap2()
swap4()
tell()
writeblob()
writen()
'i' 32bit number
's' 16bit signed integer
'w' 16bit unsigned integer
'c' 8bit signed integer
'b' 8bit unsigned integer
'f' 32bit float
'd' 64bit float
Squirrel Standard Library
The math library provides basic mathematics routines. The library mimics the C runtime library
implementation.
abs(x);
Returns the absolute value of x as an integer.
acos(x);
Returns the arccosine of x .
asin(x);
Returns the arcsine of x .
atan(x);
Returns the arctangent of x .
atan2(x, y);
Returns the arctangent of x / y .
ceil(x);
Returns a float value representing the smallest integer that is greater than or equal to x .
Math Library
Global Symbols
abs()
acos()
asin()
atan()
atan2()
ceil()
cos(x);
Returns the cosine of x .
exp(x);
Returns the exponential value of float parameter x .
fabs(x);
Returns the absolute value of x as a float.
floor(x);
Returns a float value representing the largest integer that is less and or equal to x .
log(x);
Returns the natural logarithm of x .
log10(x);
Returns the logarithm base-10 of x .
pow(x, y);
Returns x raised to the power of y .
rand();
Returns a pseudorandom integer in the range of 0 to RAND_MAX .
cos()
exp()
fabs()
floor()
log()
log10()
pow()
rand()
sin()
sin(x);
Returns the sine of x .
sqrt(x);
Returns the square root of x .
srand(seed);
Sets the starting point for generating pseudorandom integers.
tan(x);
Returns the tangent of x .
PI
The numeric constant pi (3.141592) is the ratio of the circumference of a circle to its diameter.
RAND_MAX
The maximum value that can be returned by the rand() function.
In Etal, the returned value is 32767.
sqrt()
srand()
tan()
PI
RAND_MAX
Squirrel Standard Library
The system library exposes operating system facilities like environment variables, datetime
manipulation etc.
clock();
Returns a float representing the number of seconds elapsed since the start of the process.
date();
Returns a table containing the current date/time split into the following slots:
sec Seconds after minute (0 -59)
min Minutes after hour (0 - 59)
hour Hours since midnight (0 - 23)
day Day of the month (1 - 31)
month Month (1 - 12; January = 1)
year Year (current year)
wday Day of week (0 - 6; Sunday = 0)
yday Day of year (0 - 365; January 1 = 0)
getenv(varname);
Returns a string containing the value of the environment variable varname .
remove(path);
System Library
Global Symbols
clock()
date()
getenv()
remove()
Deletes the file specified by path .
rename(oldname, newname);
Renames the file or directory specified by oldname to the name given by newname .
system(cmd);
Executes the string cmd through the os command interpreter.
time();
Returns the number of seconds elapsed since midnight 00:00:00, January 1st, 1970.
rename()
system()
time()
Squirrel Standard Library
The string library implements string formatting and regular expression matching routines.
format(formatstr, ...);
Returns a string formatted according formatstr and the optional parameters following it.
The format string follows the same rules as the printf family of C functions (the “*” is not
supported).
For example:
lstrip(str);
Strips white-space-only characters that might appear at the beginning of the given string and
returns the new stripped string.
regexp(pattern);
Compiles a regular expression pattern and returns it as a new regexp class instance.
\ Quote the next metacharacter
^ Match the beginning of the string
. Match any character
$ Match the end of a string
| Alternation
(subexp) Grouping (creates a capture)
String Library
Global Symbols
format()
print(format("%s %d 0x%02X\n","this is a test :",123,10));
this is a test : 123 0x0A
lstrip()
regexp()
(?:subexp) No capture grouping (no capture)
[] Character class
* Match 0 or more times
+ Match 1 or more times
? Match 1 or 0 times
{n} Match exactly n times
{n,} Match at least n times
{n,m} Match at least n but not more than m times
\t Tab (HT, TAB)
\n New line (LF, NL)
\r Return (CR)
\f Form Feed (FF)
Predefined Classes
\l Lowercase next character
\u Uppercase next character
\a Letters
\A Non letters
\w Alphanumeric [_0-9a-zA-Z]
\W Non alphanumeric [^_0-9a-zA-Z]
\s Space
\S Non space
\d Digits
\D Non nondigits
\x Exadecimal digits
\X Non exadecimal digits
\c Control characters
\C Non control characters
\p Punctuation
Greedy Closures
Escape Characters
\P Non punctuation
\b Word boundary
\B Non word boundary
i Case insensitive
g Global
m Multiline
s Single line (dotall)
u Unicode
y Sticky
Regex flags may not be supported.
rstrip()
rstrip(str);
Strips white-space-only characters that might appear at the end of the given string and returns the
new stripped string.
split(str, separators);
Returns an array of string split at each point where a separator character occurs in the str . The
separator is not returned as part of any array element.
The parameter separators is a string that specifies the characters as to be used for the splitting.
For example:
strip(str);
Strips white-space-only characters that might appear at the beginning or end of the given string
and returns the new stripped string.
Regexp Flags
split()
local a = split("1.2-3;4/5",".-/;");
// the result will be ["1","2","3","4","5"]
strip()
The regexp object represents a precompiled regular expression pattern. The object is created
through the function regexp() .
capture(str, [start]);
Returns an array of tables containing two indexes (“begin” and “end”) of the first match of the
regular expression in the string str .
An array entry is created for each captured sub expressions.
If no match occurs, the returned value is null. The search starts from the index start of the string,
if start is omitted the search starts from the beginning of the string.
The first element of the returned array (index 0) always contains the complete match.
match(str);
Returns true if the regular expression matches the string str , otherwise returns false.
search(str, [start]);
Returns a table containing two indexes (“begin” and “end”) of the first match of the regular
expression in the string str , otherwise if no match occurs returns null.
Regexp Class
capture()
Elocal ex = regexp(@"(\d+) ([a-zA-Z]+)(\p)");
local string = "stuff 123 Test;";
local res = ex.capture(string);
foreach(i,val in res)
{
print(format("match number[%02d] %s\n", i, string.slice(val.begin,val.end))); //prints "Test"
}
...will print
match number[00] 123 Test;
match number[01] 123;
match number[02] Test;
match number[03];
match()
search()
The search starts from the index start of the string, if start is omitted the search starts from
the beginning of the string.
local ex = regexp("[a-zA-Z]+");
local string = "123 Test;";
local res = ex.search(string);
print(string.slice(res.begin, res.end)); //prints "Test"
Squirrel Reference Manual
Squirrel Reference Manual
version 3.0.6 release stable
Alberto Demichelis
Extensive review: Wouter Van Oortmersern
Copyright © 2003-2014 Alberto Demichelis
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the “Software”), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Squirrel is a high level imperative-OO programming language, designed to be a powerful scripting
tool that fits in the size, memory bandwidth, and real-time requirements of applications like
games. Although Squirrel offers a wide range of features like dynamic typing, delegation, higher
order functions, generators, tail recursion, exception handling, automatic memory management,
both compiler and virtual machine fit together in about 6k lines of C++ code.
Introduction
Introduction
Squirrel Reference Manual
This part of the document describes the syntax and semantics of the language.
Identifiers start with an alphabetic character or '' followed by any number of alphabetic characters,
'' or digits ([0-9]). Squirrel is a case sensitive language, this means that the lowercase and
uppercase representation of the same alphabetic character are considered different characters.
For instance “foo”, “Foo” and “fOo” will be treated as 3 distinct identifiers.
The following words are reserved words by the language and cannot be used as identifiers:
base break case catch class clone
continue const default delete else enum
extends for foreach function if in
local null resume return switch this
throw try typeof while yield constructor
instanceof true false static
Keywords are covered in detail later in this document.
Squirrel recognizes the following operators:
! != || == && <= >= >
<=> + += - -= / /= *
*= % %= ++ -- <- = &
Lexical Structure
Identifiers
id:= [a-zA-Z_]+[a-zA-Z_0-9]*
Keywords
Operators
^ | ~ >> << >>>
Other tokens used are:
{ } [ ] . : :: ' ; " @"
Squirrel accepts integer numbers, floating point numbers and strings literals.
A comment is text that the compiler ignores but that is useful for programmers.
Comments are normally used to embed annotations in the code. The compiler treats them as
white space.
The /* (slash, asterisk) characters, followed by any sequence of characters (including new lines),
followed by the */ characters. This syntax is the same as ANSI C.
The // (two slashes) characters, followed by any sequence of characters. A new line not
immediately preceded by a backslash terminates this form of comment. It is commonly called a
“single-line comment.”
This to facilitate the use of squirrel in UNIX-style shell scripts.
Other Tokens
Literals
IntegerLiteral := [1-9][0-9]* | '0x' [0-9A-Fa-f]+ | ''' [.]+ ''' | 0[0-7]+
FloatLiteral := [0-9]+ '.' [0-9]+
FloatLiteral := [0-9]+ '.' 'e'|'E' '+'|'-' [0-9]+
StringLiteral:= '"'[.]* '"'
VerbatimStringLiteral:= '@''"'[.]* '"'
Comments
/*
this is
a multiline comment.
this lines will be ignored by the compiler
*/
//this is a single line comment. this line will be ignored by the compiler.
#this is also a single line comment.
Squirrel Reference Manual
Squirrel is a dynamically typed language so variables do not have a type, although they refer to a
value that does have a type. Squirrel basic types are integer, float, string, null, table, array,
function, generator, class, instance, bool, thread and userdata.
An Integer represents a 32 bits (or better) signed number.
A float represents a 32 bits (or better) floating point number.
Strings are an immutable sequence of characters to modify a string is necessary create a new one.
Squirrel's strings, behave like C or C++, are delimited by quotation marks( " ) and can contain
escape sequences( \t,\a,\b,\n,\r,\v,\f,\\,\",\',\0,\xhhhh ).
Verbatim string literals begin with @" and end with the matching quote. Verbatim string literals
also can extend over a line break. If they do, they include any white space characters between the
quotes:
Values and Data types
Integer
local a = 123; //decimal
local b = 0x0012; //hexadecimal
local c = 075; //octal
local d = 'w'; //char code
Float
local a = 1.0;
local b = 0.234;
String
local a = "I'm a wonderful string\n";
// has a newline at the end of the string
local x = @"I'm a verbatim string\n"
// the \n is copied in the string same as \\n in a regular string "I'm a verbatim
The only exception to the “no escape sequence” rule for verbatim string literals is that you can put
a double quotation mark inside a verbatim string by doubling it:
The null value is a primitive value that represents the null, empty, or non-existent reference. The
type Null has exactly one value, called null.
The bool data type can have only two. They are the literals true and false. A bool value expresses
the validity of a condition (tells whether the condition is true or false).
Tables are associative containers implemented as pairs of key/value (called a slot).
Arrays are simple sequence of objects, their size is dynamic and their index starts always from 0.
local multiline = @"
this is a multiline string
it will ""embed"" all the new line
characters
";
Null
local a = null;
Bool
local a = true;
Table
local t={};
local test = {
a = 10,
b = function(a) {
return a + 1;
}
};
Array
local a = ["I'm", "an", "array"];
local b = [null];
b[0] = a[2];
Functions are similar to those in other C-like languages and to most programming languages in
general, however there are a few key differences (see below).
Classes are associative containers implemented as pairs of key/value. Classes are created through
a 'class expression' or a 'class statement'. class members can be inherited from another class
object at creation time. After creation members can be added until a instance of the class is
created.
Class instances are created by calling a class object. Instances, as tables, are implemented as pair
of key/value. Instances members cannot be dyncamically added or removed however the value of
the members can be changed.
Generators are functions that can be suspended with the statement 'yield' and resumed later (see
Generators).
Userdata objects are blobs of memory(or pointers) defined by the host application but stored into
Squirrel variables (See Userdata and UserPointers).
Threads are objects that represents a cooperative thread of execution, also known as coroutines.
Weak References are objects that point to another(non scalar) object but do not own a strong
reference to it. (See Weak References).
Function
Class
Class instance
Generator
Userdata
Thread
Weak References
Squirrel Reference Manual
The execution context is the union of the function stack frame and the function environment
object( this ). The stack frame is the portion of stack where the local variables declared in its body
are stored. The environment object is an implicit parameter that is automatically passed by the
function caller (see Functions). During the execution, the body of a function can only transparently
refer to his execution context. This mean that a single identifier can refer either to a local variable
or to an environment object slot; Global variables require a special syntax (see Variables). The
environment object can be explicitly accessed by the keyword this.
There are two types of variables in Squirrel, local variables and tables/arrays slots. Because global
variables are stored in a table, they are table slots.
A single identifier refers to a local variable or a slot in the environment object.
with tables we can also use the . syntax
Squirrel first checks if an identifier is a local variable (function arguments are local variables) if not
it checks if it is a member of the environment object ( this ).
For instance:
Execution Context
Variables
derefexp := id;
_table["foo"];
_array[10];
derefexp := exp '.' id;
_table.foo;
function testy(arg)
{
local a = 10;
print(a);
return arg;
}
will access to local variable a and prints 10.
in this case foo will be equivalent to this.foo or this["foo"] .
Global variables are stored in a table called the root table. Usually in the global scope the
environment object is the root table, but to explicitly access the global table from another scope,
the slot name must be prefixed with :: ( ::foo ).
For instance:
accesses the global variable foo .
However (since squirrel 2.0) if a variable is not local and is not found in the this object Squirrel
will search it in the root table.
is equivalent to write:
function testy(arg)
{
local a = 10;
return arg + foo;
}
exp:= '::' id;
function testy(arg)
{
local a = 10;
return arg + ::foo;
}
function test()
{
foo = 10;
}
function test()
{
if("foo" in this)
{
this.foo = 10;
}
else
{
::foo = 10;
}
}
Squirrel Reference Manual
A squirrel program is a simple sequence of statements.
Statements in squirrel are comparable to the C-Family languages (C/C++, Java, C# etc…):
assignment, function calls, program flow control structures etc.. plus some custom statement like
yield, table and array constructors (All those will be covered in detail later in this document).
Statements can be separated with a new line or ; (or with the keywords case or default if inside a
switch/case statement), both symbols are not required if the statement is followed by } .
A sequence of statements delimited by curly brackets ({ }) is called block; a block is a statement
itself.
squirrel implements the most common control flow statements: if, while, do-while, switch-case, for,
foreach.
Squirrel has a boolean type(bool) however like C++ it considers null , 0 (integer) and 0.0 (float)
as false, any other value is considered true .
Conditionally execute a statement depending on the result of an expression.
Statements
stats := stat [';'|'\n'] stats
Block
stat := '{' stats '}'
Control Flow Statements
true and false
if/else
stat:= 'if' '(' exp ')' stat ['else' stat]
if(a > b)
{
a = b;
}
Executes a statement while the condition is true.
else
{
b = a;
}
if(a == 10)
{
b = a + b;
return a;
}
while
stat:= 'while' '(' exp ')' stat
function testy(n)
{
local a = 0;
while(a < n)
{
a+=1;
}
while(1)
{
if(a < 0)
{
break;
}
a -= 1;
}
}
do/while
stat:= 'do' stat 'while' '(' expression ')'
Executes a statement once, and then repeats execution of the statement until a condition
expression evaluates to false.
Is a control statement allows multiple selections of code by passing control to one of the case
statements within its body. The control is transferred to the case label whose case_exp matches
with exp if none of the case match will jump to the default label (if present). A switch statement
can contain any number if case instances, if 2 case have the same expression result the first one
will be taken in account first. The default label is only allowed once and must be the last one. A
break statement will jump outside the switch block.
Executes a statement as long as a condition is different than false.
local a = 0;
do
{
print(a + "\n");
a+=1;
} while(a > 100)
switch
stat := 'switch' ''( exp ')' '{'
'case' case_exp ':'
stats
['default' ':'
stats]
'}'
Loops
for
stat:= 'for' '(' [initexp] ';' [condexp] ';' [incexp] ')' statement
for(local a = 0; a < 10; a += 1)
{
print(a + "\n");
}
//or
Executes a statement for every element contained in an array, table, class, string or generator. If
exp is a generator it will be resumed every iteration as long as it is alive; the value will be the
result of 'resume' and the index the sequence number of the iteration starting from 0.
The break statement terminates the execution of a loop (for, foreach, while or do/ while) or jumps
out of switch statement.
glob <- null;
for(glob = 0; glob < 10; glob += 1)
{
print(glob + "\n");
}
//or
for(;;)
{
print(loops forever + "\n");
}
foreach
'foreach' '(' [index_id','] value_id 'in' exp ')' stat
local a = [10, 23, 33, 41, 589, 56];
foreach(idx,val in a)
{
print("index=" + idx + " value=" + val + "\n");
}
//or
foreach(val in a)
{
print("value=" + val + "\n");
}
break
stat := 'break'
The continue operator jumps to the next iteration of the loop skipping the execution of the
following statements.
The return statement terminates the execution of the current function/generator and optionally
returns the result of an expression. If the expression is omitted the function will return null. If the
return statement is used inside a generator, the generator will not be resumable anymore.
(see Generators).
Local variables can be declared at any point in the program; they exist between their declaration
to the end of the block where they have been declared.
EXCEPTION: a local declaration statement is allowed as first expression in a for loop.
creates a new function.
continue
stat := 'continue'
return
stat:= return [Exp]
yield
stat := yield [Exp]
Local variables declaration
initz := id [= exp][',' initz]
stat := 'local' initz
for(local a = 0; a < 10; a += 1)
{
print(a);
}
Function declaration
funcname := id ['::' id]
stat:= 'function' id ['::' id]+ '(' args ')'[':' '(' args ')'] stat
creates a new class.
The try statement encloses a block of code in which an exceptional condition can occur, such as a
runtime error or a throw statement. The catch clause provides the exceptionhandling code. When
a catch clause catches an exception, its id is bound to that exception.
Throws an exception. Any value can be thrown.
Declares a constant (see Constants & Enumerations).
Declares an enumeration (see Constants & Enumerations).
Class declaration
memberdecl := id '=' exp [';'] | '[' exp ']' '=' exp [';'] | functionstat | 'cons
stat:= 'class' derefexp ['extends' derefexp] '{'
[memberdecl]
'}'
try/catch
stat:= 'try' stat 'catch' '(' id ')' stat
throw
stat:= 'throw' Exp
const
stat:= 'const' id '=' 'Integer | Float | StringLiteral
enum
enumerations := ( ‘id’ '=' Integer | Float | StringLiteral ) [‘,’]
stat:= 'enum' id '{' enumerations '}'
expression statement
stat := Exp
In Squirrel every expression is also allowed as statement, if so, the result of the expression is
thrown away.
Squirrel Reference Manual
squirrel implements 2 kind of assignment: the normal assignment( = )
and the “new slot” assignment.
The new slot expression allows to add a new slot into a table(see Tables). If the slot already exists
in the table it behaves like a normal assignment.
Conditionally evaluate an expression depending on the result of an expression.
Squirrel supports the standard arithmetic operators + , - , * , / and % . Other than that is also
supports compact operators ( += , -= , *= , /= , %= ) and increment and decrement operators( ++
and -- ).
Expressions
Assignment(=) & new slot(<-)
exp := derefexp '=' Exp
exp:= derefexp '<-' Exp
a = 10;
a <- 10;
Operators
?: Operator
exp := exp_cond '?' exp1 ':' exp2
Arithmetic
exp:= 'exp' op 'exp'
a += 2; //is the same as writing a = a + 2;
x++ //is the same as writing x = x + 1
All operators work normally with integers and floats; if one operand is an integer and one is a float
the result of the expression will be float. The + operator has a special behavior with strings; if one
of the operands is a string the operator + will try to convert the other operand to string as well
and concatenate both together. For instances and tables, _tostring is invoked.
Relational operators in Squirrel are: == < <= > >= !=
These operators return true if the expression is false and a value different than true if the
expression is true. Internally the VM uses the integer 1 as true but this could change in the future.
the 3 ways compare operator <=> compares 2 values A and B and returns an integer less than 0 if
A < B, 0 if A == B and an integer greater than 0 if A > B.
Logical operators in Squirrel are : && || !
The operator && (logical and) returns null if its first argument is null , otherwise returns its
second argument. The operator || (logical or) returns its first argument if is different than null ,
otherwise returns the second argument. The ! operator will return null if the given value to
negate was different than null , or a value different than null if the given value was null .
Tests the existence of a slot in a table. Returns true if keyexp is a valid key in tableexp
Relational
exp:= 'exp' op 'exp'
3 ways compare
exp:= 'exp' op 'exp'
Logical
exp := exp op Exp
exp := '!' Exp
in operator
exp:= keyexp 'in' tableexp
local t = {
foo = "I'm foo",
[123] = "I'm not foo"
};
Tests if a class instance is an instance of a certain class. Returns true if instanceexp is an instance
of classexp.
returns the type name of a value as string.
The comma operator evaluates two expression left to right, the result of the operator is the result
of the expression on the right; the result of the left expression is discarded.
if("foo" in t)
{
dostuff("yep");
}
if(123 in t)
{
dostuff();
}
instanceof operator
exp:= instanceexp 'instanceof' classexp
typeof operator
exp:= 'typeof' Exp
local a = {}, b = "squirrel";
print(typeof a); // Will print "table"
print(typeof b); // Will print "string"
comma operator
exp:= exp ',' Exp
local j = 0, k = 0;
for(local i = 0; i < 10; i++, j++)
{
k = i + j;
}
Squirrel supports the standard c-like bit wise operators & , | , ^ , ~ , << , >> plus the unsigned
right shift operator >>> . The unsigned right shift works exactly like the normal right shift operator(
>> ) except for treating the left operand as an unsigned integer, so is not affected by the sign.
Those operators only work on integers values, passing of any other operand type to these
operators will cause an exception.
- , ~ , ``, typeof , ++ , -- Highest
/ , * , % …
+ , -
<< , >> , >>>
< , <= , > , >=
== , != , <=>
&
^
|
&& , in
||
?:
+= , = , -= …
, (comma operator) Lowest
Creates a new table.
local a,k;
a = (k = 1, k + 2); // a becomes 3
Bitwise Operators
exp:= 'exp' op 'exp'
exp := '~' Exp
Operators Precedence
Table constructor
tslots := ( ‘id’ ‘=’ exp | ‘[‘ exp ‘]’ ‘=’ exp ) [‘,’]
exp := ‘{’ [tslots] ‘}’
A table constructor can also contain slots declaration; With the syntax:
a new slot with id as key and exp as value is created
An alternative syntax can be
A new slot with exp1 as key and exp2 as value is created
both syntaxes can be mixed
The comma between slots is optional.
Since Squirrel 3.0 is possible to declare a table using JSON syntax(see http://www.
wikipedia.org/wiki/JSON).
The following JSON snippet:
local a = {}; //create an empty table
id = exp [',']
local a = {
slot1 = "I'm the slot value"
};
'[' exp1 ']' = exp2 [',']
local a = {
[1] = "I'm the value"
};
local table = {
a = 10,
b = "string",
[10] = {},
function bau(a, b) {
return a + b;
}
};
Table with JSON syntax
is equivalent to the following squirrel code:
Clone performs shallow copy of a table, array or class instance (copies all slots in the new object
without recursion). If the source table has a delegate, the same delegate will be assigned as
delegate (not copied) to the new table (see Delegation).
After the new object is ready the _cloned meta method is called (see Metamethods). When a class
instance is cloned the constructor is not invoked(initializations must rely on _cloned instead.
Creates a new array.
Arrays can be initialized with values during the construction.
local x = {
"id": 1,
"name": "Foo",
"price": 123,
"tags": ["Bar", "Eek"]
};
local x = {
id = 1,
name = "Foo",
price = 123,
tags = ["Bar", "Eek"]
};
clone
exp:= ‘clone’ Exp
Array constructor
exp := ‘[’ [explist] ‘]’
a <- []; //creates an empty array
a <- [1, "string!", [], {}]; //creates an array with 4 elements
Squirrel Reference Manual
Tables are associative containers implemented as pairs of key/value (called slot); values can be
any possible type and keys any type except null . Tables are squirrel's skeleton, delegation and
many other features are all implemented through this type; event the environment, where global
variables are stored, is a table (known as the root table).
Tables are created through the table constructor (see Table Constructor).
Adding a new slot in an existing table is done through the “new slot” operator <- ; this operator
behaves like a normal assignment except that if the slot does not exist, it will be created.
The following line will cause an exception because the slot named newslot does not exist in the
table a.
This will succeed:
or
Deletion of a slot is done through the keyword delete; the result of this expression will be the
value of the deleted slot.
Tables
Construction
Slot Creation
local a = {};
a.newslot = 1234;
a.newslot <- 1234;
a[1] <- "I'm the value of the new slot";
Slot Deletion
exp := delete derefexp
a <- {
test1 = 1234,
deleteme = "now"
};
delete a.test1;
print(delete a.deleteme); // This will print the string "now".
Squirrel Reference Manual
An array is a sequence of values indexed by an integer number from 0 to the size of the array
minus 1.
Array elements can be obtained through their index.
Resizing, insertion, deletion of arrays and the array's elements is done through a set of standard
function (see built-in functions).
Arrays
local a = [“I’m a string”, 123];
print(typeof a[0]); //prints "string"
print(typeof a[1]); //prints "integer"
Squirrel Reference Manual
Functions are first class values like integer or strings and can be stored in table slots, local
variables, arrays and passed as function parameters. Functions can be implemented in Squirrel or
in a native language with calling conventions compatible with ANSI C.
Functions are declared through the function expression:
or with the syntactic sugar:
that is equivalent to
A local function can be declared with this syntactic sugar
that is equivalent to
Functions
Function Declaration
local a = function(a, b, c) {
return a + b - c;
}
function ciao(a, b, c)
{
return a + b - c;
}
this.ciao <- function(a, b, c) {
return a + b - c;
};
local function tuna(a, b, c) {
return a + b - c;
};
local tuna = function(a, b, c) {
return a + b - c;
is also possible to declare something like
Squirrel's functions can have default parameters.
A function with default parameters is declared as follows:
When the function test is invoked and the parameter c or d are not specified, the VM automatically
assigns the default value to the unspecified parameter. A default parameter can be any valid
squirrel expression. The expression is evaluated at runtime.
Squirrel's functions can have variable number of parameters (varargs functions).
};
T <- {};
function T::ciao(a, b, c)
{
return a + b - c;
}
//that is equivalent to write
T.ciao <- function(a, b, c) {
return a + b - c;
};
//or
T <- {
function ciao(a, b, c)
{
return a + b - c;
}
};
Default Parameters
function test(a, b, c = 10, d = 20)
{
[...]
}
Function With Variable Number of Parameters
A vararg function is declared by adding three dots ( ... ) at the end of it's parameter list.
When the function is called all the extra parameters will be accessible through the array called
vargv , that's is passed as an implicit parameter.
vargv is a regular squirrel array and can be used accordingly.
The expression is evaluated in this order: derefexp after the explist (arguments) and at the end of
the call.
Every function call in Squirrel passes the environment object this as a hidden parameter to the
called function. The this parameter is the object where the function was indexed from.
If we call a function with this syntax
the environment object passed to foo will be table
The environment object will be this (the same of the caller function).
function test(a, b, ...)
{
for(local i = 0; i< vargv.len(); i++)
{
::print("varparam " + i + " = " + vargv[i] + "\n");
}
foreach(i,val in vargv)
{
::print("varparam " + i + " = " + val + "\n");
}
}
test("goes in a", "goes in b", 0, 1, 2, 3, 4, 5, 6, 7, 8);
Function Calls
Exp := derefexp ‘(‘ explist ‘)’
table.foo(a);
foo(x, y); // equivalent to this.foo(x, y);
While by default a squirrel function call passes as environment object this, the object where the
function was indexed from. However, is also possible to statically bind an evironment to a closure
using the built-in method closure.bindenv(env_obj) . The method bindenv() returns a new instance
of a closure with the environment bound to it.
When an environment object is bound to a function, every time the function is invoked, its this
parameter will always be the previously bound environment. This mechanism is useful to
implement callbacks systems similar to C# delegates.
The closure keeps a weak reference to the bound environment object, because of this if the object
is deleted, the next call to the closure will result in a null environment object.
Lambda expressions are a syntactic sugar to quickly define a function that consists of a single
expression. This feature comes handy when functional programming patterns are applied, like
map/reduce or passing a compare method to array.sort() .
Here a lambda expression
that is equivalent to
A more useful usage could be
that could have been written as
Binding an Environment to a Function
Note
Lambda Expressions
exp := '@' '(' paramlist ')' exp
local myexp = @(a,b) a + b;
local myexp = function(a, b) {
return a + b;
}
local arr = [2, 3, 5, 8, 3, 5, 1, 2, 6];
arr.sort(@(a, b) a <=> b);
arr.sort(@(a, b) -(a <=> b));
other than being limited to a single expression lambdas support all features of regular functions. in
fact are implemented as a compile time feature.
A free variable is a variable external from the function scope as is not a local variable or parameter
of the function. Free variables reference a local variable from a outer scope. In the following
example the variables testy , x and y are bound to the function foo.
A program can read or write a free variable.
Tail recursion is a method for partially transforming a recursion in a program into an iteration: it
applies when the recursive calls in a function are the last executed statements in that function
(just before the return). If this happens the squirrel interpreter collapses the caller stack frame
before the recursive call; because of that very deep recursions are possible without risk of a stack
overflow.
local arr = [2, 3, 5 , 8 , 3 , 5 , 1 , 2 , 6];
arr.sort(function(a, b) {
return a <=> b;
});
arr.sort(function(a, b) {
return -(a <=> b);
});
Free Variables
local x = 10, y = 20;
local testy = "I’m testy";
function foo(a, b)
{
::print(testy);
return a + b + x + y;
}
Tail Recursion
function loopy(n)
{
if(n > 0)
{
::print("n=" + n + "\n");
return loopy(n - 1);
}
}
loopy(1000);
Squirrel Reference Manual
Squirrel implements a class mechanism similar to languages like Java/C++/etc… however because
of its dynamic nature it differs in several aspects. Classes are first class objects like integer or
strings and can be stored in table slots local variables, arrays and passed as function parameters.
A class object is created through the keyword class. The class object follows the same declaration
syntax of a table(see tables) with the only difference of using ; as an optional separator rather
than ,.
For instance:
The previous code examples is a syntactic sugar for:
Classes
Class Declaration
class Foo
{
//constructor
constructor(a)
{
testy = ["stuff", 1, 2, 3, a];
}
//member function
function PrintTesty()
{
foreach(i, val in testy)
{
::print("idx = " + i + " = " + val + " \n");
}
}
//property
testy = null;
}
In order to emulate namespaces, is also possible to declare something like this
Foo <- class {
//constructor
constructor(a)
{
testy = ["stuff", 1, 2, 3, a];
}
//member function
function PrintTesty()
{
foreach(i, val in testy)
{
::print("idx = " + i + " = " + val + " \n");
}
}
//property
testy = null;
};
// Just 2 regular nested tables
FakeNamespace <- {
Utils = {}
};
class FakeNamespace.Utils.SuperClass
{
constructor()
{
::print("FakeNamespace.Utils.SuperClass");
}
function DoSomething()
{
::print("DoSomething()");
}
}
After its declaration, methods or properties can be added or modified by following the same rules
that apply to a table(operator <- and = ).
After a class is instantiated is no longer possible to add new properties however is possible to add
or replace methods.
Squirrel's classes support static member variables. A static variable shares its value between all
instances of the class. Statics are declared by prefixing the variable declaration with the keyword
static; the declaration must be in the class body.
Statics are read-only.
function FakeNamespace::Utils::SuperClass::DoSomethingElse()
{
::print("FakeNamespace::Utils::SuperClass::DoSomethingElse()");
}
local testy = FakeNamespace.Utils.SuperClass();
testy.DoSomething();
testy.DoSomethingElse();
//adds a new property
Foo.stuff <- 10;
//modifies the default value of an existing property
Foo.testy = "I'm a string";
//adds a new method
function Foo::DoSomething(a, b)
{
return a + b;
}
Static Variables
Note
class Foo
{
constructor()
{
Classes allow to associate attributes to it's members. Attributes are a form of metadata that can
be used to store application specific informations, like documentations strings, properties for IDEs,
code generators etc… Class attributes are declared in the class body by preceding the member
declaration and are delimited by the symbol </ and /> . Here an example:
Attributes are, a matter of fact, a table. Squirrel uses </ /> syntax instead of curly brackets {}
for the attribute declaration to increase readability.
This means that all rules that apply to tables apply to attributes.
Attributes can be retrieved through the built-in function classobj.getattributes(membername) (see
built-in functions) and can be modified/added through the built-in function
classobj.setattributes(membername,val) .
The following code iterates through the attributes of all Foo members.
//..stuff
}
name = "normal variable";
//static variable
static classname = "The class name is foo";
};
Class Attributes
class Foo </ test = "I'm a class level attribute" />
{
</ test = "freakin attribute" /> // Attributes of PrintTesty
function PrintTesty()
{
foreach(i, val in testy)
{
::print("idx = " + i + " = " + val + " \n");
}
}
</ flippy = 10 , second = [1, 2, 3] /> // Attributes of testy
testy = null;
}
The class objects inherit several of the table's feature with the difference that multiple instances of
the same class can be created. A class instance is an object that shares the same structure of the
table that created it but holds is own values. Class instantiation uses function notation. A class
instance is created by calling a class object. Can be useful to imagine a class like a function that
returns a class instance.
When a class instance is created its members are initialized with the same value specified in the
class declaration. The values are copied verbatim, no cloning is performed even if the value is a
container or a class instances.
For C# and Java programmers:
Squirrel doesn't clone member's default values nor executes the member declaration for each
instace(as C# or java).
So consider this example:
foreach(member, val in Foo)
{
::print(member + "\n");
local attr;
if((attr = Foo.getattributes(member)) != null)
{
foreach(i, v in attr)
{
::print("\t" + i + " = " + (typeof v) + "\n");
}
}
else
{
::print("\t<no attributes>\n")
}
}
Class Instances
// Creates a new instance of Foo
local inst = Foo();
Note
class Foo
In the snippet above both instances will refer to the same array and same table. To achieve what a
C# or Java programmer would expect, the following approach should be taken.
When a class defines a method called constructor, the class instantiation operation will
automatically invoke it for the newly created instance. The constructor method can have
parameters, this will impact on the number of parameters that the instantiation operation will
require. Constructors, like normal functions, can have variable number of parameters (using the
parameter ...).
{
myarray = [1, 2, 3];
mytable = {};
}
local a = Foo();
local b = Foo();
class Foo
{
myarray = null;
mytable = null;
constructor()
{
myarray = [1, 2, 3];
mytable = {};
}
}
local a = Foo();
local b = Foo();
class Rect
{
constructor(w, h)
{
width = w;
height = h;
}
x = 0;
After an instance is created, its properties can be set or fetched following the same rules that
apply to tables. Methods cannot be set.
Instance members cannot be removed.
The class object that created a certain instance can be retrieved through the built-in function
instance.getclass() (see built-in functions).
The operator instanceof tests if a class instance is an instance of a certain class.
Since Squirrel 3.x instanceof doesn't throw an exception if the left expression is not a class, it
simply fails.
Squirrel's classes support single inheritance by adding the keyword extends, followed by an
expression, in the class declaration.
The syntax for a derived class is the following:
y = 0;
width = null;
height = null;
}
//Rect's constructor has 2 parameters so the class has to be 'called'
//with 2 parameters
local rc = Rect(100, 100);
local rc = Rect(100, 100);
if(rc instanceof ::Rect)
{
::print("It's a rect");
}
else
{
::print("It isn't a rect");
}
Note
Inheritance
class SuperFoo extends Foo
{
When a derived class is declared, Squirrel first copies all base's members in the new class then
proceeds with evaluating the rest of the declaration.
A derived class inherit all members and properties of its base if the derived class overrides a base
function the base implementation is shadowed. It's possible to access an overridden method of the
base class by fetching the method from through the base keyword.
Here an example:
Same rule applies to the constructor. The constructor is a regular function (apart from being
automatically invoked on construction).
function DoSomething()
{
::print("I'm doing something");
}
}
class Foo
{
function DoSomething()
{
::print("I'm the base");
}
}
class SuperFoo extends Foo
{
//overridden method
function DoSomething()
{
//calls the base method
base.DoSomething();
::print("I'm doing something");
}
}
class BaseClass
{
constructor()
{
::print("Base constructor\n");
The base class of a derived class can be retrieved through the built-in method getbase() .
Note that because methods do not have special protection policies when calling methods of the
same objects, a method of a base class that calls a method of the same class can end up calling
an overridden method of the derived class.
A method of a base class can be explicitly invoked by a method of a derived class though the
keyword base (as in base.MyMethod() ).
}
}
class ChildClass extends BaseClass
{
constructor()
{
base.constructor();
::print("Child constructor\n");
}
}
local test = ChildClass();
local thebaseclass = SuperFoo.getbase();
class Foo
{
function DoSomething()
{
::print("I'm the base");
}
function DoIt()
{
DoSomething();
}
};
class SuperFoo extends Foo
{
//overridden method
Class instances allow the customization of certain aspects of their semantics through
metamethods(see Metamethods). For C++ programmers: “metamethods behave roughly like
overloaded operators”.
The metamethods supported by classes are: _add , _sub , _mul , _div , _unm , _modulo , _set ,
_get , _typeof , _nexti , _cmp , _call , _delslot , _tostring
Class objects instead support only 2 metamethods: _newmember and _inherited .
The following example show how to create a class that implements the metamethod _add .
function DoSomething()
{
::print("I'm the derived");
}
function DoIt()
{
base.DoIt();
}
}
//creates a new instance of SuperFoo
local inst = SuperFoo();
//prints "I'm the derived"
inst.DoIt();
Metamethods
class Vector3
{
constructor(...)
{
if(vargv.len() >= 3)
{
x = vargv[0];
y = vargv[1];
z = vargv[2];
}
}
Since version 2.1, classes support 2 metamethods _inherited and _newmember . _inherited is
invoked when a class inherits from the one that implements _inherited . _newmember is invoked for
each member that is added to the class(at declaration time).
function _add(other)
{
return ::Vector3(x+other.x,y+other.y,z+other.z);
}
x = 0;
y = 0;
z = 0;
}
local v0 = Vector3(1, 2, 3);
local v1 = Vector3(11, 12, 13);
local v2 = v0 + v1;
::print(v2.x + "," + v2.y + "," + v2.z + "\n");
Squirrel Reference Manual
A function that contains a yield statement is called a “generator function”. When a generator
function is called, it does not execute the function body, instead, it returns a new suspended
generator. The returned generator can be resumed through the resume statement while it is alive.
The yield keyword, suspends the execution of a generator and optionally returns the result of an
expression to the function that resumed the generator. The generator dies when it returns, this
can happen through an explicit return statement or by exiting the function body; If an unhandled
exception (or runtime error) occurs while a generator is running, the generator will automatically
die.
A dead generator cannot be resumed anymore.
The output of this program will be:
Generators
function geny(n)
{
for(local i=0;i<n;i+=1)
{
yield i;
}
return null;
}
local gtor = geny(10);
local x;
while(x=resume gtor)
{
print(x + "\n");
}
0
1
2
3
Generators can also be iterated using the foreach statement. When a generator is evaluated by
foreach, the generator will be resumed for each iteration until it returns.
The value returned by the return statement will be ignored.
A suspended generator will hold a strong reference to all the values stored in its local variables
except the this object that is only a weak reference. A running generator holds a strong
reference also to the this object.
4
5
6
7
8
9
Note
Squirrel Reference Manual
Squirrel allows binding constant values to an identifier that will be evaluated compile-time. This is
achieved through constants and enumerations.
Constants bind a specific value to an identifier. Constants are similar to global values, except that
they are evaluated compile-time and their value cannot be changed.
Constant values can only be integers, floats or string literals. No expressions are allowed.
Constants are declared with the following syntax:
Constants are always globally scoped, from the moment they are declared, any following code can
reference them. Constants will shadow any global slot with the same name( the global slot will
remain visible by using the :: syntax).
As Constants, Enumerations bind a specific value to a name. Enumerations are also evaluated
compile-time and their value cannot be changed.
An enum declaration introduces a new enumeration into the program. Enumerations values can
only be integers, floats or string literals. No expressions are allowed.
or
Constants & Enumerations
Constants
const foobar = 100;
const floatbar = 1.2;
const stringbar = "I'm a contant string";
local x = foobar * 2;
Enumerations
enum Stuff {
first, // This will be 0
second, // This will be 1
third // This will be 2
};
An enum value is accessed in a manner that's similar to accessing a static class member. The
name of the member must be qualified with the name of the enumeration, for example
Stuff.second. Enumerations will shadow any global slot with the same name (the global slot will
remain visible by using the :: syntax).
Enumerations and Constants are a compile-time feature. Only integers, string and floats can be
declared as const/enum; No expressions are allowed(because they would have to be evaluated
compile time). When a const or an enum is declared, it is added compile time to the consttable.
This table is stored in the VM shared state and is shared by the VM and all its threads. The
consttable is a regular squirrel table; In the same way as the roottable it can be modified runtime.
You can access the consttable through the built-in function getconsttable() and also change it
through the built-in function setconsttable().
Here are some examples:
enum Stuff {
first = 10,
second = "string",
third = 1.2
};
local x = Stuff.first * 2;
Implementation notes
// Create a constant
getconsttable()["something"] <- 10";
// Create an enumeration
getconsttable()["somethingelse"] <- {
a = "10",
c = "20",
d = "200"
};
// Deletes the constant
delete getconsttable()["something"];
// Deletes the enumeration
delete getconsttable()["somethingelse"];
This system allows to procedurally declare constants and enumerations, it is also possible to
assign any squirrel type to a constant/enumeration(function,classes etc…).
However this will make serialization of a code chunk impossible.
Squirrel Reference Manual
TouchPoint Etal engine does not support Squirrel Threads
Squirrel supports cooperative threads(also known as coroutines). A cooperative thread is a
subroutine that can be suspended in mid-execution and provide value to the caller without
returning program flow, then its execution can be resumed later from the same point where it was
suspended. At first look a Squirrel thread can be confused with a generator, in fact their behaviour
is quite similar. However, while a generator runs in the caller stack and can suspend only the local
routine stack a thread has its own execution stack, global table and error handler; This allows a
thread to suspend nested calls and have it's own error policies.
Threads are created through the built-in function newthread(func) ; this function gets as parameter
a squirrel function and binds it to the new thread objects(will be the thread body). The returned
thread object is initially in 'idle' state. the thread can be started with the function threadobj.call()
; the parameters passed to call are passed to the thread function.
A thread can be suspended calling the function suspend() when this happens the function that
woke up(or started) the thread returns (If a parameter is passed to suspend() it will be the return
value of the wakeup function, if no parameter is passed the return value will be null). A suspended
thread can be resumed calling the function threadobj.wakeup when this happens the function that
suspended the thread will return(if a parameter is passed to wakeup it will be the return value of
the suspend function if no parameter is passed the return value will be null ).
A thread terminates when its main function returns or when an unhandled exception occurs during
its execution.
Threads
Using Threads
function coroutine_test(a,b)
{
::print(a + " " + b + "\n");
local ret = ::suspend("suspend 1");
::print("the coroutine says " + ret + "\n");
ret = ::suspend("suspend 2");
::print("the coroutine says " + ret + "\n");
The following is an interesting example of how threads and tail recursion can be combined.
ret = ::suspend("suspend 3");
::print("the coroutine says " + ret + "\n");
return "I'm done";
}
local coro = ::newthread(coroutine_test);
local susparam = coro.call("test", "coroutine"); // Starts the coroutine
local i = 1;
do
{
::print("suspend passed (" + susparam + ")\n");
susparam = coro.wakeup("ciao " + i);
++i;
} while(coro.getstatus() == "suspended");
::print("return passed (" + susparam + ")\n")
The result of this program will be:
test coroutine
suspend passed (suspend 1)
the coroutine says ciao 1
suspend passed (suspend 2)
the coroutine says ciao 2
suspend passed (suspend 3)
the coroutine says ciao 3
return passed (I'm done).
function state1()
{
::suspend("state1");
return state2(); // tail call
}
function state2()
{
::suspend("state2");
return state3(); // tail call
}
function state3()
{
::suspend("state3");
return state1(); // tail call
}
local statethread = ::newthread(state1);
::print(statethread.call()+"\n");
for(local i = 0; i < 10000; i++)
{
::print(statethread.wakeup() + "\n");
}
Squirrel Reference Manual
The weak references allow the programmers to create references to objects without influencing
the lifetime of the object itself. In squirrel, Weak references are first-class objects created through
the built-in method obj.weakref() . All types except null implement the weakref() method;
however in books, integers and float the method simply returns the object itself (this because
these types are always passed by value).
When a weak reference is assigned to a container (table slot, array, class or instance) is treated
differently than other objects; When a container slot that holds a weak reference is fetched, it
always returns the value pointed by the weak reference instead of the weak reference object. This
allows the programmer to ignore the fact that the value handled is weak. When the object pointed
by weak reference is destroyed, the weak reference is automatically set to null .
The table slot thearray contains a weak reference to an array. The following line prints “first”,
because tables (and all other containers) always return the object pointed by a weak ref.
The only strong reference to the array is owned by the local variable a, so because the following
line assigns an integer to 'a' the array is destroyed.
When an object pointed by a weak ref is destroyed the weak ref is automatically set to null, so the
following line will print “null”.
If a weak reference is assigned to a local variable, then is treated as any other value.
Weak References
local t = {};
local a = ["first", "second", "third"];
// Creates a weakref to the array and assigns it to a table slot
t.thearray <- a.weakref();
print(t.thearray[0]);
a = 123;
::print(typeof(t.thearray));
Handling Weak References Explicitly
The following line prints “ weakref ”.
The object pointed by the weakref can be obtained through the built-in method weakref.ref() .
The following line prints “ table ”.
local t = {};
local weakobj = t.weakref();
::print(typeof(weakobj))
::print(typeof(weakobj.ref()))
Squirrel Reference Manual
Squirrel supports implicit delegation. Every table or userdata can have a parent table (delegate). A
parent table is a normal table that allows the definition of special behaviours for his child. When a
table (or userdata) is indexed with a key that doesn’t correspond to one of its slots, the interpreter
automatically delegates the get (or set) operation to its parent.
The delegate of a table can be retrieved through the built-in method table.getdelegate() .
Delegation
Entity <- {};
function Entity::DoStuff()
{
::print(_name);
}
local newentity = {
_name = "I’m the new entity"
};
newentity.setdelegate(Entity);
newentity.DoStuff(); //prints "I'm the new entity"
local thedelegate = newentity.getdelegate();
Squirrel Reference Manual
Metamethods are a mechanism that allows the customization of certain aspects of the language
semantics. Those methods are normal functions placed in a table parent (delegate) or class
declaration; Is possible to change many aspects of a table/class instance behaviour by just
defining a metamethod. Class objects(not instances) supports only 2 metamethods _newmember ,
_inherited .
For example, when we use relational operators other than == on 2 tables, the VM will check if the
table has a method in his parent called _cmp if so it will call it to determine the relationship
between the tables.
Metamethods
local comparable = {
_cmp = function (other) {
if(name<other.name)return –1;
if(name>other.name)return 1;
return 0;
}
};
local a = {
name = "Alberto"
}.setdelegate(comparable);
local b = {
name = "Wouter"
}.setdelegate(comparable);
if(a > b)
{
print("a > b");
}
else
{
print("b <= a");
}
For classes the previous code become:
Invoked when the index idx is not present in the object or in its delegate chain. _set must throw
null to notify that a key wasn't found but there were no runtime errors(clean failure). This allows
the program to differentiate between a runtime error and an index not found.
class Comparable {
constructor(n)
{
name = n;
}
function _cmp(other)
{
if(name<other.name) return -1;
if(name>other.name) return 1;
return 0;
}
name = null;
}
local a = Comparable("Alberto");
local b = Comparable("Wouter");
if(a > b)
{
print("a > b");
}
else
{
print("b <= a");
}
_set
function _set(idx,val) //returns val
_get
Invoked when the index idx is not present in the object or in its delegate chain. _get must throw
null to notify that a key wasn't found but there were no runtime errors(clean failure). This allows
the program to differentiate between a runtime error and an 'index not found'.
Invoked when a script tries to add a new slot in a table.
If the slot already exists in the target table the method will not be invoked also if the new slot
operator is used.
Invoked when a script deletes a slot from a table. If the method is invoked squirrel will not try to
delete the slot himself.
The + operator.
The – operator (like _add ).
The * operator (like _add ).
The / operator (like _add ).
The % operator (like _add ).
function _get(idx) //return the fetched values
_newslot
function _newslot(key,value) //returns val
_delslot
function _delslot(key)
_add
function _add(op) //returns this+op
_sub
_mul
_div
_modulo
_unm
The unary minus operator.
Invoked by the typeof operator on tables, userdata and class instances.
Invoked to emulate the < > <= >= operators
Returns an integer:
> 0 If this > other
0 If this == other
< 0 If this < other
Invoked when a table, userdata or class instance is called.
Invoked when a table or class instance is cloned (in the cloned table).
Invoked when a userdata or class instance is iterated by a foreach loop.
If previdx == null it means that it is the first iteration. The function has to return the index of the
next value.
function _unm()
_typeof
function _typeof() //returns the type of this as string
_cmp
function _cmp(other)
_call
function _call(original_this,params…)
_cloned
function _cloned(original)
_nexti
function _nexti(previdx)
Invoked when during string concatenation or when the print function prints a table, instance or
userdata. The method is also invoked by the sq_tostring() API.
Must return a string representation of the object.
Invoked when a class object inherits from the class implementing _inherited the this contains the
new class.
Return value is ignored.
Invoked for each member declared in a class body(at declaration time).
If the function is implemented, members will not be added to the class.
_tostring
function _tostring()
_inherited
function _inherited(attributes)
_newmember
function _newmember(index, value, attributes, isstatic)
Squirrel Reference Manual
The squirrel virtual machine has a set of built utility functions.
array(size, [fill]);
Creates and returns an array of a specified size . If the optional parameter fill is specified its
value will be used to fill the new array's slots. If the fill parameter is omitted null is used
instead.
seterrorhandler(func);
Sets the runtime error handler.
callee();
Returns the currently running closure.
setdebughook(hook_func);
Sets the debug hook.
enabledebuginfo(enable);
Enable/disable the debug line information generation at compile time.
enable != null enables. enable == null disables.
getroottable();
Returns the root table of the VM.
Built-in Functions
Global symbols
array()
seterrorhandler()
callee()
setdebughook()
enabledebuginfo()
getroottable()
setroottable(table);
Sets the root table of the VM and returns the previous root table.
getconsttable();
Returns the const table of the VM.
setconsttable(table);
Sets the const table of the VM. And returns the previous const table.
assert(Exp);
Throws an exception if exp is null.
print(x);
Prints x in the standard output.
error(x);
Prints x in the standard error output.
compilestring(string, [buffername]);
Compiles a string containing a squirrel script into a function and returns it.
collectgarbage();
setroottable()
getconsttable()
setconsttable()
assert()
print()
error()
compilestring()
local compiledscript = compilestring("::print(\"ciao\")");
//run the script
compiledscript();
collectgarbage()
Runs the garbage collector and returns the number of reference cycles found (and deleted) This
function only works on garbage collector builds.
resurrectunreachable();
Runs the garbage collector and returns an array containing all unreachable object found. If no
unreachable object is found, null is returned instead. This function is meant to help debugging
reference cycles. This function only works on garbage collector builds.
type(obj);
Returns the 'raw' type of an object without invoking the metamethod _typeof .
getstackinfos(level);
Returns the stack information of a given call stack level.
Returns a table formatted as follows:
level = 0 is the current function, level = 1 is the caller and so on. If the stack level doesn't exist
the function returns null .
newthread(threadfunc);
Creates a new cooperative thread object(coroutine) and returns it.
_versionnumber_
resurrectunreachable()
type()
getstackinfos()
{
func = "DoStuff", //function name
src = "test.nut", //source file
line = 10, //line number
locals = { // a table containing the local variables
a = 10,
testy = "I'm a string"
};
}
newthread()
_versionnumber_
Integer values describing the version of VM and compiler. eg. for Squirrel 3.0.1 this value will be
301.
_version_
String values describing the version of VM and compiler.
_charsize_
Size in bytes of the internal VM representation for characters (1 for ASCII builds 2 for UNICODE
builds).
_intsize_
Size in bytes of the internal VM representation for integers (4 for 32bits builds 8 for 64bits builds).
_floatsize_
Size in bytes of the internal VM representation for floats (4 for single-precision builds 8 for double
precision builds).
Except null and userdata every squirrel object has a default delegate containing a set of functions
to manipulate and retrieve information from the object itself.
integer.tofloat();
Convert the number to float and returns it.
integer.tostring();
Converts the number to string and returns it.
integer.tointeger();
_version_
_charsize
_intsize_
_floatsize_
Default delegates
Integer
tofloat()
tostring()
tointeger()
Returns the value of the integer (dummy function).
integer.tochar();
Returns a string containing a single character represented by the integer.
integer.toutf8();
Returns a string containing the utf8 representation of the unicode codepoint represented by the
integer.
integer.weakref();
Dummy function, returns the integer itself.
float.tofloat();
Returns the value of the float (dummy function).
float.tointeger();
Converts the number to integer and returns it.
float.tostring();
Converts the number to string and returns it.
float.tochar();
Returns a string containing a single character represented by the integer part of the float.
float.weakref();
Dummy function, returns the float itself.
tochar()
toutf8()
weakref()
Float
tofloat()
tointeger()
tostring()
tochar()
weakref()
boolean.tofloat();
Returns 1.0 for true, 0.0 for false.
boolean.tointeger();
Returns 1 for true, 0 for false.
boolean.tostring();
Returns “true” for true, “false” for false.
boolean.weakref();
Dummy function, returns the bool itself.
string.len();
Returns the string length.
string.tointeger();
Converts the string to integer and returns it.
string.tofloat();
Converts the string to float and returns it.
string.tostring();
Returns the string (dummy function)
Boolean
tofloat()
tointeger()
tostring()
weakref()
String
len()
tointeger()
tofloat()
tostring()
slice()
string.slice(start, [end]);
Returns a section of the string as a new string.
Copies from start to the end (not included).
If start is negative the index is calculated as length + start .
If end is negative the index is calculated as length + end .
If end is omitted end is equal to the string length .
string.find(substr, [startidx]);
Search a substring( substr ) starting from the index( startidx )and returns the index of its first
occurrence. If startidx is omitted the search operation starts from the beginning of the string.
The function returns null if substr is not found.
string.tolower();
Returns a lowercase copy of the string.
string.toupper();
Returns a uppercase copy of the string.
string.weakref();
Returns a weak reference to the object.
table.len();
Returns the number of slots contained in a table.
table.rawget(key);
Tries to get a value from the slot key without employing delegation.
table.rawset(key, val);
find()
tolower()
toupper()
weakref()
Table
len()
rawget()
rawset()
Sets the slot ‘ key ’ with the value val without employing delegation. If the slot does not exist, it
will be created.
table.rawdelete();
Deletes the slot key without employing delegation and returns its value. If the slot does not exist
returns always null.
table.rawin(key);
Returns true if the slot key exists. The function has the same effect as the operator in but does not
employ delegation.
table.weakref();
Returns a weak reference to the object.
Tries to invoke the _tostring metamethod, if failed. returns “ (table : pointer) ”.
table.clear();
Removes all the slots from the table.
table.setdelegate(table);
Sets the delegate of the table, to remove a delegate null must be passed to the function. The
function returns the table itself (eg. a.setdelegate(b) in this case a is the return value).
table.getdelegate();
Returns the table's delegate or null if no delegate was set.
rawdelete()
rawin()
weakref()
tostring()
table.tostring();
clear()
setdelegate()
getdelegate()
Array
len()
array.len();
Returns the length of the array.
array.append(val);
Appends the value val at the end of the array.
array.push(val);
Appends the value val at the end of the array.
array.extend(array);
Extends the array by appending all the items in the given array.
array.pop();
Removes a value from the back of the array and returns it.
array.top();
Returns the value of the array with the higher index.
array.insert(idx, val);
Inserts the value val at the position idx in the array.
array.remove(idx);
Removes the value at the position idx in the array.
array.resize(size, [fill]);
Resizes the array, if the optional parameter fill is specified its value will be used to fill the new
array's slots (if the size specified is bigger than the previous size). If the fill parameter is
omitted null is used instead.
append()
push()
extend()
pop()
top()
insert()
remove()
resize()
array.sort([compare_func]);
Sorts the array. a custom compare function can be optionally passed.
The function prototype as to be the following:
A more compact version of a custom compare can be written using a lambda expression and the
operator <=> :
array.reverse();
Reverse the elements of the array in place.
array.slice(start, [end]);
Returns a section of the array as a new array. Copies from start to the end (not included).
If start is negative the index is calculated as length + start .
If end is negative the index is calculated as length + end .
If end is omitted end is equal to the array length.
array.weakref();
Returns a weak reference to the object.
array.tostring();
Returns the string “ (array : pointer) ”.
sort()
function custom_compare(a, b)
{
if(a > b) return 1;
else if(a<b) return -1;
return 0;
}
arr.sort(@(a, b) a <=> b);
reverse()
slice()
weakref()
tostring()
clear()
array.clear();
Removes all the items from the array.
array.map(func(a));
Creates a new array of the same size. For each element in the original array invokes the function
func and assigns the return value of the function to the corresponding element of the newly
created array.
array.apply(func(a));
For each element in the array invokes the function func and replace the original value of the
element with the return value of the function.
array.reduce(func(prevval, curval));
Reduces an array to a single value. For each element in the array invokes the function func
passing the initial value (or value from the previous callback call) and the value of the current
element. the return value of the function is then used as prevval for the next element.
Given an array of length 0, returns null .
Given an array of length 1, returns the first element.
Given an array with 2 or more elements calls the function with the first two elements as the
parameters, gets that result, then calls the function with that result and the third element, gets
that result, calls the function with that result and the fourth parameter and so on until all elements
have been processed.
Finally returns the return value of the last invocation of func .
array.filter(func(index, val));
Creates a new array with all elements that pass the test implemented by the provided function. In
detail, it creates a new array, for each element in the original array invokes the specified function
passing the index of the element and its value ; if the function returns “ true ”, then the value of
the corresponding element is added on the newly created array.
array.find(value);
map()
apply()
reduce()
filter()
find()
Performs a linear search for the value in the array. Returns the index of the value if it was found
null otherwise.
Function
call(_this, args…);
Calls the function with the specified environment object( this ) and parameters.
pcall(_this, args…);
calls the function with the specified environment object ( this ) and parameters, this function will
not invoke the error callback in case of failure (pcall stays for 'protected call').
acall(array_args);
Calls the function with the specified environment object ( this ) and parameters. The function
accepts an array containing the parameters that will be passed to the called function. Where
array_args has to contain the required this object at the [0] position.
pacall(array_args);
Calls the function with the specified environment object ( this ) and parameters. The function
accepts an array containing the parameters that will be passed to the called function. Where
array_args has to contain the required this object at the [0] position.
This function will not invoke the error callback in case of failure (pacall stays for 'protected array
call')
weakref();
Returns a weak reference to the object.
tostring();
Returns the string “ (closure : pointer) ”.
bindenv(env);
call()
pcall()
acall()
pacall()
weakref()
tostring()
bindenv()
Clones the function (aka closure) and bind the environment object to it (table, class or instance).
the this parameter of the newly created function will always be set to env .
Note that the created function holds a weak reference to its environment object so cannot be used
to control its lifetime.
getinfos();
Returns a table containing information about the function, like parameters, name and source
name;
class.instance();
Returns a new instance of the class. this function does not invoke the instance constructor. The
constructor must be explicitly called( eg. class_inst.constructor(class_inst)).
class.getattributes(membername);
getinfos()
//the data is returned as a table is in form
//pure squirrel function
{
native = false,
name = "zefuncname",
src = "/somthing/something.nut",
parameters = ["a", "b", "c"],
defparams = [1, "def"],
varargs = 2
}
//native C function
{
native = true
name = "zefuncname"
paramscheck = 2
typecheck = [83886082, 83886384] //this is the typemask (see C defines OT_INTEGER,OT_FLOAT
etc...)
}
Class
instance()
getattributes()
Returns the attributes of the specified member. if the parameter member is null the function
returns the class level attributes.
class.setattributes(membername, attr);
Sets the attribute of the specified member and returns the previous attribute value. If the
parameter member is null the function sets the class level attributes.
class.rawin(key);
Returns true if the slot key exists. The function has the same effect as the operator in but does not
employ delegation.
class.weakref();
Returns a weak reference to the object.
class.tostring();
Returns the string “ (class : pointer) ”.
class.rawget(key);
Tries to get a value from the slot key without employing delegation.
class.rawset(key, val);
Sets the slot key with the value val without employing delegation. If the slot does not exist, it will
be created.
class.newmember(key, oval, [attrs], [static]);
Sets/adds the slot key with the value val and attributes attrs and if present invokes the
_newmember metamethod. If static is true the slot will be added as static. If the slot does not
exist, it will be created.
setattributes()
rawin()
weakref()
tostring()
rawget()
rawset()
newmember()
rawnewmember()
class.rawnewmember(key, oval, [attrs], [static]);
Sets/adds the slot key with the value val and attributes attrs. If static is true the slot will be added
as static. If the slot does not exist, it will be created. It doesn't invoke any metamethod.
instance.getclass();
Returns the class that created the instance.
instance.rawin(key);
Returns true if the slot key exists. The function has the same effect as the operator in but does not
employ delegation.
instance.weakref();
Returns a weak reference to the object.
instance.tostring();
Tries to invoke the _tostring metamethod, if failed. returns “ (instance : pointer) ”.
instance.rawget(key);
Tries to get a value from the slot key without employing delegation.
instance.rawset(key,val);
Sets the slot key with the value val without employing delegation. If the slot does not exist, it will
be created.
generator.getstatus();
Returns the status of the generator as a string: running , dead or suspended .
Class Instance
getclass()
rawin()
weakref()
tostring()
rawget()
rawset()
Generator
getstatus()
generator.weakref();
Returns a weak reference to the object.
generator.tostring();
Returns the string “ (generator : pointer) ”.
thread.call(...);
Starts the thread with the specified parameters.
thread.wakeup([wakeupval]);
Wakes up a suspended thread, accepts an optional parameter that will be used as return value for
the function that suspended the thread(usually suspend() ).
thread.getstatus();
Returns the status of the thread ( idle , running , suspended )
thread.weakref();
Returns a weak reference to the object.
thread.tostring();
Returns the string “ (thread : pointer) ”.
thread.getstackinfos(stacklevel);
Returns the stack frame information at the given stack level (0 is the current function 1 is the
caller and so on).
weakref()
tostring()
Thread
call()
wakeup()
getstatus()
weakref()
tostring()
getstackinfos()
weakreference.ref();
Returns the object that the weak reference is pointing at, null if the object that was pointed at was
destroyed.
weakreference.weakref();
Returns a weak reference to the object.
weakreference.tostring();
Returns the string “ (weakref : pointer) ”.
Weak Reference
ref()
weakref()
tostring()
ICRTouch specific events & methods.
ICRTouch Standard Library
ICRTouch Standard Library
ICR_MessageBox(string szLine1, string szLine2, string szTitle, integer nType): integer
Prompts a message box.
Parameter Description Values
szLine1 Line 1
szLine2 Line 2
szTitle Title
nType Message box type 0 - OK
1 - Yes/no
Returns an integer value based on the option selected.
Dialog functions
ICR_MessageBox
Parameters
Return values
Examples
function BeforeKeyPress(nFile, nRecord, nKeyType)
{
if(nFile == 51)
{
// Get the clerk buffer and check if we're already in finalisation.
local tClerkBuffer = ICR_GetClerkBuffer_Index();
if(tClerkBuffer.INFINALISATION)
{
// Already finalising, continue.
return true;
ICR_GetNumberDialog(string szTitle = "", integer nStartingNumber = 0, boolean bHideNumber =
false, integer nType = 0): integer
Opens a numeric entry dialog.
Parameter Description Values
szTitle Dialog title
nStartingNumber Starting number
bHideNumber Hide number true - Replaces entry with *
false - Displays entered value
}
// Finalise key pressed, do we want to finalise the sale?
local nResult = ICR_MessageBox("Finalise sale", "Are you sure?", "Confirmation",
1);
if(nResult)
{
// Yes selected, return true.
return true;
}
else
{
// No selected, return false.
return false;
}
}
// Not a key we're interested in, let TouchPoint handle it, return true.
return true;
}
ICR_GetNumberDialog
Parameters
Parameter Description Values
nType Entry type
0 - Standard
1 - Time
2 - Weight
3 - String
4 - Date
Returns an integer value based on the data entered.
ICR_GetAlphaDialog(string szTitle = "", integer nMax = 0, boolean bCaps = false, string
szSTartingText = ""): string
Opens a QWERTY dialog.
Return values
Examples
function BeforeKeyPress(nFile, nRecord, nKeyType)
{
if(nKeyType == 97)
{
// Covers key pressed.
// Get the value entered, make sure that covers are entered.
local nCovers = ICR_GetNumberDialog("Covers", 0);
while(nCovers == 0)
{
// While covers are 0, prompt again until a value is entered.
nCovers = ICR_GetNumberDialog("Covers", 0);
}
// Set the next dialog input to the value (covers key).
ICR_SetNextDialogInput(nCovers);
}
return true;
}
ICR_GetAlphaDialog
Parameter Description Values
szTitle Dialog title
nMax Maximum number of characters
bCaps Force uppercase
szStartingText Placeholder text
Returns a string value based on the data entered.
Parameters
Return values
Examples
function OnRunScriptKeyPress(nFile, nRecord, nNumber, nValue, nFlag)
{
// Grab the clerk buffer.
local tClerkBuffer = ICR_GetClerkBuffer_Index();
// Check the key's assigned number
switch(nNumber)
{
case 1:
// Check the clerk buffer for the current customer
if(tClerkBuffer.CUSTOMER == 0)
{
// No customer signed on, get the address.
local tAddress = GetCustomerAddress();
// Process the address.
CustomerAddressHandler(tAddress);
}
break;
}
}
function GetCustomerAddress()
{
// Spawn a Alpha Dialog box for each address element and capture data.
return {
ICR_ListDialog(string szTitle = "", integer nStartItem = 1): integer
Opens a list dialog based on items added using ICR_ListDialog_AddItem .
Parameter Description Values
szTitle Dialog title
nStartItem Default selected item
Return an integer value based on the list item selected.
ICR_ListDialog_AddItem(string szItem = "", boolean bFirstItem = false)
// LINE1, LINE2, CITY, COUNTY
// - Maximum length of string: 30/20, uppercase set to false.
LINE1 <- ICR_GetAlphaDialog("Delivery Line1", 30, false);
LINE2 <- ICR_GetAlphaDialog("Delivery Line2" 30, false);
CITY <- ICR_GetAlphaDialog("Delivery Town" 20, false);
COUNTY <- ICR_GetAlphaDialog("Delivery County" 20, false);
// POSTCODE
// - Maximum length of string: 8, uppercase set to true
POSTCODE <- ICR_GetAlphaDialog("Delivery POSTCODE" 8, true);
};
}
ICR_ListDialog
Parameters
Return values
Examples
local nSelection = ICR_ListDialog("In drawer totals");
ICR_ListDialog_AddItem
Adds a new item to the current list of dialog items.
Setting bFirstItem to true clears out the current list data ready for new items to be added.
Parameter Description Values
szItem Item name
bFirstItem List reset
true - Reset list and add this item
as the first
false - Add this item to the list data
None
Parameters
Return values
Examples
function GetInDrawerTotaliser()
{
// Set bFirst to true, this will be used to reset the list data.
local bFirst = true;
// Iterate over our 8 in drawer totals.
for(local nCount = 4; nCount <= 11; nCount++)
{
// Get the Program data for this totaliser.
local tFixedTotal = ICR_GetPGMData(50, nCount);
// Add this total to the list, resetting the list as required.
ICR_ListDialog_AddItem(tFixedTotal.NAME, bFirst);
// After first iteration, set the bFirst to false to prevent multi-reset.
bFirst = false;
}
// Prompt the list dialog and return the selection.
return ICR_ListDialog("In drawer totaliser");
}
ICR_DataEntryDialog(string szTitle = "", boolean bRecordSelectionMode = false): table|integer
Opens a data entry dialog.
bRecordSelectionMode changes the state from an entry dialog to a selection dialog similar to
ICR_ListDialog .
When used as a record selection dialog, this has the advantage of being able to display more
information to the user across two columns.
Parameter Description Values
szTitle Dialog title
bRecordSelectionMode Selection mode true - Selection dialog
false - Data entry dialog
Returns either a table of entered data or, when in record selection mode, an integer based off of
the selected item.
ICR_DataEntryDialog_AddItem(string szFieldName, boolean bFirstItem, string szData, integer
nDataType = 2, integer nMaxLength = 0, integer nDP = 0, boolean bReadOnly = false)
Adds a new item to the current list of data entry dialog items.
Setting bFirstItem to true clears out the current list data ready for new items to be added.
ICR_DataEntryDialog
Parameters
Return values
Examples
Data entry mode
local tData = ICR_DataEntryDialog("Customer address", false);
Record selection mode
local nSelection = ICR_DataEntryDialog("Matching records", true);
ICR_DataEntryDialog_AddItem
Parameters
Parameter Description Values
szFieldName Field name
bFirst Data entry reset
true - Reset list and add this item
as the first
false - Add this item to the list data
szData Field value
nDataType Data type
1 - Yes/no
2 - String
3 - Number
4 - Drop down window
10 - Ok
42 - Postcode lookup
nMaxLength Maximum length of data
nDP Decimal places or list ID if nDataType
is 4 (drop down window)
bReadOnly Read only
None
Return values
Examples
Data entry mode
local g_nTerminalState = 1;
enum STATE {NORMAL = 1, PGMPLU = 2};
function BeforeKeyPress(nFile, nRecord, nKeytype)
{
if(nFile == 1)
{
// PLU Pressed, check the programming state.
switch(g_nTerminalState)
{
case STATE.NORMAL: // Normal, allow sale.
return true;
case STATE.PGMPLU: // Programming mode.
ProgramPLU(nRecord);
return false;
default: // State not catered for, return true.
return true;
}
}
// Not a PLU, just return.
return true;
}
function ProgramPLU(nRecord)
{
// Get the PLU program data.
local tPLU = ICR_GetPGMData(1, nRecord);
// Add the current data to the data entry dialog.
ICR_DataEntryDialog_AddItem("PLU name", true, tPLU.NAME);
ICR_DataEntryDialog_AddItem("Department", false, tPLU.DEPT, 4, 0, 0);
ICR_DataEntryDialog_AddItem("PLU group", false, tPLU.GROUP, 4, 0, 1);
ICR_DataEntryDialog_AddItem("1st@ price", false, tPLU.PRICE1L1, 3, 0, 2);
ICR_DataEntryDialog_AddItem("2nd@ price", false, tPLU.PRICE2L1, 3, 0, 2);
ICR_DataEntryDialog_AddItem("3rd@ price", false, tPLU.PRICE3L1, 3, 0, 2);
ICR_DataEntryDialog_AddItem("4th@ price", false, tPLU.PRICE4L1, 3, 0, 2);
// Get the result.
local tResult = ICR_DataEntryDialog("Program PLU");
// Assign the new data from the dialog to the PLU data.
tPLU.NAME <- tResult.FIELD1;
tPLU.DEPT <- tResult.FIELD2;
tPLU.GROUP <- tResult.FIELD3;
tPLU.PRICE1L1 <- tResult.FIELD4;
tPLU.PRICE2L1 <- tResult.FIELD5;
tPLU.PRICE3L1 <- tResult.FIELD6;
tPLU.PRICE4L1 <- tResult.FIELD7;
// Set the PLU program data.
ICR_SetPGMData(1, nRecord, tPLU);
}
Record selection mode
function BeforeKeyPress(nFile, nRecord, nKeytype)
{
if(nKeyType == 50)
{
// PLU number key, override action and display our dialog.
// Find PLU.
local nRecord = FindPLU();
if(type(nRecord) == "integer" && nRecord > 0)
{
// Record found, sell it.
ICR_KeyPress(1, nRecord);
}
else
{
// Not found, show message.
ICR_SetInput_Message("PLU Not Found");
}
return false;
}
return true;
}
function FindPLU(nRecord)
{
// Capture the search term.
local szSearchTerm = ICR_GetAlphaDialog("PLU search term");
// Match this to our PLUs
local arrFoundPLUs = MatchPLUs(szSearchTerm);
// Set bFirstg to true, this will be used to reset the list data.
local bFirst = true;
foreach(idx, plu in arrFoundPLUs)
{
// Iterate through the found PLUs and add them to the data entry dialog.
For a list of drop down window types please see constant values.
TouchPoint 6210+
ICR_SetNextDialogInput(string|integer szData)
Sets the input for the next dialog prompt.
Parameter Description Values
szData Input data
For list dialog pass list item number
to be selected.
For Yes/No dialog pass "YES" or "NO"
None
ICR_DataEntryDialog_AddItem(plu.RECORD, bFirst, plu.NAME);
// After first iteration, set the bFirst to false to prevent multi-reset.
bFirst = false;
}
// Return the selected value.
return ICR_DataEntryDialog("Select PLU", true);
}
Notes
ICR_SetNextDialogInput
Parameters
Return values
Examples
function OnCardSwipe(nTrack, szData)
{
if(nTrack != 1)
{
// Not track 1, return true.
return true;
TouchPoint 7200+
ICR_GetDateDialog(string|integer szStartDate = ""): string
Draws a calendar to the screen for user date selection.
The calendar will start from the date provided, or today if the parameter is empty or invalid.
Parameter Description Values
szStartDate Start date
Returns a string value representing the user's selected date.
}
if(szData.len() != 11)
{
// Incorrect length, return true.
return true;
}
if(szData.slice(0, 3) != "ICR")
{
// Front 3 characters do not match, return true.
return true;
}
// Slice off the last 4 characters and pass to the customer number key.
ICR_SetNextDialogInput(szData.slice(7, 11));
ICR_KeyPress(53, g_nCustomerSignOnKey);
}
ICR_GetDateDialog
Parameters
Return values
Examples
// Draw a date dialog starting from today.
local szSelectedDate = ICR_GetDateDialog();
// Draw a date dialog starting from 1st April 2036.
local szSelectedDate = ICR_GetDateDialog(1042036);
// Draw a date dialog starting from 19th September 2029.
local szSelectedDate = ICR_GetDateDialog("19092029");
ICRTouch Standard Library
ICR_EnableDebugLog(boolean bEnable)
Toggles debug logging to the standard output.txt file.
Parameter Description Values
bEnable Logging on/off
None
ICR_EnableDebugLog() should only be used for development purposes and should not be left
enabled for production scripts.
ICR_SetFeature(string szFeature, string szValue)
Sets a feature to the specified value.
Whilst it's expecting a string, other types may be converted (i.e booleans).
Currently settable features are DEBUGLOG , CONSOLE and AUTORESTART .
Utility functions
ICR_EnableDebugLog
Parameters
Return values
Examples
local bDebugPrinting = true;
function OnInit()
{
ICR_EnableDebugLog(bDebugPrinting);
}
Notes
ICR_SetFeature
Parameter Description Values
szFeature Feature name
szValue Feature value
None
ICR_SetFeature("DEBUGLOG", true) is the same as ICR_EnableDebugLog(true) .
ICR_SetFeature("CONSOLE", true) is the same as ICR_EnableConsole(true) .
ICR_SetFeature("AUTORESTART", true) is the same as ICR_RestartScriptingEngine() except it will
restart the script engine upon script file modification.
The items settable with ICR_SetFeature() should only be used for development purposes and
should not be deployed into production scripts.
ICR_StealEvent(string szEventName, boolean bOnceOnly = false)
Locks the event specified in szEventName to the VM only.
bOnceOnly , when set, releases the event immediately after the first time it has been called.
The event should be released again so that other VMs receives it using
ICR_ReleaseEvent(szEventName) .
This will stop other scripts interacting with the event until it has been released.
Parameters
Return values
Examples
local bDebugPrinting = true;
function OnInit()
{
ICR_EnableDebugLog(bDebugPrinting);
ICR_SetFeature("CONSOLE", bDebugPrinting);
ICR_SetFeature("AUTORESTART", bDebugPrinting);
}
Notes
ICR_StealEvent
Parameters
Parameter Description Values
szEventName Event name
bOnceOnly Steal event for single use
None
Return values
Examples
function LockTill(bLock = false, strDisplayMessage = "")
{
if (bLock)
{
// Terminal "locked".
if(strDisplayMessage != "")
{
// Display a message to the user.
ICR_SetInput_Message(strDisplayMessage);
}
// Store the locked value.
g_bLocked = true;
// Stop other scripts accessing the following events.
ICR_StealEvent("BeforeKeyPress");
ICR_StealEvent("OnIButtonPressed");
ICR_StealEvent("OnCardSwipe");
ICR_StealEvent("OnBarcode");
}
else
{
// Terminal "unlocked".
if(strDisplayMessage != "")
{
// Display a message to the user.
ICR_SetInput_Message(strDisplayMessage);
}
// Store the locked value.
ICR_ReleaseEvent(string szEventName)
Releases an event previously locked through ICR_StealEvent() .
Parameter Description Values
szEventName Event name
None
See ICR_StealEvent .
ICR_SysProc(string szCommand, mixed arg1, mixed arg2)
Runs an internal procedure, arguments are command specific and vary in number and type.
Parameter Description Values
g_bLocked = false;
// Allow other scripts access to the events
ICR_ReleaseEvent("BeforeKeyPress");
ICR_ReleaseEvent("OnIButtonPressed");
ICR_ReleaseEvent("OnCardSwipe");
ICR_ReleaseEvent("OnBarcode");
}
}
ICR_ReleaseEvent
Parameters
Return values
Examples
ICR_SysProc
Parameters
szCommand Command to execute
PAYCODE - Prompt payment code
dialog
RENTAL - Force check of rental codes
UPDATE - Check for updates
OPENDRAWER - Trigger the specified
drawer
MINIMIZE - Minimise TouchPoint
EXIT - Exit to Windows
arg1 First argument
szType - UPDATE - Update code (i.e
2017)
nDrawerNumber - OPENDRAWER -
Drawer number
arg2 Second argument bSilent - UPDATE
None
Version Description
7600 Added MINIMIZE & EXIT
Return values
Examples
// Create relevant dialogs.
ICR_SysProc("PAYCODE");
ICR_SysProc("RENTAL");
// Fire a connected cash drawer.
ICR_SysProc("OPENDRAWER", 1);
ICR_SysProc("OPENDRAWER", 2);
// Check for update.
ICR_SysProc("UPDATE", "etallib", true);
// Minimise TouchPoint
ICR_SysProc("MINIMIZE");
// Exit to Windows.
ICR_SysProc("EXIT");
Changelog
ICR_RestartScriptingEngine()
Restarts the Etal engine that the script is running in.
None
None
ICR_RestartScriptingEngine() should only be used for development purposes and should not be
deployed into a live environment.
This may have unpredictable results on the stability of TouchPoint.
ICR_EnableConsole(boolean bEnabled)
Enables/disables the developer console window for debug output.
Parameter Description Values
bEnabled Enable/disable the debug window
None
ICR_RestartScriptingEngine
Parameters
Return values
Examples
// Restart the scripting engine.
ICR_RestartScriptingEngine();
Notes
ICR_EnableConsole
Parameters
Return values
Examples
ICR_EnableConsole() should only be used for development purposes and should not be deployed
into a live environment.
// Enable the developer console window.
ICR_EnableConsole(true);
Notes
ICRTouch Standard Library
ICR_GetUTCTimeBias(): integer
Gets the current offset between local and UTC time in minutes
None
Returns an integer value.
TouchPoint 7603+
ICR_LocalTimeToUTC(table tDate): table
Applies the current UTC offset to the supplied date table.
Parameter Description Values
tDate Date table
Date functions
ICR_GetUTCTimeBias
Parameters
Return values
Examples
local g_nUTCOffset = 0;
function OnInit()
{
g_nUTCOffset = ICR_GetUTCTimeBias();
}
ICR_LocalTimeToUTC
Parameters
Returns the date table modified to apply the UTC offset.
TouchPoint 7603+
ICR_LocalTimeFromUTC(table tDate): table
Removes the current UTC offset from the supplied date table.
Parameter Description Values
tDate Date table
Returns the date table modified to remove the UTC offset.
Return values
Examples
local tDate = date();
local tModifiedDate = ICR_LocalTimeToUTC(tDate);
// Input:
// {"year":2023,"month":4,"day":6,"hour":15,"min":2,"sec":15,"wday":1,"yday":309}
// Output:
// {"year":2023,"month":4,"day":6,"hour":14,"min":2,"sec":15,"wday":1,"yday":309}
ICR_LocalTimeFromUTC
Parameters
Return values
Examples
local tDate = date();
local tModifiedDate = ICR_LocalTimeFromUTC(tDate);
// Input:
// {"year":2023,"month":4,"day":6,"hour":15,"min":2,"sec":15,"wday":1,"yday":309}
// Output:
// {"year":2023,"month":4,"day":6,"hour":16,"min":2,"sec":15,"wday":1,"yday":309}
ICRTouch Standard Library
ICR_KeyPress(integer nFile, integer nRecord)
Simulates a key press and carries out its function.
Parameter Description Values
nFile File number
nRecord Record number
None
ICR_Sound(integer nSound)
Plays a TouchPoint sound.
Parameter Description Values
nSound Sound ID 0 - Keypress
1 - Error
None
Sales mode functions
ICR_KeyPress
Parameters
Return values
Examples
// Sell PLU 10
ICR_KeyPress(1, 10);
ICR_Sound
Parameters
Return values
ICR_GetInput(): string
Retrieves the contents of the input buffer.
None
Returns a string value representing the data currently set against the input buffer.
ICR_SetInput(string szInput)
Sets the contents of the input buffer.
Parameter Description Values
szInput Input data
None
Examples
ICR_Sound(1);
ICR_GetInput
Parameters
Return values
Examples
local szInput = ICR_GetInput();
ICR_SetInput
Parameters
Return values
Examples
ICR_SetInput("10.00");
ICR_SetInput_Message(string szLeftMessage, string szRightMessage = "")
Displays a message in the input window.
Parameter Description Values
szLeftMessage Left message
szRightMessage Right message
None
ICR_Error(integer nError)
Displays a TouchPoint error message in the input window.
ICR_SetInput_Message
Parameters
Return values
Examples
local g_bLockTill = true;
function BeforeKeyPress(nFile, nRecord, nKeyType)
{
if(g_bLockTill)
{
// We pressed a button while still sending a email.
// Display error to the user and return false.
ICR_SetInput_Message("Please wait Sending Email");
return false;
}
// TouchPoint not locked, return true.
return true;
}
ICR_Error
Parameter Description Values
nError Error number
None
ICR_GetClerkBuffer_Index(): table
Retrieves the current clerk's clerk buffer index. See Clerk buffer index.
None
Returns a table containing the clerk buffer index.
Parameters
Return values
Examples
function OnRunScriptKeyPress(nFile, nRecord, nNumber, nValue, nFlag)
{
if(!ICR_GetCurrentClerk())
{
// No clerk signed on, display "Sign On First" error in the input window and return.
ICR_Error(1);
return;
}
[...]
}
ICR_GetClerkBuffer_Index
Parameters
Return values
Examples
function BeforeKeyPress(nFile, nRecord, nKeyType)
{
Version Description
7200 Added DISPLAYNUMBER
7200
With the addition of DISPLAYNUMBER the CHECK / TABLE
fields should not be used to draw the number to the
screen. These should only be used for comparison or to
check to see if a table/check is open.
7200 Added WEIGHT
ICR_GetClerkBuffer_Item(integer nItem): table
Retrieves a clerk buffer item from the current clerk's clerk buffer. See Clerk buffer item.
Parameter Description Values
nItem Item number
if(nFile != 1)
{
// Not a PLU, continue.
return true;
}
// Get the clerk buffer index.
local tClerkBuffer = ICR_GetClerkBuffer_Index();
if(tClerkBuffer.CUSTOMER == 0)
{
// No customer signed on, disallow PLU sale.
return false;
}
return true;
}
Changelog
ICR_GetClerkBuffer_Item
Parameters
Return values
Returns a table containing the clerk buffer item data.
Version Description
7811 Added ITEMID
Examples
function BeforeKeyPress(nFile, nRecord, nKeyType)
{
// Refresh the sold PLUs array.
g_arrSoldPLUs.clear();
if(nFile != 51 || nKeyType != 7)
{
// Not a finalise or new balance key, return true.
return true;
}
// Get the clerk buffer.
local tClerkBuffer = ICR_GetClerkBuffer_Index();
// Iterate over each clerk buffer item.
for(local nItemCount = 1; nItemCount <= tClerkBuffer.REGPOS; nItemCount++)
{
// Get the clerk item.
local tClerkItem = ICR_GetClerkBuffer_Item(nItemCount);
if(tClerkItem.FILE != 1)
{
// Not a PLU, skip this item.
continue;
}
// Add the clerk item (PLU) to the sold PLUs array.
g_arrSoldPLUs.push(tClerkItem);
}
}
Changelog
TouchPoint 6800+
ICR_AddToClerkBuffer_Item(table tItemData)
Adds an item to the clerk buffer.
Follows the same table structure as a clerk buffer item.
Parameter Description Values
tItemData Clerk item data
None
ICR_SelectItem(integer nItem)
Selects an item in the reg window.
Parameter Description Values
nItem Item number
ICR_AddToClerkBuffer_Item
Parameters
Return values
Examples
local tItemData = {
NAME = "Some text",
PRICE = 0,
FILE = 100,
RECORD = 1
};
ICR_AddToClerkBuffer_Item(tItemData);
ICR_SelectItem
Parameters
None
ICR_GetCurrent3rdPartyCustomer(): table
Retrieves 3rd party customer information for the currently signed on customer.
None
Returns a table containing information pertaining to the currently signed on 3rd party customer.
ICR_SetEtalSaleFlag(integer nFlag)
Sets a miscellaneous flag against the clerk buffer.
Parameter Description Values
nFlag Flag value to be set
None
Return values
Examples
ICR_SelectItem(2);
ICR_GetCurrent3rdPartyCustomer
Parameters
Return values
Examples
local tCustomer = ICR_GetCurrent3rdPartyCustomer();
ICR_SetEtalSaleFlag
Parameters
Return values
Examples
TouchPoint 7811+
ICR_Get_CurrentSaleControlFlag(): integer
Gets the current value of the 'Current sale control flag'.
For control flag values see: Current sale control flag.
None
Return values
Returns an integer value representing the current value of the sale control flag.
TouchPoint 7811+
ICR_Set_CurrentSaleControlFlag(integer nFlagMask [, integer nMode = 0])
Makes a change to the 'Current sale control flag'. For control flag values see: Current sale control
flag.
Parameter Description Values
nFlagMask Mask of flag values to set
// Set misc Etal flag
ICR_SetEtalSaleFlag(0x0001);
ICR_Get_CurrentSaleControlFlag
Parameters
Examples
// Retrieve and output the current sale control flag
print("ICR_Get_CurrentSaleControlFlag() : " + ICR_Get_CurrentSaleControlFlag());
ICR_Set_CurrentSaleControlFlag
Parameters
Parameter Description Values
nMode Method of employing the flag mask.
0 - Overwrite the entire sale control
flag
1 - Set the bits that are set in the
mask
2 - Unset the bits that are SET in
the mask
None
Return values
Examples
function AfterKeyPress(nFile, nRecord, nKeytype)
{
print("ICR_Get_CurrentSaleControlFlag() : " + ICR_Get_CurrentSaleControlFlag());
if(nFile == 998)
{
// Disable reg buffer consolidation on / off
local nFlag = 0x01;
if(nRecord == 9)
{
print("Numeric 8 key pressed - Turn on");
ICR_Set_CurrentSaleControlFlag(nFlag, 1 /* Set */);
}
if(nRecord == 10)
{
print("Numeric 9 key pressed - Turn off");
ICR_Set_CurrentSaleControlFlag(nFlag, 2 /* Unset */);
}
print("ICR_Get_CurrentSaleControlFlag() : " +
ICR_Get_CurrentSaleControlFlag());
return;
}
}
ICRTouch Standard Library
ICR_GetStock(integer nPlu): float
Retrieves the stock quantity of the requested PLU.
Parameter Description Values
nPlu PLU record number
Returns a floating point value.
ICR_SetStock(integer nPlu, float fQty)
Sets the stock quantity of the PLU.
Parameter Description Values
nPlu PLU record number
fQty New stock quantity
None
Data functions
ICR_GetStock
Parameters
Return values
Examples
local nStockQuantity = ICR_GetStock(78);
ICR_SetStock
Parameters
Return values
ICR_GetCurrentClerk(): integer
Retrieves the currently signed on clerk number.
None
Returns an integer representing the clerk number.
This will return 0 if no clerk is signed on.
ICR_GetCurrentMode(): integer
Retrieves the current mode number.
See constant values for mode numbers.
Parameters
None
Return an integer representing the mode number.
Examples
ICR_SetStock(4, 15.0);
ICR_GetCurrentClerk
Parameters
Return values
Examples
local nClerk = ICR_GetCurrentClerk();
ICR_GetCurrentMode
Return values
Examples
ICR_GetCustomPLUData(integer nRecord): string
Retrieves the customer data set against a PLU.
Parameter Description Values
nRecord PLU record number
Returns the data string set against the PLU, or null if no data exists.
ICR_SetCustomPLUData(integer nRecord, string szData)
Sets a string of data for a PLU in the PLU Store.
Parameter Description Values
nRecord PLU record number
szData Data to set
None
local nMode = ICR_GetCurrentMode();
ICR_GetCustomPLUData
Parameters
Return values
Examples
local szPLUData = ICR_GetCustomPLUData(99);
ICR_SetCustomPLUData
Parameters
Return values
Examples
ICR_GetPGMData(integer nFile, integer nRecord): table
Retrieves a table containing program data for the specified file and record number.
Field names are as per the XML tag in the data layout manual.
Parameter Description Values
nFile File number
nRecord Record number
Returns a table of program data for the requested file/record combination.
ICR_SetPGMData(integer nFile, integer nRecord, table tData, boolean bUpload = false)
Sets program data for the specified file and record number using the supplied table, only field
entries in the supplied table are overwritten.
Field names are as per the XML tag in the data layout manual.
Parameter Description Values
ICR_SetCustomPLUData(5, "This is the data I am writing.");
ICR_GetPGMData
Parameters
Return values
Examples
// Get program data for PLU 5.
local tPlu = ICR_GetPGMData(1, 5);
// Get program data for clerk 10.
local tClerk = ICR_GetPGMData(5, 10);
ICR_SetPGMData
Parameters
nFile File number
nRecord Record number
tData Program data to set
bUpload Upload program changes to TOW
None
Uploading program changes to TOW will only work on single site accounts.
Version Description
7200 Added 4th parameter to facilitate the upload the modified
program data to TOW
ICR_GetSalesData(integer nFile, integer nRecord, integer nPeriod): table
Retrieves a table containing sales data for the specified file, record number and sales period (1 -
3).
Field names are as per the XML Tag in the data layout manual.
Return values
Examples
// Get the program data for clerk 1.
local tClerk = ICR_GetPGMData(5, 1);
// Edit the name to "Dave".
tClerk.NAME <- "Dave";
// Set the clerk table back to record 1, overwriting the previous data.
ICR_SetPGMData(5, 1, tClerk);
Notes
Changelog
ICR_GetSalesData
Parameters
Parameter Description Values
nFile File number
nRecord Record number
nPeriod Sales period (1 - 3)
Returns a table containing the sales data for the requested file, record and period.
ICR_GetSystemData(): table
Retrieves a table containing the system data.
See system data table values.
None
Returns a table containing the system data.
Return values
Examples
// Get the sales data for fixed totaliser 1.
local tNetSales = ICR_GetSalesData(50, 1, 1);
ICR_GetSystemData
Parameters
Return values
Examples
// Get the system data.
local tSystemData = ICR_GetSystemData();
// Print the version ID.
print(tSystemData.VERSIONID);
ICR_GetFileSize
ICR_GetFileSize(integer nFile): integer
Returns the size of a specified file.
Parameter Description Values
nFile File number
Returns an integer representing the file size of the requested file number.
ICR_GetLanguageText(integer nLanguageID): string
Retrieves the text for the specified language ID.
For language IDs, please refer to ICRTouch/skin/language.*, where "*" represents the active
language file extension.
Parameter Description Values
nLanguageID Language ID
Returns a language definition string for the requested language ID.
Parameters
Return values
Examples
// Get the PLU file size.
nPluFileSize = ICR_GetFileSize(1);
ICR_GetLanguageText
Parameters
Return values
Examples
// Get the language for ID 5827, "Author".
local szText = ICR_GetLanguageText(5827);
// Output "Author" to the console.
print(szText);
ICR_SetLanguageText(integer nLanguageID, string szText)
Sets the language text for the specified language ID.
Parameter Description Values
nLanguageID Language ID
szText New language definition
None
Language changes do not affect the underlying language.def file and so will not persist a reboot.
ICR_GetPLURecNumber(string szRandomCode): integer
Retrieves the record number of the first PLU found with a matching random code.
Parameter Description Values
szRandomCode Random code to search for
ICR_SetLanguageText
Parameters
Return values
Examples
// Set the definition for language ID 5827 to "Supplier".
ICR_SetLanguageText(5827, "Supplier");
Notes
ICR_GetPLURecNumber
Parameters
Return values
Returns the PLU record number of the found PLU.
If no matching random code is found, then 0 is returned.
TouchPoint 5800+
ICR_UpdateCheckIndexFile(boolean bForceUpdate): integer
Polls a copy of the check index file from the check master so that open check reports etc can be
run from it.
This function can be called on systems running as standalone or on masters and will be ignored.
The default functionality on the backup master is to ignore this function but can be overridden by
setting the optional boolean to true .
Parameter Description Values
bForceUpdate Force update boolean true - Force update
false - Don't force an update
Returns an integer representing the success of the command.
0 - OK
1 - User cancelled
2 - Error
Examples
// Try to get the PLU record number for our provided EAN8.
local nPLU = ICR_GetPLURecNumber("12345675");
ICR_UpdateCheckIndexFile
Parameters
Return values
Examples
// Attempt to update the check index file from the master.
local nResult = ICR_UpdateCheckIndexFile();
TouchPoint 5800+
ICR_ResetTotals(integer nFile, integer nPeriod)
Executes a Z reset of the specified file and sales period (1 - 3).
Parameter Description Values
nFile File number
nPeriod Sales period to reset (1 - 3)
None
ICR_AdjustTotals(integer nFile, integer nRecord, integer nPeriod, integer nQuantity, integer
nValue)
Executes a sales total adjustment for the specified file, record and sales period (1 - 3).
Parameter Description Values
nFile File number
nRecord Record number
nPeriod Sales period (1 - 3)
nQuantity Quantity
nValue Value
ICR_ResetTotals
Parameters
Return values
Examples
// Reset the fixed totaliser totals for sales period 2.
ICR_ResetTotals(50, 2);
ICR_AdjustTotals
Parameters
Return values
None
Only Etal fixed totalisers are valid.
These are contained in file 50 between record numbers 101 - 200.
Provided quantities and values must be integers.
ICR_AdjustCustomer(integer nCustomer, integer nBalance = 0, integer nPoints = 0): boolean
Adjusts a customer's points or balance.
Parameter Description Values
nCustomer Customer record number
nBalance Balance adjustment
nPoints Points adjustment
Returns true on success, false on failure.
Examples
// Adjust fixed total 101 by a quantity of 1 and value of 10.50.
ICR_AdjustTotals(50, 101, 1, 100, 1050);
Notes
ICR_AdjustCustomer
Parameters
Return values
Examples
// Increase customer 4's balance by 1.00.
local bResult = ICR_AdjustCustomer(4, 100);
// Increase customer 8's points by 50.
local bResult = ICR_AdjustCustomer(8, 0, 50);
Whilst you can adjust both balance and points at the same time it is not advisable to do so, if you
do and only one of them succeeds it will still return true.
ICR_FromPassword(string szPassword): string
Converts an ICRTouch password field back into a string of plain text.
Parameter Description Values
szPassword Password to convert
Returns the converted string of plain text from a ICRTouch password field.
ICR_ToPassword(string szPassword): string
Converts a string of plain text into an ICRTouch password field for storage.
// Reduce customer 20's balance by 5.00.
local bResult = ICR_AdjustCustomer(20, -500);
Notes
ICR_FromPassword
Parameters
Return values
Examples
// Get our stored password.
local szPasswordField = ICR_GetLocalUserdata("my_password");
// Convert the stored password back into plain text.
local szPassword = ICR_FromPassword(szPasswordField);
ICR_ToPassword
Parameters
Parameter Description Values
szPassword Password to convert
Returns the converted ICRTouch password string.
For security purposes, please refrain from storing sensitive data using this method.
It is not cryptographically secure.
ICR_MakeNumberString(integer nValue, integer nDP = 0, string szCurrencySymbol = "", boolean
bUseThousandSeparator = false, boolean bHideDP = false): string
Converts an integer to a string.
Parameter Description Values
nValue Value to convert
nDP Decimal places
szCurrencySymbol Currency Symbol
bUseThousandSeparator Use thousand separator true - Use thousand separator
false - No thousand separator
bHideDP Hide decimal value true - Truncate decimal value
false - Show full number
Returns the converted integer as a string based on the parameters provided.
Return values
Examples
// Convert "MyPassword" into an ICRTouch password for storage.
local szConvertedString = ICR_ToPassword("MyPassword");
Notes
ICR_MakeNumberString
Parameters
Return values
Examples
ICR_GetEmployeeLastTAOP(integer nClerk, integer nOperation): table
Retrieves a data table for the specified clerk and their last T&A operation details.
The method works from the most recent change to the employee job.
For example, nOperation = 0 would be the most recent operation.
Parameter Description Values
nClerk Clerk number
nOperation T&A operation
Returns a table containing details of the last clerk T&A details.
// Convert 10 into "0.10".
local szNumber = ICR_MakeNumberString(10, 2);
// Convert 1234 into "12.34".
local szNumber = ICR_MakeNumberString(1234, 2);
// Convert 500 into "£5.00".
local szNumber = ICR_MakeNumberString(500, 2, "£");
// Convert 76890123 into "768,901.23"
local szNumber = ICR_MakeNumberString(10, 2, "", true);
// Convert 76890100 into "768,901"
local szNumber = ICR_MakeNumberString(10, 2, "", true, true);
ICR_GetEmployeeLastTAOP
Parameters
Return values
Examples
// Get the current clerk.
local nClerk = ICR_GetCurrentClerk();
// Create a local table to store the operations.
TouchPoint 7407+
ICR_GetCheck_Index(string szCheckNumber, boolean bTable = false): table
Get the check index for a specified check/table number.
See check index table values.
Parameter Description Values
szCheckNumber Check/table number
bTable True if table, false if check
Returns a table of data for the requested check/table if it exists.
This will return null if no check/table exists for the requested number.
TouchPoint 7407+
ICR_GetCheckItem(string szCheckNumber, boolean bTable, integer nItemID): table
local tClerkOperations = {};
// Iterate from 1 - 5.
for(local nCount = 1; nCount <= 5; nCount++)
{
// Get and store the current clerk's last 5 most recent T&A operations.
tLastClerkOp[tLastClerkOp.len() + 1] <- ICR_GetEmployeeLastTAOp(nClerk, nCount);
}
ICR_GetCheck_Index
Parameters
Return values
Examples
// Get the check index for table 5.
local tTable = ICR_GetCheck_Index(5, true);
// Get the check index for check 74.
local tCheck = ICR_GetCheck_Index(74);
ICR_GetCheck_Item
Get the details of an item attached to a check/table number.
See check item table values.
Parameter Description Values
szCheckNumber Check/table number
bTable True if table, false if check
nItemID Item ID
Returns a table of data for the requested check item.
This will return null if no data exists at the record requested.
Parameters
Return values
Examples
// Get the check index.
local tCheckIndex = ICR_GetCheck_Index(szCheckNumber, false);
print("NUMBER : " + tCheckIndex.NUMBER);
print("DETAILLENGTH : " + tCheckIndex.DETAILLENGTH);
// Iterate over the check items and out some simple data.
for(local nDetailCount = 1; nDetailCount <= tCheckIndex.DETAILLENGTH; nDetailCount++)
{
// Get the check item info.
local tCheckItem = ICR_GetCheck_Item(szCheckNumber, bTable, nDetailCount);
print("FILE: " + tCheckItem.FILE + " RECORD: " + tCheckItem.RECORD + " -> " +
tCheckItem.NAME);
}
ICRTouch Standard Library
ICR_JournalItem(string szText, integer nPrice, integer nQuantity, integer nFile, integer
nRecord, integer nStatus)
Adds an item entry to the journal.
Parameter Description Values
szText Line text
nPrice Price
nQuantity Quantity
nFile File number
nRecord Record number
nStatus Status flag
None
ICR_JournalLine(string szText, integer nPrice, integer nQuantity, integer nFile, integer
nRecord, integer nStatus)
Adds a line entry to the journal.
Parameter Description Values
Printing functions
ICR_JournalItem
Parameters
Return values
Examples
ICR_JournalItem("Burger", 1020, 100, 1, 10, 0);
ICR_JournalLine
Parameters
szText Line text
nPrice Price
nQuantity Quantity
nFile File number
nRecord Record number
nStatus Status flag
None
ICR_ReceiptItem(string szText, integer nPrice, integer nQuantity, integer nFile, integer
nRecord, integer nStatus)
Adds an item entry to the current receipt buffer.
Parameter Description Values
szText Line text
nPrice Price
nQuantity Quantity
nFile File number
nRecord Record number
nStatus Status flag
None
Return values
Examples
ICR_JournalLine("Batch procedure complete", 0, 0, 53, 10, 0)
ICR_ReceiptItem
Parameters
Return values
Examples
ICR_ReceiptItem("Burger", 1020, 100, 1, 10, 0);
Version Description
7031 Prevented from use if there is no active sale
ICR_ReceiptLine(string szText, integer nPrice, integer nQuantity, integer nFile, integer
nRecord, integer nStatus)
Adds a line entry to the current receipt buffer.
Parameter Description Values
szText Line text
nPrice Price
nQuantity Quantity
nFile File number
nRecord Record number
nStatus Status flag
None
Version Description
7031 Prevented from use if there is no active sale
ICR_GetReceipt_Header(integer nClerk): table
Changelog
ICR_ReceiptLine
Parameters
Return values
Examples
ICR_ReceiptLine("Free bananas on Friday", 0, 0, 53, 10, 0);
Changelog
ICR_GetReceipt_Header
Retrieves the receipt header for the specified clerk.
Parameter Description Values
nClerk Clerk number
Returns a table containing receipt header data.
Version Description
7200 Added DISPLAYNUMBER
7200
With the addition of DISPLAYNUMBER the CHECK / TABLE
fields should not be used to draw the number to the
screen. These should only be used for comparison or to
check to see if a table/check is open.
ICR_GetReceiptLine(integer nClerk, integer nLine): table
Retrieves a receipt line for a specified clerk and line number.
Parameter Description Values
nClerk Clerk number
nLine Receipt line number
Returns a table containing receipt line data.
Parameters
Return values
Examples
local tReceiptHeader = ICR_GetReceipt_Header(5);
Changelog
ICR_GetReceipt_Line
Parameters
Return values
Examples
local tReceiptLine = ICR_GetReceipt_Line(2, 7);
ICRTouch Standard Library
TouchPoint 7604+
ICR_KPC_GetKPTicketList(integer nMaximumTickets, string szStatusFilter = "", integer nKPMask =
0x0FFF, string szSinceUpdateCounter = "0"): string
Retrieves a list of ticket IDs that have been sent to a kitchen printer or kitchen video.
Tickets can be filtered to the provided szStatusFilter or, if left blank, active/pegged tickets.
Parameter Description Values
nMaximumTickets Number of tickets to retrieve
szStatusFilter Ticket status filter
nKPMask KP filter mask
0x0001 - KP/KV1
0x0002 - KP/KV2
0x0004 - KP/KV3
0x0008 - KP/KV4
0x0010 - KP/KV5
0x0020 - KP/KV6
0x0040 - KP/KV7
0x0080 - KP/KV8
0x0100 - KP/KV9
0x0200 - KP/KV10
0x0400 - KP/KV11
0x0800 - KP/KV12
Note: 0x0000 - Is treated as 0xFFFF
Kitchen printer controller
functions
ICR_KPC_GetKPTicketList
Parameters
Parameter Description Values
szSinceUpdateCounter Return KP tickets only with updates
since the supplied update counter.
Defaults to "0" which will return all
KP Tickets, including those with an
update counter of "0".
All other values will return KP Tickets
with a higher update counter, eg "1"
will return those KP Tickets with a
counter of "2" or more.
This should be supplied as a string in
order to support values higher than
the maximum that a 32 bit integer
will allow.
Returns a JSON object described here: KPC_GetKPTicketList
Version Description
7803
Added 4th parameter szSinceUpdateCounter .
Returns KP tickets only with updates since the supplied
update counter.
TouchPoint 7604+
ICR_KPC_GetKPTickets(array arrTicketIDs, integer nKPConfigFlag = 0x0000, integer nKPMask =
0x0FFF, integer nSortType = 0): string
Return values
Examples
// Get the latest 100 active/pegged orders.
local tOrders = ICR_KPC_GetKPTicketList(100);
// Get the latest 100 finished orders.
local tOrders = ICR_KPC_GetKPTicketList(100, "finished");
// Get a maximum of 100 KP Tickets, for active orders / all KP Flags, Since update counter
"1001"
local tOrders = ICR_KPC_GetKPTicketList(100, "active", 0xFFF, "1001");
Changelog
ICR_KPC_GetKPTickets
Retrieves the order details for each ID provided in the array, arrTicketIDs .
Parameter Description Values
arrTicketIDs Array of ticket IDs
nKPConfigFlag KP config flag
0x00010000 - Consolidate items
0x00020000 - Consolidate different
items
0x00040000 - Consolidate different
set menu items
nKPMask KP filter mask
0x0001 - KP/KV1
0x0002 - KP/KV2
0x0004 - KP/KV3
0x0008 - KP/KV4
0x0010 - KP/KV5
0x0020 - KP/KV6
0x0040 - KP/KV7
0x0080 - KP/KV8
0x0100 - KP/KV9
0x0200 - KP/KV10
0x0400 - KP/KV11
0x0800 - KP/KV12
Note: 0x0000 - Is treated as 0xFFFF
nSortType Required item sorting for the output
0 - No sorting
1 - Department
2 - PLU Group
3 - KP Category
4 - Seat
Returns a JSON string containing the array of ticket detail tables.
Version Description
7605 Added index_entry header into the ticket body
7608 Added 4th parameter for ticket item sorting.
Parameters
Return values
Examples
local tOrderDetails = ICR_KPC_GetKPTickets([1,5,9], 0x00030000, 0x04);
Changelog
Version Description
7803 Added customer , clerk , price_level , terminal ,
location & eat_in_take_out .
7808 Added webshop_order_reference & tta_table_location
fields.
TouchPoint 7604+
ICR_KPC_SetKPTicketStatus(integer nID, string szNewStatus, integer nAppliesToKPFlag = 0xFFF):
string
Sets the provided status against a kp ticket.
Parameter Description Values
nID Ticket ID
szNewStatus Ticket status
nAppliesToKPFlag A flag mask of kp that that status
applies to for special statuses only.
Use for finished , unfinished ,
pegged and unpegged
Note: 0x0000 - Is treated as 0xFFFF
Returns a boolean value.
TouchPoint 7604+
ICR_KPC_SetKPTicketItemsStatus(integer nID, array arrItemNumber, string szNewStatus, integer
nAppliesToKPFlag = 0xFFF): string
ICR_KPC_SetKPTicketStatus
Parameters
Return values
Examples
local bResult = ICR_SetTicketStatus(5, "finished");
ICR_KPC_SetKPTicketItemsStatus
Sets the provided status against the item number of a ticket.
Parameter Description Values
nID Ticket ID
arrItemNumber Array of item numbers
szNewStatus Ticket item status
nAppliesToKPFlag A flag mask of kp that that status
applies to for special statuses only.
Use for finished and unfinished
Note: 0x0000 - Is treated as 0xFFFF
Returns a boolean value.
TouchPoint 7803+
ICR_KPC_AlterKPFlag(integer nTicketID, array arrItems, integer nUnsetKPFlag, integer nSetKPFlag,
integer nAppliesToKPFlag = 0x0000)
Alters the KP flag against a KP Ticket's items, enabling you to toggle them on or off. By making use
of the 'applies to' flag you have the ability to shift items from one KP to another. For example
Unset = 0x01, Set = 0x04, AppliesTo = 0x01 would then shift all items that are flagged for KP1 to
KP3.
Triggers the AfterKPCUpdate event with event type 4 .
Parameter Description Values
nTicketID Ticket ID
arrItems Array of item IDs
Parameters
Return values
Examples
local bResult = ICR_KPC_SetKPTicketItemsStatus(2, [1,4], "finished");
ICR_KPC_AlterKPFlag
Parameters
Parameter Description Values
nUnsetKPFlag Flag mask to unset
nSetKPFlag Flag mask to set
nAppliesToKPFlag Only applies to items that have this
specific mask
Default: 0x0000
Note: 0x0000 - Is treated as 0xFFFF
Returns a JSON string
TouchPoint 7604+
ICR_KPC_StoreData(string szReference, string szData) : boolean
Stores a key/value pair of data.
Parameter Description Values
szReference Key
szData Value
None
Return values
Examples
ICR_KPC_AlterKPFlag(602, [1,2,3,4,5,6,7], 0x01, 0x02, 0x01);
ICR_KPC_StoreData
Parameters
Return values
Examples
local tKPData = {
ID = 1,
NAME = "Starters"
};
local szKPData = JSONSerialise(tKPData);
TouchPoint 7604+
ICR_KPC_GetData(string szReference): string
Retrieves data for the specified reference.
Parameter Description Values
szReference Key
Returns a string value
ICR_KPC_StoreData("kp_settings", szKPData);
ICR_KPC_GetData
Parameters
Return values
Examples
local szKPData = ICR_KPC_GetData("kp_settings");
local tKPData = JSONDeserialise(szKPData);
ICRTouch Standard Library
ICR_PrintImage_Start(integer nWidth, integer nHeight)
Create a print image canvas.
Parameter Description Values
nWidth Image pixel width
nHeight Image pixel height
None
ICR_PrintImage_Print(integer nMC, integer nPort, boolean b180dpiMode = false)
Dispatches the print image canvas down to the printer.
Parameter Description Values
nMC Terminal ID ( 0 is self)
Graphic drawing functions
ICR_PrintImage_Start
Parameters
Return values
Examples
// Create the drawing canvas.
ICR_PrintImage_Start(512, 300)
ICR_PrintImage_Print
Parameters
Parameter Description Values
nPort Printer port
b180dpiMode Enforce 180dpi print mode
None
ICR_PrintImage_DrawBox(integer nLeft, integer nTop, integer nWidth, integer nHeight, integer
nColour)
Draws a filled box of the supplied dimensions and colour.
Parameter Description Values
nLeft Left position
nTop Top position
nWidth Box width
nHeight Box height
nColour Hex colour code
None
Return values
Examples
// Print the image.
ICR_PrintImage_Print(0, 1, true);
ICR_PrintImage_DrawBox
Parameters
Return values
Examples
// Draw a black box.
ICR_PrintImage_DrawBox(10, 10, 100, 100, 0x000000);
ICR_PrintImage_DrawFrame(integer nLeft, integer nTop, integer nWidth, integer nHeight, integer
nBorder, integer nColour)
Draws an empty box of the supplied dimensions and colour.
Parameter Description Values
nLeft Left position
nTop Top position
nWidth Box width
nHeight Box height
nBorder Border width
nColour Hex colour code
None
ICR_PrintImage_DrawFrame(integer nLeft, integer nTop, integer nColour)
Draws a pixel at the supplied coordinates and colour.
Parameter Description Values
nLeft Left position
ICR_PrintImage_DrawFrame
Parameters
Return values
Examples
// Draw a red frame.
ICR_PrintImage_DrawFrame(10, 10, 100, 100, 2, 0xFF0000);
ICR_PrintImage_DrawPixel
Parameters
Parameter Description Values
nTop Top position
nColour Hex colour code
None
ICR_PrintImage_DrawImage(integer nLeft, integer nTop, integer nWidth = null, integer nHeight =
null)
Draws the currently selected image at the specified coordinates.
Parameter Description Values
nLeft Left position
nTop Top position
nWidth Image width
nHeight Image height
None
Return values
Examples
// Draw a blue pixel
ICR_PrintImage_DrawPixel(10, 10, 0x0000FF);
ICR_PrintImage_DrawImage
Parameters
Return values
Examples
// Select the image to draw.
ICR_SelectImage(nImageID);
If height and width aren't supplied then the image's width and height are used.
ICR_PrintImage_DrawImage(integer nLeft, integer nTop, string szText)
Draws text to the print canvas.
Parameter Description Values
nLeft Left position
nTop Top position
szText Text to print
None
ICR_PrintImage_DrawQRCode(string szQRData, integer nLeft, integer nTop, integer nXScale = 1,
integer nYScale = 1)
Draws a QR code to the canvas.
// Draw the image to the canvas.
ICR_PrintImage_DrawImage(10, 10);
Notes
ICR_PrintImage_DrawText
Parameters
Return values
Examples
// Draw text to the canvas.
ICR_PrintImage_DrawText(10, 10, "Hello");
ICR_PrintImage_DrawQRCode
Parameters
Parameter Description Values
szQRData QR code data
nLeft Left position
nTop Top position
nXScale X scale
nYScale Y scale
None
ICR_PrintImage_GetQRWidth(string szQRData): integer
Returns the width & height, before scaling, of a QR code containing the data in szQRData.
Parameter Description Values
szQRData QR code data
Returns an integer representing the width & height of a QR code.
Return values
Examples
// Draw a QR code to the canvas containing a link to icrtouch.com.
ICR_PrintImage_DrawQRCode("https://icrtouch.com", 10, 10);
ICR_PrintImage_GetQRWidth
Parameters
Return values
Examples
// Get the width & height of the QR code data.
local nWidth = ICR_PrintImage_GetQRWidth("https://icrtouch.com");
ICRTouch Standard Library
Deprecated. See ICR_OutputLine .
ICR_OutputToDevice(string szOutputData, integer nMC, integer nPort)
Outputs raw data to a device.
Parameter Description Values
szOutputData Output data
nMC Machine number
nPort Port number
None
Device functions
ICR_OutputToDevice
Parameters
Return values
Examples
function PrintData(arrData)
{
// Set newline character to a variable and get DEVICE1 MC/Port.
local szNewLine = "\n";
local tDeviceConfig = ICR_GetPGMData(304, 1);
local nMC = tDeviceConfig.DEVICE1MC;
local nPort = tDeviceConfig.DEVICE1PORT;
// Iterate over and output our data.
foreach(idx, val in arrData)
{
ICR_OutputToDevice(val + szNewline, nMC, nPort);
}
TouchPoint 6800+
ICR_OutputLine(string szOutputData, integer nMC, integer nPort)
Outputs raw data to a device.
This method will automatically add a newline character to the end of the data, unlike
ICR_OutputToDevice .
Parameter Description Values
szOutputData Output data
nMC Machine number
nPort Port number
None
// Flush the buffer.
ICR_EndPrinting(nMC, nPort);
}
ICR_OutputLine
Parameters
Return values
Examples
function PrintData(arrData)
{
// Get DEVICE1 MC/Port.
local tDeviceConfig = ICR_GetPGMData(304, 1);
local nMC = tDeviceConfig.DEVICE1MC;
local nPort = tDeviceConfig.DEVICE1PORT;
// Iterate over and output our data.
foreach(idx, val in arrData)
{
ICR_OutputLine(val, nMC, nPort);
}
// Flush the buffer.
ICR_EndPrinting(nMC, nPort);
ICR_EndPrinting(integer nMC, integer nPort)
Finishes printing to the print, cuts ticket etc.
If used with an IP printer then this dispatches the data to the buffer of the device.
Parameter Description Values
nMC Machine number
nPort Port number
Return description
ICR_DeviceStatus(integer nMC, integer nPort): boolean
Returns the online status of the specified device.
Parameter Description Values
}
ICR_EndPrinting
Parameters
Return values
Examples
function PrintData(arrData)
{
// Get DEVICE1 MC/Port.
local tDeviceConfig = ICR_GetPGMData(304, 1);
local nMC = tDeviceConfig.DEVICE1MC;
local nPort = tDeviceConfig.DEVICE1PORT;
[...]
// Flush the buffer.
ICR_EndPrinting(nMC, nPort);
}
ICR_DeviceStatus
Parameters
nMC Machine number
nPort Port number
Returns a boolean value representing the device online status.
Return values
Examples
function CheckPrinterStatus(nMC, nPort)
{
local bOnline = false;
local nRetry = 1;
if(nPort == 10)
{
// No printer configured, return false.
return false;
}
if(nMC == 0)
{
// nMC = self, replace with the actual terminal ID.
local tSysConfig = ICR_GetPGMData(302,1);
nMC = tSysConfig.TERMINALID;
}
// Get the online status of the device.
bOnline = ICR_DeviceStatus(nMC, nPort);
while(!bOnline)
{
// Device offline, inform the user and ask if they want to try again.
nRetry = ICR_MessageBox(ICR_GetLanguageText(4125) ,"","",1);
if(!nRetry)
{
// No retry, simply break out.
break;
}
TouchPoint 8206+
ICR_OutputQRCode(table tQRCode)
Outputs a QC code to a connect printer.
Parameter Description Values
tQRCode Table containing the parameters for
QR code printing See: Output QR Code
// Get the online status of the device within this iteration.
bOnline = ICR_DeviceStatus(nMC, nPort);
}
// Return the status result.
return bOnline;
}
ICR_OutputQRCode
Parameters
Examples
function BeforePrint(nType, nFile, nRecord, nMC, nPort)
{
// Output to debug why the BeforePrint() event was called
print("TYPE: " + nType + " FILE: " + nFile + " RECORD: " + nRecord + " MC: " + nMC +"
PORT: " + nPort);
if(nFile == 51)
{
// File 51 - Finalise key being printed
// Create an object to put our QR config data into
local tQRCode = {};
// Add the data that we would like to output
tQRCode["data"] <- "This is the test from Etal !";
// The number of the terminal that the device is connected to - this was passed to us
in the Event
// Could be set to 0 to represent 'me'
tQRCode["machine"] <- nMC;
// The port number that the device is connected to
tQRCode["port"] <- nPort;
// We do not want to print in graphics mode
tQRCode["graphicsmode"] <- false;
// If the printing does end up in graphics mode then it needs to be high res
(thermal)
tQRCode["highresgraphics"] <- true;
// Set the model
tQRCode["model"] <- 1;
// Set the error correction level
tQRCode["eclevel"] <- 0;
// Set the size of a module
tQRCode["modulesize"] <- 4;
// Set the justification
tQRCode["hjustify"] <- "centre";
// Now call to output the code
ICR_OutputQRCode(tQRCode);
}
}
ICRTouch Standard Library
ICR_GetLocalUserData(string szName): mixed
Retrieves user data that is local to this script.
Parameter Description Values
szName Stored data key name
Returns the data in the format which it was stored.
ICR_SetLocalUserData(string szName, mixed Value, boolean bCreateOnly)
Stores user data that is local to this script file.
If bCreateOnly is set then if the value already exists it won't be overwritten.
Parameter Description Values
szName Data key name
Value Data value
bCreateOnly Create value
true - Create the value if it doesn't
exist
false - Create/overwrite value
User data functions
ICR_GetLocalUserData
Parameters
Return values
Examples
local szUserName = ICR_GetLocalUserData("szUsername");
ICR_SetLocalUserData
Parameters
None
ICR_GetGlobalUserData(string szName): mixed
Retrieves user data that is global to all scripts.
Parameter Description Values
szName Stored data key name
Returns the data in the format which it was stored.
ICR_SetGlobalUserData(string szName, mixed Value, boolean bCreateOnly)
Stores user data that is global to all scripts.
If bCreateOnly is set then if the value already exists it won't be overwritten.
Parameter Description Values
szName Data key name
Return values
Examples
local g_bDebugPrinting = true;
ICR_SetLocalUserData("bDebugPrinting", bDebugPrinting, true);
ICR_GetGlobalUserData
Parameters
Return values
Examples
local szUserName = ICR_GetGlobalUserData("szUsername");
ICR_SetGlobalUserData
Parameters
Parameter Description Values
Value Data value
bCreateOnly Create value
true - Create the value if it doesn't
exist
false - Create/overwrite value
None
Return values
Examples
local nCount = 156;
ICR_SetGlobalUserData("nDataCount", nCount, true);
ICRTouch Standard Library
ICR_AdvertiseProgramHeading(string szTitle)
Displays a heading in the script's programming menu.
Parameter Description Values
szTitle Text to display
None
ICR_AdvertiseProgramSetting(string szTitle, string szValueName)
Displays a value from local.userdata to be edited in the script's programming menu.
Program menu functions
ICR_AdvertiseProgramHeading
Parameters
Return values
Examples
function OnEnterPGMMenu(nSubMenu)
{
ICR_PurgeProgramSettings();
switch(nSubMenu)
{
case 0:
ICR_AdvertiseProgramHeading("My script | v1.2.3");
break;
}
}
ICR_AdvertiseProgramSetting
Parameter Description Values
szTitle Text to display
szValueName local.userdata key
Returns an integer representing the ID of the displayed setting.
This can be later used to manipulate the display/action of the data.
ICR_AdvertiseProgramSubMenu(string szTitle, integer nSubMenu)
Displays a link to a sub menu in the script's programming menu.
Parameter Description Values
szTitle Sub menu title
nSubMenu Sub menu ID
Parameters
Return values
Examples
function OnEnterPGMMenu(nSubMenu)
{
ICR_PurgeProgramSettings();
switch(nSubMenu)
{
case 0:
ICR_AdvertiseProgramHeading("My script | v1.2.3");
ICR_AdvertiseProgramSetting("Enable script?", "bScriptEnabled");
break;
}
}
ICR_AdvertiseProgramSubMenu
Parameters
Return values
None
ICR_PurgeProgramSettings()
Resets the data stored in the programmable list.
None
None
Examples
function OnEnterPGMMenu(nSubMenu)
{
ICR_PurgeProgramSettings();
switch(nSubMenu)
{
case 0:
ICR_AdvertiseProgramHeading("My script | v1.2.3");
ICR_AdvertiseProgramSubMenu("Flag settings", 5);
break;
case 5:
ICR_AdvertiseProgramHeading("Flag Menu");
break;
}
}
ICR_PurgeProgramSettings
Parameters
Return values
Examples
function OnEnterPGMMenu(nSub)
{
ICR_PurgeProgramSettings();
}
ICR_ProgramItem_SetReadOnly(integer nItemID)
Sets a program itme to be read only.
Parameter Description Values
nItemID Program item ID
None
ICR_ProgramItem_SetDP(integer nItemID, integer nDP)
Sets the decimal places on a numeric program item.
Parameter Description Values
ICR_ProgramItem_SetReadOnly
Parameters
Return values
Examples
function OnEnterPGMMenu(nSubMenu)
{
ICR_PurgeProgramSettings();
switch(nSubMenu)
{
case 0:
local nID = ICR_AdvertiseProgramSetting("Price", "nPrice");
ICR_ProgramItem_SetReadOnly(nID);
break;
}
}
ICR_ProgramItem_SetDP
Parameters
nItemID Program item ID
nDP Decimal places
None
ICR_ProgramItem_SetAltType(integer nItemID, integer nType)
Sets the program item to be an alternative type.
Parameter Description Values
nItemID Program item ID
nType Alternative value type ID
None
Return values
Examples
function OnEnterPGMMenu(nSubMenu)
{
ICR_PurgeProgramSettings();
switch(nSubMenu)
{
case 0:
local nID = ICR_AdvertiseProgramSetting("Price", "nPrice");
ICR_ProgramItem_SetDP(nID, 2);
break;
}
}
ICR_ProgramItem_SetAltType
Parameters
Return values
Examples
A list of alternative value types can be found in constant values.
ICR_ProgramItem_SetOptionList(integer nItemID, integer nListID [, integer nStartValue])
Sets a program entry as being a drop down option list.
Only applies to numeric items. Optional
Parameter Description Values
nItemID Program item ID
nListID Option list ID
nStartValue Option list starting value Start Value of 0 or 1 for the dialog.
None
function OnEnterPGMMenu(nSubMenu)
{
ICR_PurgeProgramSettings();
switch(nSubMenu)
{
case 0:
local nID = ICR_AdvertiseProgramSetting("Start Time", "nTime");
ICR_ProgramItem_SetAltType(nID, 20);
break;
}
}
Notes
ICR_ProgramItem_SetOptionList
Parameters
Return values
Examples
function OnEnterPGMMenu(nSubMenu)
{
ICR_PurgeProgramSettings();
ICR_PurgeProgramOptionList()
Resets the current list of items in the program option list.
None
None
ICR_ProgramOptionList_Add(string szText, integer nVal)
Adds an item to the current program option list.
Parameter Description Values
switch(nSubMenu)
{
case 0:
local nID = ICR_AdvertiseProgramSetting("Animal", "nAnimal");
ICR_ProgramItem_SetOptionList(nID, 2, 1);
break;
}
}
ICR_PurgeProgramOptionList
Parameters
Return values
Examples
function OnEnterPGMOptionList(nListID)
{
ICR_PurgeProgramOptionList();
}
ICR_ProgramOptionList_Add
Parameters
szText List item text
nValue List item selection index
None
Return values
Examples
function OnEnterPGMOptionList(nListID)
{
ICR_PurgeProgramOptionList();
switch(nListID)
{
case 1:
ICR_ProgramOptionList_Add("Puppy", 1);
ICR_ProgramOptionList_Add("Chihuahua", 2);
ICR_ProgramOptionList_Add("Monster", 3);
break;
}
}
ICRTouch Standard Library
Deprecated.
See ICR_SetNextDialogInput .
ICR_SendToKeyboard(string szKBData)
Sends a string of characters to the keyboard buffer.
Parameter Description Values
szKBData Keyboard data
None
ICR_StartTimer(integer nTimeout): integer
Starts a timer that triggers the OnTimer event every time the set timeout elapses.
The timer is called repeatedly until ICR_StopTimer is called.
Parameter Description Values
nTimeout Timeout in milliseconds
System functions
ICR_SendToKeyboard
Parameters
Return values
Examples
ICR_SendToKeyboard("12345\r");
ICR_StartTimer
Parameters
Returns an integer value representing the timer ID.
ICR_STopTimer(integer nTimerID)
Stops a specified timer.
Parameter Description Values
nTimerID Timer to stop
None
Return values
Examples
local g_nTimerID = 0;
function OnInit()
{
// Start a 500ms timer.
g_nTimerID = ICR_StartTimer(500);
}
ICR_StopTimer
Parameters
Return values
Examples
local g_nTimerID = 0;
function OnInit()
{
// Start a 500ms timer.
g_nTimerID = ICR_StartTimer(500);
}
function OnTimer(nTimerID, nSystemTime)
ICR_AwaitFile(string szFilePath, integer nTimeout, integer nEventID)
Tells TouchPoint to await the presence of a specified file.
Triggers OnAwaitFile if the file is found or nTimeout expires.
Parameter Description Values
szFilePath File path
nTimeout Timeout in seconds
nEventID User specified event ID
None
{
if(nTimerID == g_nTimerID)
{
// The elapsed timer is the one we want.
TimerHandler();
}
}
function TimerHandler()
{
// Stop the timer and reset the stored ID.
ICR_StopTimer(g_nTimerID);
g_nTimerID = null;
}
ICR_AwaitFile
Parameters
Return values
Examples
function OnInit()
{
// Find the file.txt file.
ICR_AwaitFile("Etal\\file.txt", 5, 1);
TouchPoint 5800+
ICR_ProgramSendFile(integer nFile, integer nTerminalID)
Makes ICRTouch send program data to another terminal on the network.
Parameter Description Values
nFile File number
Specify file number or:
0 - Prompt for file
999 - All program files
9990 - Auto broadcastable files
nTerminalID Terminal ID
Specify terminal ID or:
0 - Prompt for terminal
999 - All terminals
Return values
None
}
function OnAwaitFile(szFileName, nEventID, bExpired)
{
if(bExpired)
{
// File not found.
FileNotFoundHandler(szFileName, nEventID);
return;
}
// File found.
FileFoundHandler(szFileName, nEventID);
}
ICR_ProgramSendFile
Parameters
Examples
TouchPoint 5800+
ICR_ProgramReceiveFile(integer nFile, integer nTerminalID)
Makes ICRTouch receive program data from another terminal on the network.
Parameter Description Values
nFile File number
Specify file number or:
0 - Prompt for file
999 - All program files
9990 - Auto broadcastable files
nTerminalID Terminal ID
Specify terminal ID or:
0 - Prompt for terminal
999 - All terminals
None
TouchPoint 5800+
ICR_PlayMacro(string szFileName): boolean
Plays a recorded macro.
Macros can be recorded by pressing CTRL-M at any time to start the recorder and again to stop it
ICR_ProgramSendFile(1, 999);
ICR_ProgramReceiveFile
Parameters
Return values
Examples
ICR_ProgramReceiveFile(1, 1);
ICR_PlayMacro
Parameters
Parameter Description Values
szFileName Macro filename
Returns true if the macro player was started or false if the system is already playing a macro.
ICR_PostCodeLookup(string szPostcode = "", string szHouseNumber = ""): table
Triggers a postcode lookup based on the supplied postcode and house number.
If the function is called without its optional parameters then TouchPoint launches its built in
postcode lookup dialog.
Parameter Description Values
szPostCode Postcode
szHouseNumber House name or number
Returns a table of address data
Return values
Examples
local bResult = ICR_PlayMacro("macro.txt");
ICR_PostCodeLookup
Parameters
Return values
Examples
local tResult = ICR_PostCodeLookUp();
if(tResult.RESULT)
{
print(tResult.LINE1);
print(tResult.LINE2);
print(tResult.POSTTOWN);
print(tResult.COUNTY);
print(tResult.POSCODE);
ICR_File_OpenPipe(string szCommand, boolean bSetLocalDirToScript = false)
Loads a console application.
Triggers OnFile_ReadPipeEvent reading the data from stdOut.
Parameter Description Values
szCommand Console command
bSetLocalDirToScript Sets local directory to script directory
true - Local directory is script
directory
false - Local directory is ICRTouch
Return an integer number representing the ID number of the request.
}
else
{
print("Failed :(");
}
ICR_File_OpenPipe
Parameters
Return values
Examples
local g_arrFileList = [];
function OnRunScriptKeyPress(nFile, nRecord, nNumber, nValue, nFlag)
{
if(nNumber == g_nRunScriptKey)
{
// Get a list of files in the script directory.
g_nPipeID = ICR_File_OpenPipe("C:\\WINDOWS\\system32\\cmd.exe /C dir "+
tSystemData.SCRIPTLOCATION + " /b");
}
}
function OnFile_ReadPipeResult(nID, szData)
Version Description
7401
Support added for upto 10 concurrent pipes.
Added 2nd optional parameter to set local directory to
script directory.
TouchPoint 7400+
ICR_File_WritePipe(integer nID, string szMessage)
Allows data to be written back to an open pipe.
Parameter Description Values
nID Pipe ID
szMessage Message to write to the pipe
None
{
// Clear any residual data.
g_arrFileList.clear();
// Split the data on new line and store.
g_arrFileList = split(szData, "\r\n");
}
Changelog
ICR_File_WritePipe
Parameters
Return values
Examples
function OnFile_ReadPipeResult(nID, szData)
{
// Print out the pipe data.
print("OnFile_ReadPipeResult() -> ID: " + nID + " DATA: " + szData);
TouchPoint 7200+
ICR_PlaySound(string szFilePath)
Play a sound from a specified *.wave file
Parameter Description Values
szFilePath File path
None
TouchPoint 7200+
ICR_ShellExecute(table tParams)
// Write message back to the client
ICR_File_WritePipe(nID, "I RECEIVED -> " + szData);
}
ICR_PlaySound
Parameters
Return values
Examples
// Play sound from relative directory path.
ICR_PlaySound("Error_34.wav");
// Play sound from relative parent directory path.
ICR_PlaySound("..\\..\\Sounds\\DrawerAlarm.wav");
// Play sound from absolute directory path.
ICR_PlaySound("c:\\ICRTouch\\Sounds\\DrawerAlarm.wav");
ICR_ShellExecute
Execute shell commands against files.
For more information see Microsoft Docs.
Parameter Description Values
tParams Shell data
The table is comprised of various compulsory key value pairs used to execute the command
Parameter Description Values
VERB Operation to be completed
open - Opens the specified file
edit - Opens the specified file for
editing, this must be a document files
(i.e .txt)
explore - Opens a specified
directory in windows explorer.
find - Opens a specified directory
for searching in windows explorer.
print - Prints the specified file. This
must be a document file (i.e .txt)
runas - Runs the file/application as
an administrator. Depending on
settings you may be faced with UAC
prompts.
FILE Requested file/application to be
opened
DIR Working directory
PARM
The file to be opened if FILE is an
application.
If FILE is a document, this should be
empty.
Parameters
Parameter Description Values
SHOW Specifies how a window should be
displayed
0 - Hides the window.
1 - Displays the window in its
default state, size and position.
2 - Displays the window minimised.
3 - Displays the window maximised.
4 - Displays the window in its most
recent state, size and position.
5 - Displays the window in its
current state, size and position.
6 - Minimises the specified window
and shows the next window from the
top level.
7 - Displays the window minimised,
but not the active window.
8 - Displays the window in its
current state, but not the active
window.
9 - Restores an open window from a
minimised state.
10 - Default - The defined
applications default state. This is
defined by the called application.
Returns true on success, false on failure.
Return values
Examples
// Open C:\ICRTouch\Etal\icrtouch.moc to allow editing/reading in notepad.exe in it's current
size/position.
local tShellExecute = {
VERB = "open",
FILE = "notepad.exe",
DIR = "C:\\ICRTouch\\Etal",
PARM = "icrtouch.moc",
SHOW = 5
};
ICR_ShellExecute(tShellExecute);
// Open C:\ICRTouch\Etal\block.png for editing in the default image application.
local tShellExecute = {
VERB = "edit",
FILE = "block.png",
DIR = "C:\\ICRTouch\\Etal",
TouchPoint 8000+
ICR_GetHealthCheck(): string
Retrieves a JSON string containing health check data about the terminal.
PARM = "",
SHOW = 5
};
ICR_ShellExecute(tShellExecute);
// Open C:\ICRTouch in windows explorer.
local tShellExecute = {
VERB = "explore",
FILE = "",
DIR = "C:\\ICRTouch",
PARM = "",
SHOW = 5
};
ICR_ShellExecute(tShellExecute);
// Run the SagePay.exe application as an administrator in its default state.
// UAC prompts may show depending on settings.
local tShellExecute = {
VERB = "runas",
FILE = "SagePay.exe",
DIR = "C:\\ICRTouch\\SagePay\\",
PARM = "",
SHOW = 10
};
ICR_ShellExecute(tShellExecute);
ICR_GetHealthCheck
Parameters
Parameter Description Values
Returns a string value containing the health check data in JSON format. See Health Check Data
Fields.
Return value
Example
local szHealthCheckData = ICR_GetHealthCheck();
print(szHealthCheckData);
ICRTouch Standard Library
ICR_SalesModeWindow_Add(string szXMLFilePath, boolean bValidInHomeMode = false): integer
Creates a sales mode script window.
Setting bValidInHomeMode to true allows the window to be shown on the home mode screen.
Parameter Description Values
szXMLFilePath File path
bValidInHomeMode Allow window on home mode true - Allow on home mode
false - Disallow on home mode
Returns an integer value representing the newly created window ID.
ICR_2ndDisplayWindow_Add(string szXMLFilePath): integer
Creates a script window on the 2nd display.
Parameter Description Values
szXMLFilePath File path
Display functions
ICR_SalesModeWindow_Add
Parameters
Return values
Examples
local nWindowID = ICR_SalesModeWindow_Add("window.xml");
ICR_2ndDisplayWindow_Add
Parameters
Returns an integer value representing the newly created window ID.
ICR_Window_Enable(integer nWindowID, boolean bEnable)
Enables or disables a specified script window.
Parameter Description Values
nWindowID Window ID
bEnable Enable/disable window true - Enable window
false - Disable window
None
ICR_GetWindowDimensions(integer nWindowID): table
Gets the size of the specified script window.
Return values
Examples
local nWindowID = ICR_2ndDisplayWindow_Add("window.xml");
ICR_Window_Enable
Parameters
Return values
Examples
local nSalesWindowID = ICR_SalesModeWindow_Add("window.xml", false);
ICR_Window_Enable(nSalesWindowID, true);
ICR_GetWindowDimensions
Parameters
Parameter Description Values
nWindowID Window ID
Returns a table containing the window dimensions.
ICR_RedrawScreen()
Forces a screen repaint.
None
None
Version Description
7601 Any open dialogs are undrawn when ICR_RedrawScreen()
is called.
Return values
Examples
local nSalesWindowID = ICR_SalesModeWindow_Add("window.xml", false);
ICR_GetWindowDimensions(nSalesWindowID);
ICR_RedrawScreen
Parameters
Return values
Examples
ICR_RedrawScreen();
Changelog
ICR_RedrawWindow
ICR_RedrawWindow(integer nWindowID, integer nSubWindowID = null)
Instructs TouchPoint to redraw the specified sales mode window.
Parameter Description Values
nWindowID Sales mode window ID
0 - Clerk name
1 - Date
2 - Time
3 - Mode
4 - Price level
5 - Check number
6 - Device status 1
7 - Device status 2
8 - Device status 3
9 - Device status 4
10 - Device status 5
11 - Device status 6
12 - Device block 1
13 - Device block 2
14 - Device block 3
15 - Device block 4
16 - Device block 5
17 - Device block 6
18 - Subtotal
19 - Item count
20 - Picture
21 - Etal script
nSubWindowID Sub window ID
None
ICR_InvalidateCachedLevel(integer nMenuLevel = null)
Invalidates a menu level in the level cache.
If the level parameter is omitted, then all levels are invalidated.
Parameters
Return values
Examples
ICR_RedrawWindow(5);
ICR_RedrawWindow(21, 4);
ICR_InvalidateCachedLevel
Parameter Description Values
nMenuLevel Menu level
None
ICR_CreateFont(string szFontFace, integer nFontSize, boolean bBold = false, boolean bItalic =
false, boolean bUnderline = false): integer
Creates a new font that can be used for drawing to scripted windows.
Parameter Description Values
szFontFace Font face
nFontSize Font size in pixels
bBold Embolden text
bItalic Italicise text
bUnderline Underline text
Returns an integer value representing the newly created font ID.
Parameters
Return values
Examples
ICR_InvalidateCachedLevel(10);
ICR_CreateFont
Parameters
Return values
Examples
Version Description
7609 Performance enhancements
ICR_SelectFont(integer nNewFontID): integer
Selects the specified font ID as returned from ICR_CreateFont for following text drawing operations.
Parameter Description Values
nNewFontID Font ID
Returns an integer value representing the previously selected font ID.
ICR_SetText_Colour(integer nColour)
Set the text colour.
Parameter Description Values
local nHeaderFontID = ICR_CreateFont("Arial", 32, true, false, true);
local nBodyFontID = ICR_CreateFont("Arial", 16);
Changelog
ICR_SelectFont
Parameters
Return values
Examples
local nPreviousFont = ICR_SelectFont(nBodyFont);
ICR_SelectText_Colour
Parameters
nColour Hex colour code
None
Version Description
7609 Performance enhancements
ICR_SetText_HAlign(integer nAlignment): integer
Sets the horizontal alignment for the current font when using ICR_DrawText .
Parameter Description Values
nAlignment Alignment
0 - Left
1 - Centre
2 - Right
Returns an integer value representing the previous horizontal alignment.
Return values
Examples
// Set the font colour to white.
ICR_SetText_Colour(0xFFFFFF);
// Set the font colour to red.
ICR_SetText_Colour(0xFF0000);
// Set the font colour to blue.
ICR_SetText_Colour(0x0000FF);
Changelog
ICR_SetText_HAlign
Parameters
Return values
Examples
Version Description
7609 Performance enhancements
ICR_SetText_VAlign(integer nAlignment): integer
Sets the vertical alignment for the current font when using ICR_DrawText .
Parameter Description Values
nAlignment Alignment
0 - Top
1 - Centre
2 - Bottom
Returns an integer value representing the previous vertical alignment.
ICR_GetText_Width(string szText): integer
Retrieves the height of the supplied text string using the currently selected font.
Parameter Description Values
local nPreviousAlignment = ICR_SetText_HAlign(2);
Changelog
ICR_SetText_VAlign
Parameters
Return values
Examples
local nPreviousAlignment = ICR_SetText_VAlign(1);
ICR_GetText_Width
Parameters
szText Text string
Returns an integer value representing the text width in pixels.
ICR_GetText_Height(string szText): integer
Retrieves the height of the supplied text string using the currently selected font.
Parameter Description Values
szText Text string
Returns an integer value representing the text height in pixels.
ICR_LoadImage(string szFilePath): integer
Loads an image that can be used for drawing to scripted windows.
Parameter Description Values
Return values
Examples
local nTextWidth = ICR_GetText_Width("Text String");
ICR_GetText_Height
Parameters
Return values
Examples
local nTextHeight = ICR_GetText_Height("Text String");
ICR_LoadImage
Parameters
szFilePath Image file path
Returns an integer value containing the newly created image ID.
Version Description
6650 Added support for absolute filepaths.
ICR_UnloadImage(integer nImageID)
Unload an image from memory.
Parameter Description Values
nImageID Image ID to unload
None
Return values
Examples
local nImageID = ICR_LoadImage("Etal\\display\\first_image.png");
Changelog
ICR_UnloadImage
Parameters
Return values
Examples
// Load in an image.
local nImageID = ICR_LoadImage("Etal\\display\\first_image.png");
// Select the image to manipulate.
ICR_SelectImage(nImageID);
// Unload the image.
ICR_UnloadImage(nImageID);
ICR_GetImageSize(integer nImageID): table
Gets the size of the selected image.
Parameter Description Values
nImageID Selected image ID
Returns a table containing the image dimensions.
ICR_SelectImage(integer nNewImageID): integer
Selects the specified image ID as returns from ICR_LoadImage for following display operations.
Parameter Description Values
nNewImageID Selected image ID
Returns an integer value containing the previously selected image ID.
ICR_GetImageSize
Parameters
Return values
Examples
local nImageID = ICR_LoadImage("Etal\\display\\first_image.png");
local tDimensions = ICR_GetImageSize(nImageID);
ICR_SelectImage
Parameters
Return values
Examples
ICR_Image_SetTransparent(integer nColour32)
Sets the transparent colour on the currently selected image hexadecimal.
Parameter Description Values
nColour32 Transparent colour
None
ICR_AttachWindow(integer nWindowID, string szWindowCaption, integer nOptions)
Attaches the contents of a windows application to an Etal window.
This is an experimental method.
Parameter Description Values
nWindowID Etal window ID
szWindowCaption Caption of the attached window
local nImage1ID = ICR_LoadImage("Etal\\display\\first_image.png");
local nImage2ID = ICR_LoadImage("Etal\\display\\second_image.png");
local nOldImageID = ICR_SelectImage(nImage2ID);
ICR_Image_SetTransparent
Parameters
Return values
Examples
ICR_Image_SetTransparent(0xFFFF00);
ICR_AttachWindow
Parameters
Parameter Description Values
nOptions Flag options 0x00000001 - Scale to fit window
None
Return values
Examples
// ID of the window that we'll be using to attach to Notepad.
local g_nNotepadWindowID = 0;
function AttachNotepadWindow()
{
// Add a template window (see window.xml for more detail).
g_nNotepadWindowID = ICR_SalesModeWindow_Add("window.xml");
// Enable a copy of the window we are going to use the window later.
ICR_Window_Enable(g_nNotepadWindowID, true);
// Attached the Notepad window, ensure scaling.
ICR_AttachWindow(g_nNotepadWindowID, "Notepad", 0x0001);
}
ICRTouch Standard Library
ICR_DrawBox(integer nLeft, integer nTop, integer nWidth, integer nHeight, integer nColour32)
Draw a box with the specified position with the supplied dimensions and colour.
Parameter Description Values
nLeft Left offset in pixels
nTop top offset in pixels
nWidth Box width
nHeight Box height
nColour32 Fill colour
None
Version Description
7609 Performance enhancements
Drawing functions
ICR_DrawBox
Parameters
Return values
Examples
function OnWindowPaint(nWindowID)
{
// Draw a blue box.
ICR_DrawBox(10, 10, 100, 100, 0x0000FF);
}
Changelog
ICR_DrawFrame(integer nLeft, integer nTop, integer nWidth, integer nHeight, integer nFrameWidth,
integer nColour32)
Draw an empty box at the specified position with the supplied dimensions and colour.
Parameter Description Values
nLeft Left offset in pixels
nTop Top offset in pixels
nWidth Box width
nHeight Box height
nFrameWidth Frame width
nColour32 Fill colour
None
Version Description
7609 Performance enhancements
ICR_DrawPixel(integer nLeft, integer nTop, integer nColour32)
ICR_DrawFrame
Parameters
Return values
Examples
function OnWindowPaint(nWindowID)
{
// Draw a red frame.
ICR_DrawFrame(10, 10, 100, 100, 3, 0xFF0000);
}
Changelog
ICR_DrawPixel
Draws a pixel at the specified position in the supplied colour.
Parameter Description Values
nLeft Left offset in pixels
nTop Top offset in pixels
nColour32 Fill colour
None
Version Description
7609 Performance enhancements
ICR_SetTextClip(integer nLeft, integer nTop, integer nRight, integer nBottom)
Sets a clip on the text for subsequent ICR_DrawText functions for the current OnWindowPaint event.
Parameter Description Values
nLeft Left offset
nTop Top offset
nRight Right offset
Parameters
Return values
Examples
function OnWindowPaint(nWindowID)
{
// Draw a magenta pixel.
ICR_DrawPixel(50, 75, 0xFFFF00);
}
Changelog
ICR_SetTextClip
Parameters
Parameter Description Values
nBottom Bottom offset
None
ICR_DrawImage(integer nLeft, integer nTop, integer nWidth = null, integer nHeight = null)
Draws the currently selected image at the specified position.
If nWidth & nHeight aren't supplied, the image's width & height are used.
Parameter Description Values
nLeft Left offset
nTop Top offset
nWidth Image width
nHeight Image height
None
Return values
Examples
function OnWindowPaint(nWindowID)
{
// Set a drawable area for text.
ICR_SetTextClip(10, 10, 510, 510);
// This text will be visible.
ICR_DrawText(20, 100, "Test text");
// This text will NOT be visible.
ICR_DrawText(520, 100, "Test text");
}
ICR_DrawImage
Parameters
Return values
Version Description
7412 Fixed drawn artifacts
ICR_DrawText(integer nLeft, integer nTop, string szText)
Draws the supplied string to the specified position.
Parameter Description Values
nLeft Left offset
nTop Top offset
szText Text
None
Examples
local g_nImageID = 0;
function OnInit()
{
// Load an image.
g_nImageID = ICR_LoadImage("Etal\\Images\\image.png");
}
function OnWindowPaint(nWindowID)
{
// Select and draw the image.
ICR_SelectImage(g_nImageID);
ICR_DrawImage(10, 10, 640, 480);
}
Changelog
ICR_DrawText
Parameters
Return values
Version Description
7609 Performance enhancements
ICR_DrawPie(integer nLeft, integer nTop, integer nWidth, integer nHeight, integer nX1, integer
nY1, integer nX2, integer nY2, integer nBorderColour, integer nFillColour)
Draws a pie segment anticlockwise from nX1 , nY1 to nX2 , nY2 within the area specified by the
position/dimensions.
Parameter Description Values
nLeft Left offset
nTop Top offset
Examples
local g_nFontID = 0;
function OnInit()
{
// Create a font for text drawing.
g_nFontID = ICR_CreateFont("Arial", 16);
}
function OnWindowPaint(nWindowID)
{
// Select the font and draw the text.
ICR_SelectFont(g_nFontID);
ICR_DrawText(10, 10, "Text to draw");
}
Changelog
ICR_DrawPie
Parameters
Parameter Description Values
nWidth Width
nHeight Height
nX1 Segment start X
nY1 Segment start Y
nX2 Segment end X
nY2 Segment end Y
nBorderColour32 Border colour
nFillColour32 Fill colour
None
Return values
Examples
// Draw a pie chart, tSegmentSizes is a table of sizes as integer percentages.
// tColours is a table/array of 24 bit colour values, [0] contains the border colour, [1]...
contains colours to use for pie segments
local tColours = {
[0]=0xFFFFFF,
[1]=0xFF0000,
[2]=0x00FF00,
[3]=0x0000FF,
[4]=0xFFFF00,
[5]=0xFF00FF
};
local g_nColour = 0;
// PI / 50, the number of radians in 1% of a circle, so we can put the segment sizes in %
const c_ANGLESTEP = 0.06283185;
function DrawPie(tSegmentSizes, nLeft, nTop, nRadius)
ICR_FloodFill(integer nX, integer nY, integer nColour32)
Flood fills outwards from the specified nX & nY positions with colour.
~600 times faster than doing it via ICR_DrawPixel .
{
// where are we drawing from?
local nOriginX = nRadius + nLeft;
local nOriginY = nRadius + nTop;
local nWidth = nRadius * 2;
local nHeight = nRadius * 2;
local fAngle = 0.0;
// Iterate over each of the segments.
for(local nSegmentNumber = 0; nSegmentNumber < tSegmentSizes.len(); nSegmentNumber++)
{
// For this segment
// Set the colour
g_nColour = tColours[(nSegmentNumber + 1) % tColours.len()];
// Calculate the start of the segment.
local nY1 = floor(sin(fAngle) * nRadius).tointeger();
local nX1 = floor(cos(fAngle) * nRadius).tointeger();
// Calculate the end of the segment.
// - because we're drawing anticlockwise.
fAngle = fAngle - (c_ANGLESTEP * tSegmentSizes[nSegmentNumber]);
local nY2 = floor(sin(fAngle) * nRadius).tointeger();
local nX2 = floor(cos(fAngle) * nRadius).tointeger();
// Get TouchPoint to draw the pie segment.
ICR_DrawPie(nLeft, nTop, nWidth, nHeight, nOriginX + nX1, nOriginY + nY1, nOriginX +
nX2, nOriginY + nY2, tColours[0], g_nColour);
}
}
ICR_FloodFill
Parameter Description Values
nX X position
nY Y position
nColour32 Fill colour
None
ICR_GetPixel(integer nX, integer, nY): integer
Parameters
Return values
Examples
function OnWindowPaint(nWindowID)
{
if(nWindowID == g_nWindowID)
{
// Draw our window.
DrawWindow();
}
}
function DrawWindow()
{
// Store the frame width so we know where the inside of the box is.
local nFrameWidth = 5;
// Draw an empty red frame.
ICR_DrawFrame(100, 100, 200, 200, nFrameWidth, 0XFF0000);
// Fill the inside of the frame with green.
ICR_FloodFill(100 + nFrameWidth, 100 + nFrameWidth, 0x00FF00);
}
ICR_GetPixel
Gets the colour of the pixel at the designated coordinates.
Parameter Description Values
nX X position
nY Y position
Returns an integer value representing the colour of the specified pixel.
Parameters
Return values
Examples
function OnWindowPaint(nWindowID)
{
if(nWindowID == g_nMainWindowID)
{
// Draw our window.
DrawWindow();
}
}
function DrawWindow()
{
// Draw a red pixel.
ICR_DrawPixel(100, 100, 0xFF0000);
// Get the colour of the pixel at pos 100, 100.
local nColour = ICR_GetPixel(100, 100);
}
ICRTouch Standard Library
TouchPoint 5800+
ICR_MailReset()
Clears out any current mail configuration/content data.
None
None
TouchPoint 5800+
ICR_MailConfigure(string szServer, integer nPort, string szUsername, string szPassword, string
szSenderName, string szSenderEmail, string szReplyToAddress = "", string szSecurityType = "",
boolean bHTML = false)
Configures the email settings and needs to be called before emails are able to be dispatched.
This only needs to be called once by each script, but can be called multiple times if changes are
made to any settings.
If nPort is set to 0, the default 25 is used.
If szReplyToAddress is empty, szSenderEmail is used.
Email functions
ICR_MailReset
Parameters
Return values
Examples
ICR_MailReset();
ICR_MailConfigure
Parameters
Parameter Description Values
szServer Server address
nPort Port number
szUsername Username
szPassword Password
szSenderName Sender name
szSenderEmail Sender email address
szReplyToAddress Reply to address
szSecurityType Security type
None - No security
TLS - TLS
SSL - SSL
bHTML HTML email true - HTML email
false - Plain text email
None
Version Description
5830 HTML email support added
TouchPoint 5800+
Return values
Examples
ICR_MailConfigure("mail.example.com", 465, "user", "password", "Mr Example",
"mr@example.com", "mr@example.com", "TLS", true);
Changelog
ICR_MailAddReceipient
ICR_MailAddRecipient(string szReceipient, string szName = "", integer nType)
Add a new recipient to the current email.
Parameter Description Values
szRecipient Recipient email address
szName Recipient name
nType Recipient type
0 - To
1 - CC
2 - BCC
None
TouchPoint 5800+
ICR_MailSetSUbject(string szSubject)
Sets the subject against the current email.
Parameter Description Values
szSubject Email subject
None
Parameters
Return values
Examples
ICR_MailAddRecipient("mr@example.com");
ICR_MailAddRecipient("mr2@example.com", "Mr Example", 1);
ICR_MailSetSubject
Parameters
Return values
Examples
TouchPoint 5800+
ICR_MailAddToMessage(string szMessage)
Appends the provided string to the end of of the current email message.
Parameter Description Values
szMessage Message
None
TouchPoint 5800+
ICR_MailAddToMessageLine(string szMessage)
Appends the provided string to the end of the current email message and automatically appends a
CRLF ( \r\n ) pair.
ICR_MailSetSubject("Test email");
ICR_MailAddToMessage
Parameters
Return values
Examples
local szDblLineBreak = "\r\n\r\n";
ICR_MailAddToMessage("Hello Mr Example" + szDblLineBreak);
ICR_MailAddToMessage("This is a test email" + szDblLineBreak);
ICR_MailAddToMessage("Best regards" + szDblLineBreak + "Test Email");
ICR_MailAddToMessageLine
Parameters
Parameter Description Values
szMessage Message line
None
TouchPoint 5800+
ICR_MailAddAttachment(string szFilePath)
Adds an attachment to the current email.
Parameter Description Values
szFilePath File path
None
Return values
Examples
ICR_MailAddToMessageLine("Hello Mr Example");
ICR_MailAddToMessageLine("");
ICR_MailAddToMessageLine("This is a test email");
ICR_MailAddToMessageLine("");
ICR_MailAddToMessageLine("Best regards");
ICR_MailAddToMessageLine("");
ICR_MailAddToMessageLine("Test Email");
ICR_MailAddAttachment
Parameters
Return values
Examples
ICR_MailAddAttachment("C:\\ICRTouch\\Reports\\report.pdf");
TouchPoint 5800+
ICR_MailSendSimple(string szRecipient, string szSubject, string szMessage)
Simple function for sending an email.
On a successful send, ICR_MailReset is called automatically.
Email send result triggers OnEmailOutResult .
Parameter Description Values
szRecipient Recipient email address
szSubject Email subject
szMessage Message
None
TouchPoint 5800+
ICR_MailSend()
Dispatches the current email.
On a successful send, ICR_MailReset is called automatically.
Email send result triggers OnEmailOutResult .
ICR_MailSendSimple
Parameters
Return values
Examples
ICR_MailReset();
ICR_MailConfigure("mail.example.com", 465, "user", "password", "Mr Example",
"mr@example.com", "mr@example.com", "TLS", true);
ICR_MailSendSimple("mr.recipient@email.com", "Test Email", "Hello Mr Example\r\n\r\nHow are
you today?\r\n\r\nTest Email");
ICR_MailSend
None
None
Parameters
Return values
Examples
ICR_MailReset();
ICR_MailConfigure("mail.example.com", 465, "user", "password", "Mr Example",
"mr@example.com", "mr@example.com", "TLS", true);
ICR_MailSetSubject("Till report");
ICR_MailAddRecipient("mr.recipient@email.com");
ICR_MailAddAttachment("C:\\ICRTouch\\Reports\\report.pdf");
ICR_MailSend();
ICRTouch Standard Library
TouchPoint 5830+
ICR_FTPConfigure(string szServer, integer nPort, string szUsername, string szPassword)
Configures the FTP server connection with the specified credentials.
This only needs to be called once by each script.
If you need to connect with different settings the you can call this function multiple times.
Parameter Description Values
szServer Server address
nPort Port number
szUsername Username
szPassword Password
Return description
TouchPoint 5800+
ICR_FTPUpload(string szRemoteFilePath, string szLocalFilePath, boolean bAppend = false)
Uploads a file to the FTP server.
The result is passed through the OnFTPResult() event.
FTP functions
ICR_FTPConfigure
Parameters
Return values
Examples
ICR_FTPConfigure("ftp.server.example.com", 21, "username", "password");
ICR_FTPUpload
Parameter Description Values
szLocalFilePath Local file path
szRemoteFilePath Remote file path
bAppend Append to file true - Append to file
false - Overwrite file
None
Version Description
6600 Added append option
TouchPoint 5800+
ICR_FTPDownload(string szRemoteFilePath, string szLocalFilePath)
Downloads a file from the FTP server.
The result is passed through the OnFTPResult() event.
Parameter Description Values
szRemoteFilePath Remote file path
szocalFilePath Local file path
None
Parameters
Return values
Examples
ICR_FTPUpload("c:\\temp\\ftptest.txt", "/html/example.com/ftptest.txt");
Changelog
ICR_FTPDownload
Parameters
Return values
Examples
ICR_FTPDownload("/html/example.com/ftptest.txt", "c:\\temp\\ftptest.txt");
ICRTouch Standard Library
TouchPoint 5800+
ICR_SendSMS(string szUsername, string szPassword, string szFrom, string nTo, string szNumbers,
boolean bTestMode = false)
Sends an SMS message from TouchPoint.
An active SMS account with credit must be used and can be registered at
http://www.sendsms.org.uk/icrtouch/
Parameter Description Values
szUsername Username
szPassword Password
szFrom From address
szTo Comma separated list of numbers
szMessage Message
bTestMode Test mode true - Simulates sending
false - Sends message
None
The from address is the text that is displayed when a message arrives on a users handset.
This can only be alphanumeric with spaces, must have a minimum or 3 characters and a maximum
of 11.
SMS functions
ICR_SendSMS
Parameters
Return values
Examples
ICR_SendSMS("user@example.com", "password", "ICRTouch", "447912345678,447987654321", "This is
a message.");
Notes
If invalid details are entered, the from address shown is the default for the account.
Numbers must be purely numeric, containing no + symbols, hyphens or spaces.
All numbers must begin with the international prefix.
For example, in the UK this is 44 .
The message can be up to 612 characters in length.
A single message is 153 characters, longer messages are 153 characters each (2 = 312, 3 = 469,
4 = 612).
To insert a newline character use %n.
Euro symbols are treated as new characters.
ICRTouch Standard Library
ICR_Web_Reset()
Clears any current web request data.
None
None
TouchPoint 6600+
ICR_Web_SetHeaderField(string szHeader, string szValue)
Sets a HTTP header against the current web request.
Parameter Description Values
szHeader Header name
szValue Header value
Web functions
ICR_Web_Reset
Parameters
Return values
Examples
ICR_Web_Reset();
ICR_Web_SetHeaderField
Parameters
Return values
None
Content-Type is set in the 2nd Parameter of ICR_Web_SetPostData .
Version Description
7010 Increased the capacity from 100 to 200 bytes
8202
Increased the maximum size of individual HTTP POST
header fields to 4,000 bytes, and the total POST header
size to 20,000 bytes.
ICR_Web_SetURL(string szURL)
Sets the target URL for the HTTP request.
Parameter Description Values
szURL Target URL
None
Examples
ICR_Web_SetHeaderField("Accept", "application/json");
Notes
Changelog
ICR_Web_SetURL
Parameters
Return values
Examples
ICR_Web_SetURL("http://localhost:9980/test.ehp");
ICR_Web_SetPostData(string szPostData, string szContentType)
Adds a HTTP request body to the current request.
Parameter Description Values
szPostData POST data
szContentType Content-Type header
None
ICR_Web_Get(integer nID, string szOutputFileName = "")
Make a HTTP GET request to the currently set URL.
Request result triggers OnWebResult .
Parameter Description Values
nID Provided request ID
szOutputFilename Document/file download destination
ICR_Web_SetPostData
Parameters
Return values
Examples
local tData = {
Status = 1,
message = "Ok"
};
local szData = JSONSerialise(tData);
ICR_Web_SetPostData(szData, "application/json");
ICR_Web_Get
Parameters
None
ICR_Web_Post(integer nID)
Make a HTTP POST request to the currently set URL.
Request result triggers OnWebResult .
Parameter Description Values
nID Provided request ID
None
Return values
Examples
ICR_Web_Reset();
ICR_Web_SetURL("http://requestaddress/get-endpoint/13");
ICR_Web_Get(1);
ICR_Web_Post
Parameters
Return values
Examples
local tData = {
FIRSTNAME = "David",
LASTNAME = "Smith"
};
local szData = JSONSerialise(tData);
ICR_Web_Reset();
ICR_Web_SetURL("http://requestaddress/post-endpoint");
ICR_Web_Put(integer nID)
Make a HTTP PUT request to the currently set URL.
Request result triggers OnWebResult .
Parameter Description Values
nID Provided request ID
None
ICR_Web_SetPostData(szData, "application/json");
ICR_Web_Post(1);
ICR_Web_Put
Parameters
Return values
Examples
local tData = {
FIRSTNAME = "David",
LASTNAME = "Smith"
};
local szData = JSONSerialise(tData);
ICR_Web_Reset();
ICR_Web_SetURL("http://requestaddress/put-endpoint/10");
ICR_Web_SetPostData(szData, "application/json");
ICR_Web_Put(2);
ICR_Web_Patch(integer nID)
Make a HTTP PATCH request to the currently set URL.
Request result triggers OnWebResult .
Parameter Description Values
nID Provided request ID
None
ICR_Web_Delete(integer nID)
ICR_Web_Patch
Parameters
Return values
Examples
local tData = {
FIRSTNAME = "David",
LASTNAME = "Smith"
};
local szData = JSONSerialise(tData);
ICR_Web_Reset();
ICR_Web_SetURL("http://requestaddress/patch-endpoint/5");
ICR_Web_SetPostData(szData, "application/json");
ICR_Web_Patch(4);
ICR_Web_Delete
Make a HTTP DELETE request to the currently set URL.
Request result triggers OnWebResult .
Parameter Description Values
nID Provided request ID
None
ICR_SendRemoteMessage(integer nLicence, string szMessage)
Sends a message directly to the specified licence number.
This sends messages over the internet via HTTP.
Parameter Description Values
nLicence Licence number
szMessage Message to send
Returns true on succes, false on failure.
Parameters
Return values
Examples
ICR_Web_Reset();
ICR_Web_SetURL("http://requestaddress/delete-endpoint/7");
ICR_Web_Delete(1);
ICR_SendRemoteMessage
Parameters
Return values
Examples
// Send a message to a licence
local bResult = ICR_SendRemoteMessage(999999, "Hello, there!");
ICRTouch Standard Library
TouchPoint 6200+
ICR_CreateHMAC(string szKey, string szValue, string szType): string
Create a HMAC of the supplied value using the hashing key.
Parameter Description Values
szKey Hash key
szValue Data to be hashed
szType Hash type MD5 - Message Digest Algorithm
SHA1 - Secure Hash Algorithm 1
Returns a 128-bit MD5 or 160-bit SHA1 string containing the calculated hash.
The above would return something similar to A95669C550C0C9CC91EF29A91873CA4F .
TouchPoint 6800+
ICR_CreatePBKDF2(string szPassword, string szSalt, integer nIterations, integer
nOutputKeyLength): string
Creates a PBKDF2 crytographic key derivation.
Used in ICR_EncryptAES and ICR_DecryptAES as the IV/Key.
Encryption functions
ICR_CreateHMAC
Parameters
Return values
Examples
local szHashedString = ICR_CreateHMAC("key", "password", "MD5");
ICR_CreatePBKDF2
Parameter Description Values
szPassword Master password
szSalt Salt
nIterations Number of times the key is generated
nOutputKeyLength Output length in bytes
Returns a string containing the derived key as hexadecimal.
The above would return something similar to F9D39C571D66A03C2A71A81535B0C2D0 .
TouchPoint 6800+
ICR_EncryptAES(string szData, string szMethod, string szKey, string szIV): string
Encrypt a string of data using the AES128 algorithm.
Parameter Description Values
szData Data to encrypt
szMethod Encryption method AES-128-CBC
szKey Passphrase
szIV Initialisation Vector
Returns the encrypted string value as base64.
Parameters
Return values
Examples
dofile("Etal\\lib\\strings.moc");
local szPBKDF2 = ICR_CreatePBKDF2("password", StringToHexString("salt"), 1024, 16);
ICR_EncryptAES
Parameters
Return values
The above would output something similar to 1FKDkhKD5xWYcj5k+NeRXA== .
TouchPoint 6800+
ICR_DecryptAES(string szData, string szMethod, string szKey, string szIV): string
Decrypt a base64 string of data using the AES128 algorithm.
Parameter Description Values
szData Data to decrypt
szMethod Encryption method AES-128-CBC
szKey Passphrase
szIV Initialisation Vector
Examples
dofile("Etal\\lib\\strings.moc");
function OnInit()
{
// Encrypt our data.
local szEncryptedString = ICR_EncryptString("stringtoencrypt", "mypassword", "mysalt");
}
function EncryptString(szData, szPassword, szSalt)
{
// Convert salt to hex string, create PBKDF2 for Key/IV.
local szSaltHex = StringToHexString(szSalt);
local szKey = ICR_CreatePBKDF2(szPassword, szSaltHex , 128, 16);
local szIV = ICR_CreatePBKDF2(szPassword, szSaltHex , 128, 16);
// Encrypt the string and return result
return ICR_EncryptAES(szData, "AES-128-CBC", szKey, szIV);
}
ICR_DecryptAES
Parameters
Returns the decrypted string value.
The above would output the originally encrypted string upon success, or a random string based on
the data supplied on failure.
For instance, the supplied string above decrypts to stringtoencrypt .
If the password is changed slightly, this would output something like Ë*É▒Éü▄æ5ßÉÔ\nn .
Return values
Examples
dofile("Etal\\lib\\strings.moc");
function OnInit()
{
// Decrypt our data.
local szDecryptedString = ICR_DecryptString("1FKDkhKD5xWYcj5k+NeRXA==", "mypassword",
"mysalt");
}
function DecryptString(szData, szPassword, szSalt)
{
// Convert salt to hex string, create PBKDF2 for Key/IV.
local szSaltHex = StringToHexString(szSalt);
local szKey = ICR_CreatePBKDF2(szPassword, szSaltHex , 128, 16);
local szIV = ICR_CreatePBKDF2(szPassword, szSaltHex , 128, 16);
// Decrypt the string and return result
return ICR_DecryptAES(szData, "AES-128-CBC", szKey, szIV);
}
ICRTouch Standard Library
ICR_Voucher_Used(string szCode, integer nAmount, string szSaleID)
Makes a request to modify a voucher's balance.
Request result triggers OnVoucherResult .
Parameter Description Values
szCode Voucher code
nAmount Adjustment amount
None
A positive nAmount value reduces the voucher balance, whereas a negative value increases the
voucher balance.
ICR_Voucher_Create(table tData)
Makes a request to create a voucher.
Request result triggers OnVoucherResult .
Voucher functions
ICR_Voucher_Used
Parameters
Return values
Examples
ICR_Voucher_Used("VCHRCODEXX", 1000, "1001004823090322");
Notes
ICR_Voucher_Create
Parameters
Parameter Description Values
tData Voucher data
None
VALUE: Integer value in minor currency without decimal point.
STARTDATE,EXPDATE: Dates are supplied as Integer of format of DDMMYYYY
STARTTIME,EXPTIME: Times are supplied as Integer of format of HHMM are appended to date.
ICR_Voucher_SetActive(string szCode, boolean bActive)
Makes a request to set a specified voucher's active status.
Request result triggers OnVoucherResult .
Parameter Description Values
szCode Voucher code
bActive Voucher status true - Activate voucher
false - Deactivate voucher
Return values
Examples
local tVoucher = {
NAME = "Test Voucher",
DESCRIPTION = "My Test",
TYPE = 1,
VALUE = 1500,
ACTIVE = true,
STARTDATE = 22032022,
EXPDATE = 1042036,
SITE = 0
};
ICR_Voucher_Create(tVoucher);
Notes
ICR_Voucher_SetActive
Parameters
None
ICR_Voucher_Get(string szCode)
Makes a request to get a voucher's details.
Request result triggers OnVoucherResult .
Parameter Description Values
szCode Voucher code
None
Return values
Examples
ICR_Voucher_SetActive("VCHRCODEXX", true);
ICR_Voucher_Get
Parameters
Return values
Examples
ICR_Voucher_Get("VCHRCODEXX");
ICRTouch Standard Library
TouchPoint 6800+
ICR_EHP_Output(string szOutputData)
Outputs the supplied string to the EHP server.
Parameter Description Values
szOutputData Output data
None
TouchPoint 6800+
ICR_EHP_SetHeader(string szHeader, string szValue)
Sets a header against the returned EHP page/data.
EHP server functions
ICR_EHP_Output
Parameters
Return values
Examples
<%
ICR_EHP_Output("<div class=\"container\">");
ICR_EHP_Output("<p class=\"main\">This is some example output text</p>");
ICR_EHP_Output("</div>");
%>
ICR_EHP_SetHeader
Parameters
Parameter Description Values
szHeader Header name
szValue Header value
None
TouchPoint 7000+
ICR_EHP_GetPostData(): string
Retrieves HTTP POST data from the HTTP BODY.
None
Return values
Returns a string of HTTP POST data.
Return values
Examples
<%
ICR_EHP_SetHeader("Access-Control-Allow-Origin", "http://localhost");
ICR_EHP_SetHeader("Access-Control-Allow-Origin", "POST, GET, OPTIONS");
ICR_EHP_SetHeader("Access-Control-Allow-Origin", "Content-Type, Accept");
ICR_EHP_SetHeader("Content-Type", "application/json");
ICR_EHP_SetHeader("Accept", "application/json");
%>
ICR_EHP_GetPostData
Parameters
Examples
<%
dofile("Etal\\lib\\json.moc");
local szPostData = ICR_EHP_GetPostData();
TouchPoint 7604+
ICR_EHP_GetRequestMethod(): string
Retrieves the HTTP method.
None
Returns a string value containing the HTTP request method.
TouchPoint 7604+
ICR_EHP_GetRequestHeader(string szHeader): string
Retrieves the requested HTTP header.
Parameter Description Values
szHeader Header key
local tPostData = JSONDeserialise("szPostData");
%>
ICR_EHP_GetRequestMethod
Parameters
Return values
Examples
<%
local szMethod = ICR_EHP_GetRequestMethod();
%>
ICR_EHP_GetRequestHeader
Parameters
Return values
Returns a string value containing the data for the requested header.
If the header doesn't exist, an empty string is returned.
TouchPoint 6800+
ICR_EHP_SetFilePos(integer nPosition)
Recorded for completion and is not usable in scripts.
Automatically generated by EHP Scripts to determine the position of the EHP code.
Parameter Description Values
nPosition File position
None
None
Examples
<%
local szContentType = ICR_EHP_GetRequestHeader("Content-Type");
%>
ICR_EHP_SetFilePos
Parameters
Return values
Examples
ICRTouch Standard Library
OnInit()
Triggered when the script engine launches.
None
OnTimer(integer nTimerID, integer nSystemTime)
System events
OnInit
Parameters
Examples
local bDebugPrinting = true;
function OnInit()
{
if(bDebugPrinting)
{
// Debug logging required.
// Enable debug logging, output console and autorestart on save.
ICR_EnableDebugLog(true);
ICR_SetFeature("CONSOLE",true);
ICR_SetFeature("AUTORESTART",true);
}
// Set local user data for our bDebugPrinting variable for later use.
ICR_SetLocalUserData("bDebugPrinting", bDebugPrinting, true);
}
OnTimer
Triggered when the timer created using ICR_StartTimer()has elapsed.
Parameter Description Values
nTimerID Elapsed timer ID
nSystemTime UNIX timestamp of current time
AfterModeChange(integer nFrom, integer nTo)
Triggered when ICRTouch changes mode.
Parameter Description Values
nFrom Outgoing mode
nTo Incoming mode
Parameters
Examples
function OnTimer(nTimerID, nSystemTime)
{
if(nTimerID == g_nOurTimer)
{
// Stop our timer.
ICR_StopTimer(nTimerID);
}
}
AfterModeChange
Parameters
Examples
function AfterModeChange(nFrom, nTo)
{
if (nFrom == 10) // Check if we're leaving PGM3
{
OnAwaitFile(string szFileName, integer nEventID, boolean bExpired)
Triggered as the result of the ICR_AwaitFile() method.
Parameter Description Values
szFileName Requested file name
nEventID User specified ID
// Force a save of local userdata.
ICR_SetLocalUserData("bDebugPrinting", false);
}
}
OnAwaitFile
Parameters
function ReportEvent(nEventType, nReportCode, nPeriod, bZReport, nLocation, bNetwork,
nFromDept, nToDept, nFromGroup, nToGroup, nMC, nPort)
{
switch(nEventType)
{
case 1: // Before print
break;
case 2: // After print - Ok
break;
case 3: // After print - Stopped
break;
case 4: // Report Z reset
break;
}
}
Parameter Description Values
bExpired Await file timeout
true - Timeout expired, file not
found
false - File found
OnPlayMacroResult(boolean bSuccess)
Trigged as a result of the ICR_PlayMacro() method.
Parameter Description Values
bSuccess Macro success true - Success
false - Failure
Examples
function OnAwaitFile(szFileName, nEventID, bExpired)
{
if(nEventID == g_nOurFileEvent)
{
// Check if the file was found.
if(bExpired)
{
// The file was not found and our timeout elapsed.
}
else
{
// The file was found.
}
}
}
OnPlayMacroResult
Parameters
Examples
function OnPlayMacroResult(bSuccess)
{
ReportEvent(integer nEventType, integer nReportCode, integer nPeriod, boolean bZReport, integer
nLocation, boolean bNetwork, integer nFromDept, integer nToDept, integer nFromGroup, integer
nToGroup, integer nMC, integer nPort)
Triggered as the result of running an X/Z report.
Parameter Description Values
nEventType Report event
1 - Before print
2 - After print - OK
3 - After print - Stopped
4 - Report Z reset
nReportCode Report code
nPeriod Report period
1 - Period 1
2 - Period 2
3 - Period 3
bZReport X/Z report true - Z report
false - X report
nLocation Location ID
bNetwork Inline or standalone report true - Inline report
false - Standalone report
nFromDept Department start record
nToDept Department end record
if(bSuccess)
{
// Macro played successfully.
}
else
{
// Macro failed.
}
}
ReportEvent
Parameters
Parameter Description Values
nFromGroup PLU group start record
nToGroup PLU group end record
nMC Machine number
nPort Port number
AfterFullSalesDataReset()
Triggered when a sales data reset completes.
Examples
function ReportEvent(nEventType, nReportCode, nPeriod, bZReport, nLocation, bNetwork,
nFromDept, nToDept, nFromGroup, nToGroup, nMC, nPort)
{
switch(nEventType)
{
case 1: // Before print
break;
case 2: // After print - Ok
break;
case 3: // After print - Stopped
break;
case 4: // Report Z reset
break;
}
}
AfterFullSalesDataReset
Parameters
None
OnFile_ReadPipeResult(integer nID, string szData)
Triggered by data being returned from a ICR_File_OpenPipe() command.
Parameter Description Values
nID ICR_File_OpenPipe() ID
szData Response data
Examples
function AfterFullSalesDataReset()
{
// Sales data reset complete.
}
OnFile_ReadPipeResult
Parameters
Examples
local g_nIPconfig = 0;
local g_szIPAddress = "";
function OnInit()
{
// Fire off a pipe command through the command line to run "ipconfig".
local g_nIPconfig = ICR_File_OpenPipe("C:\\WINDOWS\\system32\\cmd.exe /C ipconfig");
}
function OnFile_ReadPipeResult(nID, szData)
{
if(nID == g_nIPconfig)
{
if(szData.find("IPv4 Address") != null)
{
// IP Address found in text, find the start.
local nIPv4Start = szData.find("IPv4 Address");
// Slice from the start of the line onwards.
local szSlicedData = szData.slice(nIPv4Start);
// Find where the IP address begins and the end of line.
local nColon = szSlicedData.find(":") + 2;
local nEOL = szSlicedData.find("\r\n");
// Slice out the actual IP address
g_szIPAddress = szSlicedData.slice(nColon, nEOL);
}
}
}
ICRTouch Standard Library
BeforeKeyPress(integer nFile, integer nRecord, integer nKeyType): boolean
Triggered before a key press is processed.
Returning true or false determines whether the keypress is allowed to continue.
Parameter Description Values
nFile File number
nRecord Record number
nKeyType Key type
Returns a boolean value.
ICR_KeyPress() does not trigger this event.
Sales mode events
BeforeKeyPress
Parameters
Return values
Examples
function BeforeKeyPress(nFile, nRecord, nKeyType)
{
if(nKeyType == 25 || nKeyType == 26)
{
// A +/- AMOUNT key has been pressed, disallow it.
return false;
}
return true;
}
Notes
AfterKeyPress(integer nFile, integer nRecord, integer nKeyType)
Triggered after a key press has been processed.
Parameter Description Values
nFile File number
nRecord Record number
nKeyType Key type
ICR_KeyPress() does not trigger this event.
OnRunScriptKeyPress(integer nFile, integer nRecord, integer nNumber, integer nValue, integer
nFlag)
Triggered by pressing a "Run Script (Etal)" status key.
Parameter Description Values
nFile File number
nRecord Record number
AfterKeyPress
Parameters
Examples
function AfterKeyPress(nFile, nRecord, nKeyType)
{
// A key has been pressed.
}
Notes
OnRunScriptKeyPress
Parameters
Parameter Description Values
nNumber Set number
nValue Set value
nFlag Set flags
OnIButtonPress(string szIButton): boolean
Triggered an iButton being read, called before the data has been processed by TouchPoint.
Returning true or false determines whether the iButton is allowed to continue.
Parameter Description Values
szIButton IButton data
Examples
function OnRunScriptKeyPress(nFile, nRecord, nNumber, nValue, nFlag)
{
// A run script key has been pressed.
switch(nNumber)
{
case g_nScriptKeyNumber:
// Our script key was pressed.
// Do something.
break;
default:
// Not our script key, just return from the keypress.
// No action required.
return;
}
}
OnIButtonPressed
Parameters
Return values
Returns a boolean value.
OnCardSwipe(integer nTrack, string szData): boolean
Triggered by a magnetic card swipe, called before the data has been processed by TouchPoint.
Returning true or false from this function determines whether the mag card swipe is allowed to
continue.
Parameter Description Values
nTrack Track number
szData Card swipe data
Examples
local g_bAllowIButtons = false;
function OnIButtonPressed(szIButton)
{
// An iButton has been read.
if(!g_bAllowIButtons)
{
// iButtons are not allowed, return false.
return false;
}
// iButtons are allowed, return true.
return true;
}
OnCardSwipe
Parameters
Examples
local g_nCustomerSignOnKey = 5;
function OnCardSwipe(nTrack, szData)
{
The szData parameter does not include the start or end sentinels
// Card swipe received.
if(nTrack != 1)
{
// Not a track 1 swipe so let TouchPoint sort it out.
return true;
}
if (szData.len() != 11)
{
// It is not 11 characters, return true and let TouchPoint handle it.
return true;
}
// Check if the first 3 characters are 'ICR'.
if(szData[0] != 'I' && szData[1] != 'C' && szData[2] != 'R')
{
// They are not 'ICR', return true and let TouchPoint handle it.
return true;
}
// This is one of the cards we are looking for.
// Slice off the back 4 digits.
local szFullCode = szCardData.slice(7, 11);
// Push the last 4 digits through the ICR_SetInput() method.
ICR_SetInput(szFullCode);
// Press the customer sign on key. This will sign on our customer.
ICR_KeyPress (53, g_nCustomerSignOnKey);
// Return false, as we have handled the card swipe, so TouchPoint doesn't have to.
return false;
}
Notes
OnBarcode(string szBarcodeData): boolean
Triggered by scanning a EAN8/EAN13 barcode, called before the data is processed by TouchPoint.
Returning true or false determines whether the barcode scan is allowed to continue.
Parameter Description Values
szBarcodeData Barcode data
Returns a boolean value.
OnReceiptRequired(boolean bReceiptRequired): boolean
OnBarcode
Parameters
Return values
Examples
function OnBarcode(szBarcodeData)
{
// Barcode scanned.
// Check to see if the barcode has an assigned PLU.
local nScannedPLU = ICR_GetPLURecNumber(szBarcodeData);
if(nScannedPLU != 0)
{
// This is a TouchPoint PLU, get the PLU Data.
local tPLU = ICR_GetPGMData(1, nScannedPLU);
// Do something with the PLU.
}
// Return true, allowing the barcode.
return true;
}
OnReceiptRequired
Triggered before ICRTouch prints a receipt at the end of the current sale.
Returning true or false allows you to overwrite the current setting.
Parameter Description Values
bReceiptRequired Current receipt print requirement
Returns a boolean value.
AfterSignOn(integer nClerk)
Triggered when a clerk is signed on.
Parameters
Return values
Examples
function OnReceiptRequired(bCurrentReceiptOnSetting)
{
// Receipt required event called.
// Get the clerk buffer index.
local tClerkBuffer = ICR_GetClerkBuffer_Index();
// Check if we have a check/table open.
if (tClerkBuffer.CHECK > 0 || tClerkBuffer.TABLE > 0)
{
// We have a check or table open.
// Return false and do not print a receipt.
return false;
}
// No check/table open, let the current RECEIPT ON/OFF setting handle the printing.
return bCurrentReceiptOnSetting;
}
AfterSignOn
Parameters
Parameter Description Values
nClerk Clerk number
AfterCustomerLogOn(integer nCustomer)
Triggered when a customer is signed on.
Parameter Description Values
nCustomer Customer number
Examples
function AfterSignOn(nClerk)
{
// Clerk has been signed on.
// Get the clerk details.
local tClerk = ICR_GetPGMData(6, nClerk);
}
AfterCustomerLogOn
Parameters
Examples
function AfterCustomerLogOn(nCustomer)
{
// Customer has been signed on.
// Get the customer details.
local tCustomer = ICR_GetPGMData(260, nCustomer);
// Get the customer group data.
local tCustomerGroup = ICR_GetPGMData(270, tCustomer.GROUP);
}
AfterExtCustomerLogOn
AfterExtCustomerLogOn(string szCustomer): boolean
Triggered when a customer is signed on using 3rd party software.
Parameter Description Values
szCustomer Customer number
TouchPoint 5800+
OnNewCustomer(integer nCustomer)
Triggered when a customer is created through the auto creation process.
Parameter Description Values
nCustomer Customer number
Parameters
Examples
function AfterExtCustomerLogOn(szCustomer)
{
// 3rd party customer has been signed on.
// Get the 3rd party customer details.
local tCustomer = ICR_GetCurrent3rdPartyCustomer();
}
OnNewCustomer
Parameters
Examples
function OnNewCustomer(nCustomer)
{
// Customer has been signed on.
// Get the customer details.
local tCustomer = ICR_GetPGMData(260, nCustomer);
// Get the customer group data.
OnCustomerExpired(): boolean
Triggered before just before TouchPoint throws up the 'Expired' error message when an expired
customer is logged on.
Returning false from this function prevents TouchPoint from displaying the message and allows
the customer to sign on.
None
Returns a boolean value.
local tCustomerGroup = ICR_GetPGMData(270, tCustomer.GROUP);
}
OnCustomerExpired
Parameters
Return values
Examples
local g_nExtensionPLU = 5;
function OnCustomerExpired()
{
// Expired customer has been requested.
// Check to see if an extension PLU has been sold.
local bExtensionPLUSold = CheckForExtensionPLU();
// Evaluate the response of the CheckForExtensionPLU() method.
if(bExtensionPLUSold)
{
// Extension PLU found, allow the customer to sign on and act as normal.
return false;
}
// Extension PLU has not been found, return true and let TouchPoint handle it.
// The customer will not be signed on.
return true;
AfterRegItemSelect(integer nItem)
Triggered when an item has been selected in the reg window.
}
function CheckForExtensionPLU()
{
// Get the clerk buffer table.
local tClerkBuffer = ICR_GetClerkBuffer_Index();
// Iterate over each of the clerk buffer items.
for(local nCount = 1; nCount <= tClerkBuffer.REGPOS; nCount++)
{
// Get the clerk buffer item table for this item.
local tClerkItem = ICR_GetClerkBuffer_Item(nCount);
if(tClerkItem.FILE != 1)
{
// Skip this item as it's not a PLU.
continue;
}
// Check to see if this is our extension PLU.
if(tClerkItem.RECORD == g_nExtensionPLU)
{
// It is our extension PLU, return true.
return true;
}
}
// No extension PLU found, return false.
return false;
}
AfterRegItemSelect
Parameters
Parameter Description Values
nItem Selected item
OnMixMatch(integer nTable, integer nType): integer
Triggered when a mix & match with the type 'Etal' executed.
The return value is the amount to be discounted from the sale.
Parameter Description Values
nTable Triggered M&M table
nType Triggered M&M type
Returns an integer value.
The value returned by default will not be removed from the sale. It will simply write to the reg
window. If the value is to be removed from the sale then the value must be bitwise OR'd with
0x10000000 .
If applying a discount via a keypress inside the method, then do not OR your value with 0x10000000
, otherwise, you will apply an additional discount.
Examples
function AfterRegItemSelect(nItem)
{
// Reg item has been selected by the user.
// Get the clerk buffer item table for this item.
local tClerkItem = ICR_GetClerkBuffer_Item(nItem);
if(tClerkItem.FILE == 1)
{
// Item is a PLU, get the data.
local tPLU = ICR_GetPGMData(tClerkItem.FILE, tClerkItem.RECORD);
}
}
OnMixMatch
Parameters
Return values
Examples
local g_nSpecialGroup = 1;
function OnMixMatch(nTable, nType)
{
// Set a local variable to record the discount value.
local nValue = 0;
// A Mix & Match has been triggered.
// Check if it is type 2.
if(nType == 2 && nTable == 1)
{
// It is type 2 and the table is 1.
// Get the clerk buffer index.
local tClerkBuffer = ICR_GetClerkBuffer_Index();
// Get this Mix & Match program data.
local tMixMatch = ICR_GetPGMData(159, nTable);
// Create an empty table for storing only PLUs that are relevant to the M&M.
local tValidPLUs = {};
// Loop through the sale.
for(local nCount = 1; nCount <= tClerkBuffer.REGPOS; nCount++)
{
// Get this clerk buffer item.
local tClerkItem = ICR_GetClerkBuffer_Item(nCount);
// Chec if this item is a PLU, if it isn't skip this loop iteration and proceed
to the next record.
if(tClerkItem.FILE != 1) continue;
// This is a PLU.
// Loop through the M&M program data record and evaluate this PLU in the sale
against it.
for(local nMMItems = 1; nMMItems <= 30; nMMItems++)
{
// Check if this PLU matches this M&M item. Also make sure that an M&M has
not previously been applied.
if((tClerkItem.RECORD == tMixMatch["ITEM"+nMMItems]) && !(tClerkItem.FLAG1 &
0x10))
{
// This is a valid PLU, add it to our table of valid
PLUs.
tValidPLUs[nCount] <- tClerkItem;
}
}
}
// Iterate through our valid PLUs table.
foreach(idx, val in tValidPLUs)
{
// Get this PLUs program data.
local tThisPLU = ICR_GetPGMData(tValidPLUs[idx].FILE,
tValidPLUs[idx].RECORD);
if(tThisPLU.GROUP == g_nSpecialGroup)
{
// PLU is assigned to our set group.
// Evaluate the PRICE data stored in the clerk item table.
switch(val.PRICE)
{
case 500: // The price is 5.00, remove 1.00 from
it.
nValue += 100;
break;
case 250: // The price is 2.50, remove 0.50 from
it.
nValue += 50;
break;
default: // Default item discount value is 0.10.
nValue += 10;
break;
}
}
}
}
The maximum value that can be discounted using the Etal M&M type is 268435455 .
BeforeSaleFinalise(integer nRecord, integer nKeyType, integer nTenderAmount): boolean
Triggered when the first finalise key in the sale has been pressed but before the finalisation
actually starts.
Returning false will stop the sale being finalised (this is only possible with Cash and Cash2 types).
Parameter Description Values
nRecord Finalise key record number
nKeyType Finalise key type
nTenderAmount Amount tendered
Returns a boolean.
// Return the value from the above loop.
// Bitwise OR the value with 0x10000000 to remove the value from the sale.
return nValue | 0x10000000;
}
Notes
BeforeFinalise
Parameters
Return values
Examples
function BeforeFinalise(nRecord, nKeyType, nTenderAmount)
{
if(nKeyType == 11)
{
// Cash2 key, disallow this as the initial keypress.
// Return false, stopping the keypress.
return false;
PresaleFinalised()
Triggered immediately before the sale is finalised.
None
This method is the last possible stage to acquire the clerk buffer index and associated items on a
satellite terminal.
}
// All other cases, return true, allowing finalisation to continue.
return true;
}
PreSaleFinalised
Parameters
Examples
local g_tEvent = {
NAME = "TouchPoint Expo",
DATE = "31/10/2022"
};
function PreSaleFinalised()
{
// Check if we have data in our table.
if("NAME" in g_tEvent && "DATE" in g_tEvent)
{
// Add the data to the bottom of our receipt for printing.
ICR_ReceiptLine("", 0, 0, 53, 10, 0);
ICR_ReceiptLine("Name: " + g_tEvent.NAME, 0, 0, 53, 10, 0);
ICR_ReceiptLine("Date: " + g_tEvent.DATE, 0, 0, 53, 10, 0);
ICR_ReceiptLine("", 0, 0, 53, 10, 0);
}
}
Notes
This is the last possible stage to add items to the receipt buffer.
AfterFinalise()
Triggered after a sale is finalised.
None
This method is the last possible stage to acquire the clerk buffer index and associated items on a
master terminal.
AfterFinalise
Parameters
Examples
function AfterFinalise()
{
// Sale has been finalised.
}
Notes
ICRTouch Standard Library
BeforePrint(integer nType, integer nFile, integer nRecord, integer nMC, integer nPort)
Triggered just prior to ICRTouch outputting to the printer.
Parameter Description Values
nType Printer type
0 - Receipt
1 - Bill
2 - Voucher
4 - Ticket
nFile File number
nRecord Record number
nMC Machine number
nPort Printer port
Printing events
BeforePrint
Parameters
Examples
function BeforePrint(nType, nFile, nRecord, nMC, nPort)
{
if(nType != 0)
{
// Not a receipt.
return;
}
if(nFile == 402 && nRecord == 8)
{
// End of the receipt, get footer text.
local szFooterText = GetFooterText();
// Check string length.
if(szFooterText.len() > 0)
Version Description
6400 Bill print support added
6800 Voucher print support added
TouchPoint 5800+
OnKPDeviceRequested(integer nKP): integer
Triggered just before a KP device is selected for printing.
The script is given the option to divert the printing to a different kp device by returning the new kp
number from the function, or stopping printing to that device by returning 0.
Parameter Description Values
nKP Kitchen printer ID
Returns an integer representing a kitchen printer ID.
{
// Longer than 0, print footer text.
ICR_OutputLine(szFooterText, nMC, nPort);
}
}
}
Changelog
OnKPDeviceRequested
Parameters
Return values
Examples
function OnKPDeviceRequested(nKP)
{
if(nKP == 1)
{
// Move all KP 1 prints to KP 2
return 2;
TouchPoint 6400+
InsertAdditionalOrderInfo(integer nDest): string
Triggered when the order information box is printed.
Parameter Description Values
nDest Order info destination
0 - Receipt
1 - Kitchen Printer
2 - Bill
3 - Ticket
4 - Customer detail
5 - XML socket journal
6 - Remote receipt
7 - Webshop store
8 - Receipt rebuild
Returns a string to be printed.
}
// For everything else return the provided value.
return nKP;
}
InsertAdditionalOrderInfo
Parameters
Return values
Examples
// Voucher request types
enum Destination {
RECEIPT = 0,
KP = 1,
BILL = 2,
TICKET = 3
};
local szNewLine = "\n";
Version Description
7015 Added extra destinations
function InsertAdditionalOrderInfo(nDest)
{
if(nDest == Destination.KP || nDest == Destination.RECEIPT)
{
local szAddress = GetAddress();
return "Delivery Address" + szNewLine + szAddress;
}
return "";
}
Changelog
ICRTouch Standard Library
TouchPoint 7400+
AfterXMLSocketSendSale(string szRequest, string szResponse)
Triggered as a result of a sale received via the XML socket.
Parameter Description Values
szRequest Request data
szResponse Response data
TouchPoint 7407+
XMLSocketCheckPayment(integer nID, string szRequest, string szResponse, bCompleted)
Triggered as a result of a payment received on a check over the XML socket.
Parameter Description Values
nID Payment ID
XML socket events
AfterXMLSocketSendSale
Parameters
Examples
function AfterXMLSocketSendSale(szRequest, szResponse)
{
print("Request: " + szRequest);
print("Response: " + szResponse);
}
XMLSocketCheckPayment
Parameters
Parameter Description Values
szRequest Request data
szResponse Response data
bCompleted Payment completion status true - Payment complete
false - Payment incomplete
The event is called twice, once before the payment is completed and once after.
The first time the event is called szResponse will be empty and bCompleted will be set to false .
The second time the event is called szResponse will be filled and bCompleted will be set to true .
Examples
function XMLSocketCheckPayment(nID, szRequest, szResponse, bCompleted)
{
print("ID: " + nID);
print("REQUEST: " + szRequest);
print("RESPONSE: " + szResponse);
print("COMPLETED: " + bCompleted);
}
Notes
ICRTouch Standard Library
OnEnterPGMMenu(integer nSubMenu)
Trigged when a script's PGM3 > ETAL programming menu has been entered.
Parameter Description Values
nSubMenu Program menu level 0 - Main menu
Program mode events
OnEnterPGMMenu
Parameters
Examples
function OnEnterPGMMenu(nSubMenu)
{
// Reset the menu.
ICR_PurgeProgramSettings();
// hHeck which menu to render.
switch(nSubMenu)
{
case 0: // Main Menu
ICR_AdvertiseProgramHeading("Script Version 1.0");
ICR_AdvertiseProgramSetting("Enable Script", "bScriptEnabled");
ICR_AdvertiseProgramSetting("Version Info", "SCRIPTVERINF");
break;
default: // All other undefined cases/menus.
ICR_AdvertiseProgramHeading("This menu does not exist.");
break;
}
}
OnEnterProgramOptionList(integer nID)
Triggered when data for a program mode option list is required.
Parameter Description Values
nID Option list ID
OnEnterPGMOptionList
Parameters
Examples
function OnEnterPGMOptionList(nID)
{
// Reset the option list.
ICR_PurgeProgramOptionList();
switch(nID)
{
case 1: // Alignment list
ICR_ProgramOptionList_Add("LEFT", 1);
ICR_ProgramOptionList_Add("CENTRE", 2);
ICR_ProgramOptionList_Add("RIGHT", 3);
break;
case 2: // Font size
ICR_ProgramOptionList_Add("12px", 12);
ICR_ProgramOptionList_Add("14px", 14);
ICR_ProgramOptionList_Add("16px", 16);
ICR_ProgramOptionList_Add("18px", 18);
ICR_ProgramOptionList_Add("20px", 20);
break;
}
}
ICRTouch Standard Library
TouchPoint 7604+
AfterKPCUpdate(integer nEventType, string szID)
Event triggered whenever there is a data change in the KP Controller.
Parameter Description Values
nEventType Event type
1 - New kp ticket
2 - KP Ticket status change
3 - KP Ticket item status change
4 - KP Ticket item KP flag change
6 - Data store update
szID ID of the item that the event relates
to
Kitchen printer controller
events
AfterKPCUpdate
Parameters
Example
function AfterKPCUpdate(nEventType, szID)
{
local szEvent = nEventType + " ";
// Work out what type of event it is
switch(nEventType)
{
case 1:
szEvent += "(NEW KP TICKET)";
break;
case 2:
szEvent += "(KP TICKET STATUS CHANGE)";
break;
case 3:
szEvent += "(KP TICKET ITEM STATUS CHANGE)";
break;
case 4:
szEvent += "(KP TICKET ITEM KP FLAG CHANGE)";
break;
case 5:
szEvent += "(RESERVED)";
break;
case 6:
szEvent += "(DATASTORE UPDATE)";
break;
default:
szEvent += "(UNKNOWN)";
break;
}
print("KPC_AfterKPTicketUpdate() -> Event Type: " + szEvent + " ID: " + szID);
if(nEventType >= 1 && nEventType <= 5)
{
// Then this is a ticket event
// Get and output the ticket
local arrTickets = [];
arrTickets.push(szID);
local szKPTicket = ICR_KPC_GetKPTickets(arrTickets);
print("TICKET: " + szKPTicket);
}
if(nEventType == 6)
{
// Then this is a datastore event
local szData = ICR_KPC_GetData(szID);
print("DATA: " + szData);
}
}
Changelog
Version Description
7613 Finished ticket items that will also finish the ticket will
also now trigger a ticket status change.
ICRTouch Standard Library
OnMouseEvent(integer nWindowID, integer nEvent, integer nX, integer nY)
Triggered when a mouse event occurs in a window owned by this script.
Parameter Description Values
nWindowID Window ID
nEvent Event type
0 - Mouse down
1 - Mouse up
2 - Mouse move
nX Event x position
nY Event y position
Display events
OnMouseEvent
Parameters
Examples
local g_nWindowID = 0;
enum MouseEvents {
MOUSEDOWN = 0,
MOUSEUP = 1,
MOUSEMOVE = 2
};
function OnInit()
{
// Load window data.
g_nWindowID = ICR_SalesModeWindow_Add("main_window.xml", false);
ICR_Window_Enable(g_nWindowID, false);
}
function OnMouseEvent(nWindowID, nEvent, nX, nY)
{
OnWindowPaint(integer nWindowID)
Triggered when a window owned by the script requires drawing.
Parameter Description Values
nWindowID Window ID
if(nWindowID == g_nWindowID)
{
// Window owned by this script.
// Detect event type.
switch(nEvent)
{
case MouseEvents.MOUSEDOWN: // Mouse click down
MouseDownHandler(nX, nY);
break;
case MouseEvents.MOUSEUP: // Mouse click up
MouseUpHandler(nX, nY);
break;
case MouseEvents.MOUSEMOVE: // Mouse move
MouseMoveHandler(nX, nY);
break;
}
}
}
OnWindowPaint
Parameters
Examples
local g_nWindowID = 0;
function OnInit()
{
// Load window data.
g_nWindowID = ICR_SalesModeWindow_Add("main_window.xml", false);
ICR_Window_Enable(g_nWindowID, false);
}
function AfterModeChange(nFrom, nTo)
{
if(nTo == 1)
{
// Sales mode
ICR_Window_Enable(g_nWindowID, true);
ICR_RedrawScreen();
}
else
{
// Not sales mode
ICR_Window_Enable(g_nWindowID, true);
ICR_RedrawScreen();
}
}
function OnWindowPaint(nID)
{
// Painting a window
if(nID == g_nWindowID)
{
DrawWindow();
}
}
ICRTouch Standard Library
TouchPoint 5800+
OnEmailOutResult(boolean bSuccess, string szMessage)
Triggered as the result of an ICR_MailSendSimple() or ICR_MailSend() method.
Parameter Description Values
bSuccess Email result
szMessage Response from mail server
TouchPoint 5800+
Communications events
OnEmailOutResult
Parameters
Examples
function OnEmailOutResult(bSuccess, szMessage)
{
if(bSuccess)
{
// It was successful, do something.
}
else
{
// It was not a success. Print the error to the output.
print("Error: " + szMessage);
}
}
OnSMSOutResult
OnSMSOutResult(boolean bSuccess, string szMessage, string szNumberOfContacts, strings
zCreditsRequired, string szCreditsRemaining)
Triggered as the result of the ICR_SendSMS() method.
Parameter Description Values
bSuccess SMS result
szMessage Response from SMS provider
szNumberOfContacts Number of contacts the SMS was
sent to
szCreditsRequired Credits required
szCreditsRemaining Credits remaining
TouchPoint 5800+
OnFTPResult(boolean bSuccess, string szMessage, string szLocalFileName, string szRemoteFileName)
Triggered as the result of an ICR_FTPUpload() or ICR_FTPDownload() method.
Parameters
Examples
function OnSMSOutResult(bSuccess, szMessage, szNumberOfContacts, szCreditsRequired,
szCreditsRemaining)
{
if(bSuccess)
{
// It was successful, do something.
}
else
{
// It was not a success. Print the error to the output.
print("Error: " + szMessage);
}
}
OnFTPResult
Parameter Description Values
bSuccess FTP result
szMessage Response from FTP server
szLocalFileName Local file name
szRemoteFileName Remote file name
OnRemoteMessageReceived(integer nLicence, string szMessage)
Handles a message received directly from the specified licence number.
This receives messages over the internet via HTTP.
Parameter Description Values
nLicence Licence number
Parameters
Examples
function OnFTPResult(bSuccess, szMessage, szLocalFileName, szRemoteFileName)
{
if(bSuccess)
{
// It was successful, do something.
}
else
{
// It was not a success. Print the error to the output.
print("Error: " + szMessage);
}
}
OnRemoteMessageReceived
Parameters
Parameter Description Values
szMessage Received message
TouchPoint 6800+
OnWebResult(integer nID, integer nResult, string szData, string szType)
Triggered as the result of the following methods:
ICR_Web_Post()
ICR_Web_Get()
ICR_Web_Delete()
ICR_Web_Patch()
ICR_Web_Put()
Parameter Description Values
nID HTTP request ID
nResult HTTP response code
szData Response data
szType Response content-type
Examples
function OnRemoteMessageReceived(nLicence, szMessage)
{
print("Licence number: " + nLicence);
print("Message: " + szMessage);
}
OnWebResult
Parameters
Examples
dofile("etal\\lib\\json.moc");
This method replaces OnWebPostResult() in TouchPoint 2016 onwards.
Both events are still called regardless of the web operation; however, this method should be used.
TouchPoint 6200+
Deprecated. See OnWebResult .
OnWebPostResult(integer nID, string szData, string szType)
Triggered as a result of the ICR_Web_Post() method.
Parameter Description Values
nID HTTP request ID
szData Response data
szType Response content-type
dofile("etal\\lib\\HTTPStatusCode.moc");
function OnWebResult(nID, nResult, szData, szType)
{
// If our result was not successful.
if(nResult != 200)
{
print("HTTP Error: " + HTTPStatusCodeText(nResult));
}
if(szType == "application/json")
{
local tDeserialisedJSONData = JSONDeserialise(szData);
// Do something with the data.
}
}
Notes
OnWebPostResult
Parameters
Although deprecated, this event is triggered on a result of a web request.
Both OnWebPostResult() and OnWebResult() are called.
As of TouchPoint 2017, OnWebResult() should be used instead of OnWebPostResult() .
TouchPoint 6800+
OnVoucherResult(boolean bSuccess, string szVoucherCode, integer nJob, table tVoucherData = {})
Triggered as a result of the followingmethods:
ICR_Voucher_Create()
ICR_Voucher_SetActive()
ICR_Voucher_Get()
ICR_Voucher_Used()
Examples
dofile("etal\\lib\\json.moc");
dofile("etal\\lib\\HTTPStatusCode.moc");
function OnWebPostResult(nID, szData, szType)
{
// If our result was not successful.
if(nResult != 200)
{
print("HTTP Error: " + HTTPStatusCodeText(nResult));
}
if(szType == "application/json")
{
local tDeserialisedJSONData = JSONDeserialise(szData);
// Do something with the data.
}
}
Notes
OnVoucherResult
Parameter Description Values
bSuccess Voucher result
szVoucherCode Voucher code
nJob Request type
tVoucherData Voucher data from ICR_Voucher_Get()
Parameters
Examples
// Voucher request types
enum RequestType {CREATE = 1, SETACTIVE = 2, ADJUSTMENT = 3, GETINFO = 4};
function OnVoucherResult(bSuccess, szVoucherCode, nJob, tVoucherData)
{
if(bSuccess)
{
// Which request was made?
switch(nJob)
{
case RequestType.CREATE: // Voucher create
VoucherCreateHandler();
break;
case RequestType.SETACTIVE: // Voucher set active
VoucherSetActiveHandler();
break;
case RequestType.ADJUSTMENT: // Voucher adjustment
VoucherAdjustHandler();
break;
case RequestType.GETINFO: // Voucher get
VoucherGetHandler(tVoucherData);
break;
}
}
Version Description
7000 Added optional 4th parameter for result of
ICR_Voucher_Get() request.
else
{
// Something went wrong, handle the error.
VoucherErrorHandler(szVoucherCode);
}
}
Changelog
ICRTouch Standard Library
Name Type Description Values
REGPOS integer Current length of the
registration buffer
SELITEM integer Current selected item
INFINALISATION boolean In the middle of finalisation
MENULEVEL integer Current menu level
PRICESHIFT integer Current price shift {1st@,
2nd@, 3rd@, 4th@}
ORDERNUMBER integer Order number
ITEMCOUNT integer Number of items
TABLE integer Table number if a table is
in use
CHECK integer Check number if a check is
in use
DISPLAYNUMBER string Printed check/table number
CUSTOMER integer
Customer number if a
customer is currently
signed on
SUBTOTAL integer Current Subtotal
SUBTOTALPRESSED boolean Subtotal key pressed
DISCOUNT integer Current discount total on
the sale
POINTS integer Current points value of the
sale
Table value names
ICR_GetClerkBuffer_Index
Name Type Description Values
THISSALETOTAL integer Total for this sale {not inc
pbal check items}
DEPOSIT integer Deposit value currently
applied to sale
MODE integer Current mode number
STATUS integer Status flags
0x01 - Print full bill
0x02 - Cancel disabled
0x04 - Open cash drawer 1
0x08 - Open cash drawer 2
0x10 - Print check pick up
count on journal
BILLSTATUS integer Bill status flags
0x01 - Bill printed
0x02 - Service charge
removed
0x04 - Use tax
0x08 - Forced service
charge
0x10 - Discounted items
removed
0x20 - Contact details
collected
LOCATION integer Location ID number
ROOMNUMBER mixed PMS room number - Can be
alpha
ROOMTEXT string PMS Room Text
SPLITREPORTZONE integer Split reporting zone 1/2
PRICELEVEL integer Current price level
CONSECUTIVENUMBER integer Sale consecutive number
FINALISEDCONSECNO integer Consecutive number at
finalise
UNIQUESALEID integer Unique sale ID
IDCUNIQUESALEID integer IDC unique sale ID
FINALISED boolean Sale finalised, true/false
Name Type Description Values
FINALNETSALETOTAL integer Finalised sale total
BALANCEADJUSTMENT integer Customer balance
adjustment
EATINTAKEOUT integer Eat in/takeout status key
record
CLERK integer Current clerk
FREEMEALUSAGE integer Free school meal usage
CURRENTNETSALETOTAL integer
Current total including
service charge and add on
tax
CUSTOMER3RDPARTY string 3rd Party customer record
MULTIPLIER integer
Integer representing the
current multiply assuming
3 dp, eg 3500 is 3.5x
FROMSPLITSEAT integer
Displays which split
window the sale has been
assigned.
BILLSERIALNUMBER integer Bill serial ID attached to
this table/check
TAX'X'_NET integer Total before tax. Replace
'X' with the tax rate ID
TAX'X'_TAX integer Total tax added. Replace
'X' with the tax rate ID
COVERS integer Covers
WEIGHT integer Current weight on
integrated scale
Name Type Description Values
NAME string Clerk buffer item line name
PRICE integer Sales price
ICR_GetClerkBuffer_Item
Name Type Description Values
SEAT integer Assigned seat number
FILE integer Item file
RECORD integer Item record
QUANTITY integer Quantity of PLU
SALESQUANTITY integer Quantity x @Qty
FROMLISTPLU integer List PLU ID
FLAG1 integer Flag 1 status flags
0x01 - Customer discount
applied
0x02 - Points applied
0x04 - Last item
0x08 - Item has come
from check
0x10 - M&M has been
applied
0x20 - Item has been
corrected
0x40 - Slip printed
0x80 - Consolidation has
been printed
FLAG2 integer Flag 2 status flags
0x01 - Is condiment item
0x02 - Price shift 2
0x04 - Price shift 3
0x08 - Is Euro
0x10 - Straight number
i.e. check transfer
0x20 - Is weight item
0x40 - Price shift 4
FROMSETMENU integer Set menu ID
SETMENUITEM integer Set menu count
MIXANDMATCH integer *Not supported - No values
returned.
NETPRICE integer Sales price less
adjustments
PRICELEVEL integer Price level item was
registered on
ITEMID integer ID number of the item
Name Type Description Values
NUMBER integer Check/table number
ICR_GetCheck_Index
Name Type Description Values
TABLE boolean True if table, false if check
NAME string Check text
OPEN integer 1 if Open, 0 if closed
BUSY integer 1 if Busy, 0 if free
PICKUPCOUNT integer
Number of times the
check/table has been
opened and closed.
LOCATION integer Location ID
CUSTOMER integer
Customer number if a
customer is currently
signed on
HEADER1 string Receipt header line 1
HEADER2 string Receipt header line 2
FINALSALECONSECNUMBER integer Consecutive number at
finalise
DETAILLENGTH integer Length of the check detail
SERIALNUMBER integer Bill serial number
CHECKTOTAL integer Check total
ITEMCOUNT integer Number of items
COVERS integer Number of covers
BILLSTATUS integer
Bill status flags
0x01 - Bill printed
0x02 - Service charge
removed
0x04 - Use tax
0x08 - Forced service
charge
0x10 - Discounted items
removed
DEPOSIT integer Deposit value
EATINTAKEOUT integer Eat in take out status key
MANUALSERVICECHARGE integer Service charge
LASTUSEDDAY integer Last day used
LASTUSEDTIME integer Last time used
PAYTABLECODE string PayTable code
PREAUTHAMOUNT integer Pre-auth amount (EFT)
PREAUTHCODE integer Pre-auth code (EFT)
Name Type Description Values
CLERK integer Last clerk
UNIQUESALEID integer Unique sale ID
TAX'X'_NET integer Total before tax. Replace
'X' with the tax rate ID
TAX'X'_TAX integer Total tax added. Replace
'X' with the tax rate ID
Name Type Description Values
NAME string Check details item name
PRICE integer Sales price
SEAT integer Assigned seat number
FILE integer Item file
RECORD integer Item record
QUANTITY integer Quantity of PLU
SALESQUANTITY integer Quantity x @Qty
FROMLISTPLU integer List PLU ID
FLAG1 integer Flag 1 status flags
0x01 - Discount applied
0x02 - Points applied
0x04 - Last Item
0x08 - Item has come
from check
0x10 - M&M has been
applied
0x40 - Slip printed
0x80 - Consolidation has
been printed
ICR_GetCheck_Item
Name Type Description Values
FLAG2 integer Flag 2 status flags
0x01 - Is condiment item
0x02 - Price shift 2
0x04 - Price shift 3
0x08 - Is Euro
0x10 - Straight number
i.e. check transfer
0x20 - Is weight item
0x40 - Price shift 4
FROMSETMENU integer Set menu ID
SETMENUITEM integer Set menu item
MIXANDMATCH integer *Not supported - No values
returned.
NETPRICE integer Sales price less
adjustments
PRICELEVEL integer Price level item was
registered on
Name Type Description Values
LENGTH integer Receipt buffer length
FINALISED boolean Indicates that the sale has
been finalised
TABLE integer Table number
CHECK integer Check number
DISPLAYNUMBER string Printed check/table number
PRINTED boolean If the receipt has been
printed
CUSTOMER integer If there was a customer on
the sale
CONSECUTIVENUMBER integer The consecutive number
DATE integer Format: ddmmyyyy
TIME integer Format: hhmm
TERMINALID integer Terminal id that the sale
was started on
ICR_GetReceipt_Header
Name Type Description Values
MODE integer Registration mode
Name Type Description Values
TEXT string Text data that is printed
FILE integer Item file
RECORD integer Item record
QUANTITY integer Item Quantity
PRICE integer Item Price
FLAG integer Status flags
0x0001 - Is condiment item
0x0002 - Consolidation
printed
0x0004 - Is Euro
0x0008 - Straight number
i.e. check transfer
0x0010 - No price
0x0020 - Set menu item
0x0040 - Force no quantity
0x8000 - Full text line
Name Type Description Values
status integer Result code from the
request
0 - Ok
3 - Etal parameter error
101 - KP Controller failed
to start
102 - KP Controller not
licenced
103 - Machine not KP
Controller
message string Message describing the
result code
kp_tickets array Array of KP Ticket index
entry objects (see below)
ICR_GetReceipt_Line
ICR_KPC_GetKPTicketList
Name Type Description Values
update_counter string The current update counter
Should be stored stored as
string as it may overflow
32 bit integer storage
current_id integer Current ID
demo_mode boolean Optional boolean indicating
if in demo mode
True if the KP Controller is
running in demo mode
Name Type Description Values
id array Ticket ID
time string Creation DateTime
kp_flag integer KP mask flag
0x0001 - KP/KV1
0x0002 - KP/KV2
0x0004 - KP/KV3
0x0008 - KP/KV4
0x0010 - KP/KV5
0x0020 - KP/KV6
0x0040 - KP/KV7
0x0080 - KP/KV8
0x0100 - KP/KV9
0x0200 - KP/KV10
0x0400 - KP/KV11
0x0800 - KP/KV12
kp_flag_finished integer KP mask for finished status See above
kp_flag_pegged integer KP mask for pegged status
time string DateTime that the kp
ticket was created
kp_ticket_status string Ticket status Current text status of the
ticket
finished_time string Finished DateTime
last_status_change string DateTime of the last time
the status was changed
network_delayed boolean
Indicates that the kp ticket
was sent from a satellite at
a time later than when the
transaction was completed
KP Ticket index entry
Name Type Description Values
update_counter string
The update counter at the
time when the ticket was
large change
Name Type Description Values
status integer Result code from the
request
0 - Ok
1 - KP Ticket not found
2 - KP Ticket does not
exist on storage
3 - Etal parameter error
101 - KP Controller failed
to start
102 - KP Controller not
licenced
103 - Machine not KP
Controller
message string Message describing the
result code
demo_mode boolean Present if KPC is running in
demo mode
True if KP Controller is
running in demo mode
kp_tickets array Array of kp ticket detail
objects (see below)
sort_texts array
Array of texts associated
with sort_number s
supplied with KP Ticket
Items (see below)
Name Type Description Values
id array Array of tickets
index_entry object Contains the kp ticket's
KP Ticket index entry
terminal_id integer Terminal ID
item_count integer Item count
consecutive_number integer Consecutive number
ICR_KPC_GetKPTickets
KP Ticket details
Name Type Description Values
covers integer Covers
training_mode boolean Training mode
refund_mode boolean Refund mode
net_sale_total string Net sale total
sale_id string Sale ID
order_number integer Order number
check_number integer Table/check number
is_table boolean Table/check true - Table
false - Check
check_text string Check text
eat_in_take_out_record integer Redacted do not use. See
eat_in_take_out
Will be removed in 2024
eat_in_take_out_text string Redacted do not use. See
eat_in_take_out
Will be removed in 2024
from_webshop boolean Sale from webshop
webshop_sale_id integer Webshop sale ID
misc_etal_flag integer Misc Etal flag
items array
Array of kp ticket item
objects (See KP Ticket -
items)
from_webshop boolean From webshop flag true - From webshop
false - From TouchPoint
webshop_saleid integer Webshop sale ID
additional_order_info_line
s array Array of order info line
strings
Name Type Description Values
order_notes array Array of order note strings
webshop_customer_info array Array of customer info
objects
clerk object
Describes the clerk that
was used on the sale. See
KP Ticket - clerk
price_level object Price level that was in use.
See KP Ticket - price_level
terminal object
Terminal that the sale
originated from. See KP
Ticket - terminal
customer object
If a loyalty customer was
used with the sale. See KP
Ticket - customer
location object
The customer's seating
location. See KP Ticket -
location
eat_in_take_out object
If an eat in take out status
was set. See KP Ticket -
eat_in_take_out
xml_socket_sale boolean
Used to indicate that the
sale originated from the
XML socket. For example:
PocketTouch or the TTA
system
true - The sale originated
from the XML socket.
false or not present -
The sale was created at
the terminal
webshop_order_reference string
Contains the Order
Reference as supplied for a
webshop sale. Derived
from, but not necessarily
the same as the
webshop_saleid .
tta_table_location object
If TTA table location is
passed, this object will
contain that data. See KP
Ticket - tta_table_location
Name Type Description Values
number integer Number of the clerk
KP Ticket - clerk
Name Type Description Values
name string Name of the clerk
Name Type Description Values
number integer Price level that was used 1 - 9
name string Name of the price level
Name Type Description Values
number integer Till number
name string Till name
Name Type Description Values
number integer Number of the customer
name string Customer name
address array Up to 4 lines of address
postcode string Postcode
phone_number_1 string Primary phone number
notes array Up to 4 lines of notes
against the customer
Name Type Description Values
number integer Location number
name string Location text
KP Ticket - price_level
KP Ticket - terminal
KP Ticket - customer
KP Ticket - location
Name Type Description Values
number integer Eat in / take out status key
record number
name string Text of eat in take out
status key
Name Type Description Values
text string The text title for the table
location eg 'Table No:'
value string The value of the table
location eg '5'
Name Type Description Values
item_number integer Row number in the output
file integer File number
record integer Record number
key_type integer The key type number when
the row is a function key
item_status string Item status
text string PLU descriptor
quantity string Quantity
price string Price
net_price string Net price
reg_status_1 integer Reg status 1 flag
reg_status_2 integer Reg status 2 flag
KP Ticket - eat_in_take_out
KP Ticket - tta_table_location
KP Ticket - items
Name Type Description Values
kp_flag integer KP mask flag
0x0001 - KP/KV1
0x0002 - KP/KV2
0x0004 - KP/KV3
0x0008 - KP/KV4
0x0010 - KP/KV5
0x0020 - KP/KV6
0x0040 - KP/KV7
0x0080 - KP/KV8
0x0100 - KP/KV9
0x0200 - KP/KV10
0x0400 - KP/KV11
0x0800 - KP/KV12
kp_flag_finished integer KP mask flag for the
finished status of the item See above
print_red boolean True if item is set to print
in red
from_setmenu integer Set menu ID
setmenu_item integer Set menu list item
from_listplu integer List PLU ID
seat integer Seat number
plu_alt_text string PLU Alternative text
misc1 integer Misc 1 flag
misc2 integer Misc 2 flag
parent_item_number integer Parent item number
finished_time string Finished DateTime
kp_category integer
The KP Category, including
possible temporary shift, of
the item
PLU only
department integer The department that the
item belongs to PLU only
plu_group integer The PLU Group that the
item belongs to PLU only
sort_number integer The integer number used
for sorting.
See sort_texts in KP
Tickets Object
Name Type Description Values
source_items array
An array of source item
numbers, these should be
used when changing the
status of an item
Name Type Description Values
number integer Number of sort, from
sort_number in KP Item.
text string Displayable text of the sort
Name Type Description Values
number integer Field type ID
1 - Name
2 - Company
3 - Address 1
4 - Address 2
5 - City
6 - Postcode
7 - Phone
8 - Email
field string Field description
name
company
address1
address2
city
postcode
phone
email
text string Field value
Name Type Description Values
VERSIONINFO string Version name
VERSIONID integer Version ID
LICENCENUMBER integer Licence number
KP Sort Texts
Webshop customer info
ICR_GetSystemData
Name Type Description Values
MODE integer Current mode
CURRENTCLERK integer Current clerk
RECEIPTON boolean Receipt on/off status
CHECKMASTER integer Check master ID
CHECKBACKUPMASTER integer Check backup master ID
CHKBKUPMSTR_OFFLINE boolean Indicates the offline status
of the check backup master
true if currently offline
else false
CUSTOMERMASTER integer Customer master ID
TIMEATTMASTER integer Time & attendance master
ID
HARDWAREPLATFORM string ** May not be supported -
Windows platform
XRES integer X resolution
YRES integer Y resolution
SCRIPTLOCATION string Script path
PAYCODEDAYSLEFT integer Days until payment code
expiry
9999 - Payment code
entered
SCREENSAVERON boolean Whether the screensaver is
currently running
TERMINALID integer Terminal ID
DRAWEROPEN boolean Drawer open status
IDCLASTSTATUS string IDC Uploader last status
IDCUPLOADED integer Number of sales uploaded
IDCPENDING integer Number of sales pending
upload
Name Type Description Values
NUMBER string Customer number
NAME string Customer name
DISCOUNTPER integer % discount
ICR_Get3rdPartyCustomer
Name Type Description Values
DISCOUNTFLAG integer Discount flags 0x0001 - Discount
Cheapest Items Only
DISCOUNTAMT integer Discount amount
DISCOUNTREC integer Discount key record
number
POINTS integer Current points
BALANCE integer Current balance
AVAILABLEBAL integer Current available balance
PRICELEVEL integer Customer price level
OTHERFLAG integer Defined by scripts. ie.
Coffee Shop
NOTALLOWEDSIMASK integer Disallowed selective
itemisers
DISCOUNTSI1 integer % Discount rate selective
itemiser 1
DISCOUNTSI2 integer % Discount rate selective
itemiser 2
DISCOUNTSI3 integer % Discount rate selective
itemiser 3
DISCOUNTSI4 integer % Discount rate selective
itemiser 4
DISCOUNTSI5 integer % Discount rate selective
itemiser5
TOTALDISCOUNTED integer Current total amount
discounted
ACCOUNTTENDERED integer Current amount finalised
to account
POINTSREDEEMED integer Points redeemed on sale
PAYMENTTOACCOUNT integer Payment to account this
sale
INTERNALFLAG integer Status flags
0x0001 - No Points
0x0002 - No Balance
0x0004 - Enforce Receipt
SHIFTTOMENULEVEL integer Customer set menu level
Name Type Description Values
LEFT integer Left position
TOP integer Top position
WIDTH integer Image width
HEIGHT integer Image height
Name Type Description Values
WIDTH integer Image width
HEIGHT integer Image height
Note:
1. Not all printers support native QR Code printing.
2. For Epson printers use the Epson TM-T88V driver.
3. TouchPoint will revert to graphics printing for printers that do no support QR Code
printing.
4. Not all features are supported when in graphics printing mode.
Name Type Description Values
data string The data to be encoded
into the QR Code https://www.icrtouch.com
model integer The model to be used for
the QR Code
1 - The original QR Code
design
2 - The improved QR Code
that can hold more data
3 - The micro QR Code
ICR_GetWindowDimensions
ICR_GetImageSize
ICR_OutputQRCode
Name Type Description Values
modulesize integer
The size of on an individual
module
If this is set too high the
printer will not print the QR
code.
1 - 16
eclevel integer Error correction level to be
used
0 - Low / 1 - Medium / 2 -
Quartile / 3 - High
graphicsmode boolean
Sends the QC code to the
printer as a a graphic
image.
'True' - printed in graphics
mode else native printing
mode.
highresgraphics boolean
When in graphics mode set
to true to use high res
printing (24 bit)
'True' - high res / thermal
printing.
hjustify string Horizontal justification of
the QC code 'left' / 'centre' / 'right'
machine integer Machine number that the
printer is connected to
0 for this machine, or a
terminal number
port integer Port number that the
device is connected to
eg 1 - COM1 / 11 - IP
Printer 1
ICRTouch Standard Library
Description Value
COM 1 1
COM 2 2
COM 3 3
COM 4 4
COM 5 5
COM 6 6
COM 7 7
COM 8 8
Printer display 9
Not connected 10
IP printer 1 11
IP printer 2 12
IP printer 3 13
IP printer 4 14
IP printer 5 15
IP printer 6 16
IP printer 7 17
IP printer 8 18
IP printer 9 19
IP printer 10 20
IP printer 11 21
IP printer 12 22
IP printer 13 23
IP printer 14 24
IP printer 15 25
Constant values
Device numbers
Description Value
IP printer 16 26
OPOS 1 27
LPT 1 28
LPT 2 29
OPOS 2 30
OPOS 3 31
OPOS 4 32
OPOS 5 33
OPOS 6 34
XML socket 35
Billstore buffer 36
Description Value
Time 20
Date 40
Hex 21
Password 24
24 bit colour 29
PLU 44
Description Value
String with no title 5
Program item alt types
Integers
Strings
Description Value
Password 35
Description Value
Left 0
Centre 1
Right 2
Description Value
Top 0
Centre 1
Bottom 2
Description Value
Clerk name 0
Date 1
Time 2
Mode 3
Price level 4
Check number 5
Text horizontal alignment
Text vertical alignment
Window IDs
Description Value
Device status 1 6
Device status 2 7
Device status 3 8
Device status 4 9
Device status 5 10
Device status 6 11
Device block 1 12
Device block 2 13
Device block 3 14
Device block 4 15
Device block 5 16
Device block 6 17
Subtotal 18
Item count 19
Picture 20
Etal Script 21
Description Value
Close down 0
Registration 1
Refund 3
X mode 4
Z mode 5
Manager mode 6
Home mode 7
Program 1 8
Program 2 9
Program 3 10
Modes
Description Value
Program 4 11
Program 5 12
Program 6 13
Program 7 14
Description Value
Standard 0
Time 1
Weight 2
String 3
Date 4
Description Value
Before Print 1
After Print - Ok 2
After Print - Stopped 3
Report Z Reset 4
Description Value
Yes/No 1
String 2
Number 3
GetNumber types
ReportEvent types
DataEntryDialog data types
Description Value
Drop Down Window 4
Ok 10
Lookup Post Code 42
Value Description
Department 0
PLU Group 1
Finalise Key Type 2
Transaction Key Type 3
Status Key Type 4
In Drawer Links 5
Report Codes 6
Price Level Change With No Price Level Change) 7
Device List 8
File List 9
List PLU 10
Baud Rates 11
Parity 12
Data Bits 13
Stop Bits 14
Device Port 15
DataEntryDialog drop down window types
Value Description
Customer Groups 16
Keyboard Menu Shifts 17
Price Shifts 18
Clerk for Sign on Button 19
Batch Report 20
Report Codes (Inline) 21
PLU Group (PLU Group Search) 22
Tax Rate for PLU 23
Customer Loyalty Type 24
Day of Week 25
Connected Terminals 26
Cash Drawer Device Type 27
Price Levels 28
Sort Type 29
Locations 30
Reserved 31
Hotel System 32
Currency 33
PocketTouch Operation Type 34
Price Level With Prompt 35
Default Menu Level for Clerk 36
Mix & Match 1 37
Value Description
Mix & Match Type 38
Kitchen Video Type 39
Kitchen Video - “Number at top is” 40
Rounding Method 41
Check Type 42
Employee Shift 43
Employee Job 44
Transaction Keys 45
EFT System 46
Finalise Keys 47
Skin 48
Sale Total Rounding Method 49
In drawer Link With Prompt 50
Import Type 51
Product Group Item Type 52
Set Menu 53
KP Sorting Method 54
KP Category 55
Department With None 56
PLU Group With None 57
Customer Group With None 58
Preset Message 59
Value Description
Network Protocol 60
Shelf Edge Label Item Type 61
Horizontal Justification 62
Vertical Justification 63
Unit Size 64
Network Adapter 65
Etal Window 66
In Drawer Link With None 67
DynDNS Service 68
Webshop Sale Destination 69
Text Prediction Caps Type 70
KP Category for KP Category Shift Key 71
View Receipts Key Source 72
Sub Department 73
Status Keys 74
Status Keys With None 75
Reasons 76
Country 77
Key Type for Reasons 78
KP Alt Text Usage 79
Rebuild Receipt from REG Buffer Type 80
Price Shifts With None 81
Description Value
Receipt 0
Kitchen Printer 1
Bill 2
Ticket 3
Customer Detail 4
XML Socket Journal 5
Remote Receipt 6
Webshop Store 7
Receipt Rebuild 8
Description Value
Receipt 0
Bill 1
Voucher 2
Ticket 4
Description Value
Gift card 1
Discount 2
Order info destinations
BeforePrint types
Voucher types
Description Value
Disable consolidation of the registration buffer 0x00000001
Prevent the cashier from being floated 0x00000002
Prevent the cashier from being interrupted 0x00000004
Current sale control flags
ICRTouch Standard Library
Keytype Description
1 Cash
2 Cheque
3 EFT
4 Account
5 Hotel Transfer
6 Subtotal
7 New Balance
8 Price Inquire
9 Price Change
10 Plu Picture
11 Cash 2
12 Stock Inquire
13 Voucher Finalise
14 Voucher Transaction
19 Media Exchange
20 Paid Out
21 Received On Account
22 Deposit
23 Pay Account
Keytype list
Keytype Description
24 Enable Tax
25 Plus Amount
26 Minus Amount
27 Plus Percent
28 Minus Percent
29 Exchange Points
30 Plu Notes Inquire
31 Points Adjustment
32 Tips
33 Refund
36 Cancel
37 Error Correct
40 No Sale
41 Non-Add Number
42 Order Number
43 Text Message
44 Card Capture
45 Fidelity Loyalty Key
46 Change Check Text
47 Edit Customer
48 GFX KP Message
49 Preset Text Message
Keytype Description
50 Plu Number
51 Defer
52 Category Shift
53 Seat Number
54 Gift Receipt
58 Plu Group Search
59 View Journal
61 Edit Floorplan
62 Floorplan
63 Till Watch
68 Suspend
69 Resume
70 Price Shift
71 Receipt On Off
72 Clerk
73 Multiply
74 Customer Number
75 Sign Off
76 Receipt Print
77 Download Graphic Logo
78 Slip Print
79 Customer Inquiry
Keytype Description
80 Hot Card
81 Customer Transfer
82 View Customer Detail
83 Caller ID
84 Customer Biometrics
88 Weight Key
90 Reg Down Arrow
91 Reg Up Arrow
92 Check Transfer
93 New Check
94 Old Check
95 New Old Check
96 List Plu
97 Covers
98 Split Check
99 Service Charge
100 Euro Shift
101 Location
102 Currency Exchange
103 Table Reservation
105 Clock In
106 Clock Out
Keytype Description
107 Break In
108 Break Out
109 Validation
110 Script
111 Macro
114 House Bon
159 Menu Shift 2
160 Menu Shift
161 Escape
162 Price Level Change
163 Eatin
164 Takeout
165 Sale Item Import
166 Global Eatin Takeout
172 Auto Clerk
173 View Active Clerks
174 Clerk Change
176 Go Dutch
177 Send to KP Now
178 Plus Item
195 View Open Checks
196 View Paid Checks
Keytype Description
197 View Receipts
198 View Reports
209 Launch Batch File
210 Inline Functions
211 Clerk Functions
212 Send
213 Receive
214 Backup/Restore
215 Minimise TouchPoint
216 Cash Declaration
217 Cash Declaration 2
220 Period 1 Report
221 Period 2 Report
222 Period 3 Report
224 Batch Report
225 Inline Period 1 Report
226 Inline Period 2 Report
227 Inline Period 3 Report
228 Inline BatchReport
229 RF Upload
230 Registration Mode
231 X/Z Mode
Keytype Description
232 Program Mode
233 Home Mode
234 Close Down
235 Refund Mode
236 Manager Mode
238 Clean Screen
239 Lock Terminal
240 Number 0
241 Number 1
242 Number 2
243 Number 3
244 Number 4
245 Number 5
246 Number 6
247 Number 7
248 Number 8
249 Number 9
250 Number 00
251 Number 000
252 .'
253 Clear
1000 PLU
ICRTouch Standard Library
Initial release
Method Type Information
ICR_MailConfigure Add
ICR_MailSendSimple Add
ICR_MailAddRecipient Add
ICR_MailSetSubject Add
ICR_MailAddToMessage Add
ICR_MailAddToMessageLine Add
ICR_MailAddAttachment Add
ICR_MailReset Add
ICR_MailSend Add
OnEmailOutResult Add
OnKPDeviceRequested Add
ICR_UpdateCheckIndexFile Add
ICR_ProgramSendFile Add
Appendix
Revision history
TouchPoint 2011 v2.56.0 - VID: 5600 - February 2011
TouchPoint 2012 v2.58.0 - VID5800 - May 2012
Method Type Information
ICR_ProgramReceiveFile Add
ICR_SendSMS Add
OnSMSOutResult Add
ICR_PlayMacro Add
OnNewCustomer Add
ICR_FTPConnect Add
ICR_FTPDisconnect Add
ICR_FTPUpload Add
ICR_FTPDownload Add
OnFTPResult Add
ICR_ResetTotals Add
Method Type Information
ICR_FTPConnect Removed
ICR_FTPDisconnect Removed
ICR_FTPConfigure Add
ICR_MailConfigure Modified HTML email support added
Method Type Information
ICR_AdjustTotals Add
TouchPoint 2012 v2.58.3 - VID5830 - September 2012
TouchPoint 2013 v2.60.0 - VID6000 - July 2013
Method Type Information
AfterRegItemSelect Add
ICR_GetNumberDialog Modified Added ability to specify input type
ICR_PrintImage_Start Add
ICR_PrintImage_Print Add
ICR_PrintImage_DrawBox Add
ICR_PrintImage_DrawText Add
ICR_PrintImage_DrawFrame Add
ICR_PrintImage_DrawPixel Add
ICR_PrintImage_DrawImage Add
ICR_PrintImage_DrawQRCode Add
ICR_PrintImage_GetQRWidth Add
ICR_PostCodeLoopkUp Add
OnReportEvent Add
ICR_ToPassword Add
ICR_FromPassword Add
ICR_DataEntryDialog Add
ICR_DataEntryDialog_AddItem Add
date Mod Month now returns as 1-12 {was 0-
11}
Method Type Information
TouchPoint 2013 v2.60.2 : VID6020 - September 2013
ICR_SelectItem Add
Method Type Information
ICR_GetNumberDialog Modified Now accepts and returns type 3,
string
Method Type Information
ICR_GetUTCTimeBias Add
ICR_DrawPie Add
ICR_FloodFill Add
ICR_GetPixel Add
ICR_SetFeature Add
ICR_SysProc Add
ICR_Web_Reset Add
ICR_Web_SetURL Add
ICR_Web_SetPostData Add
ICR_Web_Post Add
OnWebPostResult Add
ICR_File_OpenPipe Add
OnFile_ReadPipeResult Add
ICR_CreateHMAC Add
TouchPoint 2013 v2.60.3 - VID6030 - November 2013
TouchPoint 2014 v2.62.0 - VID6200 - August 2014
Method Type Information
PreSaleFinalised Add
BeforeFinalise Add
ICR_SysProc Modified Added OPENDRAWER
Method Type Information
InsertAdditionalOrderInfo Add
AfterExtCustomerLogOn Add
ICR_AdjustCustomer Add
ICR_SetNextDialogInput Add
AfterFullDataReset Add
ICR_Web_Post Modified SSL/TLS support
BeforePrint Modified Now supports bill prints (Type 1)
ICR_SendToKeyboard Modified Deprecated
Method Type Information
ICR_SetEtalSaleFlag Add
ICR_Web_SetHeaderField Add
ICR_Web_Get Add
ICR_GetSystemData Modified Added TERMINALID & DRAWEROPEN
OnWebPostResult Modified Added szResult Param
TouchPoint 2014 v2.62.1 - VID6210 - October 2014
TouchPoint 2014 v2.62.1 - VID6210 - October 2014
TouchPoint 2016 v2.66.0 - VID6600 - June 2016
Method Type Information
ICR_GetClerkBuffer_Index Modified Added FROMSPLITSEAT
Method Type Information
ICR_GetSystemData Modified Added IDCLASTSTATUS
Method Type Information
ICR_LoadImage Modified Absolute file paths can now be used
Method Type Information
ICR_Attach_Window Add
ICR_MakeNumberString Add
ICR_GetEmployeeLastTAOP Add
ICR_OutputLine Add
ICR_SetCustomPLUData Add
ICR_GetCustomPLUData Add
ICR_EncryptAES Add
ICR_DecryptAES Add
ICR_CreatePBKDF2 Add
TouchPoint 2016 v2.66.1 - VID6610 - July 2016
TouchPoint 2016 v2.66.3 - VID6630 - November 2016
TouchPoint 2016 v2.66.5 - VID6650 - March 2017
TouchPoint 2017 v68.00 - VID6800 - October 2017
Method Type Information
ICR_EHP_Output Add
ICR_EHP_SetFilePos Add
ICR_EHP_SetHeader Add
ICR_Web_Put Add
ICR_AddToClerkBuffer_Item Add
ICR_Voucher_Create Add
ICR_Voucher_SetActive Add
ICR_Voucher_Used Add
OnWebResult Add Replaces OnWebPostResult
OnWebPostResult Modified Deprecated
ICR_GetSystemData Modified Added IDCUPLOADED & IDCPENDING
ICR_ProgramItem_SetAltType Modified Added Type 44 - PLU
ICR_GetClerkBuffer_Index Modified Add Tax Totals
Method Type Information
ICR_Voucher_Get Add
ICR_GetImageSize Add
ICR_EHP_GetPostData Add
ICR_GetClerkBuffer_Index Modified Added BILLSERIALNUMBER
ICR_Web_SetHeaderField Modified Increased the capacity from 100 to
200 bytes
ICR_FromPassword Modified Increased capacity to 1000 chars
ICR_ToPassword Modified Increased capacity to 1000 chars
TouchPoint 2019 v70.10 - VID7010 - January 2019
Method Type Information
ICR_Voucher_Create Modified Added MAXUSES and SITE
ICR_Web_Delete Add
ICR_Web_Patch Add
Method Type Information
ICR_GetClerkBuffer_Index Modified Added DISPLAYNUMBER
ICR_GetReceipt_Header Modified Added DISPLAYNUMBER
ICR_GetClerkBuffer_Index Modified
With the addition of DISPLAYNUMBER
the CHECK / TABLE fields should not
be used to draw the number to the
screen. These should only be used
for comparison or to check to see if a
table/check is open.
ICR_GetReceipt_Header Modified
With the addition of DISPLAYNUMBER
the CHECK / TABLE fields should not
be used to draw the number to the
screen. These should only be used
for comparison or to check to see if a
table/check is open.
ICR_GetClerkBuffer_Index Modified Added WEIGHT
ICR_GetDateDialog Add
OnVoucherPrint Add
ICR_SetPGMData Modified
Added 4th parameter to facilitate the
upload the modified program data to
TOW
ICR_ShellExecute Add
ICR_PlaySound Add
ICR_PrintImage_DrawText Modified Added support for UTF-8 characters
ICR_DrawText Modified Added support for UTF-8 characters
TouchPoint 2020 v72.00 - VID7200 - February 2020
Method Type Information
ICR_SetLocalUserData Modified Performance improvements
ICR_SetGlobalUserData Modified Performance Improvements
TouchPoint 2021 v74.00 - VID7400 - December 2020
Method Type Information
AfterXMLSocketSendSale Add
ICR_File_OpenPipe Modified Support for multiple concurrent pipes
ICR_File_WritePipe Add
Method Type Information
XMLSocketCheckPayment Add
ICR_GetCheck_Index Add
ICR_GetCheck_Item Add
Method Type Information
ICR_DrawImage Modified Fixed drawn artifacts
Method Type Information
ICR_SysProc Modified Added EXIT & MINIMIZE commands
TouchPoint 2021 v74.06 - VID7406 - June 2021
TouchPoint 2021 v74.12 - VID 7412 - November 2021
TouchPoint 2022 v76.00 - VID 7600 - March 2022
Method Type Information
ICR_RedrawScreen Modified Any open dialogs are undrawn when
ICR_RedrawScreen() is called.
Method Type Information
ICR_LocalTimeFromUTC Add
ICR_LocalTimeToUTC Add
Method Type Information
ICR_EHP_GetRequestMethod Add
ICR_EHP_GetRequestHeader Add
ICR_KPC_GetKPTicketList Add
ICR_KPC_GetKPTickets Add
ICR_KPC_SetKPTicketStatus Add
ICR_KPC_SetKPTicketItemsStatus Add
ICR_KPC_StoreData Add
ICR_KPC_GetData Add
AfterKPCUpdate Add
TouchPoint 2022 v76.01 - VID 7601 - April 2022
TouchPoint 2022 v76.03 - VID 7603 - June 2022
TouchPoint 2022 v76.04 - VID 7604 - June 2022
Method Type Information
ICR_KPC_GetKPTickets Modified Added index_entry header into the
ticket body
Method Type Information
ICR_KPC_GetKPTickets Modified Added 4th parameter for ticket item
sorting.
Method Type Information
ICR_DrawBox Modified Performance enhancements
ICR_DrawFrame Modified Performance enhancements
ICR_DrawPixel Modified Performance enhancements
ICR_CreateFont Modified Performance enhancements
ICR_DrawText Modified Performance enhancements
ICR_SetText_Colour Modified Performance enhancements
ICR_SetText_HAlign Modified Performance enhancements
Method Type Information
AfterKPCUpdate Modified
Finished ticket items that will also
finish the ticket will also now trigger
a ticket status change.
TouchPoint 2023 v76.05 - VID 7605 - June 2022
TouchPoint 2023 v78.08 - VID 7608 - August 2022
TouchPoint 2022 v76.09 - VID 7609 - September 2022
TouchPoint 2022 v76.13 - VID 7613 - November 2022
TouchPoint 2023 v76.15 - VID 7615 - January 2023
Method Type Information
AfterXMLSocketSendSale Modified Added webshop sale information
Method Type Information
ICR_KPC_AlterKPFlag Add
ICR_KPC_GetTicketList Modified
Added 4th parameter
szSinceUpdateCounter .
Returns KP tickets only with updates
since the supplied update counter.
ICR_KPC_GetKPTickets Modified
Added customer , clerk ,
price_level , terminal , location &
eat_in_take_out objects.
Method Type Information
ICR_KPC_GetKPTickets Modified Added webshop_order_reference &
tta_table_location fields.
Method Type Information
ICR_Set_CurrentSaleControlFlag Add
ICR_Get_CurrentSaleControlFlag Add
ICR_GetClerkBuffer_Item
Modified Added ITEMID field
Method Type Information
ICR_GetHealthCheck Add
TouchPoint 2023 v78.03 - VID 7803 - March 2023
TouchPoint 2023 v78.08 - VID 7808 - June 2023
TouchPoint 2023 v78.11 - VID 7811 - September 2023
TouchPoint 2024 v80.00 - VID 8000 - March 2024
Method Type Information
ICR_Web_SetHeaderField Modified
Increased the maximum size of
individual HTTP POST header fields to
4,000 bytes, and the total POST
header size to 20,000 bytes.
Method Type Information
ICR_OutputQRCode Add Prints QR Codes
TouchPoint 2025 v82.02 - VID 8202 - July 2025
TouchPoint 2025 v82.06 - VID 8206 - September 2025
TouchReservation
Reservation screenshots
TouchReservation
Quick Start Guide
TouchReservation appears in Tillconfig as part of your TouchOffice Web subscription. To add
services and manage licences refer to the Partner portal and rental licences manual.
TouchReservation
1. In TillConfig select Reservations > View sites.
2. Enter the Site ID and the Site name and select Add a new site.
Site ID
Site name
Setting Description
3. Select edit settings.
4. Configure the fields using the guidance in the tables below:
Setting Description
Days closed
Days restaurant is closed. Checkbox options:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Opening times Restaurant opening and closing times per day
Allocation mode
Allocate bookings to tables, time slots or up to a maximum
number of seats. Drop down list options:
tables
time slots
max seats
Max seats
Maximum number of seats available in the restaurant for the
booking duration. Once this has been reached for the booking
duration, no further bookings are allowed.
In max seats mode, bookings will NOT be allocated to tables
automatically. Instead they will be allocated to table zero,
where they can be manually allocated to a chosen table. The
total number of guests allowed to book will be limited up to
the number entered, and will take account of existing
bookings for the time selected by the customer.
Seat overrides
Seat limit overrides set per day and per time range. These will
act as the maximum seats per slot for any time ranges entered.
Dates closed
Set individual dates the restaurant is closed, and choose
recurring days which occur every year e.g. Christmas Day,
Boxing Day.
To disable specific dates use the "Individual Dates" calendar.
For dates which occur only once. After the date has passed
these no longer take effect.
To disable recurring dates use the "Recurring Dates"
calendar. For dates which occur yearly e.g. Christmas Day,
Boxing Day etc, these will be used every year.
Check interval How often (minutes) to check for website reservations
Deposits Enable taking a compulsory deposit when booking online.
Deposit mode
Should the deposit be per table/booking or per guest? If set to
guest the total deposit amount is calculated based on how
many guests are booked.
Deposit amount Deposit amount is per table/booking as a whole or per guest.
Currency Currency used for taking reservation deposits online.
Country code Country used for taking reservation deposits online.
Payment accounts
Payment accounts enabled for taking deposits. These will be
shown on the deposit payment page.
Payment timeout
The number of minutes a deposit reservation is held
temporarily before payment is completed. Please note that
lowering this may cause duplicate deposit payments if you
have a very busy restaurant and limited seating which could
be booked by other customers whilst an existing booking is
being paid for externally.
Printer IP
IP address of TouchPoint Terminal with receipt printer. Used
for sending print receipt commands for offline deposits
(TouchReservation App).
Printer port
Port number of TouchPoint Terminal with receipt printer.
Used for sending print receipt commands for offline deposits
(TouchReservation App).
Printer password
Socket password of TouchPoint Terminal with receipt printer.
Used for sending print receipt commands for offline deposits
(TouchReservation App).
Phone Contact phone number for reservations.
Email
Email address displayed on the booking page and used as
reply-to address.
Notify Email address to send booking notification to.
Maxguests
Maximum number of guests (per table). Enter a value or press
up or down to set.
Interval
Booking interval (minutes). Enter a value or press up or down
to set.
Duration Booking duration (HH:mm uses default 02:00 when zero).
Start range Start range for tables available to reserve online.
End range End range for tables available to reserve online.
1. In TillConfig select Reservations > Payment Accounts.
Add new payment account
Configure reservations payments
Setting Description
Site
Type
Gateway
Select the payment gateway from the drop down list:
None
Paypal
Payment Sense
Sagepay
Manual
Mollie
Payment Sense Connect-E
Vendor test mode
Drop down list options:
True
False
1. In TillConfig select Reservations > View Sites > Edit Email Template.
Email editor
2. Select the email content area to edit.
1. All programming, system programming, system flags, table reservations fields.
TouchPoint settings
2. Configure the settings using guidelines from the table below:
No Field Description
1 Time line
2 Reservation time line start hour Sets the hour that the reservation
list starts at.
3 Reservation time line end hour Sets the hour that the reservation
list ends at.
No Field Description
4 Deposits
Transaction key used
for deposits received
This is the transaction
key record number
where deposit
amounts taken are
stored. Technically it
can be any
transaction key type
as it's used purely as
a total only, however
it is prudent to make
it a Received on
Account key and call it
Deposits Received or
similar. It is not
necessary for it to be
on the keyboard.
Post deposits from
rsrv into check?
When set deposits
stored against a
reservation are
carried forward into
the check. For this
function to work you
must have a deposit
key {key type
deposit} setup in the
transaction key file.
Deposits stored
against a reservation
can only be used
once. If a table is
opened from the
same reservation
again the deposit will
not be carried across
the second time.
In Drawer used for
reservation deposits
Deposits placed into
checks from
reservations are
added to this in
drawer totaliser.
Generally speaking
you should set up a
new in drawer
totaliser and call it
deposits used.
No Field Description
5 Time table is reserved before
booking
Only applies when NOT using
time zoning, this is the time
before the table is booked that it
no longer is available. ie a time of
1 hour would mean that the table
is not available 1 hour before
anytime that it is booked.
6 Default booking duration
Only applies when NOT using
time zoning, when set the table is
booked for this length of time,
otherwise the user is prompted to
enter a time.
No Field Description
7 Time zoning
When the reservation system is
configured to work by time zone,
the day is split into zones for
example lunch time, afternoon
and evening. When a table is
reserved in a time zone it will be
reserved for the whole of that
time zone. eg booking a table in
the afternoon zone would book
the table for the entire afternoon
zone.
Tables reserved by
time zone (no, by
time)?
Turns on/off the use of
time zones
Time zone 1 start time
Specifies the time that
zone 1 starts. Zone 1
continues until zone 2
starts.
Time zone 2 start time
Specifies the time that
zone 2 starts.
Time zone 3 start time
Specifies the time that
zone 3 starts.
Time zone 4 start time
Specifies the time that
zone 4 starts.
Time zone 5 start time
Specifies the time that
zone 5 starts.
8 Warn user when opening a table?
When set warns the user that
they are about to open a table
from the reservation.
9 Reserve cashiers not tables?
For use in places like hairdressers
where you want to reserve
stylists.
3. Select Programming > All Programming > System Programming > System Configuration.
4.
Scroll down to Table Reservations and select YES.
Book a reservation
Reservation confirmation
Reservation screenshots
Google Maps screenshots
Reservation summary
Modify a reservation
Cancel a reservation
Overview
Document description and navigation
Logging in
TouchOffice Web Configuration
PLU/Product Webshop Options
TouchTakeaway configuration
TouchTakeaway
Webshop Range Programming
Sales Overview
View Sales
TouchTakeaway,
ByTable and
ByRetail
Configuration Guide
Site Branding
Site Settings
Payment Settings
Page Manager
Terms and Conditions
Delivery Options
Delivery Settings
Scheduling example
Custom times
Discounts
Language
Tickets
Interactive map
Customers
Service Charge
Tax
Clear Cache
Vouchers
SelfService
ChefGuard
Commander
Analytics
Order config
TouchTakeaway Site
TouchPoint Configuration
TouchPoint images
Troubleshooting
Troubleshooting
Product introduction and overview
Overview
Overview
This document is aimed at Partners and is a reference manual to ICRTouch's TouchTakeaway,
ByTable, and ByRetail software.
Hyperlinks are underlined. The hyperlink will either open in the existing browser window or open a
new browser window:
1. Selecting a link to a section within this document will redirect you to that section in the
same browser window.
2. Selecting a link in another document will open a new browser window.
3. Selecting a target link to another application will open a new browser window.
This document has been formatted for online use. If you would like to print it please use your
browser's print functionality - File > Print. You are able to print directly to a printer or save to PDF
format.
ICRTouch's comprehensive, cost-effective e-Commerce solution is easy to deploy with a ready-togo
platform that seamlessly integrates with existing TouchPoint point-of-sale tills, mobile apps,
and locally installed software:
1. TouchOffice Web
TouchOffice Web is web-based business management software that enables you to
manage your products, stock, pricing, and promotions in your live environment.
2. Tillconfig
Tillconfig is a web-based configuration tool that integrates with TouchOffice Web.
Configure your online shop and integrate with 3rd parties such as payment providers.
Document description and
navigation
Audience
Document navigation
Document printing
Software
Setup the look of your online shop, configure delivery and payment settings, change error
message wording, and enable Shopify, Deliveroo, and Just Eat integration. Also used for
relicensing rentals, seeing your Terminal Access Key and changing company settings.
3. TouchPoint
TouchPoint is a till system that integrates with TouchOffice Web and TillConfig.
4. Commander
The ICRTouch Commander App offers a low-cost solution for managing orders as they
arrive. The web-based app allows you to approve or decline online orders from a mobile
device.
Please refer to our Glossary of EPOS terminology.
Glossary of terms
Overview
This document assumes that you have log on access to TouchOffice Web and Tillconfig. Please
ensure that you have the relevant user administrative access.
Log in to TouchOffice Web - https://touchofficeweb.net
Log in to Tillconfig - https://tillconfig.net/
Tillconfig has two sign in levels - to access the advanced features sign in as Administrator.
Log in to Commander - https://commander.touchtakeaway.net/
Logging in
TouchOffice Web
TouchOffice Web
Configuration
TouchOffice Web Configuration
1. In TouchOffice Web select Products.
2. Select 0 - Head Office from the drop down list.
3. Select the Webshop options tab.
4. Ensure Shop on Webshop is ticked.
5. Select the Edit button under the Web category section.
6. Enter the name of the new category i.e. Herbs.
7. Save and then select Ok.
8. Make sure the new category is selected and then select the Edit button.
9. Press the pencil icon next to the category.
10. Add the relevant time slots, upload an image, add a description and then select Save.
Edit web categories illustration
PLU/Product Webshop
Options
Setup the Webshop options
11. Repeat to add additional web categories.
12. Drag and drop to reorder web categories.
Edit web categories illustration
Associate List PLUs with the PLU
You can create sub-web categories with a colon provided they do not exceed 255
characters.
Parent categories can contain a mixture of PLUs and sub-categories if desired. The
parent category must exist in your category list regardless of whether it is linked
directly to the PLU.
13. Select Web List Link 1 from the drop down list box.
14. Select Web List Link 2 from the drop down list box. Repeat if you have set up other List
PLU's.
TillConfig
TouchTakeaway
configuration
TouchTakeaway configuration
TouchTakeaway
TouchTakeaway configuration
Webshop Range
Programming
Speed up the setup of products by associating multiple products with List PLUs and Web
Categories:
1. In TillConfig select TouchTakeaway > Webshop range programming.
2. Select the filters and settings, and save:
Setting Description
Filters
Site
Select 0 - Head Office to update the settings on all
sites. Select individual sites to update settings on that
specific site.
From PLU
Enter the range of PLU's to import.
To PLU
Department Select the department from the dropdown list.
PLU group Select the PLU group from the dropdown list.
Show on Webshop This field needs to be ticked to show on the Webshop.
Web list links 1 - 6
Refer to the Web-list link Web-list link for guidance on
List PLUs created in TouchOffice Web.
Min Minimum quantity.
Max
Maximum quantity.
This is useful for restricting the number of addon's
that can be chosen for a selected product.
For example, you can offer 10 burger add-on
ingredients but allow the customer to select up
to 3.
3rd @ price Uses 3rd @ Price. Tick box if the price of the PLU uses
the 3rd @ Price from the till.
Web Category Select the Web Category from the drop down list.
TouchTakeaway configuration
Web Sales Dashboard
View, print, and export web sales reports via the Web Sales Dashboard.
1. In TillConfig select TouchTakeaway > Web sales overview.
2. Refer to the table below for guidelines.
Field Description
Start Date Select the start and end date from the popup
calendar selector or enter the date in the relevant
field.
End Date Format: dd/mm/yyyy.
Start Time Select the start and end time from the popup time
selector. or enter the time in the relevant field.
End Time Format: hh:mm.
Site
Order Status
Choose the order status from the drop down list:
All Orders
Pending Orders
Accepted Orders
Rejected Orders
Cooking Orders
Ready Orders
In Transit Orders
Delivered/Collected Orders
Report types
Sales Overview
Field Description
Sales totals
Field Description
PLU sales
Field Description
Last 50 sales
Field Description
PLU sales by day
Field Description
Payment method usage
Field Description
Payment type totals
Field Description
Customer sales
Field Description
Sale locations (Google maps widget)
Customer details are entered by the customer during checkout.
TouchTakeaway configuration
Filter, view, and sort sales by ID, reference number, site, etc. The View Sales report provides a list
of last errors for troubleshooting. Please refer to Troubleshooting for further details.
1. In TillConfig select TouchTakeaway > Webshop range programming > View sales.
2. Sort the results by column by selecting the relevant column header.
3. Select the ID to view the sale detail.
4. Search for a specific sales transaction using the search bar.
5. Select the number entries to return.
Column Description
ID This is an internal transaction reference number.
Reference
The reference number received by the customer is
either generated by ICRTouch or a 3rd party such as
Just Eat.
Site Select the site column to sort site numerically.
Name
This information is entered by the customer on
checkout.
Postcode
Phone
Items The total number of items sold. Field type: numeric.
Amount The value of the transaction.
View Sales
Column Description
Method
The payment method is set up in the Tillconfig >
Payment Settings section.
Method type examples:
Paid
Cash on delivery
Type
The payment types are set up in the Tillconfig >
Payment Settings section.
Payment type examples:
Self-service payment
Sagepay
Paypal
Cash on delivery
Date Created Date and time.
Date Received Date and time.
Date Processed Date and time.
Date Scheduled Date and time.
Status
The sale status. Status examples:
Pending
Scheduled
Completed
Rejected
Column Description
Last error
Last error examples:
Receipt printer error
KP# Error Retry?
KV# Error Retry?
GET CHECK INDEX ERROR DURING FINAL
TIMEOUT WAITING FOR RESPONSE
ERROR CONNECTING TO MYSELF
TIMEOUT WAITING FOR REPLY FROM
MYSELF
NOT STARTED
SATELLITE
Unable to reach icrtouch-connect.com
No reply from icrtouch-connect.com
Invalid Server Response
NO CLERK BUFFER AVAILABLE
Ticket Printer # Error, Retry?
NO CHECK NUMBER DURING FINAL
The server is busy. Please try again
Unrectified errors will prevent new orders from
being processed and therefore need to be
addressed urgently.
Sample report illustration
Sample report illustration
TouchTakeaway configuration
Incorporate your brand identity by uploading a logo, company image, and accent colours. Setup
non contact, self isolation and kitchen messages.
1. In TillConfig select TouchTakeaway > Site Branding.
2. Refer to the image and table below for guidelines.
3. Save your changes.
Site branding illustration
Site Branding
Set up your site branding in Head Office. Individual sites can be configured with different
branding, colours. etc.
Setting Description
Logo
The logo appears at the top of the page between the
menu and the shopping basket.
Specifications:
500px width by 110px height
JPEG or PNG format
Icon
The favorite or shortcut icon that appears on smartphones.
Specifications:
512px by 512px
PNG format
Smartphone icon illustration
Setting Description
Loading icon
The animated GIF is displayed when the site is loading.
Available options:
moped, bag, bench, burger, cocktail, cocktail shaker,
dishes, ferris wheel, fish and chips, mug, noodles, pint,
pizza, plate, rollercoaster, takeaway bag, takeaway
containers, ticketing, wine.
Company image
The image is displayed above the category heading on
desktop devices.
Specifications:
At least 1280px by 720px
JPEG or PNG format
Intro heading The text is displayed above the category heading on
desktop devices.
Intro text The text is displayed below the intro heading on desktop
devices.
Accent colour The background buttons and link/heading underline color.
This colour should be visible against white.
Kitchen message
Allows customers to specify messages for the kitchen -
printed on the receipt and kitchen tickets. Toggle options:
Hide
Show
View the TouchKitchen and CollectionPoint manual
Message per product
Allows customers to specify messages for the kitchen on
individual products - printed on receipts and kitchen
printer printouts. For instance, no onions. Toggle options:
Hide
Show
Setting Description
Phone number
The phone number is entered into the checkout form by
the customer. Toggle options:
Hide
Show
Search box
The product search box. Toggle options:
Hide
Show
Discounts
The discount is shown in the cart. Toggle options:
Hide
Show
NHS staff
A checkbox enables customers to indicate that they work
for the NHS. Toggle options:
Hide
Show
NHS staff role
A field where the customer can enter their role within the
NHS. This field will be displayed when the checkbox is
enabled and has been selected. Toggle options:
Hide
Show
Non-contact checkbox
Allows customers to indicate whether they prefer noncontact
- a message is printed on the receipt and kitchen
tickets. Toggle:
Hide
Show
Setting Description
Self-isolation checkbox
Allows customers to indicate whether they are selfisolating
at checkout. Printed on the receipt and kitchen
tickets. Toggle options:
Hide
Show
Partner logo
Show or hide the partner logo on the side menu. Toggle
options:
Hide
Show
If Show is selected please enter the partner
website URL.
Marketing opt-in checkbox
Allows customers to specify their marketing preference at
checkout. Toggle options:
Hide
Show
This feature will be made available in a future
release.
TouchTakeaway configuration
Site Settings
1. In TillConfig select TouchTakeaway > Site Settings.
2. Refer to the table below for guidelines.
3. Select the arrow on the drop-down list to view the available options.
4. Save.
Setting Description
Site name Enter your company name.
Company email Ener you company email.
Footer note
This text will appear at the base of the sidebar on the
front page of the site. The
content of the message is at the discretion of the
company. The message may be to notify of seasonal
closing times, or the invitation to get in touch if the
customer has additional questions about dietary
requirements. Alternatively, this field can be left blank,
and no message will appear on the site.
Default language
The primary language that will be displayed. Dropdown
list options:
English
Castellano - Spanish
Cymraeg - Welsh
Nederlands - Dutch
Dansk - Danish
Language switch
Permit the automatic switching to a different local
language if applicable. Dropdown list options:
English
Castellano - Spanish
Cymraeg - Welsh
Nederlands - Dutch
Dansk - Danish
Setting Description
Language switch
Permit the automatic switching to a different local
language if applicable. Dropdown list options:
English
Castellano - Spanish
Cymraeg - Welsh
Nederlands - Dutch
Dansk - Danish
Cookie compliance
We use cookies to store information such as login
credentials, user preferences, and shopping cart contents.
Data privacy compliance requires us to obtain the user's
consent to activate this functionality.
Radio button options:
Off
On (recommended)
This feature will be made available in a future
release.
Currency
The currency used for pricing. Dropdown list options:
£ (GBP) - British Pound
$ (AUD) - Australian Dollar
$ (NZD) - New Zealand Dollar
$ (USD) - US Dollar
$ (CAD) - Canadian Dollar
(EUR) - Euro
฿ (THB) - Thai Baht
kr (ISK) - Icelandic Króna
kr (DKK) - Danish Krone
Rs (LKR) - Sri Lankan Rupee
Tk (BDT) - Bangladeshi Taka
S$ (SGD) - Singapore Dollar
RM (MYR) - Malaysian Ringgit
R (ZAR) - South African Rands
Setting Description
Minimum spend
Choose whether the minimum spend includes a discount
in this calculation. Radio button options:
Include Discount
Exclude Discount
Restrict to table
Prevent the user from changing the site or table when the
table has been set for them. Radio button options:
Off
On
This feature is useful when a QR code has been
assigned to the table.
Stock
Choose whether TouchOffice Web checks stock
availability when displaying items. Items that are out of
stock will not be purchasable. Date scheduling to be
disabled. Radio button options:
Off
On
Display low stock value
When stock levels fall below the stock value threshold, a
low stock warning will display against that PLU on the site.
Display low stock when less than <enter value>.
Alternative text
Choose whether the till and web sales display the PLU
description or alternative text field.
Radio button options:
Off
On
Setting Description
Default sort products by
Choose the web category sorting method.which method of
sorting will be used to display the PLUs in the web
categories on the site.
Dropdown list options:
Record (Default) - sorts by the PLU number.
Name - sorts the PLU alphabetically.
Random Code - sorts by the numbers in the
random code field. eg
Random codes are sorted numerically.
Default sort direction
Choose whether to sort products in ascending or
descending order. Dropdown list options:
Ascending
Descending
Store picker
Hide the store picker to prevent customers changing sites
once one has been selected. Radio button options:
Show
Hide
This is useful when using QR codes or site-specific
apps.
Redirect Store Page to Menu
When enabled the customer will be taken straight to the
menu when selecting a site rather than the store
summary page. Redirect Store Page to Menu. Radio
button options:
Off
On
Postcode landing
Postcode entry landing page. Radio button options:
Off
On
Setting Description
Date format
This will alter the format of the date that TouchPoint
prints on the order receipt. Dropdown list options:
Wed 30th Mar
Wednesday 30th Mar
Wed 30th March
Wednesday 30th March
Wed Mar 30
March 30th
March Wed 30th
30.03.2022
30-03-2022
2022-03-30
03/30/2022
Date on receipt
This will alter the size of the date that TouchPoint prints
on the order receipt. Dropdown list options:
Large
Normal
Allow zero value sales
Radio button options:
Off
On
An example use case is customers who have
purchased a season ticket using the ICRTouch
Ticketing System. The customer selects a date
and time online without any charges.
Order confirmation emails
Toggles whether the Company Email address receives a
copy of the customer confirmation email when an order is
placed. This is set to “On” as default. Radio button
options:
Off
On
View a sample order.
Delivery surcharge PLU Enter the PLU number of the delivery charge set up in
TouchOffice Web.
Setting Description
Payment surcharge PLU Enter the PLU numbers of the surcharge set up in
TouchOffice Web. Legal info check.
Auto accept orders
Toggle off to allow you to filter out rogue and unpaid
orders. Rejected orders trigger an email to the address on
the order form explaining the reason for the rejection.
Manual acceptance or rejection of orders is handled on
TouchTakeaway Commander.
Radio button options:
Off
On
TouchTakeaway configuration
Payment Settings
There are 10 payment settings: Manual, Paypal Express, SagePay Server, PaymentSense,
PaymentSense Connect E, Mollie, Kiosk EFT, Customer loyalty, Voucher redemption, Zero priced
sale.
1. In TillConfig select TouchTakeaway > Payment Settings.
2. Drag and drop the payment headings to reorder.
3. Refer to the tables below for guidelines.
4. Save.
Field Description
Site
This will process funds to the correct merchant accounts.
Manual is primarily used for cash on delivery and collection.
Field Description
Description The description the customer will see when checking out.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
The Paypal Express option requires a PayPal Business Account. You will need to retrieve the API
key from the Paypal website:
1. Log in to your PayPal Live or Sandbox account.
2. Go to Settings.
3. Click Account Settings.
Manual
Paypal Express
4. Click Account Access.
5. In the API access section, click Update.
6. Under NVP/SOAP API integration (Classic), Manage API credentials.
7. You will see the View or Remove API Signature page. If you have already generated an
API Signature, you will see the details by clicking on “Show” next to API username, API
Password and Signature.
8. Create a PLU for the PayPal surcharge.
Field Description
Description The description the customer will see when
checking out.
Card minimum spend Set the minimum spend and surcharge. Enter the
PLU number of the surcharge into this field.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Paypal Express PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules
prohibit traders from levelling a surcharge
in relation to a wide variety of transactions,
and surcharges are limited in some other
circumstances.
User name
Password Obtained from Paypal.
Signature
Field Description
Test mode
Paypal sandbox - test PayPal standard transactions
before accepting real payments. Once testing has
been completed select No from the drop down list.
Drop down list options:
No
Yes
The SagePay Server option Requires an Opayo e-commerce account.
1. Create a PLU for the SagePay Server surcharge.
2. Contact Opayo to obtain your vendor id.
Field Description
Description The description the customer will see when checking out.
Card minimum spend Set the minimum spend and surcharge. Enter the PLU
number of the surcharge into this field.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Paypal Express PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules prohibit
traders from levelling a surcharge in relation to a
wide variety of transactions, and surcharges are
limited in some other circumstances.
SagePay Server
Field Description
Card schemes
Toggle the card scheme logos that show during the card
details entry screen. Radio button options:
Visa
Mastercard
Maestro
Amex
JCB
Diners
Discover
UnionPay
Save payment/card details
Toggles whether card tokens can be stored for quicker
repeat check outs. Contact Opayo to enable this service
for the account. Drop down list options:
No
Yes
Required billing fields
Disabling a field may result in payments failing, please
check the configuration of your merchant account before
making changes. Check box options:
First name
Last name
Address Line 1
Address Line 2
Town
County
Post code
Simulator mode
Drop down list options:
No
Yes
Field Description
Test mode
This is for testing new accounts. Select No when the
account goes live. Drop down list options:
No
Yes
Vendor Enter your vendor id supplied by Opayo.
The Paymentsense option requires a Paymentsense account.
1. Create a PLU for the Paymentsense surcharge.
Setting Description
Description The description the customer will see when checking out.
Card minimum spend Enter a minimum spend value.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Paypal Express PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules prohibit
traders from levelling a surcharge in relation to a
wide variety of transactions, and surcharges are
limited in some other circumstances.
Paymentsense
Although TouchTakeaway integrates with Paymentsense it is unsupported. A known bug
exists in the Paymentsense gateway in which duplicate payments can occur. If you choose
to use this payment all support queries must be directed to Paymentsense directly.
Setting Description
Card schemes
Toggle the card scheme logos that show during the card
details entry screen. Radio button options:
Visa
Mastercard
Maestro
Amex
JCB
Diners
Discover
UnionPay
Save payment/card details
Toggles whether card tokens can be stored for quicker
repeat check outs. Contact PaymentSense to enable this
service for the account. Drop down list options:
No
Yes
Required billing fields
Disabling a field may result in payments failing, please
check the configuration of your merchant account before
making changes. Check box options:
First name
Last name
Address Line 1
Address Line 2
Town
County
Post code
PresharedKey This can be obtained from the customers MMS portal
under the Security Information header.
MerchantID
This is usually the customer name followed by a series of
numbers and not the one you use to log into the MMS
account.
Password This is usually the eCommerce account password.
Setting Description
Test mode
This is for testing new accounts. Select No when the
account goes live. Drop down list options:
No
Yes
The Paymentsense Connect E option requires a Paymentsense account.
1. Create a PLU for the Paymentsense surcharge.
2. Obtain the webtoken key for the e-commerce account from Paymentsense.
Setting Description
Description The description the customer will see when checking
out.
Card minimum spend Enter a minimum spend value.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the PaymentSense Connect E PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules
prohibit traders from levelling a surcharge in
relation to a wide variety of transactions, and
surcharges are limited in some other
circumstances.
Paymentsense Connect E (Ps Connect E)
Setting Description
Save payment/card details
Toggles whether card tokens can be stored for quicker
repeat check outs. Contact PaymentSense to enable
this service for the account. Drop down list options:
No
Yes
User name
Obtained from PaymentSense.
Password
Jsonwebtoken The webtoken key for the e-commerce account
provided by Paymentsense.
Test mode
This is for testing new accounts. Select No when the
account goes live. Drop down list options:
No
Yes
Preauth
Certain businesses take a reauthorization i.e. hotels. If
this is applicable select Yes.
Payments can be authorised on the interface taking
monies before a successful transaction. This is then
confirmed by the TTA platform via the users device.
Please note: With preauth turned on do not
attempt to refund customers who have had
unsuccessful payment attempts on TTA where
money has already been taken.
Drop down list options:
No
Yes
Enable Apple Pay and Google Pay
If using Apple Pay and Google Pay select Yes. Drop
down list options:
No
Yes
The Mollie option requires a Mollie account.
Mollie
1. Create a PLU for the PaymentSense surcharge.
2. Obtain the api key for the e-commerce account from Mollie.
Setting Description
Description The description the customer will see when checking out.
Card minimum spend Enter a minimum spend value.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Mollie PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules prohibit
traders from levelling a surcharge in relation to a
wide variety of transactions, and surcharges are
limited in some other circumstances.
ApiKey Enter the API key provided by Mollie.
Setting Description
Description The description the customer will see when checking out.
Card minimum spend Enter a minimum spend value.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Kiosk EFT
Setting Description
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Mollie PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules prohibit
traders from levelling a surcharge in relation to a
wide variety of transactions, and surcharges are
limited in some other circumstances.
Test mode
This is for testing new accounts. Select No when the
account goes live. Drop down list options:
No
Yes
Setting Description
Description This wording will be printed on the receipt and will
appear in the email.
Customer loyalty
Voucher redemption
Setting Description
Description This wording will be printed on the receipt and will
appear in the email.
Zero priced sale
Setting Description
Description This wording will be printed on the receipt and will
appear in the email.
TouchTakeaway configuration
Page Manager
Add custom pages to your site and show them in the menu or hide them.
1. In TillConfig select TouchTakeaway > Page manager.
2. Select Add new page.
3. Create the page content:
Link images, hyperlinks, horizontal lines, dates, and times.
Make sure the text stands out using bold, italicize, or underline.
Select the text you wish to turn bold, italic, and more.
Create tables containing text.
If you are familiar with HTML you can edit the source code.
4. Save.
5. Select the home page.
6. Select whether to show the page in the menu.
7. Select multiple sites by dragging. Hold down CTRL to select non-sequential line items.
Page manager illustration
You can hide the page by deselecting "home page" and "show in menu". We recommend
that you check your pages on multiple devices to ensure the page displays correctly -
desktop, tablet and mobile.
TouchTakeaway configuration
Terms and Conditions
Terms and Conditions apply to particular users of the website, usually when the user is required to
pay for a product or service.
1. In TillConfig select TouchTakeaway > Terms and conditions.
2. Populate the Generic, Paypal Express, and SagePay server privacy policies.
3. Update the "contact us" information.
TouchTakeaway configuration
Delivery Options
Setup collection, delivery and eat in options:
1. In TillConfig select TouchTakeaway > Delivery Options.
2. Refer to the table below for guidelines.
3. Save.
Setting Description
Enabled
Determines whether a collection option is available.
Dropdown list options:
No - collection unavailable.
Yes - collection available.
Description This field is prefilled with the word Collection.
Status key
Select the appropriate EAT IN / TAKE OUT status key for
collection from the dropdown
menu of the status keys stored on your till. This will flag
the type of sale for tax reporting
purposes.
Payment methods permitted
Customer payment options. Check box options:
Paymentsense Connect E
Paymentsense
Mollie
Sagepay
Paypal
Cash on delivery/collection
Self service payments
Scheduling enabled
Enables the customer to order ahead of time, setting a
time and date for its collection. Dropdown list options:
No
Yes
Collection
Setting Description
Scheduling interval
The collection time interval in minutes:
5 minutes
10 minutes
30 minutes
Must be divisible by 60.
Scheduling offset
Specifies how far in advance of the chosen collection time
the kitchen receives the order. If collection is set to 18:00
and the scheduling offset is set to -30, Webshop will send
the the order to TouchPoint at 17:30.
It is best practice is to not set this so far in advance that it
receives the order on the previous days.
Enter a numeric value.
Scheduling preparation time
Specifies how far in advance of the collection time a
customer can select that time/slot. Setting this to 0 will
use the Scheduling Interval time. This prevents customers
ordering time slots that are inside of the preparation time.
If the order is set to 18:00 and the preparation time is 30
the latest the order can be placed is 17:30.
Enter a numeric value.
Scheduling times or slots
Toggles between individual times or timeslots. Drop
downlist options:
Times - 15:00, 15:30, 16:00
Slots - 15:00 to 16:00
Scheduling dates
Allow customers to order food days in advance. Dropdown
list options:
No
Yes
Scheduling days into the future
Enter a value to set the days in advance customers can
order.
Setting Description
Enable ASAP time slot
If as soon as possible is offered as a delivery time.
Dropdown list options:
No
Yes
Setting Description
Enabled
Determines whether a delivery option is available.
Dropdown list options:
No - delivery unavailable
Yes - delivery available
Description This field is prefilled with the word Delivery.
Status key
Select the appropriate EAT IN / TAKE OUT status key for
collection from the dropdown
menu of the status keys stored on your till. This will flag
the type of sale for tax reporting
purposes.
Payment methods permitted
Customer payment options. Check box options:
Paymentsense Connect E
Paymentsense
Mollie
Sagepay
Paypal
Cash on delivery/collection
Self service payments
Delivery
Setting Description
Delivery address lookup mode
Delivery Area List creates lists of eligible delivery areas.
Allowed postcodes list creates lists of eligible delivery
postcodes. Denied postcodes list is a list of postcodes to
avoid. Please refer to the Delivery Settings section for
further details. Dropdown list options:
Delivery Area List
Allowed/Denied Postcode List
Scheduling enabled
Enables the customer to order ahead of time, setting a
time and date for its collection. Dropdown list options:
No
Yes
Scheduling interval
The collection time interval in minutes:
5 minutes
10 minutes
30 minutes
Must be divisible by 60.
Scheduling offset
Specifies how far in advance of the chosen collection time
the kitchen receives the order. If collection is set to 18:00
and the scheduling offset is set to -30, Webshop will send
the the order to TouchPoint at 17:30.
It is best practice is to not set this so far in advance that it
receives the order on the previous days.
Enter a numeric value.
Scheduling preparation time
Specifies how far in advance of the collection time a
customer can select that time/slot. Setting this to 0 will
use the Scheduling Interval time. This prevents customers
ordering time slots that are inside of the preparation time.
If the order is set to 18:00 and the preparation time is 30
the latest the order can be placed is 17:30.
Enter a numeric value.
Setting Description
Scheduling times or slots
Toggles between individual times or timeslots. Drop
downlist options:
Times - 15:00, 15:30, 16:00.
Slots - 15:00 to 16:00.
Scheduling dates
Allow customers to order food days in advance. Dropdown
list options:
No
Yes
Scheduling days into the future Enter a value to set the days in advance customers can
order.
Enable ASAP time slot
If as soon as possible is offered as a delivery time.
Dropdown list options:
No
Yes
Eat in
Setting Description
Enabled
Determines whether an eat in option is available.
Dropdown list options:
No - eat in unavailable
Yes - eat in available
Description This field is prefilled with the wording Order at table.
Status key
Select the appropriate EAT IN / TAKE OUT status key for
collection from the dropdown
menu of the status keys stored on your till. This will flag
the type of sale for tax reporting
purposes.
Setting Description
Payment methods permitted
Customer payment options. Check box options:
Paymentsense Connect E
Paymentsense
Mollie
Sagepay
Paypal
Cash on delivery/collection
Self service payments
Delivery to tables A list of eligible tables.
TouchTakeaway configuration
Delivery Settings
Setup collection, delivery and eat in options:
1. In TillConfig select TouchTakeaway > Delivery Options.
2. Refer to the table below for guidelines.
3. Save.
Setting Description
Site
Suspend delivery methods
Used to suspend a delivery method. Checkbox
options:
Collection
Delivery
Eat in - order at table
Suspend until time?
Suspend delivery until a specific date and time. Leave
this field blank if the delivery method is suspended
indefinitely.
Redirect sales to site
Allow the sales from the current site to be redirected
and printed at an alternative one. A useful feature if
sales are in the same building.
Price shifts Allow 2nd, 3rd, and 4th prices to be displayed. Tick to
enable.
Mix & match
When enabled mix and match tables from
TouchOffice Web will be processed on the checkout
page. Tick to enable.
TouchPoint 2021 (73.15) or greater is
required. Recommended to TouchPoint 2021
(73.19) or later.
Gratuities
Will be added to the final amount to be paid. The till
receives the gratuity amount as a tip. Tick to enable.
You will need to configure the service charge settings.
TouchPoint 2021 (73.19) or greater is
required. Allow gratuity options on the
checkout order summary screen. Any amount
selected when prompted.
Setting Description
Android/iOS app notifications Send order status notifications from Commander to
the customers app. Tick to enable.
Suspend sales message
Sends service suspension alerts to the customer if the
business is too busy to fulfil new orders i.e. staff sick.
You can also suspend sales is in Commander. Delivery
Settings with pop up calender.
Name
Street address
This information is displayed when the menu is
selected.
Address locality
Address region
Postal code
Coordinates
Telephone
Timezone
Locale
Checkout terms The company terms and conditions in this space.
Custom message
A message can include last order times, opening
hours, delivery hours, allergens, etc. This message is
displayed as a banner across the bottom of the
screen.
Closed
Dropdown list options:
Yes
No
Closed message Displayed when the customer logs into the website.
Last order message The last order message.
Setting Description
Display till order status
This relates to the order status at the order
confirmation page.
In scenarios where Commander is being used
without a till you may wish to disable this as it
will never show that the order has been
received. Turn off will show order placed and
order received (when sent down to till).
Display TouchReservation page
If enabled this will show a link in the side menu to the
related TouchReservation site. This must be enabled
under the same alias.
Max orders per timeslot
Set the maximum number of orders you would like to process per delivery method and timeslot.
Global
Global will determine the total number of orders that
can be processed per timeslot, for example kitchen
capacity.
Delivery
Delivery limits the number of orders that will be
delivered. Ensure that you set the number of
deliveries that you will be able to handle.
Collection
Collection limits the number of orders to fulfill. Ensure
that you set the number of orders that your kitchen
will be able to handle.
Setting Description
Site logo
Site level logos are supported in the modern theme.
The logo is inherited from the generic branding logo.
Please upload a logo 500px width by 110px height.
This can be a JPEG or PNG format.
This will be displayed instead of any logo set on the
branding page.
Site branding layout illustration
Setting Description
Opening hours Add the start and end times under each day of the
week.
The last order time is different from collection
timeslot. Last orders is the last time the order
can be created and not the time the order will
be picked up. The order prep and opening
times should be configured in order for the
kitchen to be able to fulfil the order.
Delivery hours
Last Orders
Allow orders outside of opening/delivery hours
Commonly used with digital products such as Tickets
or Vouchers which can be sold anytime without the
store being open. Can be used in conjunction with
web category times to control which products are
available out of hours.
Price Level Scheduling
Price level scheduling is used to provide
discounted pricing for loyalty customers,
happy hour etc.
Use Price Level 1 if No Price in Current Level
This can be configured to switch product pricing from
one price level to
another. The Start Time will dictate when the change
occurs and the Switch to Price Level will govern which
level it changes to. You can use the Add Time button
to add additional schedule changes per day. It is
possible to use a different price level all the time on
TTA / ByTable by scheduling a change to a new level
without scheduling a change back again.
Will sell at zero price if there is no price level
set.
Price level scheduling hours Add the start and end times under each day of the
week.
Setting Description
If you selected Postcode Lookup on the Delivery
Options page, you will be able to select a delivery
area. Add each delivery area separately.
TouchTakeaway configuration
The restaurant opening hours are 11:00 to 15:00 on a Sunday and 09:00 - 17:00 from Monday to
Saturday. The kitchen requires 30 minutes to prepare. The last order that can be placed to eat in
the restaurant is 1 hour before closing. The last order that can be placed for collection and
delivery orders is 30 minutes before the restaurant closes. The last delivery time is 30 minutes
after the restaurant closes.
Field Description Setting
Scheduling interval The collection interval is every 10
minutes. 10
Scheduling offset The kitchen receives the order 30
minutes before collection. -30
Scheduling preparation time Time required to prepare is 30
minutes. 30
Scheduling times or slots Order individual times. Times
Scheduling dates Customers can order days in advance. Yes
Scheduling days into the future Customers can order 5 days in
advance. 5
Enable ASAP time slot Customers can place orders as soon
as possible. Yes
Opening hours
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
11:00 - 15:00 09:00 - 17:00 09:00 - 17:00 09:00 - 17:00 09:00 - 17:00 09:00 - 17:00 09:00 - 17:00
Delivery hours
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
Scheduling example
Restaurant
Delivery options
Delivery settings
Delivery hours
11:30 - 15:30 09:30 - 17:30 09:30 - 17:30 09:30 - 17:30 09:30 - 17:30 09:30 - 17:30 09:30 - 17:30
Last orders
Day Collection Delivery Eat in
Every day
Sunday 14:30 14:30 14:00
Monday 16:30 16:30 16:00
Tuesday 16:30 16:30 16:00
Wednesday 16:30 16:30 16:00
Thursday 16:30 16:30 16:00
Friday 16:30 16:30 16:00
Saturday 16:30 16:30 16:00
TouchTakeaway configuration
Custom times
TouchTakeaway configuration
Discounts
Discounts are triggered by promotional codes entered by the customer at checkout:
1. In TillConfig select TouchTakeaway > Discounts.
2. Refer to the table below for guidelines.
3. Save.
Setting Description
Discount code Enter a code that the customer will need to enter at
checkout.
Discount percentage Enter the discount percentage as a numeric value.
Start date Invokes the calendar widget.
End date Invokes the calendar widget.
Minimum spend The minimum amount that the customer needs to spend
in order to redeem the discount.
Voucher codes created in TouchOffice Web+ can be entered into the discount field. The
entered code will be checked against TouchOffice Web+ voucher codes first, and then
against the codes entered in the Discounts page.
The discounts page is limited to the Admin user only in Tillconfig.
TouchTakeaway configuration
Language
The language page consists of an extensive list of language and response messages in English,
Castellano, Cymraeg, Nederlands, and Dansk. Edit the terminology to suit your personal
preferences/industry. For example, replace "Sorry, the minimum spend for delivery hasn't been
met" with "Add an extra item to qualify for delivery."
1. In TillConfig select TouchTakeaway > Language.
2. Select the language from the dropdown list on the top right hand side of the page.
3. Make changes and save.
Messages are listed under the following headings:
Cart
Order
JS (response messages)
Store
Customer
Menu
The language page caters for all types of businesses - ordering from the table, a caravan
etc. Use Ctrl F to search for the phrase you are looking for.
TouchTakeaway configuration
Tickets
The selling of tickets through ByTable can be configured on a per site basis via the site picker at
the top of the page.
1. In TillConfig select TouchTakeaway > Tickets.
2. Enable Ticket Sales: when ticked this will show the PLUs linked to tickets in TouchOffice
Web.
3. Make changes and save.
Ticketing must be enabled for the alias and correctly configured in TouchOffice Web. Refer
to our Ticketing Reference Manual for details.
TouchTakeaway configuration
Interactive map
TouchTakeaway configuration
Customers
Extend the expiry date of expired or nearly expired TouchTakeaway customers:
1. By selling an extension PLU.
2. Move expired customers onto a non-members price level.
3. The length of extension is in months.
4. The display of the extension is converted to years and months.
5. Loyalty points or other loyalty discounts are not available until the customer renews their
membership.
To configure membership extension:
1. In TillConfig select TouchTakeaway > Customers.
2. Refer to the table below for guidelines.
Setting Description
Allow expired customer login Allows the customer to log in.
Restart expired customer Allows the customer to log in and renew their
membership only.
Membership PLUs
PLU Selection Select the extension membership PLU.
Extension duration (months) The duration that the membership is extended by in
months.
Customer group shift Shift the customer to another group until they renew
their membership.
Enable Balance Topups
PLU Selection
3. Save your changes.
TouchTakeaway configuration
Service Charge
A service charge can be added on a per site basis.
1. In TillConfig select TouchTakeaway > Service Charge.
2. Select the site. Selecting Head Office will apply the changes to all sites.
Enabled: Turn service charge on/off.
Compulsory: When enabled the service charge cannot be removed when checking out.
Percent: Set the percentage value of the order that will be applied as a service charge.
Service charge on all items/Selective itemisers: Toggle between service charge being
applied to the value of all items in the sale, or just those flagged with particular selective
itemisers.
Service charge on delivery method: Select which method(s) the service charge will be
applied to.
Check local consumer rights to determined whether this is permitted.
TouchPoint 2021 (74.04) or greater is required.
TouchTakeaway configuration
Tax
1. In TillConfig select TouchTakeaway > Tax.
2. Refer to the table below for guidelines.
3. Save.
Field Description
Site
If you have different tax numbers for different sites then
select each site to enter the VAT details.
VAT Number If VAT registered add your company VAT number.
Tax Breakdown On Email Receipt
Tick to enable.
Enabling this setting is recommended so that
companies and international visitors can claim the
tax back.
Enabling Tax breakdown will also enable tax symbol product indicators. These symbols can be
edited in the Language setting or set not to show by omitting them from the language.
TouchTakeaway configuration
Clear Cache
TouchOffice Web updates take approximately 15 minutes before reflecting on TouchTakeaway /
ByTable / ByRetail. To have changes updated instantly, clear the cache in TillConfig using the new
Clear Cache feature:
1. In TillConfig select TouchTakeaway > Clear Cache.
2. Select Clear Cache once more.
3. You may need to clear your local browser cache.
Caching is a process that stores multiple copies of data or files in a temporary storage
location (or cache) to speed up site loading.
TouchTakeaway configuration
Vouchers
Voucher codes created in TouchOffice Web+ The entered code will be checked against
TouchOffice Web+ voucher codes and then against the codes entered in the Discounts page.
Please refer to the Voucher sale PLU documentation for further details - for further details.
1. In TillConfig select TouchTakeaway > Vouchers.
2. Enter a minimum amount and years until expiry.
3. Save.
TouchTakeaway configuration
SelfService
ICRTouch’s SelfService software turns a self-standing touch-screen device(kiosk) into a self service
point of sale device. In restaurants and fast food outlets the software allows customers to view
time based menus, ingredients and allergens prior to placing their order. The software processes
card payments, prints receipts and sends the order directly to the kitchen.
Please refer to the Self service reference guide for further details.
1. In TillConfig select TouchTakeaway > SelfService.
2. Select the site.
3. Hide or show customer detail fields.
TouchTakeaway configuration
ChefGuard
ChefGuard is a handy feature that throttles customer orders placed through ByTable to prevent
the kitchen from being overwhelmed. End users will be able to place orders but they will be
trickled down to the till and the kitchen at a rate set by you.
1. In TillConfig select TouchTakeaway > ChefGuard.
2. Refer to the table below for guidelines.
3. Save your changes.
Setting Description
Site
You are able to control customer orders on a site level.
Enabled Check box.
Maximum orders per minute Enter a numeric value.
Delay message threshold (minutes) If the delay is longer than this the customer will be alerted.
Minimum spend The minimum amount that the customer needs to spend
in order to redeem the discount.
Preparation time (minutes) This time will be added to the delay time when informing
the customer.
Message type
Dropdown list:
Timed (including the delay time)
Generic
TouchPoint MUST be running version 74.13 or above.
In Programming | System Programming | Kitchen Printers | YOUR PRINTER | **KP Configuration you
will see a setting called "Is Schedulable".
Enable this for all the printers that you want ChefGuard to work on.
For example you may want drinks orders to print regardless, so keep this setting to NO on your
drinks KP.
TouchTakeaway configuration
Commander
If your business is not ready to incorporate a fully-featured Point of Sale, the ICRTouch
Commander App offers a low-cost solution for managing orders as they arrive.
1. Email support@icrotuch.com to obtain your Webshop API key. Please mention your
company alias and that it is for use with the Commander app.
2. Go to https://commander.touchtakeaway.net/. Enter the API key to login.
1. In TillConfig select TouchTakeaway > Commander.
2. Select the site from the site drop down list.
3. Select Show detailed order tracking.
4. Select Auto Accept Orders if you prefer this option.
Using TouchTakeaway Commander
Configure Commander in TillConfig
5. Save.
Setting Description
Site
Show detailed order tracking Show full order status tracking to the customer on the
order complete page.
Auto accept orders
Select whether orders are automatically accepted and
sent to the till, or whether they require accepting via
Commander. The setting is only available at site level.
Options:
On
Off
1. Switch back to the Commander app.
2. Select the top-left menu icon and select Settings to set your preferences.
Fields
Configure Commander
Pending Orders
Select the top-left menu icon and select "Pending Orders". The pending orders are shown with:
the time the order was placed
the time elapsed since
the price of the order
the order number
the type of order
1. Select an order to begin.
2. Manually change the status of the order from pending to accepted, cooking, ready for
collection/delivery, out for delivery, all complete, archived and rejected and then select
the submit button.
3. Select the customer history button.
Starting Orders
TouchTakeaway configuration
Analytics
Enable Google analytics. Refer to Google Help Center for additional information.
TouchTakeaway configuration
Order config
Edit the order number length and include a prefix and/or a suffix.
Customer order confirmation email illustration
Customer order app confirmation email illustration
Customer order app confirmation email illustration
TouchTakeaway configuration
FInd your TouchTakeaway URL:
1. In TillConfig select TouchTakeaway > View TouchTakeaway site.
TouchTakeaway Site
TouchPoint
TouchPoint Configuration
TouchPoint Configuration
Webshop setting illustration
Check Backup Master illustration
TouchPoint images
Print Receipt illustration
Remote use only illustration
Trouble shooting and support
Troubleshooting
Troubleshooting
If the till does not receive web orders, log in to tillconfig.net. Select Takeaway > View Sales. Check
the Last Error column for error messages. Common errors and how to troubleshoot them:
Error message Toubleshooting steps
KP # Error, Retry?
There was an issue with a kitchen printer.
Check the printer for errors. Is it on? Does it have paper?
Is it connected to the till?
KV # Error, Retry?
There was an issue with a kitchen video.
Check the network between the KV and the till.
Receipt Printer Error, Retry?
There was an issue with the receipt printer.
Check the printer for errors. Is it on? Does it have paper?
Is it connected to the till?
Ticket Printer # Error, Retry?
There was an issue with a ticket printer.
Check the printer for errors. Is it on? Does it have paper?
Is it connected to the till?
Short Stock
One of the items in the sale is out of stock on the till.
Assuming the product is in stock, disable maintain stock
on that product:
Programming > All Programming > PLU > [PLU #] >
Maintain Stock - NO.
NO CHECK NUMBER DURING FINAL
The till cannot assign a check number to the order.
Ensure you have the till configured for check tracking
Programming > All Programming > System Programming
> System Flags > Check Tracking > Use Check Tracking,
if no Table Tracking - YES.
All other errors. Contact the ICRTouch Support Team.f the
View sales illustration
Troubleshooting
To view error messages in TillConfig select TouchTakeaway > Webshop range programming >
View sales.
If the till has been replaced, there is an issue with the till or web orders are not being received and
there is no error:
1. Log in to the till using the engineer code.
2. Select 5. System.
3. Select 3. Presets.
4. Make a note of the Last Web Shop ItemID and contact the ICRTouch Support Team for
assistance.
Last Web Shop ItemID illustration
Unrectified errors will prevent new orders from being processed and therefore need to be
addressed urgently.
Overview of stock
Creating suppliers
Creating cases and setting sizes
Recipe link
Master PLUs
Stocktaking
Stock variance
Stock ordering process
New order
Place order
Post delivery
Post invoice
TouchOffice Web -
Stock Tutorial -
Partner Edition
This tutorial explains all the major functionality of TouchOffice Web as follows:
1. Firstly, suppliers must be created to order stock. See "Creating Suppliers".
2. Most stock items are ordered in volume, rather than individual units, so Cases must be
created and the size of each set, i.e. how many individual PLU units are in each one. An
example of a Case could be a Barrel, a keg, or a large box. See "Creating Cases and
Setting Sizes".
3. There may be a requirement to track the stock of PLU items that make up recipes. See "
Recipe Link".
4. There might be a requirement to set certain PLUs to be stock-holding items, or 'Master
PLUs', to enable the stock of individual PLU items to be tracked. See "Master PLUs".
5. Doing a stock take and posting stock values into TouchOffice Web. See "Stocktaking".
6. It is important to see if there are any variances in stock levels through mistakes in stock
taking or from shrinkage. See "Stock Variance".
7. After the stock is counted and then posted into TouchOffice Web, new stock must be
ordered. See "Stock Ordering Process".
Overview of stock
Before an order of stock can be made, a supplier/s must be created first. To add a supplier, follow
the steps below:
1. Select Stock > Suppliers. A list of suppliers is shown.
2. Select Add Supplier.
3. Add the supplier information, where applicable, in the following fields:
Reference - Your reference code to identify the supplier.
Name - Name of supplier.
Address - Postal address for accounting.
Postcode - Address postcode.
Contact - Name of contact at delivery company.
Phone, Fax, Email, URL - As required.
Creating suppliers
Much of your stock will be ordered in cases, so it is important to first create cases and sizes, i.e.
the number of individual stock units in various cases. Multiple PLUs can be assigned to the same
case, but a PLU can only have one case linked to it at a time. (See Products section for more
details).
1. Select Stock > Case Sizes.
2. Select Add Case Size.
3. Select the fields as follows:
Description- e.g. Large box, barrel, Keg, etc. You can also be more specific, e.g.
'Box of Wine', etc, but then it cannot be used so easily for other non-wine PLUs.
Size - How many units of the item in a case.
Creating cases and setting
sizes
Recipes enable you to group PLUs into a list of ingredients, such as a cocktail. A recipe enables a
list of PLU items to be grouped under one PLU name. For example, a cocktail recipe called a
'screwdriver recipe' would contain two separate PLU items of vodka and orange, each with
respective amounts.
The recipe can then be linked to a PLU item, for example, a PLU can be created called
'screwdriver', and it can then be linked to the 'screwdriver recipe'. Now, when a 'screwdriver'
cocktail is sold, the stock levels of the vodka and orange PLUs are adjusted.
A PLU with a Recipe Link does not hold its own stock; it only affects the stock of others.
1. Select Stock.
2. Select Recipes.
3. SelectNew.
4. Enter the name of the recipe in the first empty field.
5. Enter the PLU number of the first item to add to the recipe, either in the PLU field, or you
can search by name in the Name field, as follows:
To add item via PLU number: Click in the PLU field and type a PLU number. If the
PLU exists, it will appear under the field in large bold figures. Click on the PLU
number and the item will appear as the next item in the table.
To add an item via PLU name: Click in the name field and type the name of the
product. As you type, products containing the search term you have typed will
appear under the name field. Click on the product item name you want to add. The
item will appear as the next item in the table.
6. Enter the measure of each PLU item in the QTY size field. This refers to how many of each
Unit Size is used in the recipe.
Note: Unit Size is not used in any calculations within TouchPoint. It is purely used
as a reference value to remind and inform the operator about the unit size of each
Recipe link
Overview of recipe links
How to create a recipe (a grouped list of PLUs)
PLU sale item.
7. Repeat step 5 for all the PLU items you want added to the recipe.
8. Save.
9. A warning message is displayed confirming the save operation. Select OK to confirm, or
Cancel to change your mind.
10. Go to the step below to link the recipe to a PLU.
1. Select Products.
2. Find an empty PLU slot and create a new PLU for the Recipe item, or edit an existing PLU.
3. Set the Recipe Link dropdown to the name of the Recipe created above.
4. Save.
How to create a PLU linked to a recipe
PLUs only affect their own stock. When that PLU item is sold, stock is adjusted accordingly.
But sometimes there is a requirement that, when a quantity of a PLU item is sold, the stock of
another PLU item is adjusted instead. This 'stock-holding' item is called a Master PLU.
Any PLU can be linked to a Master PLU.
To link a PLU to a Master PLU, follow the steps below:
1. Select Products from the TouchOffice Web menu.
2. Select the appropriate site from the site selection dropdown.
3. Select a PLU number.
4. In the Stock section, set the Master PLU dropdown to the stock-holding PLU. In other
words, the PLU whose stock levels will be affected when the current PLU is sold. By
default, all PLUs have 'No Master PLU Link' set in the Master PLU dropdown.
5. In the QTY Adjustment field, enter the quantity of the PLU, per unit sold, that is
subtracted from the Master PLU stock level.
Working out QTY Adjustment To work out QTY Adjustment, divide Master PLU Unit
Size by the PLU Unit Size. With a one-to-one relationship, the amount might be 1.
So, where 1 unit of the product is sold, it affects 1 unit of stock from another. The
value can also be a decimal. For example, 0.5 for half, or 0.25 for ¼.
6. In the Unit Size field, enter the PLUs unit of sale, in other words, how much is being sold
per quantity measure. This value is only for reference and is not used in calculations, but
is useful in other areas, such as creating recipes - see How to Create a Recipe (a grouped
list of PLUs).
7. Save.
Master PLUs
Overview of Master PLUs
How to link a PLU to a Master PLU
Master PLU example
A good example is a 175ml glass of wine and a bottle of wine. Wine is ordered for stock, in bottles,
not glasses, but when a glass of wine is sold, it affects a percentage of stock of wine from a 700ml
bottle.
If the glass of wine is sold in 175ml measures, then when one glass is sold it uses up a ¼ of a
700ml bottle of wine.
If the glass of wine PLU is not linked to a Master PLU bottle of wine for stock purposes, then when a
glass of wine is sold, the stock of wine used from the bottle will not be accounted for, meaning
optimum stock levels cannot be maintained. To try this example, follow the steps below:
1. Select Products.
2. Firstly, create the 700ml bottle of wine PLU.
3. Enter '700ml' in the Unit Size field.
4. Secondly, create the glass of wine PLU. Select New.
5. Enter '175ml glass of wine' in the PLU name field.
6. Enter '175ml' in the Unit Size field.
7. Divide glass of wine unit measurement amount by Master PLU unit amount e.g. 175 / 700
= 0.25 (4 glasses of wine in a bottle). Enter this amount in the QTY Adjustment field.
8. Set the Master PLU to the 700ml bottle of wine PLU.
9. Save.
Now, when a 175ml glass of wine is sold, because it has a link to a Master PLU of the 700ml bottle
of wine, and the QTY Adjustment is '0.25', the Master PLU item's Current Stock amount will be
adjusted.
When the glass of wine is sold it will just affect the stock of the bottle of wine, not its own stock
levels.
When you make an order, any PLU item that is linked with a Master PLU item will NOT appear on
any orders. In other words, it will not exist as a stock PLU.
You cannot order stock of a PLU with a linked Master PLU item.
You could also use Master PLU links for beers or lager amounts - a pint, a half, a jug, a barrel, and
link them all back to one stock-holding PLU.
If there is a draught beer with unit size of a pint, and case size of a barrel, the stocktaker might
not count in each of those units. Instead, they may count by the gallon.
More complex stock options
You can create stockholding PLUs, for example Fosters Gallon, Heienken Gallon, etc. You can then
link those to the appropriate pint PLUs with a Master PLU.
So, whenever a pint is sold, it deducts this much from the Gallon PLU stockholding item.
Then the Gallon could then be linked back to the case (i.e. the barrel). So when a stock take is
carried out the Gallon amounts are affected, rather than specific cases or units. None of the actual
cases (barrels) and units (pints) will appear on stockholding sheets.
When you are ready to do a stocktake, there is a very specific order of operations in TouchOffice
Web as detailed below:
1. Log in to TouchOffice Web.
2. Select the appropriate site from the site selection dropdown.
3. Select Stock.
4. Select Start stocktake. The menu will change to End stocktake. A new menu item called
Stocktake Entry appears ready for a new stocktake sheet to be created.
Note: Before you start a stocktake, ensure the system is not already in stocktake
mode, which is shown by End stocktake displayed in the Stock menu.
At this stage, it is not necessary to enter the amounts of stock into TouchOffice
Web.
Once you start a stocktake, it is strongly advisable to count the physical stock
BEFORE you start trading.
If you count stock while trading, you have to accept that there may be a
variance.
For example, imagine a stock take is happening, and a customer picks up an item
and puts it into their basket while they continue to shop. You will not always be
sure if the stock was counted before the customer picked it up, or not. There’s no
way of really knowing and tracking it in the system.
5. Select Stocktake Entry.
6. Select New stocktake Sheet. A list of choices will appear:
New Sheet - start an empty stocktake sheet and add any number of PLUs to order
for stock.
PLU Group - Create a list of stock items in a PLU Group. For example 'Drinks', or
'Food'. Select a PLU group from the first dropdown labelled ‘All Groups’ and then
Stocktaking
Start a stocktake
select Add PLU Group . To add all PLUs in the system leave the first drop down as
'All Groups'.
Dept - Create a list of stock items from a Department. For example Draught Beers,
or Soft Drinks. Select a department from the first dropdown labelled ‘All
Departments’ then select Add Department . To add all PLUs from all departments
select ‘All departments’ from the dropdown. You can also add all PLUs that are not
allocated to a department by choosing ‘Not Allocated’.
ReUse old stocktake - Create a list from a previously saved stocktake sheet. This is
very useful if you want to create templates of different stock items. For example
one might be just for items you need on a regular buffet menu, or an order you
always make of drinks from a brewery, or a regular tobacco order. Select a
stocktake sheet from the list and select Open . The page numbers and First / Next /
Last / Prev buttons can be used to navigate to the page you want.
Build List For Supplier - Create a list of PLUs that are listed from a particular
supplier. For example, there might be a favourite supplier or only some items may
be regularly ordered from one particular supplier. Select a supplier from the
dropdown and select Add this supplier.
NOTE: When the stocktake entry sheet has been created you can enter stock
amounts from your physical stock count at your own pace and continue to
trade. The max number of items you can have in a Stocktake sheet is 1000.
TouchStock can also be integrated here and send back stocktake sheets.
7. After selecting one of the above Stocktake Sheet options, a list of PLUs will be shown in
the stocktake sheet.
8. For each PLU enter the Case Qty if a case of the stock item has been counted, then enter
the Item Qty.
Stocktaking tips
If cases are stored for the PLU item, then enter the number of cases in stock into
the Case Qty field.
If there are any individual items of the same PLU, say you are part way through a
case or items that are out, unpacked, on a shelf, then count those and enter the
amount in the Item Qty field.
If there are only cases of the item, with no individual items out to count, then leave
the Item Qty field blank for that PLU. It is advisable that you regularly save the
work by clicking the Save button, otherwise there is a risk of losing stock entries if
you leave the StockTake Entry window open too long without activity.
No actual PLU stock levels are updated in TouchOffice Web during this stage. The
new stock values are just stored until the stock take is complete.
9. When all stocktaking values have been added into the StockTake Sheet they can then be
'posted' into TouchOfficeWeb. To do this go to this End a Stocktake below.
When the counting of stock is complete the values entered must be updated, or 'posted', back into
TouchOffice Web.
This will take whatever you count then subtract sales, wastage and transfers out, then add
amounts from deliveries and transfers. This process adjusts stock levels accordingly.
To end the stocktake:
1. Select End Stocktake.
2. Select the type of stocktake from the following options:
Full stocktake - This will affect all PLU items in TouchOffice Web, and resets any
uncounted quantity values for cases and units to zero. You will be shown a
warning reminding you of this. Select OK to confirm, or Cancel if you change your
mind. When the new stock levels are posted the Stock List is displayed where the In
Stock Qty can be checked.
End a Stocktake
A full stocktake might be something you do once when you first order initial
stock, or if you always run your stock down to zero.
Partial Stocktake - This will affect only the PLUs that have been counted in the
stocktake. All other uncounted PLUs will remain unaffected. Select OK to confirm, or
Cancel if you change your mind. When the new stock levels are posted the Stock
List is displayed where the In Stock Qty can be checked.
Partial stocktake - A partial stocktake is the most common option after the
initial full stocktake. An example for doing a partial stocktake is this:
You may just do your high value stock regularly and leave the rest to once in a while over a
longer period. You might want to do all your tobacco once a week because they are high
value items, but extremely low profit. If you begin to lose those items regularly from theft
you would have to sell a whole case of cigarettes before you could recoup the loss.
Therefore, a regular partial stocktake can alert you of any 'shrinkage' in your stock.
When stock is entered you can then see if any stock is missing, perhaps from miss-counting stock,
or from shrinkage from theft. The Stock Variance menu provides a way to check this.
To check if there has been any stock variance follow the steps below:
1. Select Stock from the TouchOffice Web menu.
2. Select Stock Variance . If any StockTake Sheets have been posted they will be displayed
in the table, either showing a status of PARTIAL or FULL stocktake.
3. Select a StockTake Sheet from the table. The following information will be shown for any
PLUs that have stock variance:
Frozen Stock - the level of stock before the last stock level was entered.
Entered Stock - the quantity of stock entered in the last stocktake sheet and
posted during End StockTake. ● Variance - the difference between Entered Stock
and Frozen Stock. It is this value that can determine if shrinkage is occurring in your
stock. It is effectively showing stock that hasn't been unaccounted for i.e. not been
sold through the system.
Avg Cost - Average cost of the product item.
Variance Value - the amount of value of the variance in stock i.e. the value of lost,
missing, damaged, wasted or stolen stock.
Entered Stock Value - the total value of all stock just posted from the last
stocktake.
Stock Variance Report If you do enter stock over multiple sheets, say for a
large stock take, it’s worth running the Stock Variance reports in the Reports
menu of TouchOffice Web.
The Stock Variance Report will calculate the stock variance from all the PLUs
across multiple sheets.
Stock variance
Overview of stock variance
How to view stock variance
The stock ordering process is comprised of 4 main steps. For each step the order changes to a
different status.
The details of each step in the stock ordering process is as follows:
1. New Order - Build a list of PLUs and quantities to order from a supplier. The initial order
status is set to ORDER (see "New Order" on page 21).
2. Place Order - After sending an order to a supplier. The order status changes to POSTED
ORDER (see "Place Order" on page 25).
3. Post Delivery - When the order of stock arrives it must be checked against the original
order. Then the stock values of each item can be updated or 'posted' into TouchOffice
Web. The order status changes to POSTED DELIVERY (see "Post Delivery").
4. Post Invoice - When the supplier's invoice arrives the individual cost price and the total
must be checked against the delivery note. At this stage the average cost price for each
PLU is recalculated. The order status changes to POSTED INVOICE. The stock ordering
process for this order is now complete (see "Post Invoice".
Stock ordering process
To order stock a new order must be created. This is where a list of PLU stock items are created to
then send to a supplier, either posted or emailed.
A quantity must be put into each field.
When an order has been created, and PLUs added, it can be saved, and then reopened at any
point to make amendments to the order, or add items, or remove them. To create an order follow
the steps below:
1. Select Stock > Orders (see Figure 9-1 below).
2. Select a site from the site menu. Any existing current orders are displayed in the Orders
table.
3. To filter the table to display each Order Status select a Keyword Filter button : ORDER ,
POSTED ORDER , POSTED DELIVERY and POSTED INVOICE . To clear the filters and display
all Orders, of any status, select Clear Filter.
New order
Overview of Creating a New Order
To create a new order follow the steps below:
Creating a New Order
1. Select New order.
2. Select a Supplier from the Select a supplier dropdown.
3. An order can be completely customised and also there are some helpful options to make
it quick to create stocksheet lists. The following options are available:
New Order - a simple manually-entered new order.
Restock to Maximum - All PLUs that currently have Current Stock below the
Maximum Stock level are automatically added to the order. For each PLU that needs
to be restocked, the Item Qty field will be the difference between the Current Stock
amount and the Max Stock value.
Current < Min. Stock - All PLUs that have Current Stock levels below the Minimum
Stock (Min.Stock) level are automatically added to the order. For each PLU that
needs to be restocked, the Item Qty value will be set to the difference between
Minimum Stock and Current Stock levels. This can be thought of as optimum stock
levels.
Cur < Min cases Only - All PLUs that have a Current Stock level below the
Minimum Stock (Min. Stock) level are automatically added to the order ONLY if a
Case Size has been assigned to the PLU. i.e. It creates a new order of items that are,
generally, only ordered by case size, in bulk. But, it is also possible to specify
individual units to be added to each total per PLU also. In general, if you just want to
reorder to optimum stock levels, irrespective of a PLU being assigned to a case,
then use the above option ‘ Current < Min.Stock ’.
Recommend Order - All PLUs that will need to be restocked in good time to
maintain optimum stock levels. The Days to Order value is used in this calculation to
calculate when new stock would need to be ordered, using stock turnover. The
system works out when the current stock item PLU is likely to run out, based on the
amount of sales over the last Days to Order days.
NOTE: When an item is already on back order i.e the PLU item/s has already
been placed on order, it will not be added to the recommended order, to
ensure that duplicates of a PLU are not made. If the item is on a previous
order, that hasn’t been delivered, it will not be added to the new order.
ReOrder - This displays a selection table of the previous stock orders so a regular
order can be reordered. This is a handy time-saving feature. Select Open on any
order you want to reorder, for any regular orders. For example, a newsagent might
have a cigarette order, or a restaurant, a wine order.
Build List For Supplier - All PLUs that are assigned to the selected supplier will be
added to an order. It will prompt to select a supplier.
Build List For All Suppliers - All PLUs assigned to a supplier/s will be added to the
order.
Days To Order field - this is how long it will take from order for the PLU to
get back into stock. Effectively, this is the lead time, so that TouchOffice Web
can advise you to order a PLU item in good time to get it in stock when that
item is being sold at a particular rate.
NOTE: If you want to remove the order, or you change your mind, or want to
delete it, you can select Cancel . After an Order is saved it cannot be deleted
from the Order menu. In this case, PLUs can be removed from the order but
the actual listed order item will remain in the Order table.
Placing an order permanently saves the list as it will be sent to the supplier.
After an order is placed (Place Order) the status changes to POSTED ORDER and no other PLUs can
be added to the list.
The order can then be printed (Print) and sent to a supplier, or emailed (Email Order).
How to Place Order
To place an order follow the steps below:
1. Select Stock > Orders.
2. Select a site from the site menu. Any existing current orders are displayed in the Orders
table.
3. Select an order with a status of ORDER. To filter the table to only relevant orders select
an ORDER Keyword Filter. To clear the filters and display all Orders, of any status, select
Clear Filter.
Place order
Overview of Place Order
4. Select Place Order. The order list will be displayed again showing the order with a status
of POSTED ORDER.
Note: All PLUs in the order must have, at minimum, either Item Qty or Case Qty
values set to show the quantity required of that PLU to be ordered.
If both fields are left blank, an error message will be displayed.
When an order arrives from a supplier the items that are delivered should be checked off against
the items on the posted order.
If all checks out, the delivery can be 'posted' so that stock levels can be updated.
Post Delivery will update In Stock Qty/Current Stock levels for the posted PLU values.
The status of the order then changes to POSTED DELIVERY.
To post a delivery:
1. Select Stock > Orders.
2. Select a site from the site menu. Any existing current orders are displayed in the Orders
table.
3. Select an order with a status of POSTED ORDER. The order details page will show the
PLUs in the order. To filter the table to only relevant orders, select the POSTED ORDER
Keyword Filter. To clear the filters and display all Orders of any status, select Clear Filter.
Post delivery
Overview of Post Delivery
How to Post a Delivery
4. Select Post Delivery. The order list will be displayed again showing the order with a status
of POSTED DELIVERY.
What if items are missing from a delivery?
When a 'POSTED ORDER' delivery of stock arrives, it is possible that some of the ordered items
may be missing. This could be due to the supplier having made a mistake, or simply not having
the stock amount requested.
In other words, if the quantity amounts of PLU items delivered do not match up with the quantity
of items ordered then there will be a variance that must be accounted for.
To update PLU quantities where there is a stock variance:
1. Select an order that has just been delivered. The status will show as 'POSTED ORDER'.
2. Check quantity of Cases ordered (Case Ord field) against the quantity delivered. If there
is a variance, enter the actual amount of stock Cases that arrived into the Case Del field.
3. Check quantity of Items ordered (Item Ord field) against the quantity delivered. If there is
a variance, enter the actual amount of stock Items that arrived into the Item Del field.
4. Save.
5. Select Post Delivery.
6. A message will appear - A partial delivery has been added. Do you want to create a new
order? If you want to create a new order to send to the supplier then select OK. Go to the
next step. If you would rather not create a new order, select Cancel.
7. If a Partial Order is created it will appear at the top of the Orders table with an 'OrderID'
suffixed with '-1' and a status of 'POSTED ORDER'. If you open the newly created order it
will list PLUs where the stock was under ordered.
When you receive an invoice from a supplier:
1. Check the individual cost prices and the total against the delivery note sent with the
stock.
2. Post Invoice (see How to Post Invoice. Post Invoice does the following:
The Average Cost amount for each PLU is recalculated. This is calculated by using
the unit cost figures (Total Cost) of the PLUs just posted.
For example, if there is £50 of stock ordered at a cost price of £1 each, the average
cost would be £1.00. If a new order is made of the same PLU, but the cost price has
gone up to £2.00, after ordering 100 of them, the new order might be £2 per item,
so £100 worth of stock is delivered. So the Average Cost is £1.50.
NOTE: Unit cost Unit Cost is the last cost from the supplier. This is the same
for the Case Cost. Gross Profit calculations are made from the Average Cost.
Case Cost and Unit Cost are updated from the last posted invoice.
To post an invoice:
1. Select Stock > Orders.
2. Select a site from the site menu. Any existing current orders are displayed in the Orders
table.
3. Select an order with a status of POSTED DELIVERY from the list. To filter the table to only
relevant orders, select the POSTED DELIVERY Keyword Filter. To clear the filters and
display all Orders of any status, select Clear Filter.
Post invoice
Overview of Post Invoice
How to Post Invoice
4. Select Post Invoice from the detail page. The order list will be displayed again, showing
the order with a status of POSTED INVOICE.
Introduction
Service programming
System mode
Keyboard programming
Keyboard programming
List PLU using menu level keyboard
System programming
PLU programming
System Programming
Texts programming
Customer programming
Customers
Price programming
TouchPoint
Programming
Manual
Price Programming
Manager mode functions
Manager Mode Functions
Hidden functions
Hidden Functions
This manual contains flag and configuration settings for ICRTouch TouchPoint. To understand the
more complex functions of ICRTouch TouchPoint see the Reference Manual. For updates to this
manual, and for further information please visit the forum at www.icrtouch.com/forum.
When configuring TouchPoint you may find it easier to connect a keyboard and mouse.
Program mode consists of the following menu items:
1. Prices
2. Texts
3. All Prog
4. System
5. Keyboard
6. PGM Read
Program mode menu is accessible from the TouchPoint home screen only. If you are configuring
any of the menu items above and would like to return to the program mode menu select X to go
back to the TouchPoint home screen. X may appear in a different place depending on your location
in the program.
1. In TouchPoint select Program.
2. When prompted for a clerk number, enter the clerk code 2552- this will always give
access to all programming modes. This number cannot be used to sign on in any other
mode.
3. Change the default code - select Program > All prog > System programming > System
flags > Passwords > PGM Mode master password. Type the new password in the input
field.
Introduction
Program mode
TouchPoint program, all programming illustration
We will advise you if you need to enter information in a field that is hidden. In the illustration
below we have added "Type message ... here" to identify where the text is entered. You will need
to navigate to the field and press enter in order to update the field.
Hidden fields
TouchPoint program, texts, scrolling messages illustration
https://docs.icrtouch.com/link/694#bkmrk-page-title
1. In TouchPoint select Program.
2. When prompted for a clerk number, enter the clerk code 88888888 - this will give access
to the hidden functions menu.
Hidden functions password
3. Change the default code - select Program > All prog > System programming > System
flags > Passwords > Hidden menu password. Type the new password in the input field.
If you are unable to see the mouse pointer:
1. In TouchPoint select Program.
2. When prompted for a clerk number, enter the clerk code 88888888 - this will give access
to the hidden functions menu.
3. Select 2. Enable Mouse.
4. Select Ok to exit.
Enable mouse
TouchPoint hidden functions illustration
Service programming
Service programming
1. In TouchPoint select Program > System. This may be referred to as Program 5.
1. In TouchPoint select Program > System > Skin.
System mode
TouchPoint program mode illustration
Skin
The skin allows the look and feel of ICRTouch to be changed at will. Consult the skins manual for
more information on how to create and edit skins.
1. In TouchPoint select Program/System/File sizes.
2. Update the files sizes using the guidelines from the System, file sizes fields table.
The number shown is the current file size, followed by the number in brackets showing the
maximum file size available, for example the PLU file currently has 2000 records allocated but
could be increased to 65000.
TouchPoint skin illustration
File sizes
Adjusting file sizes is non destructive except when reducing the file size which will
effectively delete any records that it has been adjusted by. For example reducing the size of
the PLU file from 2000 records to 1000 records will result in PLUs 1001 to 2000 being
destroyed.
It is inadvisable to set file sizes excessively high simply because you can, as there will be a
network and hard drive performance penalty to pay as more data will end up being
written/sent. Be especially cautious of the size of the check file, large check files increase
the workload when syncing the check backup master, entering the floor plan, printing open
check reports etc.
Note that the maximums program file cannot be set to auto broadcast and file sizes must be
set on each till.
System, file sizes illustration
No Field
Maximum file size (do not set excessively
high)
1 PLU 65,000
2 List PLU
5,000 * For above 250 records see
note below
3 Product Group Header 30,000
4 Product Group Item 30,000
5 Set Menu 999
6 KP Category 200
7 Preset Message 999
8 Check Index 30,000
9 Check Detail 65,000
10 Table Analysis 9,999
11 Reason Table 999
12 Finalise Key 999
13 Transaction Key 999
14 Status Key 999
15 Keyboard 250
16 Customer 250,000
17 Customer Group 250
18 Customer Detail Header 30,000
19 Customer Detail Item 65,000
20 IDC Header 99,999
21 Clerk 30,000
System, file sizes fields
No Field
Maximum file size (do not set excessively
high)
22 Mix & Match 2 999
* List PLU : If you set this to higher than 250 records you must read and understand this
document: List PLU 250 Item Correction Logic
1. In TouchPoint select Program > System > Presets.
No Field Description
1 Customer Detail SaleID
This is an internal reference number
used by TouchPoint to track the
current customer sale. This should
only be changed when moving or
replacing the customer master,
contact ICRTouch for further
information if you need to change
this.
2 Last Web Shop ItemID
This is an internal reference number
used by TouchPoint to track the
current webshop item sale. This
should only be changed when moving
or replacing the machine receiving
webshop sales, contact ICRTouch for
further information if you need to
change this.
3 Stats Upload Licence key
This is a unique number assigned to
the till for recording of usage
statistics such as CPU, memory etc.
4 Last Check Serial Number This is a unique number assigned to
a check when it is finalised.
Presets
System, presets fields
When replacing any program, especially the check master, make sure these presets are set
to correspond with the values that existed in the previous program. Failure to do so will
result in customer sales / webshop sales etc. not being uploaded to TouchOffice Web and
the last check serial number being verified.
Check for update
1. In TouchPoint select Program > System > Check for update. Here you can use
TouchPoint's inbuilt updater to update your version.
2. Pressing enter on check for update will automatically check to see if there is a newer
version, show you the release notes and ask if you would like to update.
3. Different versions can be rolled back to by entering the desired version ID in the 'Current
version ID' line and then the year of release in the 'Check for update' line. These can be
found at https://forum.icrtouch. com/topic/20488-pgm5-update-codes/
4. For updates to beta versions of TouchPoint you can type BETA into the check for updates
line.
The terminal you are using needs to have internet access and have a licence that is new
enough to support the updated version.
System, check for update release notes illustration
No Field Description
1 Check for update
Checks whether an upgrade is
available and displays the release
notes.
2 Current VER ID Displays the current version.
3 Force Restart
1. In TouchPoint select Program > System > Cloud Data Restore.
System, check for update fields
Cloud Data Restore
System, cloud data restore illustration
No Field Description
1 Restore Date/Time
2 Directory
3 Restore to Temp
4 Preview Files
5 Do Restore
System, cloud data restore fields
Keyboard programming
Keyboard programming
1. In TouchPoint select Program > Keyboard
2. Select one of the buttons to view its attributes on the button editor.
3. Next select one of the buttons on the button editor to view additional options for the
selected button.
Allows you to change the keyboard level.
Keyboard programming
Keyboard programming layout
Keyboard, button editor illustration
Level change
No Field Description
1 Level Change
The sales mode levels start from the
level 10, it will always default to the
first of these when entering program
4 mode.
Even X and Z mode levels are fully
flexible, allowing preset report
buttons etc to be put on the
keyboard. Pressing the current menu
level brings up a dialog displaying all
available menu levels.
Keyboard, button editor, level change
Keyboard, button editor, level change illustration
This allows the text on the buttons to be 'tidied up' for a neater look. Editing text here has no
effect on the programmed text of the underlying button, i.e. what is printed on the customer
receipt etc.
Edit text - ( E - Key )
Keyboard, button editor, edit text illustration
Allows you to change the current selected button type.
No Field Description
File type - ( T Key )
Keyboard, button editor, file type
1 Type
You are first prompted for the file type for
the button:
PLU
Allows PLUs to be allocated to
the keyboard, next will follow
a list of all PLUs. PLUs an be
allocated automatically by
rubber banding a region and
then selecting the first PLU.
For example; Select a block of
buttons by dragging your
finger from the top left corner
to the bottom right corner of
your range. Then if you select
a starting PLU the rest of the
buttons will be filled in with
sequential record numbers.
Finalise Key
Allows payment keys, cash,
cheque etc. to be allocated to
the keyboard. This is a
dynamic file – finalise keys
must first be set up in PGM3.
Transaction Key
Allows transaction keys, error
correct, discount etc, to be
allocated to the keyboard. This
is a dynamic file – transaction
keys must first be set up in
PGM3.
Status Key
Allows status keys, receipt
print, clerk number etc, to be
allocated to the keyboard, this
is a dynamic file, status keys
must first be set up in PGM3.
Fixed Key
Allocates fixed keys such as
numeric keys, multiply buttons
etc. Not a programmable file.
Function Key Wizard
This simplifies adding List
PLU and menu level shift keys
to the keyboard as it
configures them in the status
key file. Targeted at end users.
No Function
Disables the button. The
button will not function, and
will not be drawn in normal
sales mode.
Keyboard buttons in program
4 are automatically hidden if
they are located underneath
the input or reg windows.
Using skins with larger reg
windows can reduce the
number of available buttons.
Putting the | character in a key's
text splits the line at that point.
Keyboard, button editor, file type illustration
Allows you to change the current selected button font.
No Field Description
Font
Keyboard, button editor, font
1 Font
Font options:
Courier new
bold 16
Arial narrow 26
Brush script
BT72
Arial 16
Comic sans MS
16
Comic Sans MS
30
Comic Sans MS
36
Rockwell
condensed 20
Picard
Condensed 24
Rockwell
condensed 16
Rockwell
condensed 24
Rockwell
condensed 28
Rockwell
condensed 34
Arial 20
Arial 24
Arial 28
Arial 34
Placard
condensed 16
Placard
condensed 20
Placard
condensed 28
Placard
condensed 34
Placard
condensed 72
Arial narrow 16
Arial narrow 20
Arial narrow 24
Arial narrow 34
Trebuchet MS
18
Trebuchet MS
24
Trebuchet MS
36
Segoe UI 18
Segoe UI 24
Segoe UI 36
Verdana 20
Verdana 24
Verdana 34
Serifa BT 72
Trebuchet MS
72
Keyboard, button editor, font illustration
Allows you to change the current selected button shape. The following settings are for the Default
15_2019 skin.
No Field Description
Shape
Keyboard, button editor, shape
Shape options (pixels):
width="177"
height="174"
State up:
2013_button1.b
mp
State down:
2013_button1.b
mp
Small button
light
width="177"
height="174"
State up:
2013_button2.b
mp
State down:
2013_button2.b
mp
Small button
mid
width="177"
height="174"
State up:
2013_button3.b
mp
State down:
2013_button3.b
mp
Small button
dark
width="390"
height="389"
State up:
2013_largebutto
n1.bmp
State down:
2013_largebutto
n1.bmp
Large button
light
width="390"
height="389"
State up:
2013_largebutto
n2.bmp
State down:
2013_largebutto
Large button
mid
width="177"
height="174"
State up:
salesmode_butt
ons4.bmp
State down:
salesmode_butt
ons4.bmp
Small glass
light
width="177"
height="174"
State up:
salesmode_butt
ons5.bmp
State down:
salesmode_butt
ons5.bmp
Small glass
mid
width="177"
height="174"
State up:
salesmode_butt
ons6.bmp
State down:
salesmode_butt
ons6.bmp
Small glass
dark
width="177"
height="174"
State up:
salesmode_butt
onsr4.bmp
State down:
salesmode_butt
onsr4.bmp
Round glass
light
width="177"
height="174"
State up:
salesmode_butt
onsr5.bmp
State down:
salesmode_butt
Round glass
mid
Keyboard, button editor, shape illustration
Allows you to change the current selected button background colour.
Background colour
Keyboard, button editor, background colour illustration
Allows you to change the current selected button font colour.
Font colour
Keyboard, button editor, font colour illustration
To merge 2 buttons, drag a rubber band around 2 adjoining buttons then tap the merge button.
Buttons can only be merged if they have compatible dimensions, ie a button can only be made
double width with a button adjacent to it, and of the same height. Buttons can be merged together
indefinitely, giving quad size buttons etc.
Buttons cannot be split beyond the size of a single button.
The copy and paste buttons copy the currently selected buttons to the clipboard, or paste the
clipboard to the currently selected buttons. This can be used to move buttons to a different area
on screen. It can also be used to allocate PLUs en masse and will increment the PLU number for
each selected button automatically.
Undo and redo the previous action.
1. Double click a button to view the settings in TouchPoint (if applicable).
2. When complete press the button with an X on it to go back to keyboard programming.
3. The following buttons are editable:
Home
Sign on
Merge - ( M key )
Split - ( S Key )
Copy and paste ( C & V Keys )
Undo and redo
Update system keys in TouchPoint
Receipt on/off
X (in numeric keypad)
Error
Down arrow
No sale
= (equals)
Credit card
Cash
New balance
Hotel xfer
Canc
TouchPoint finalise key illustration
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Preset Clerk Specify the current clerk on this
button.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
Home button configuration
Sign on button configuration
Receipt on/off button configuration
No Field Description
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Print on rct/journal
When set prints the multiplier
including the @ price on a separate
line on the receipt and journal.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Complete line void? If yes error corrects by line, if no by
item.
5 Show Reason Table, Voids The user is prompted with a reason
table if this is a void item.
X button configuration
Error button configuration
No Field Description
6 Show Reason Table, Last Item Corr The user is prompted with a reason
table if this is a last item correction.
7 Print extra ticket with signature strip?
The till will automatically issue an
extra for any sale done in Refund
Mode, regardless of whether the
receipt is on or not.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Force drawer 1? Opens cash drawer 1 regardless of
the what the operator is set to.
5 Force drawer 2?
Opens cash drawer 2 regardless of
the what the operator is set to.
If both flags are set then both cash
drawers will be opened, 1 after the
other. If neither flag is set then the
default for the operator is fired.
6 Show Reason Table The user is prompted with a reason
table.
7 Print extra ticket with signature strip?
The till will automatically issue an
extra for any sale done in Refund
Mode, regardless of whether the
receipt is on or not.
Down arrow button configuration
No sale button configuration
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Compulsory Eat In/Take Out?
System will prompt with a list of all
Eat In/Take Out keys found in the
Status Key file if one hasn't already
been used.
5 Print extra ticket with signature strip?
If this transaction key is used at any
time during the sale then an extra
receipt is issued with the signature
strip bottom message at the bottom
of it.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Low amount limit £
Specified only in £s, no decimal
place. Sales below this value cannot
be finalised on this key.
5 High amount limit £
Specified only in £s, no decimal
place. Sales above this value cannot
be finalised on this key.
= (equals) button configuration
Credit card button configuration
No Field Description
6 Drawer In Any money tendered on this button
will be added to this totaliser.
7 Drawer Out
Any amounts given as change from
this button will be deducted from this
totaliser.
8 Open Drawer? Decides whether the drawer will open
or not when this finalise key is used.
9 Enforce Amount Tendered?
If set to yes, the operator must enter
the amount tendered before pressing
this button.
10 Inhibit Partial Tendering? If set to yes, the operator cannot
tender for less than the sale value.
11 Inhibit Amount Tendering?
If set to yes, the operator cannot
tender an amount before pressing
this button.
12 Enfoce Subtotal? If set to yes, the operator must press
subtotal before pressing this button.
13 Automatic Receipt Printing?
If set to yes, regardless of whether
the receipt is on or not, a receipt will
be issued if this key is used.
14 Warn if a check is open?
Will give a warning message if
finalisation is attempted with a
check/table open.
15 No over-tender? Locks the ability to over tender a sale
using the EFT key.
16 Print Tax Break Down?
If there is any tax content in this sale,
then this will be printed on the
receipt.
17 Printer extra ticket with signature
strip?
If this finalise key is used then an
extra receipt is issued with the
signature strip bottom message at
the bottom of it.
18 Compulsory Eat In/Take Out?
System will prompt with a list of all
Eat In/Take Out keys found in the
Status Key file if one hasn't already
been used.
19 Tendered amounts in EUROs(sub)?
The finalise key becomes a EURO
finalise key. All amounts tendered
are in EUROs. Only applies to CASH,
CHEQUE & EFT.
20 Prompt with numeric keypad for
tender?
When set and no amount was
tendered into the finalise key, the
unit will popup a numeric keypad for
amount to be tendered.
No Field Description
21 Prompt for device?
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Low amount limit. £
Specified only in £s, no decimal
place. Sales below this value cannot
be finalised on this key.
5 High amount limit £
Specified only in £s, no decimal
place. Sales above this value cannot
be finalised on this key.
6 Drawer In Any money tendered on this button
will be added to this totaliser.
7 Drawer Out
Any amounts given as change from
this button will be deducted from this
totaliser.
8 Open Drawer? Decides whether the drawer will open
or not when this finalise key is used.
9 Enforce Amount Tendered?
If set to yes, the operator must enter
the amount tendered before pressing
this button.
10 Inhibit Partial Tendering? If set to yes, the operator cannot
tender for less than the sale value.
11 Inhibit Amount Tendering?
If set to yes, the operator cannot
tender an amount before pressing
this button.
12 Enfoce Subtotal? If set to yes, the operator must press
subtotal before pressing this button.
13 Automatic Receipt Printing?
If set to yes, regardless of whether
the receipt is on or not, a receipt will
be issued if this key is used.
Cash button configuration
No Field Description
14 Warn if a check is open?
Will give a warning message if
finalisation is attempted with a
check/table open.
15 No over-tender? Locks the ability to over tender a sale
using the EFT key.
16 Print Tax Break Down?
If there is any tax content in this sale,
then this will be printed on the
receipt.
17 Printer extra ticket with signature
strip?
If this finalise key is used then an
extra receipt is issued with the
signature strip bottom message at
the bottom of it.
18 Compulsory Eat In/Take Out?
System will prompt with a list of all
Eat In/Take Out keys found in the
Status Key file if one hasn't already
been used.
19 Tendered amounts in EUROs(sub)?
The finalise key becomes a EURO
finalise key. All amounts tendered
are in EUROs. Only applies to CASH,
CHEQUE & EFT.
20 Prompt with numeric keypad for
tender?
When set and no amount was
tendered into the finalise key, the
unit will popup a numeric keypad for
amount to be tendered.
21 Prompt for device?
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Compulsory Eat In/Take Out?
System will prompt with a list of all
Eat In/Take Out keys found in the
Status Key file if one hasn't already
been used.
New balance button configuration
No Field Description
5 Print extra ticket with signature strip?
If this finalise key is used then an
extra receipt is issued with the
signature strip bottom message at
the bottom of it.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Preset Room Number Allows the finalise key to be used for
a specific preset room only.
4 Drawer In Any money tendered on this button
will be added to this totaliser.
5 Drawer Out
Any amounts given as change from
this button will be deducted from this
totaliser.
6 Open Drawer? Decides whether the drawer will open
or not when this finalise key is used.
7 Enfoce Subtotal? If set to yes, the operator must press
subtotal before pressing this button.
8 Automatic Receipt Printing?
If set to yes, regardless of whether
the receipt is on or not, a receipt will
be issued if this key is used.
9 Warn if a check is open?
Will give a warning message if
finalisation is attempted with a
check/table open.
10 Print Tax Break Down?
If there is any tax content in this sale,
then this will be printed on the
receipt.
11 Printer extra ticket with signature
strip?
If this finalise key is used then an
extra receipt is issued with the
signature strip bottom message at
the bottom of it.
12 Compulsory Eat In/Take Out?
System will prompt with a list of all
Eat In/Take Out keys found in the
Status Key file if one hasn't already
been used.
Hotel xfer button configuration
No Field Description
14 Use booking ref {no, room number}?
For Guestline, when set the booking
ref field is used in place of the room
number.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Print extra ticket with signature strip?
If this finalise key is used then an
extra receipt is issued with the
signature strip bottom message at
the bottom of it.
Canc button configuration
Keyboard programming
Required: Version no: 76.07 or above.
Program TouchPoint to use a menu-level keyboard for list PLUs instead of the default pop-up list
boxes. This can improve usability, especially for larger lists and adds the following capabilities:
The ability to display stock levels.
Minimum and maximum indicators give insight into the list requirements.
The count key keeps track of the number of options selected.
Keyboard level list PLU illustration
List PLU using menu level
keyboard
V76.07 cannot be used with Set menu.
Default popup list box list illustration
Enable the setting
Enable the list PLU menu level keyboard:
1. In TouchPoint select Program > All Prog > System Programming > System Flags > PLU
Control.
2. Scroll down to the bottom and select YES to use the keyboard level for list plu's.
List PLU uses menu level illustration
Status keys
TouchPoint uses List PLU keys to display information to the user. The text on the key determines
its function:
TITLE - the title of the List PLU.
MIN - the minimum quantity required.
MAX - the maximum quantity.
COUNT - the number of options selected.
REQESC - the dialogue needs escape to close (to end the current keyboard level).
ESCAPE - ends the sale.
The Title, Min, Max, Count, Reqesc and Escape List PLU status keys need to be created in order to
add them to the new menu level keyboard.
1. In TouchPoint select Program > All Prog > Function Keys > Status Key.
2. Scroll down until you find an unused status key and press enter.
3. Enter TITLE in the descriptor field.
4. Scroll down to key type and select List PLU.
Title status key illustration
Configure the status keys
Configure the title status key
1. In TouchPoint select Program > All Prog > Function Keys > Status Key.
2. Scroll down until you find an unused status key and press enter.
3. Enter MIN in the descriptor field.
Configure the min status key
4. Scroll down to key type and select List PLU.
Min status key illustration
1. In TouchPoint select Program > All Prog > Function Keys > Status Key.
2. Scroll down until you find an unused status key and press enter.
3. Enter MAX in the descriptor field.
Configure the max status key
4. Scroll down to key type and select List PLU.
Max status key illustration
1. In TouchPoint select Program > All Prog > Function Keys > Status Key.
2. Scroll down until you find an unused status key and press enter.
3. Enter COUNT in the descriptor field.
Configure the count status key
4. Scroll down to key type and select List PLU.
Count status key illustration
1. In TouchPoint select Program > All Prog > Function Keys > Status Key.
2. Scroll down until you find an unused status key and press enter.
3. Enter REQESC in the descriptor field.
Configure the reqesc status key
4. Scroll down to key type and select List PLU.
Reqesc status key illustration
1. In TouchPoint select Program > All Prog > Function Keys > Status Key.
2. Scroll down until you find an unused status key and press enter.
3. Enter ESCAPE, or similar in the descriptor field.
Configure the escape status key
4. Scroll down to key type and select ESCAPE.
Escape status key illustration
Finally you will need to configure the keyboard level that will display the List PLUs. This is one
single level which will dynamically display different PLUs depending on the trigger PLU that is
pressed. This should therefore be treated as a template.
1. In TouchPoint select Program > Keyboard.
2. Select 4. LIST PLU from the screen level list.
3. Add the status keys that were created before (TITLE, MIN, MAX, COUNT, REQESC,
ESCAPE).
4. Finally add up to 50 PLU keys. These will act as place holders and will dynamically
populate the correct PLUs when a trigger PLU is pressed. They DO NOT need to be the
PLUs that appear in your lists.
The PLU numbers used here are not important, they just determine in what order the
items in the list will be drawn to screen. For example you could use PLU 1 - 50 or 1,000 to
1,049 the end result would be the same. PLUs in the list will be drawn to screen in the
order you allocate this range.
Configure the keyboard
5. Configure the key font, shape, colour etc. as required.
Keyboard level list PLU illustration
System programming
System programming
1. In TouchPoint select Program > All Prog > PLU > PLU.
2. Select the PLU to configure.
PLU programming
PLU programming
All programming, PLU, PLU programming illustration
No Field Description
1 Descriptor The name of the product.
2 Update Keyboard Text? If set to yes, when the till returns to
normal sales mode, any buttons with
this product on will have their text
updated with the text in the
descriptor. This will automatically
change to yes whenever you change
the descriptor field.
You can force the text to be updated
by setting this to yes, you can also
prevent it being updated by setting it
to no after you have changed the
text in descriptor.
3 PLU group Name of the PLU group.
4 Department Name of the department.
5 Random Code This is a 20 digit random number that
can be used to access this PLU. The
PLU button needs to be programmed
to search by random code for it to
work, see Status Key Programming.
The field can also be used for
scanning – whilst the cursor is over
this, scan a barcode and it will
automatically be entered into here.
6 1st@ Price
This is the 1st level 1st price for the
PLU. 2 decimal places are assumed,
although the decimal point is not
entered.
7 2nd @ Price
This is the 1st level 2nd price for the
PLU. This is accessed by using a price
shift button, set to 2nd @. See Status
Key programming.
8 3rd @ Price
This is the 1st level 3rd price for the
PLU. This is accessed by using a price
shift button, set to 3rd @. See Status
Key programming.
9 4th @ Price
This is the 1st level 4th price for the
PLU. This is accessed by using a price
shift button, set to 4th @. See Status
Key programming.
All programming, PLU, PLU programming fields
No Field Description
10 Department Link This is the sales department that the
product is linked to. Kitchen items
can also be sorted by department.
This can be set in Program 3 -
System programming - Kitchen
printers - KP configuration.
11 PLU Group Link This is the sales group that the
product is linked to. Kitchen items
can also be sorted by group. This can
be set in Program 3 - System
programming - Kitchen printers - KP
configuration.
12 List Box Link 1 to 6
These are drop down window links
that can follow the product for
cooking instructions etc. These are
set up in Program 3 - PLU - List PLU.
13 Link 6 items enforced zero price? When set any items registered
through a List PLU allocated in list
link 6 are enforced zero price.
14 Windows Stay Until ESC? Drop down windows stay up until
escape is pressed.
15 Set Menu Links a Set Menu to this PLU. See Set
Menu programming. Once set List
box links no longer apply.
16 Maintain Stock? When set the product will perform
stock control functions. Used mainly
for the use of restricting the sale of
'specials'.
17 Error When Minimum Stock Reached? When the stock level reaches the
minimum stock level, then the
software will throw up an error
message.
16 Inhibit Sales When Below Minimum
Stock?
This prevents products from being
sold when their stock counter falls
below their minimum stock level.
18 Display Stock Qty on One-Shot PLU? When the PLU is on the keyboard, it's
current stock level will be shown at
the bottom of the button.
19 Current Stock Qty This is the current stock qty of the
item. When this value is set, it is sent
to all terminals in the network.
20 Minimum Stock Qty Ths is the minimum stock qty, used
for restricting the sale of items when
they fall below this level.
No Field Description
21 Tax Rate This is used for tax calculation. See
Tax Table programming.
If the multi tax rates flag is set, then
you will be able to select any
combination of the first 8 tax rates.
Only tax rates with configured name
or a rate will be shown.
22 Mix and Match Links this PLU to Mix and Match Type
1 table.See Mix and Match 1
programming.
23 Enable Zero Price Sale? The product can be sold with a price
of zero.
24 PLU is Negative? The price will be negated when it is
sold.
25 Enable Preset Override? When set, prices can be typed into
the button, for misc buttons etc.
Repeat price when pressed again
(see flag in PLU Control).
26 High Digit Limit Specifies the maximum number of
digits that can be keyed in against an
open price PLU.
27 PLU is Condiment PLU? The PLU will be sold as a condiment
to the item before it.
28 Do not print on receipts or bills? Stops the PLU from being printed on
receipts and bills, usually used for
cooking instructions. PLUs with prices
always print.
29 PLU is weight PLU? The PLU is sold by the kilo with
weight entry via a Weight Key or a
scale connection.
30 Allow manual weight entry? Allows the weight to be manually
keyed in using a weight key on the
keyboard.
31 Prompt with picture? Displays the picture that is attached
to the PLU with a Yes/No dialogue.
32 Single item sale? When set the PLU will automatically
finalise the sale after registering.
Only applies when it is the first PLU
registered in the sale.
The finalise key record that is used
can be preset in System Flags | PLU
Control.
No Field Description
33 Set menu premium item? (uses 3rd
@)
When this item is registered as part
of a Set Menu then the 3rd @ price of
this product is added to the sale.
34 QTY of 1st@ Price The qty of the PLU sold at the 1st @
price, this is used for calculating the
qty sold on PLU usage reports.
35 QTY of 2nd @ Price The qty of the PLU sold at the 2nd @
price. When a 2nd @ price shift
button is pressed, only products with
a qty set here will appear on the
keyboard.
36 QTY of 3rd@ Price The qty of the PLU sold at the 3rd @
price. When a 3rd @ price shift
button is pressed, only products with
a qty set here will appear on the
keyboard.
37 QTY of 4th@ Price The qty of the PLU sold at the 4th @
price. When a 4th @ price shift
button is pressed, only products with
a qty set here will appear on the
keyboard.
38 Alt text for modifier When set this will override the 3rd@
modifer description which has bee
set in pgm2 - fixed character 1.
39 Print in Red on KP When set, the product will appear in
red when printed on a kitchen printer.
40 Print to KP1 – KP12 This selects which kitchen printers
the product will appear on.
2020 (v71.00) Update:
These are now interchangeable
between the two allowing more than
8 or 2 of any device type. Available in
v71.00+
41 Print to Ticket Printer 1 Sets the PLU for ticket printing to
either ticket printer 1.
42 Print to Ticket Printer 2 Sets the PLU for ticket printing to
either ticket printer 2.
43
KP Category Used for sorting by KP Category on
the KP. This can be set in Program 3 -
System programming - Kitchen
printers - KP configuration.
44 Print to KV1 & KV2 This selects which kitchen videos the
PLU prints to.
No Field Description
45
Selective Itemiser 1 to 5 This is used for selective discounts,
with customer loyalty and discount
buttons and for service charge.
For example setting selective item 1
on a product and configuring the
discount key to only discount
selective item 1 products will mean
that this product will be discounted,
whereas others without this flag set
will not.
46
Commission 1 to 4 Determines whether the clerk
receives commission on this product
based on the commission rates
stored against the clerk.
47
Prompt for Customer Verification 1 &
2
Used for age verification, nut
allergies etc. These can be set in
PGM 2 - Fixed Character 2 - Fixed
character 76 and 77.
48
Generate Range Servant ball
dispenser Code
Indicates that this is a Range Servant
Golf Ball Dispensing pin code
generating PLU. You must also have
a ticket printer configured for printing
the tickets out.
You must have the PinCodeDLL.dll
file installed on the system and
access to the appropriate database.
Please contact Range Servant for
support on this.
Number of balls dispensed:
Number of balls that will be
dispensed when the pin code is
entered. Note that this uses the same
area of memory as the 3rd @ Qty.
The setting for the number of days
that the pin code is valid for can be
found in Sys Flags | Comms Control.
The IP address for the Range Servant
server is set in the registry in
HKLM\Software\ICR\ICRTouch -
RangeServantIP. The default is
127.0.0.1, if it doesn't exist the value
will be created automatically the first
time this functionality is used.
49 Enable SEL Printing Setting this to yes will enable shelf
edge labels to be printed for this PLU.
No Field Description
50 Cost price The unit cost price of the of the PLU
can be recorded here.
51 Pending SEL This will automatically change to yes
when any fields that are set to print
on the SEL are changed, this can also
be toggled to yes manually.
When pending is set to yes a label
will be produced when the SEL
Pending report is run.
52 Unit This is the “cost per” that will appear
on the SEL eg £1.00 per Ltr
Additional units can be added by
editing the Language.def file in the
skin folder, if this is done please save
only the alterations you have made
in a customlanguage.def file.
53 Qty per Unit Enter the conversion factor for the
Unit being used. This tells ICRTouch
the relationship between the quantity
of each item that is sold compared to
the unit quantity that is shown on the
shelf edge label.
For example a can of cola sold in
quantities of 250ml but shown on the
SEL with a unit of 1 litre would have
0.25 in here.
54 Allergens Yes/No flags for allergens to be set
against the PLU. Used for the
allergens script (
https://forum.icrtouch.com/files/file/42
4-allergy-alert/ ) & uploaded to TOW
for use with Touchtakeaway/
Selfservice.
No Field Description
55 Nutrition
Nutritional information for the PLU
can be configured here. Option
available are:
Energy (kcal)
Fat (g)
Saturates (g)
Carbohydrate (g)
Sugars (g) Protein (g)
Salt (g)
Portions
These can be accessed by EtaL
1. In TouchPoint select Program > All Prog > PLU > Range PLU
Range PLU
All programming, PLU, Range PLU illustration
The PLU file can be programmed by range. Pick the individual section to be programmed, you are
presented with a programming sheet that is completely grey. As you program each item, it's
background colour will turn white. It is only these white items that will be changed – all of the grey
items will be left as they were.
When you have finished programming in the program sheet, press ESC, and you will be prompted
with from PLU, to PLU. Set the number of the PLU that you want to range program from, and the
number of the PLU that you want to program to, you may also filter the programming to only effect
products in a certain department or group, press enter on Range Program OK? This will range
program these PLUs. Pressing ESC to leave this screen will cancel range programming.
Note that if you are range programming the descriptor across a large range, this may take 1/2 a
minute or more, because the register has to update it's alpha index.
No Field Description
1 From PLU Enter the range of PLU's to
import.
2 To PLU
3 Filter for Dept
Filter the programming to only
effect products in a certain
department.
4 Filter for PLU Group
Filter the programming to only
effect products in a certain PLU
group.
5 Range Program OK
This will range program these
PLUs. Pressing ESC to leave this
screen will cancel
range programming.
1. In TouchPoint select Program > All Prog > PLU > Department.
Range PLU fields
Department
All programming, PLU, department illustration
No Field Description
1 Descriptor Department link names can be
changed from here.
2 Sub Dept
Each department can be linked to a
sub department, totals for linked
departments can then be reported.
1. In TouchPoint select Program > All Prog > PLU > PLU Group.
All programming, PLU, department fields
PLU Group
All programming, PLU, PLU group illustration
PLU Group link names can be changed from here.
No Field Description
1 Descriptor Name of the PLU group.
1. In TouchPoint select Program > All Prog > System Programming > Kitchen Printers.
2. Press enter on **KP Configuration.
All programming, PLU, PLU group fields
KP Category
All programming, system programming, kitchen printers illustration
KP Category contains a list of text names that are used for sorting products on the KP. See PLU
Programming for linking of PLUs to KP Categories. See Kitchen Printers settings for configuring KPs
to print sorted by Category.
No Field Description
There are 12 configurable Kitchen Printer routes per terminal. These can be either kitchen printer or video depending on
the type of device connected.
Note: Many setting are not present when the device type is 'Kitchen Video' these settings instead are configured in the
device itself
1 Kitchen Printer Name
This is a 12 character descriptive
name for the KP. It appears on the
top of the order slip.
2 Connected to MC No.
This is the name of the terminal that
the KP is connected to. All KPs can be
shared by multiple terminals.
3 Connected to Port No.
This is the number of the serial port
that the KP is plugged into, this must
be specified, even if the KP is not
connected locally on this machine.
The KP can be disabled by setting the
port number to 'Not Connected'. For
IP printers this should be the name of
the printer.
Port options:
0. Not connected
Com1 - Com8
LPT1 - LPT2
OPOS 1 - OPOS 6
ICRTouch Local POS Drivr
TouchKitchen
4 Backup - Connected to MC No.
In the event of a failure of the
specified KP, the terminal will
automatically route the data to the
backup KP (which can be the receipt
printer).
Note: Backup routes are not available
when the device type is Kitchen
Video.
All programming, system programming, kitchen printers fields
No Field Description
5 Backup - Connected to Port.
This is the number of the serial port
for the backup KP, as above. If you
do not want a backup device, then
set 'Not Connected' here.
Port options:
0. Not connected
Com1 - Com8
LPT1 - LPT2
OPOS 1 - OPOS 6
ICRTouch Local POS Drivr
TouchKitchen
No Field Description
Configuration for each KP is in here.
This option is not visible until a port
has been set for the printer:
Print KP in Double Width -
whether double width
characters are used or not
for the KP.
Print KP in Double Height -
when set all KP items are
printed in double height.
Can be used with the
double width flag to give
quad size printing.
Printer Order Number in
Double Height - when set
all the order number at
the top of the ticket is
printed in double height
characters.
Print Check/Table Number
in Double Height - when
set all the check or table
number at the top of the
ticket is printed in double
height characters.
Condense Dbl Size Items
when Overrun? - when
using double width
printing, if the text is
wider than the ticket then
the item is printed in
single size.
Do not print qty on
conditment items? -
allows the quantity of
condiment PLUs to be
shown on the receipt.
Compress KP Ticket? -
when set unnecessary
lines and spaces are
omitted from the order to
make it as small as
possible.
Consolidate? - turns on
item consolidation.
Items with differing
condiments? - determines
that if the same item but
with different condiments
are consolidated together.
Set menus with differing
items? - determines that if
the same set menu but
1. In TouchPoint select Program > All Prog > PLU > List PLU.
List PLU
All programming, PLU, List PLU illustration
No Field Description
1 Descriptor Name of the List PLU table.
2 Minimum
The window will stay until at least
this number of items has been
selected.
3 Window stays down until ESC?
The window will stay until ESC has
been selected, or the maximum
number of items has been reached.
4 Maximum
If 'window stays until escape' is set,
then the window will also close once
this number of items has been
selected.
5 Force zero price? All items are sold at zero price.
6 Price Shift
Selects this price shift when the
window is entered. The original price
shift will be reinstated when the
window ends.
7 Price Level
Selects this price level when the
window is entered. The original price
level will be reinstated when the
window ends.
8 Items
Up to 50 items can be programmed
in a List PLU window. List PLUs can
be programmed to follow PLUs or to
be allocated to the keyboard as a
status key. To add a PLU to a List PLU
window, select a free space, then
either:
a) Press enter, which will display a
list of PLUs that can be scrolled
through to be selected.
or
b) Enter the number of the PLU, and
press ENTER.
1. In TouchPoint select Program > All Prog > PLU > Mix & Match - Type 1.
All programming, PLU, List PLU fields
Mix & Match 1
All programming, PLU, mix & match 1 illustration
ICRTouch has 2 forms of mix and match table. Both operate discounts in the same fashion, the
difference lies in the way they are linked, type 1 has the table number specified in the PLU, ie. the
PLU points at the mix and match table. Type 2 has the PLUs it is linked to in the table, with 5
buckets that count PLUs linked to the table as they are registered with a quantity trips that kicks
the table in. So with type 2 tables, the table points to the PLU.
No Field Description
1 Descriptor Name of the Mix and Match.
2 Operation Type
The type of mix and match one of the
following seven:
1. Discount amount (amount
to be reduced from total).
2. Discount % (the
percentage to be reduced
from total).
3. Set price (e.g. 3 for £5).
4. Discount amount
cheapest (discounts the
cheapest item).
5. Discount % cheapest
(discounts the cheapest
item by %).
6. Discount amount last item
(discounts the last item).
7. Discount % last item
(discounts the last item
by %).
8. Etal, this allows custom
offers to be scripted using
Etal.
3 Qty required The number of items needed to be
sold before the discount is performed.
4 Discount Rate(%) The amount to be discounted or the
percentage to be discounted.
5 Include price shifted items? Includes items that were subject to a
2nd, 3rd or 4th@ price shift.
6 Include old items from checks? If yes mix & match applies to check
items.
All programming, PLU, mix & match 1 fields
No Field Description
7 Price level 1 items only?
If yes the Mix and match will apply
only to products being sold at price
level 1.
8 Warn user when table starts?
If yes a dialogue box will appear on
screen after selling the first item in a
mix and match, to warn the operator
that an offer exists.
9 Same items only?
When set, in order for the table to
fire the items in it must be the same.
Price shift and level are also used for
the comparison. Items can have been
sold at different prices.
10 Only available in this time range? Allow a time range to be set for Mix
and Match.
11 Start Time Range Sets start time of range (24 hour
clock).
12 End Time Range Sets end time of range (24 hour
clock).
13 Applies to Sunday? Set whether mix and match table
applies to this day.
14 Applies to Monday? Set whether mix and match table
applies to this day.
15 Applies to Tuesday? Set whether mix and match table
applies to this day.
16 Applies to Wednesday? Set whether mix and match table
applies to this day.
17 Applies to Thursday? Set whether mix and match table
applies to this day.
18 Applies to Friday? Set whether mix and match table
applies to this day.
19 Applies to Saturday? Set whether mix and match table
applies to this day.
Mix & Match 2
1. In TouchPoint select Program > All Prog > PLU > Mix & Match - Type 2.
ICRTouch has 2 forms of mix and match table. Both operate discounts in the same fashion, the
difference lies in the way they are linked, type 1 has the table number specified in the PLU, ie the
PLU points at the mix and match table. Type 2 has the PLUs it is linked to in the table, with 5
buckets that count PLUs linked to the table as they are registered with a quantity trips that kicks
the table in. So with type 2 tables, the table points to the PLU.
No Field Description
1 Descriptor Name of the Mix and Match.
2 Operation Type
The type of mix and match one of the
following seven:
1. Discount amount (amount
to be reduced from total).
2. Discount % (the
percentage to be reduced
from total).
3. Set price (e.g. 3 for £5).
4. Discount amount
cheapest (discounts the
cheapest item).
5. Discount % cheapest
(discounts the cheapest
item by %).
6. Discount amount last item
(discounts the last item).
7. Discount % last item
(discounts the last item
by %).
8. Etal, this allows custom
offers to be scripted using
Etal.
3 Qty required for bucket 1 - 5:
The number of items linked to each
bucket that needs to be registered to
activate the table.
Only when all 5 bucket quantities are
fulfilled will the table activate, bucket
quantities of zero mean that no items
in that bucket need be registered to
activate it.
4 Discount Rate (%) The amount to be discounted or the
percentage to be discounted.
All programming, PLU, mix & match 2 fields
No Field Description
5 Affects tax table
Sets a tax table that the amounts
come off of.
If the multi tax rates flag is
set, then you will be able to
select any combination of the
first 8 tax rates. Only tax
rates with configured name
or a rate will be shown
6 Include price shifted items? Includes items that were subject to a
2nd, 3rd or 4th@ price shift.
7 Include old items from checks? If yes mix & match applies to check
items.
8 Price level 1 items only?
If yes the Mix and match will apply
only to products being sold at price
level 1.
9 Warn user when table starts?
If yes a dialogue will dialogue box will
appear on screen after selling the
first item in a mix and match, to warn
the operator that an offer exists.
10 Start date This is the date the offer will start on.
11 End date This is the date the offer will end on.
12 Only available in this time range? Allow a time range to be set for Mix
and Match.
13 Start Time Range Sets start time of range (24 hour
clock).
14 End Time Range Sets end time of range (24 hour
clock).
15 Applies to Sunday? Set whether mix and match table
applies to this day.
16 Applies to Monday? Set whether mix and match table
applies to this day.
17 Applies to Tuesday? Set whether mix and match table
applies to this day.
18 Applies to Wednesday? Set whether mix and match table
applies to this day.
19 Applies to Thursday? Set whether mix and match table
applies to this day.
20 Applies to Friday? Set whether mix and match table
applies to this day.
No Field Description
21 Applies to Saturday? Set whether mix and match table
applies to this day.
22
23 Link items from next table?
When set the products linked in the
next mix and match table will apply
to this one.
24 PLU No Specify up to 30 PLUs in the table.
25 Applies to Bucket No Specifies the bucket quantity that
this PLU adds to..
1. In TouchPoint select Program > All Prog > PLU > Mix & Match - Type 2.
This reindexes the alphabetical list of the PLU File if it should ever get out of order.
1. In TouchPoint select Program > All Prog > PLU > External Product Groups.
External product groups contains extended product group linking, that is used for external devices
such as TouchPoint lite and PocketTouch 2.
An unlimited (up to the file size set in program 5) number of items can be programmed into each
product group. To add new items select * ADD NEW ITEM at the bottom of the item list.
Reindex PLU File
External Product Groups
Items can be
either PLUs, List PLU or PLU Number (PLU Number is used to manually enter the random code for a
product), text can be overridden, text colour and background colour are user configurable. Items
can be removed from the group by selecting * DELETE ITEM.
The settings for the product grouping can be created using the import routine. This gives the
option to import the group list from preset configurations such as the keyboard, department list or
PLU groups. In the case of importing from the keyboard the level name becomes the group name
and each PLU and List PLU on the level gets created in that group. Button text and background
colours are also imported.
All programming, PLU, external product groups illustration
No Field Description
1 Group Name
2 Text Colour
3 Background Colour
4 *Delete this group"
5 Items
The settings for the product grouping can be created using the import routine. This gives the
option to import the group list from preset configurations such as the keyboard, department list or
PLU groups. In the case of importing from the keyboard the level name becomes the group name
and each PLU and List PLU on the level gets created in that group. Button text and background
colours are also imported.
All programming, PLU, external product groups fields
All programming, PLU, external product groups, import illustration
No Field Description
1 Import From
2 Use Alternative Keyboard Text
Only applies when importing from the
keyboard, this instructs the system to
insert the text on the button into the
Override text file if it differs from the
product text.
3 Ignore products with an empty
descriptor
Products without a name aren't
imported.
4 Ignore non sellable items Items that cannot be sold aren't
imported, eg zero price items.
5 Ignore weight PLUs Weighted products aren't imported.
6 Ignore empty groups Groups without products belonging to
them aren't created.
7 Import List PLUs (kb only)
Only applies when importing from the
keyboard, this determines whether
list PLUs allocated to the keyboard
are imported or not.
8 Import new items only? Imports new items added into the
product group only.
9 Import Prdct Groups, Ok?
Press enter on this to start the
import. Beware all existing settings
will be overwritten.
1. In TouchPoint select Program > All Prog > PLU > Set Menu.
All programming, PLU, external product groups, import fields
Set Menu
All programming, PLU, set menu illustration
Set menus can be used to configure a group of choices or string of products that are sold as one
item at the point of sale.
The set menu name is used for reference purposes only and when linking to PLUs, see PLU
Programming. Up to 20 items/choices can be linked to each set menu.
Each item can be either a PLU which is registered automatically or a List PLU which presents the
user with a choice of items. Choices can be deferred until a later time by using the Defer Status
Key or Substituted for items not on the list. Substituted items have the substitution value taken
away from the price of the set menu.
This can be used as the difference between a two course meal and a three course meal, the set
menu would be set up as three courses and a substitution value set on the dessert/starter which is
the difference between two and three courses.
When the meal is sold if the customer only wants two courses, substitution would be pressed on
the third course, crediting the customer with the difference between the two.
No Field Description
1 Item Type
2 Item
3 Substitution value
4 No Defer?
5 No Substitution
1. In TouchPoint select Program > All Prog > PLU > SEL.
No Field Description
1 Width
This is the width in pixels of the shelf
edge label, this is a property of the
printer, for a TMT88 or compatible
500 is about right.
All programming, PLU, set menu fields
SEL
All programming, PLU, SEL fields
No Field Description
2 Height
The height of the label in pixels, this
will need to be adjusted until the
label fits the shelf, then the contents
of the label arranged to fit in the
available space.
3 Cut pos
The number of pixels to print before
cutting, this is determined by the
distance between the print head and
the cutter in the printer. For a TMT88
compatible this should be 15.
Below this you can configure what
you would like printed on the SEL and
where using X and Y coordinates.
When selecting images you will be
asked for an image file location, this
is the path to the image you are
using usually saved in the images
folder.
When using free text you will be
asked to enter the text you would
like to appear.
A sample SEL program can be found
here -
http://www.icrtouch.com/forum/index.
php?showtopic=5990]
4 Item 1
No Field Description
5 Type
Options:
Inactive
Free text
Item name
Price
Barcode
Random code
Line
Image
Department
PLU Group
Date
Unit price
Price - 2nd Currency
Alternate Text
6 X pos The starting x position in characters
for the component.
7 y pos The starting y position in characters
for the component.
8 Font
9 Size
10 Avg char width
11 Justification
Option:
Left
Centre
Right
1. In TouchPoint select Program > All Prog > PLU > Sub Dept.
Sub Dept
Sub departments allow departments to be grouped together for reporting purposes. Once
configured these can be linked to the appropriate department in program 3 - PLU - Department.
No Field Description
1 Text Enter the sub department name.
2 Do not print total on report? Select whether the total is printed on
reports.
All programming, PLU, sub department fields
System programming
1. In TouchPoint select Program > All Prog > System Programming > Fixed Totaliser.
These are the main financial totalisers that are used in reports:
Setting a totaliser to be non-resetable will mean that when a Z report of this file is taken,
the totals in this record will remain.
Setting a totaliser to not print will mean that when the report is printed, this record will be
omitted.
Does not add to Total in drawer, this only applies to in drawer totals and means that any
amounts registered under this in drawer totaliser will not be added or taken from the
total in drawer totaliser.
System Programming
Fixed Totaliser
All programming, system programming, fixed totaliser illustration
No Field Description
1 Net sales
Total value of all finalised sales.
Includes tax, premiums and
discounts.
Minus corrections, refunds etc.
Reserved - do not change
2 Gross sales
Total value of all items registered.
Minus any tax, premiums, or
discounts, refunds, voids, corrections
etc.
Reserved - do not change
3 Reserved - do not change
4 Cash in Drawer Money in drawer total, destination
set on finalise keys, for amounts.
5 Cheque in Drawer
6 Credit in Drawer
7 Voucher in Drawer
8 Web Credit
9 in Drawer 6
10 in Drawer 7
11 in Drawer 8
12 Total in Drawer Total for the above.
13 Traning mode Total of training mode sales, none of
this total appears in any other totals.
14 Refund mode Total REFUND mode sales.
15 Refund/Void TI Total of Refund and void operations.
All programming, system programming, fixed totaliser fields
No Field Description
16 Discount Total Total of all discounts.
17 EFT Cash Back Total cashback given on EFT sales.
18 EFT Gratuity Total of all gratuity given on EFT
sales.
19 Covers Total covers and average sale per
cover.
20 Service Charge Total of value of service charge.
21 Cash declared Total of declared amounts.
22 Cash declared over Total of over declarations.
23 Cash declared short Total of under declarations.
24 Sales < 10p Total of all sale transactions made
with a total of less than 10p.
25 Non turnover net Total of sales performed using clerks
set as Non Turnover.
26 Free meals
Total of all free school meal
transactions when using the school
meals customer group.
27 Reserved
28 GT Net Grand total of Net sales.
29 GT Gross Grand total of Gross sales.
30 GT All +ve Grand Total of all positive sales, i.e.
refunds etc do not come off of this.
31 Euro in drawer 1 Money in drawer totals for EURO (sub
currency).
32 Euro in drawer 2
33 Euro in drawer 3
34 Euro in drawer 4
No Field Description
35 Euro in drawer 5
36 Euro in drawer 6
37 Euro in drawer 7
38 Euro in drawer 8
39 Euro total in drawer Total for the above.
40 Current exchange 1 in drawer Total in drawer of currency exchange
1 transactions.
41 Current exchange 2 in drawer Total in drawer of currency exchange
2 transactions.
42 Current exchange 3 in drawer Total in drawer of currency exchange
3 transactions.
43 Current exchange 4 in drawer Total in drawer of currency exchange
4 transactions.
44 Commission 1 Total in drawer of commission 1.
45 Commission 2 Total in drawer of commission 2.
46 Commission 3 Total in drawer of commission 3.
47 Commission 4 Total in drawer of commission 4.
48 Reval upload Total value uploaded from an on the
wall reval unit.
49 Remote sales net Total of NET sales registered
remotely, eg via PocketTouch 2.
50 Remote sales gross Total of Gross sales registered
remotely, eg via PocketTouch 2.
51 Customer bal uplift
Total of the additional amounts
automatically added to customer
account balances when money is
paid in when the Uplift % is in use.
52 Cur exchange 5 Total in drawer of currency exchange
5 transactions.
53 Cur exchange 6
No Field Description
54 Cur exchange 7
55 Cur exchange 8
56 Cur exchange 9
57 Cur exchange 10
58 Paid checks A total of all paid off checks/tables.
59 Manual drawer rls
A count of how many time the cash
drawer has been manually opened (a
till with an internal drawer port, eg
Vectis 6000, and a drawer that has a
drawer closed switch).
60 Vending
61 Tips 1 Total amount tips done by the TIPS
transactions Key.
62 Tips 2 Same as above, however the “adds
to TIPS2?” has been set.
63 Customer verify 1
Amount of inputs defined by Yes / No
for the customer verification in PLU
prog.
64 Customer verify 2
Amount of inputs defined by Yes / No
for the customer verification in PLU
prog.
65 First sale Time of the first sale.
66 Last sale Time of the last sale.
67 Set menu subst Value of substitutions made in set
menus.
68 Sale total rounding
1.
In
TouchPoint select Program > All Prog > System Programming > Batch Report.
This allows you to set up a report, consisting of more than one report 'strung together'.
For example, a standard end of day report may consist of Fixed Totalisers, Finalise Keys,
Transaction Keys, Departments and Clerks.For each section of report, you can select which period
of sales data will be used, and what type of report will be issued.
Batch Report
All programming, system programming, batch report illustration
No Field Description
1 End of Day
2 End of Week
3 End of Month
4 SEL Pending
5 Batch 5
6 Batch 6
7 Batch 7
8 Batch 8
9 Batch 9
10 Batch 10
All programming, system programming, batch report fields
System Flags
1.
In
TouchPoint select Program > All Prog > System Programming > System Flags.
All programming, system programming, system flags illustration
1. In TouchPoint select Program > All Prog > System Programming > System Flags >
System control 1.
No Field Description
1 Compulsory Closed Drawer?
Determines whether the till can be
used with the drawer open or not.
This only works with the appropriate
hardware, a till with an internal
drawer port, eg Vectis 6000, and a
drawer that has a drawer closed
switch.
This function does not work if the
cash drawer is connected to an
external printer.
2 Drawer Open at Zero ST?
Determines whether the drawer will
open if a sale is 'cashed off' at a zero
balance.
3 Disabled, Do not use?
4 Prohibit Multiple REFUND Mode Ops?
When set will only allow one sale in
Refund Mode at a time. To do more
than one sale, you must leave refund
mode, then go back again.
5 Receipt On for RF Mode?
The till will automatically issue a
receipt for any sale done in Refund
Mode, regardless of whether the
receipt is on or not.
6 RF Mode print extra ticket with
signature strip?
The till will automatically issue an
extra for any sale done in Refund
Mode, regardless of whether the
receipt is on or not.
System Control 1
All programming, system programming, system flags, system control 1 fields
No Field Description
7 Reset Consecutive Number, After Z1
Fxd Tl?
The consecutive number will be reset
after performing a period 1 fixed
totaliser report. This also counts if
the fixed totaliser report is part of a
batch report.
Initial Value for Consec No.
This is the number that the
consecutive number will be reset to
when a period 1 fixed totaliser report
is taken.
8 Initial value for Consec No.
This is the number that the
consecutive number will be reset to
when a period 1 fixed totaliser report
is taken.
8 Auto Sign Off Clerk Seconds
This is the number of seconds of
inactivity before the clerk is
automatically signed off.
9 Disable Clerk Interrupt? Turns off clerk interrupt.
10 Clerk float in location only?
Restricts the floating of clerks to the
location that the till is in. The results
of mixing the setting of this flag in a
system are undefined.
When setting this to YES, it is
recommended that all terminals are
rebooted to ensure that clerks cannot
be lost.
11 Seconds Before Screen Saver
This is the number of seconds of
inactivity before the screen saver
kicks in. Setting this to 0 disables the
screen saver.
This is not recommended as
ICRTouch does some of it's book
keeping during times when the
screen saver is running.
No Field Description
12 Screen Off Time, During Saver (hour)
Instead of running the screen saver,
the terminal can be programmed to
turn off the backlight to the display
instead.
This is the time from which point
ICRTouch will turn the screen off
instead of running the screen saver.
It is specified in hours only, in 24hr
format.
0 is 12 O'clock Midnight, 13, would
be 1 O'clock pm.
Specifying 25 disables the function.
Under Windows CE this function is
not linked to the backlight and
instead paints the screen a solid
colour (to avoid burn in) backlight off
times in Windows CE should be set in
the appropriate windows control
panel.
13 Screen On Time, During Saver (hour)
Set the time that you wish to resume
using the screen saver rather than
turning off the backlight. If the
settings for screen on and screen off
time are the same, the screen will
always turn off.
An example of the above would be to
set the screen off time to an hour
after closing, and the screen on time
to an hour before opening the
following morning. This should help
increase the screen life.
14 Seconds Before Drawer Alarm
This is the number of seconds the
drawer can be open before the alarm
will sound. Compulsory drawer must
be enabled to use this function.
15 Default Level for REG Modes
Pressing ENTER on this will give a list
of menu levels.
The set value for this is the level the
terminal will default to when in
REG/Refund Mode.
By setting this on different terminals,
you could have a drinks till start on a
drinks level, and a food till start on
food levels etc.
No Field Description
16 Direct Entry for Option Windows
When this is set to YES, all option
windows will select an item directly
when you touch it, without having to
press OK.
17 Training Clerk Opens Cash Drawer? When set the till cash drawer still
opens when a training clerk is used.
18 Use price level 1 when no price in
current level?
When using price levels, if there is no
price in the current level that you are
on and the PLU is not set to be sold
at zero price, then the system uses
the price that is stored in price level
1.
This means that for happy hours etc
you only need to set the prices that
are actually different.
19 Show End of Sale Window?
When set at the end of sale a window
showing total sales value and the
amount of change to be given will be
displayed.
20 Only Process Mix and Match at
Subtotal?
When set the mix and match
calculation is not applied until the
subtotal is pressed. This has the
advantage that items from the sale
can be corrected out or changed
prior to calculation of the mix and
match discounts.
If finalisation begins and subtotal
hasn't been pressed then the mix
and match discounts will still be
calculated automatically.
21 Item corrects go to reg buffer?
When set corrected items get added
to the registration buffer as a
negative value item. Will allow item
corrects to be built into the
registration buffer, this means that
they will be sent to the kitchen
printer.
Though available in all territories, this
was added for compliance for some
European countries.
22 From checks only?
Used with the above flag. When set
only items that had previously been
stored to a check or table and
corrected will be added to the
registration buffer as a negative item.
1. In TouchPoint select Program > All Prog > System Programming > System Flags >
System control 2.
No Field Description
1 Local currency decimal places? Number of decimal places used for
the local currency.
2 Method of rounding?
Selects the method of rounding for
discount, premium and tax
calculations. Options are:
Round Off (4/5), whereby .49 and
below is rounded down, .5 and
upwards is rounded up.
Round Up, anything after the decimal
point is always rounded up to the
next whole.
Round Down, any amounts after the
decimal are automatically dropped.
3 Sale Total Rounding
Causes ICRTouch to round off the
total of the sale to the nearest lowest
denominator of the values from the
list.
Round at (0,5,10), if 2 decimal places
are used then the sale total would be
rounded to the nearest of .x0 or .x5
where 10 represents the next .x0. eg
2.32 ⇒ 2.30, 2.34 ⇒ 2.35 and 2.38 ⇒
2.40
Round at (0,10), if 2 decimal places
are used then the sale total would be
rounded to the nearest of .x0 only
where 10 represents the next .x0.
eg 2.32 ⇒ 2.30, 2.34 ⇒ 2.30 and 2.38
⇒ 2.40
etc.
4 Round EFT sales?
Determines whether the Sale Total
rounding feature applies to sales
finalised using the key type EFT as
well as the keytype CASH. When set
to ‘No’ only sales rounded using
keytype CASH.
System Control 2
All programming, system programming, system flags, system control 2 fields
No Field Description
5 Manual tax system?
When set tax is only added if the tax
key is used at sometime during the
sale.
6 Enable multi tax rates?
When set this allows a mask of tax
rates to be assigned to a product,
rather than just a single rate.
Note: This feature is only available in
some countries
7 iButtons for Clerks? When selected iButtons can be used
for clerk sign on.
8 Sign off at removal of iButton?
Signs the clerk off when iButton is
removed (for use with magnetic
iButtons).
9 Disable Key Press Sound?
When set no sound is produced on
key press. Error tone will still be
produced.
10 Power unit off at Windows shutdown?
Tells the hardware to power off when
Windows is shut down. Note some
hardware doesn't support this
correctly and reboots.
11 Ignore track 1 magnetic card swipes? The system will completely ignore
any track 1 card swipe data.
12 Ignore track 2 magnetic card swipes? The system will completely ignore
any track 2 card swipe data.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Order
control.
No Field Description
1 Automatically calculate next order
num?
When compulsory order number is
set on a clerk, the terminal will
automatically calculate the next
order number, without prompting the
user for one.
The order number is shared across
the system.
Order Control
All programming, system programming, system flags, order control fields
No Field Description
2 Order numbers only apply to KP
Items?
Means that any compulsion set using
order number will only come into
force if there are items rung in that
are destined for a kitchen printer.
3 Comp covers only apply to KP Items?
Means that any compulsion set using
covers will only come into force if
there are items rung in that are
destined for a kitchen printer.
4 Print REFUND mode sales on KP?
If a sale is performed in the Refund
Mode, this decides whether it is sent
to the kitchen printers or not.
5 Automatically issue a receipt for KP
items?
If there are any items to be printed
on a KP, then a receipt will be issued
regardless of whether it is turned on
or not.
6 Reset order number, after Z1 Fixed
total?
Resets the current order number,
after a period 1 fixed totaliser report
is run. This also applies if a period 1
fixed totaliser report is in a batch
report.
This will reset the current order
number across the network.
7 Initial value for order number
This is the number that the order
number will reset to, when a Z1 Fixed
Totaliser report is taken. Note, for
historical reasons the first order
number will be 1 higher than this
setting, eg having this set to 100 will
result in the first order number being
101.
8 Max order number
The highest allowable order number.
If the value in this is greater than the
value in 'Initial order number', then
once this order number has been
reached the order number will reset
back to the initial value. If this is set
100, then the last/highest order
number used will be 100.
9 Prompt for location?
If items are to go to kitchen printers
then the system will prompt for a
location at the end of the sale.
Locations are set in the fixed
character file.
No Field Description
10 KV type
The type of Kitchen Video that is
connected to the system.
2020 (v71.00) Update : This flag has
been removed and the default will
always be KitchenVideo.
Number at top is The number that
appears on the KV is a choice of:
1. Order number.
2. Check/Table number.
3. Consecutive number.
11 Printer supports 180dpi vertical print
Setting for printers that support high
resolution images (used when
printing hand written messages from
the PocketTouch2 or on the KP
printer when converting the
language).
12 Compulsory check/table for KP items?
It can be made compulsory to enter a
check or table number prior to
finalization for sales containing
kitchen print items.
13 Press Status Key:
When the compulsory check/table
flag is set you need to specify which
key will be pressed, if compulsory
table then the key would be floor
plan, if check the key would be
new/old chec
14 Set menu items do not follow parent?
When set, the parent set menu is not
sent to the KP/KV with the child item.
This means that the child item will
then follow its own KP
routing/category etc.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Report
control.
No Field Description
1 Do not print X count? The X report counter will not be
printed on the top of Xmode reports.
2 Do not print Z count? The Z report counter will not be
printed on the top of Z mode reports.
Report Control
All programming, system programming, system flags, report control fields
No Field Description
3 Do not print last date run? When set the last date run section on
the report will be omitted.
4 Compulsory cash declaration?
Cash must be declared before the
system will allow a financial X or Z
report to be taken.
5 Do not print reports on journal? When set reports are not echoed to
the journal roll.
6 Do not print time on reports? Stops the time from being printed on
the top of reports.
7 Do not print date on reports? Stops the date from being printed on
the top of reports.
8 Do not print consec number on
reports?
Stops the consecutive number from
being printed on the top of reports.
9 Sort cash dec amounts?
This affects cash declarations made
using the Cash Dec status key. When
multiple Cash Dec status keys are
used setting this flag causes them to
be printed in Status Key record order,
otherwise they are printed in the
order that they are entered.
10 Consolidate cash dec amounts?
This affects cash declarations made
using the Cash Dec status key. When
multiple cash dec amounts are
tendered this flag determines
whether monies declared using the
same cash dec key are consolidated
into 1 or printed as they were
entered.
11 No Z report when active clerks? If there are any active clerks then Z
reports will not be able to be run.
12 No Z report when active checks? If there are any active checks then Z
reports will not be able to be run.
13 Skip 'Are you sure' Reset prompt? When set you are not prompted to
reset the Z reports.
14 Do not print random code on plu
reports?
When set random codes are omited
from PLU reports.
15 Store reports
When set all reports are stored in a
text fromat and can be reprinted at a
later time. (View reports status key
required).
16 Print sales ratio on the Dept reports? A % ratio can be set to print on
department reports
17 Print sales ratio on the Group reports? A % ratio can be set to print on group
reports
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Check
tracking.
No Field Description
1 Show check number on Table Plan? Whether the current table number is
shown on the table in the floor plan.
2 Comp Covers only apply to Checks?
If set to yes, entry of covers is only
compulsory when opening a check or
table. NB. compulsory covers has to
be set under the clerk settings.
3 Show Covers on Table Plan Table?
Whether the current number of
covers is shown on the table in the
floor plan.
4 Show check text on table plan table?
When set the check/table text will be
displayed on the floor plan, this will
be either the test preset in program 2
- check text or the text entered when
opening a table.
Check tracking
All programming, system programming, system flags, check tracking fields
No Field Description
5 Floor plan opens Checks (No =>
Tables)?
This flag determines whether
operations done on tables on the
floor plan are done using check type
1 (usually Checks) or check type 2
(usually Tables). The default
behaviour of the floor plan - when set
to No - is to open check type 2.
For example:
When set to Yes, Table 1 when
opened from the floor plan opens
Check 1. This would be the same as
opening Check 1 from an Open Check
Status Key on the main keyboard.
When set to No, Table 1 when
opened from the floor plan will open
Table 1. In order to open this using
an Open Check key on the keyboard
this will also need to be configured to
open 'Tables'.
This flag setting also affects how
tables are treated from PocketTouch.
6 Default floor plan level
This sets which floor plan will be
accessed first when pressing the floor
plan key.
7 Use Check Tracking, if No Table
Tracking?
This is to do with clearing of old
check indexes. When set to yes, the
next available check number is used.
When set to no, closed check details
are left in place until a final bill is
printed, or the same check number is
opened again.
8 Allow Z Mode Open Check Report?
Whether Open Check will appear in
the window selection of period 1
reports.
9 Auto Receipt for Checks?
Means that if a check/table is used,
then a receipt will be issued
regardless of whether the receipt is
turned on or not.
10 Auto New Balance at Clerk Sign Off?
If a clerk has a check open, and the
clerk is signed off, interrupted, auto
signed off etc, then the check is new
balanced, and sent back to the check
master.
11 Do Not Print Consec No on Checks? When a bill is issued, the consecutive
number doesn't appear at the top.
No Field Description
12 Do not print item count on check? When set the item count is omited
from bills.
13 Automatic full bill at finalisation?
When a check or table is 'cashed off'
a full copy of the bill will be issued
automatically.
14 Service Charge
When set a service charge is applied
to checks and tables. This amount is
2 decimal places and can either be as
a percentage, or as an amount, see
below.
15 Service charge applies to all sales?
When set a service charge will be
applied to all sales regardless of
whether the items are on a table /
check.
16 Service charge is Amount (No,%
Rate)?
When set the service charge
becomes a straight amount added to
the bill. Otherwise is a percentage
rate applied across the whole bill.
17 Service charge adds to NET Sales?
When set, service charge amounts
are included in the NET sales
counter, otherwise they are not.
18 Service charge added by SChrge key
only?
When set, service charge is not
added automatically and is only
added to a check when the user
presses the Service Charge Key with
the Set Service Charge flag set on.
See Service Charge key in Status Key
programming.
19 Covers before service charge applies
When set, a service charge will only
be applied to checks/tables that have
this number of covers or more
20 Calculate service charge on subtotal
When set the service charge is
calculated on subtotal, when selected
you cannot use selective item service
charge.
21 Service charge on all items?
When set the service charge is
applied to all items in the bill. Only
applies when the service charge is
set as a % rate. If this is set, then it
overrides any settings for selective
itemisers as below.
No Field Description
22 Service charge on selective item 1?
When set the service charge is
applied to all items in the bill, that
have the flag selective itemiser 1 set
on them, see PLU programming. Only
applies when the service charge is
set as a % rate.
Can be used in conjunction with other
selective itemisers.
23 Service charge on selective item 2?
When set the service charge is
applied to all items in the bill, that
have the flag selective itemiser 2 set
on them, see PLU programming. Only
applies when the service charge is
set as a % rate.
Can be used in conjunction with other
selective itemisers.
24 Service charge on selective item 3?
When set the service charge is
applied to all items in the bill, that
have the flag selective itemiser 3 set
on them, see PLU programming. Only
applies when the service charge is
set as a % rate.
Can be used in conjunction with other
selective itemisers.
25 Service charge on selective item 4?
When set the service charge is
applied to all items in the bill, that
have the flag selective itemiser 4 set
on them, see PLU programming. Only
applies when the service charge is
set as a % rate.
Can be used in conjunction with other
selective itemisers.
26 Service charge on selective item 5?
When set the service charge is
applied to all items in the bill, that
have the flag selective itemiser 5 set
on them, see PLU programming. Only
applies when the service charge is
set as a % rate.
Can be used in conjunction with other
selective itemisers.
27 Prompt for text on new check?
When a check is created, either by
opening it, or by transferring to it, a
QWERTY keyboard is presented to
the user to enter a 24 character text
to link to that check, e.g. customer
name.
No Field Description
28 Prompt for text on new table? As above, but with tables.
29 Prompt with text when present?
When opening a check/table, if there
is text linked to it, then the user is
prompted with it and asked to
continue.
30 Print check text in double size? When set check/table text is printed
double size on bills and kitchen prints.
31 Auto check number start
32 Reset Auto check number at daily Z1?
The current check number for auto
check is reset to the starting number
after a Z1 fixed totaliser report.
33 Covers is 1, when no covers entered? Sets covers to 1 if no covers are
entered.
34 Do not Z reset open check report in
batch reports?
This allows the open check report to
be added to the end of day batch
report without it being reset with the
rest.
35 Print barcode on receipts?
When set a barcode will be printed
on customers bills, when scanned at
the terminal this will prompt the user
to open the check.
This can be used in conjunction with
PocketTouch 2 and belt printing for
queue busting.
No Field Description
36 Table Analysis
Table analysis allows ICRTouch to
track the sales movements on each
table so that they can be reported
on. By default ICRTouch records the
following items:
First Use, when the
check/table was first
opened.
Last Use, when the
check/table was last
posted to.
Net Sales, the net amount
that was registered
through the table.
Covers & Avg Spend, the
number of covers and the
average spend per cover
that has been used with
that table.
37 Track checks If set checks will be tracked.
38 Track Tables If set tables will be tracked.
39 Track Departments If set department sales will be
tracked with the tables.
40 Track PLU Groups
If set PLU group sales will be tracked
with the tables.
Each item type that is tracked
against each table will use a record
of memory, this memory size can be
adjusted in program 5.
This information is stored in all 3
periods in TouchPoint, if you see a
file full message when running a
period 1 report that doesn't have
very much information it may be that
it has never been cleared from period
2 and 3.
41 Store finalised bills?
When set all finalised bills are stored
as text files, these can be viewed on
the terminal and reprinted using the
view paid checks status key.
No Field Description
42 Value for high risk tables
A value can be set so the operator is
alerted when a table reaches a
predetermined value, this is shown
on the floorplan as a money bag
against the table.
43 Time before table needs attention
(hh:mm)
When a table is not opened for the
preset time the operator is alerted by
the table flashing on the floorplan.
44 Preview floor plan bill prints?
When set all bill prints are previewed
on the screen with the option to
print. (Check master only).
45 Show date time line in reg window?
When set upon reopening a
check/table a date time seperator is
displayed in the reg window.
46 Print transfers to KP?
When transferring from once
check/table to another if KP items on
the check/table a ticket will be sent
to the KP, setting this flag stops this.
47 Set location to FP level on new table?
Sets the location relevant to which
floorplan number the table is on then
prints the Customer locations text in
Prog 2 > Fixed characters >
Customer locations.
No Field Description
48 Bill Printing alt-text usage
Allows bills to utilise alt-text by either
replacing or printing under the PLU
descriptor.
Use alpha check numbers?
When set allows you to use 4
character alpha-numeric check/table
numbers.
Note:
When in alpha mode the
maximum length of a
check is 4 digits
When in numeric mode
the maximum length of a
check is 8 digits
Check (numeric) 10 is not
the same as Check
(alpha) ‘10’, technically
both could co-exist
In order to enter a check
number that contains
letters, you will need to
press the function key
first and be presented
with a QWERTY keyboard
Check numbers entered
using the numeric keypad
are still stored as alpha
when in alpha mode
Entering the floor plan will
convert all the tables
numbers into alpha mode,
or non alpha mode
depending on the flag
setting. So be careful as
alpha mode table
numbers will not be
compatible if you then
downgrade TouchPoint.
Print Control
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Print
control.
No Field Description
1 Print Graphic Logo?
Whether the graphic logo is to be
printed on the top of receipts and
bills or not. ICRTouch supports a wide
range of printers for graphic logos,
see the graphic logo converter
application for more information.
2 Print Receipt Header?
When set, the receipt header
message is printed on the top of
receipts and bills.
3 Centre? When set to yes the message will be
auto centered.
4 Print Commercial Message?
When set, the commercial message
is printed on the top of receipts and
bills.
5 Centre? When set to yes the message will be
auto centered.
6 Print Bottom Message?
When set, the bottom message is
printed on the bottom of receipts and
bills.
7 Centre? When set to yes the message will be
auto centered.
8 Print VAT number?
Prints a single line message {vat
number} on the bottom of receipts
and finalised bills only - ie not
intermediate bills.
9 Centre? When set to yes the message will be
auto centered.
10 Print Bottom graphic logo?
Whether the graphic logo is to be
printed on the bottom of receipts and
bills or not. ICRTouch supports a wide
range of printers for graphic logos,
see the graphic logo converter
application for more information.
11 Print Report Header?
When set, the receipt header
message is printed on the top of
reports.
12 Centre? When set to yes the message will be
auto centered.
13 Print Tax Symbol?
When set, taxable PLUs have a tax
symbol printed to the right of them
on receipts, bills etc.
All programming, system programming, system flags, print control fields
No Field Description
14 Do Not Print Consec Number on
Receipts?
Stops the consecutive number from
being printed on the top of receipts.
15 Do Not Print Item count on Receipts? Stops the item count from being
printed on the top of receipts.
16 Double height order number on
Receipts?
Prints the order number in double
height on receipts.
17 Double height chk/tbl number on
Receipts
Prints the chk/tbl number in double
height on receipts.
18 Print sig strip on intermediate bills? Prints a signature strip on
intermediate bills.
19 Print sig strip on final bills?
Prints a signature strip on the final
bills.
For more receipt printing options,
look at the receipt print button in
status key programming.
20 Store receipts?
When set all finalised receipts are
stored as text files, these can be
viewed on the terminal and reprinted
using the view receipts status key.
21 Only managers can print duplicate
bills?
Only managers can print duplicated
bills as set in clerk feature.
22 Receipt alt-text usage
Allows receipts to utilize alt-text by
either replacing or printing under the
PLU descriptor.
23 Do not print qty on condiment items? Allows the quantity of condiment
PLUs to be shown on the receipt.
24 Do not print reason on receipt?
Will stop the selected reason from
the reason table being printed on the
receipt.
25 Rebuild receipt from reg buffer
When creating the receipt it will build
it from the reg buffer either:
Never
On finalised checks and
tables
All finalised sales
Always
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Slip
print control.
No Field Description
1 Pre-Feed Lines
This is the number of lines the slip
printer must feed before
commencing printing.
2 Max Slip Lines
This is the number of 'printable lines'
on the slip. ICRTouch will use this for
working out when it has reached the
end of the current slip.
3 Print Header Message? When set, the receipt header
message is printed on the top of slips.
4 Print Commercial Message? When set, the commercial message
is printed on the top of slips.
5 Print Bottom Message? When set, the bottom message is
printed on the bottom of slips.
6 Print VAT number? When set, the VAT number will be
printed.
7 Print Tax Symbol?
When set, taxable PLUs have a tax
symbol printed to the right of them
on receipts, bills etc.
8 Print sig strip on intermediate bills? Prints a signature strip on
intermediate bills.
9 Print sig strip on final bills? Prints a signature strip on the final
bills.
For more slip printing options, look at Programming for the slip print key, in the status key file.
1. In TouchPoint select Program > All Prog > System Programming > System Flags >
Journal control.
Contains settings for the electronic journal roll (EJF). All changes made in here also affect any
connected journal printer and journal broadcast.
Slip Print Control
All programming, system programming, system flags, slip print control fields
Journal Control
All programming, system programming, system flags, journal control fields
No Field Description
1 No journal 2 (archived journal)?
Stops the second archive text based
journal roll. Journal 2 files are stored
stored as text files on the hardrive
within the ICRTouch folder:
ICRTouch\sales\Journals
To erase the journal 2 during a sales
data reset procedure, these files
need to be manually deleted from
within the operating system.
Note: Since v82.08 this flag does not
persist a reboot and is not visible
unless it is already set to 'Yes'.
2 Create CCTV journal?
This creates a text based journal file
with the name CCTVJournal.txt, used
for overlaying transactions on CCTV
footage in systems like Geovision.
3 Verbose PGM mode changes to J1?
(No, J2 only)?
Adds more detail into the primary
journal regarding changes in PGM
mode. These are always output to
the secondary text based journals
regardless of the setting.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Auto
broadcast.
All programmable files can be flagged to auto broadcast, or not auto broadcast when program
changes are made. Generally you wouldn't want terminal specific files such as IO Parameter and
device connection to auto broadcast when changes are made. In some instances you wouldn't
want the System Flags file to auto broadcast, giving the ability to start different terminals on
different menu levels.
For example you could have a drinks till starting on a drinks level, and a food till starting on a food
level.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Auto
broadcast.
Auto Broadcast Control
Comms Control
No Field Description
1 Dir for Programmed Data Backup
This is the location of the
programmable backup area used in
the backup/restore function in
manager mode.
The directory must be specified
without a back slash at the end ().
You must ensure that the directory
exists.
A different drive can be specified,
enabling backup to mapped network
drives or external backup devices.eg
“C:\backup”, “F:\”,
“\icrtouch\mydata” etc.
2 Modem init string
The string used to initialise a
connected modem when the terminal
is first powered up.
For example AT&FS0=1&Y0&W0
would reset the modem to factory
defaults and then set it to autoanswer
after 1 ring, tell it to load
profile 0 on startup/reset then write
these settings to NVRAM. Consult
your modem's manual for modem
settings specific to your modem type.
3 Dispense Monitoring Configuration:
4 Enable dispense monitoring?
Turns on dispense monitoring
functionality, used with dispense
monitoring systems.
5 Directory for dispense monitoring file Location where the dispense
monitoring file is placed.
6 Coin Dispenser Configuration:
7 Limit dispensed coins to: This is the maximum amount that will
be dispensed from the coin dispenser.
8 Do not dispense if change is more
than:
If the change amount exceeds this
value then no change will be
dispensed from the coin dispenser.
9 Also display total change in input
window?
When set the total change due, as
well as the change that is to be given
from the cash drawer only is
displayed.
All programming, system programming, system flags, comms control fields
No Field Description
10 Range Servant - Days Pin Code is
Valid:
This is the number of days that a pin
code generated from the Range
Servant golf ball dispensing system
will be valid for. If set to 0 then the
system will default to 28 days.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > PLU
Control.
Contains settings that apply to barcode scanning within TouchPoint and some settings that apply
to random lookup codes, eg Wine bin numbers etc.
No Field Description
1 Scanning PLU Start Record
This is the starting PLU record
number for automatic creation of
scanning PLUs. When a barcode is
scanned, ICRTouch searches through
the random code field of the PLU file
to see if the code exists.
If it does it will jump to it, if it doesn't
it will create a new one in a PLU
record that has a blank random code
field, starting with the record number
as specified above.
2 Scanning PLU End Record
This is the PLU record number that
automatic creation of scanning PLUs,
will end at.
3 Auto create not found PLUs
When set, scanned items that do not
exist in the file, are created
automatically, prompting the user for
information.
4 Prompt for TAX rate
When set, you will be prompted to
set a tax rate when PLUs are
autocreated.
PLU control
All programming, system programming, system flags, PLU control fields
No Field Description
5 Lock register at not found PLU
This locks the register if the PLU is
not found. Prompts with a message
box “PLU not found”.
Keeping the start record high means
that PLU creation can be kept away
from PLUs that appear on the
keyboard.
6 Do not validate the check digit?
EANs have a check digit, when
ICRTouch receives a barcode it
validates the check digit to ensure
that it is genuine.
Setting this flag will mean that
ICRTouch will accept non standard
bar codes, but may mean that misscanned
barcodes could be accepted.
7 Print PLU code on receipt?
When set the system prints the
random code (barcode) on the
receipt above the PLU.
8 Print PLU code on journal?
When set the system prints the
random code (barcode) on the
journal above the PLU.
9 Finalise key record for single item PLU Sets the finalise key that is used to
finalise single item PLU sales.
No Field Description
10 Dir for PLU pictures
This is the location of pictures
attached to PLUs. The location can be
a drive, directory, mapped network
drive, UNC etc.
eg “C:\pictures” etc.
The pictures are then placed in this
location with their filenames in the
following format:
R{NUMBER}.jpg - Where {NUMBER}
is the random code or barcode of the
product
or
M{NUMBER}.jpg - Where {NUMBER}
is the memory number of the PLU (1-
65000)
Either format can be used, but the
system will always go for the random
code format first.
eg. M12.jpg for PLU 12, or
R12345670.jpg for PLU with
barcode/random code number
12345670
You also need to set the flag “Prompt
with picture?” in PLU programming,
or use the PLU picture inquiry status
key.
The image that is displayed will be
320×320. A smaller image will have
a border and a bigger image will be
cropped.
11 Disable open price PLU repeat?
Disables the automatic re-registering
using the last entered price of an
open price PLU when it is pressed for
a second time.
12 Non turnover sales affects stock?
If the clerk is flag as non turnover do
their sales affect the stock figures of
PLUs.
13 Non turnover sales affects last time
sold?
If the clerk is flagged as non turnover
do their sales affect the last time sold
of PLUs.
14 Non turnover sales affects Dispense
Monitoring?
If the clerk is flagged as non turnover
do their sales affect the dispense
monitoring file.
15 Non turnover sales prints to KP?
If the clerk is flagged as non turnover
do their sales prints to the kitched
printer.
16 Auto create new ISSN variants? Allows for the acceptance of variants
of magazine barcodes for each day.
No Field Description
17 Enable Pseudo @ quantities?
Allows for accurate stock
management when selling quantities
that are not divisible as a whole. e.g
selling 2nd @ quantity as 0.33,this
will subtract the remainders to allow
for accurate stock adjustment.
18 Reason table on Customer Verify?
When customer verification is set in
PLU programming this will prompt
with a reason table.
19 Customer verify 1/2 duty (1-100%) Sets a % amount for when the
verification prompt will appear.
20 Enforced tax rate
PLUs need to have a tax rate set to
be sold. Otherwise an error message
will appear.
21 List PLU uses menu level?
Use a menu-level keyboard for list
PLUs instead of the default pop-up
list boxes. Refer to the List PLU using
menu level keyboard for more
information.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > EFT
Control.
No Field Description
1 EFT SYSTEM
This selects the type of EFT system
that TouchPoint is interfaced to.
There is a choice of 2. For more
information on configuring an EFT
system see the ICRTouch Reference
Manual.
1. Local EFT App
2. Ingenico RS232
EFT Control
All programming, system programming, system flags, EFT control fields
No Field Description
2 Prompt Cash Back?
When set to yes, TouchPoint will
prompt for cash back when an EFT
transaction is processed. This will not
need to be set if you are using
integrated solutions as this is
handled by the EFT application.
Prompt for cash back is not
supported under Ocius Sentinal.
3 Cash Back adds to Drawer Totaliser?
When set, then any cash back
amounts are added to the drawer
used for the EFT key, see finalise key
programming for more information.
4 Cash Back Out Drawer Totaliser?
This is the drawer totaliser that cash
back amounts are taken from. This
would normally be the cash in drawer
totaliser.
5 Gratuity adds to Drawer Totaliser?
When set, then any gratuity amounts
are added to the drawer used for the
EFT key. See finalise key
programming for more information.
6 Use Sale ID in merchant ref? Pushes the current sale id into the
merchant ref field.
7 Begin transaction for transaction key
EFT?
This begins a sale early if a
transaction key is used and finalises
to EFT, for example a Received on
Account key.
This is required for some EFT
providers so that the Sale ID has
been created prior to the card sale
being processed.
This has the downside that if the EFT
transaction fails, TouchPoint will be
left in the middle of a transaction
requiring remedial action, for
example pressing [Cancel] or
finalising to [Cash].
8 Charitable donation adds to drawer
When set, then any charitable
donation amounts are added to the
drawer used for the EFT key. See
finalise key programming for more
information.
9 Card surcharge adds to drawer
When set, then any card surcharge
amounts are added to the drawer
used for the EFT key. See finalise key
programming for more information.
10 Card surcharge tax rate
This is the tax rate that is applied to
the card surcharge. Note only add-in
tax rates are supported. If this is
used with an add-on tax rate then
the results are undefined.
1. In TouchPoint select Program > All Prog > System Programming > System Flags >
Currency exchange.
No Field Description
1 EURO, (sub currency)
2 Local to EURO(sub) exchange rate
The exchange rate to 6 decimal
places for the conversion from the
local currency to the sub currency.
3 EURO(sub) decimal places Number of decimal places used for
the sub currency.
4 Show EURO(sub) total in REG window?
The sub currency total is always
displayed at the bottom of the REG
window with the local currency.
5 Show EURO(sub) total on
receipt/journal?
The sub currency total is always
printed on the bottom of receipts, the
journal and bills with the local
currency.
6 Show EURO(sub) total on cust
display?
The sub currency total is always
displayed on the customer display
with the local currency.
7 Change in EURO(sub) (No, local)?
When set, the change is always in
EUROs. When set to no the change is
always the local currency.
8 EURO(sub) uses 2nd drawer? The 2nd cash drawer is fired to store
EURO tenders/change.
9 Show change in both currencies? The change amount is printed in the
'other' currency as well.
10 Run EURO(sub) change over function?
This converts all preset prices and
sales data from the local currency to
the sub currency. The sub currency
function will then be turned off.
11 Currency exchange
12 Local to currency 1 to 10 exchange
rate
The exchange rate to 6 decimal
places for the conversion from the
local currency to the currency
exchange 1 to 10.
Currency Exchange
All programming, system programming, system flags, currency exchange fields
No Field Description
13 Currency 1 to 10 decimal places Number of decimal places used for
currency exchange 1 to 10.
14 Currency 1 to 10 uses 2nd drawer? The 2nd cash drawer is fired to store
Currency 1 to 10 tenders.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Hotel
posting.
No Field Description
Hotel Posting
All programming, system programming, system flags, hotel posting fields
1 Hotel system
Specifies the front desk hotel system
that the tills are linked to. For more
information on configuring an
interface to a hotel PMS system
please see the ICRTouch Reference
Manual.
Current options are;
TOUCHPOINT SERVER
SPEC
Generic text based
specification designed by
ICRTouch. Many hotel
PMS suppliers are
interfaced using this
method.
ICRTOUCH TYPE 2 (XML)
Generic XML based
specification designed by
ICRTouch.
REMOTE AUDIT PRINTER
Prints all hotel postings
out on a remote audit
printer mounted in the
front office. This is not a
direct link to a PMS.
MICROS 4700 EMULATION
Emulates the RS232
based interface of a
Micros 4700. You need to
configure the serial port
and comms route in IO
Parameter and Device
Connection.
QT2000 Emulation (IPL
v4.00)
Emulates version 4.00 IPL
on the Casio QT2000.
Uses the files roomgst.txt
and hotel.log.
The VHS server is skipped
and not necessary as part
of this emulation.
GUESTLINE/Rezlynx
Interfaces direct with
Guestline using their
supplied OCX or with
RezLynx over the
Internet. You'll need the
ICRTouch Guestline or
RezLynx server from the
dealers website.
GUESTMASTER PROTOCOL
2 Directory of hotel server
The location of the hotel server, can
be a mapped network drive, or can
be specified as a direct network
location, eg \\server\c\hotel.
3 Allow alpha room numbers?
When set room numbers can be
specified using alpha numeric
characters, eg C201.
4 Post group totals (no, dept)? Group totals are sent to the hotel
server, otherwise dept totals are set.
5 Use Shift Allowances? Will prompt for a shift e.g. breakfast,
lunch, dinner, shift4.
6 Enclose fields using “ in .csv export
file?
Applies to TouchPoint server spec,
fields in the export file are enclosed
quote marks. This setting will be
dependant on the PMS software at
the other end.
7 Guestline Post Z Read Totals? When using Guestline totals from end
of day Zs are posted into the system.
8 Hotel Audit Printing Only The following items apply to the hotel
audit printing method only.
9 Print individual items? Prints the sale items out on the ticket.
10 Print dept/group totals?
Prints the department or group totals
on the ticket. The flag setting above
specifies which of the 2 is printed.
11 Cut ticket?
Cuts the ticket in between each
transaction. Otherwise one
continuous stream of transactions is
printed separated by a line.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Ticket
issuance.
Ticket issuance is generally used for issuing entrance tickets, or tickets for dry cleaning etc. It
works in a similar fashion to kitchen printing except each item in the sale is printed on a separate
ticket.
All programming, system programming, system flags, ticket issuance fields
No Field Description
Ticket Issuance
1 EURO, (sub Show Price on Ticket) Shows price of PLU on ticket.
2 Use 3rd @ qty for Tickets Per Item
With this flag set, multiple tickets can
be issued for 1 item based on the qty
set in 3rd @ Qty.
This is used typically in dry cleaners
for 3 piece suits etc.
3 Inc Ticket Number for Per Item Tickets Increments ticket number for each
item.
4 Print in Double Size Prints in Double Size. Maximum of 15
characters.
5 Print Ticket Number Ticket Number is Printed.
6 Ticket Number Resets Daily Z1 Ticket Number is reset after daily Z.
7 Print Receipt Header Message Prints the standard receipt header
message on the ticket.
8 Print 1 Line of Header Message Only the 1st line of receipt header is
Printed.
9 Print Graphic Logo Graphic Logo is Printed.
10 Print Receipt Bottom Message Receipt Bottom is Printed.
11 Print 1 Line of Bottom Message Only the 1st line of receipt bottom is
Printed.
12 Cut Ticket Cuts between tickets.
13 Dotted Line at End of Ticket Prints a dotted line at the end of each
ticket.
14 Star TSP700 Detects Start of Ticket
The star printer has a black mark
detector. If this flag is set then the
printer will look for the mark which
signifies the printable area of the
ticket.
15 Star TSP700, Print Density Heavy Improves print quality on the Star
TSP700.
16 Print Receipt info Line Prints the information lines (clerk,
mode, till, date, time).
17 Info Line Prints at Bottom of Ticket The Information line is printed at the
bottom of the ticket.
18 Print Order Info
Prints the sale order information box,
order number, check number, covers
etc.
19 Ticket printer 2 uses ticket number 1
When using 2 ticket printers the 2nd
ticket printer uses the 1st ticket
printer's counter, otherwise it uses its
own.
20 Print total number of tickets
Shows the total number of tickets
printed with a count of each one as
it's printed.
21 Left justify ticket
Most of the information on the ticket
is left justified as opposed to centre
justification.
22 Line feeds before printing Number of blank line feeds before
printing starts.
23 Line feeds before cut Number of blank line feeds after
printing and before the ticket is cut.
24 Print customer name Prints the customer's name on the
ticket.
In TouchPoint select Program > All Prog > System Programming > System Flags > Passwords
Certain parts of ICRTouch can be put under password control.
All programming, system programming, system flags, passwords fields
No Field Description
1 PGM Mode Master Password Replaces the global 2552 with a
password of your choice.
2 Hidden Menu Password Replaces 88888888 with a password
of your choice.
3 Period 1-3 reports password
Allows a password to be set for
period report (doesn't include batch
reports) Can often be used to lock
down Period 3 reports for the stock
taker only.
4 Lock Password
Password that needs to be entered to
restore access to the terminal after
the LOCK TERMINAL Status Key is
used.
Passwords
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Time
& Attendance.
No Field Description
1 Rounding of times (minutes)
Sets the number of minutes that the
time and attendance rounds to. For
example setting 15 minutes will
mean that if an employee is later
then their starting time will be
rounded up to the nearest 15
minutes after that.
2 Log time changes?
Records any times that the system
clock has been changed and flags
any working times that may have
been affected by these time changes.
3 Ignore 'iffy' hours worked?
When building hours worked reports
the system will reject work times in
excess of 14 hours and across 2
days, printing out the audit roll at the
same time. Setting this flag disables
this behaviour.
4 Print stub tickets for time & att
operations?
A stub ticket is issued at the local
receipt printer when time and
attendance operations are performed.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > IRC
Control.
No Field Description
1 Auto IRC initialise at startup
When TouchPoint is launched an IRC
initialise is run automatically to
check and configure the network.
2 When auto IRC init, issue a receipt?
Determines whether a ticket is issued
when the IRC initialise is run
automatically at startup.
Time & attendance
All programming, system programming, system flags, time and attendance fields
IRC Control
All programming, system programming, system flags, IRC control fields
1. In TouchPoint select Program > All Prog > System Programming > System Flags > 3rd
Party Customer Servr.
Controls how ICRTouch interfaces with 3rd party customer loyalty applications, for example our
own TouchLoyalty. There is more information about this in the ICRTouch Reference Manual.
No Field Description
1 Directory for server files
This is the shared location that
TouchPoint uses to interface with the
customer server.
Mapped network drives can be used,
but we recommend using UNCs.
eg \\SERVER\Share
2 Site number
This is used when using the system
over a WAN, and allows the system
to identify individual sites.
3 Enclose fields using ” in .csv export
file
Fields are enclosed in quote marks.
This setting will be dependant on the
software at the other end.
4 Use track 1 mag card swipe Track 1 magnetic card data is passed
to the customer server.
5 Use track 2 mag card swipe Track 2 magnetic card data is passed
to the customer server.
6 Auto receipt when customer is on Issues a receipt every time a
customer is used in a sale.
7 Interface with Fidelity's ILAPopup.dll?
When set the 3rd party customer
system activates Fidelity's Instant
Leisure dll/ocx as opposed to the
traditional text file method.
8 Allow alpha customer numbers?
Presents the user with a QWERTY
keyboard when the customer number
key is pressed.
9 Use rebound barcode reader? Calls the rebound barcode reader
control for logging on the customer.
3rd Party Customer
All programming, system programming, system flags, 3rd party customer servr fields
1. In TouchPoint select Program > All Prog > System Programming > System Flags > Table
Reservations.
No Field Description
1 Time line
2 Reservation time line start hour Sets the hour that the reservation list
starts at.
3 Reservation time line end hour Sets the hour that the reservation list
ends at.
Table Reservations
All programming, system programming, system flags, table reservations fields
No Field Description
4 Deposits
Transaction key used for
deposits received
This is the transaction key
record number where
deposit amounts taken
are stored. Technically it
can be any transaction
key type as it's used
purely as a total only,
however it is prudent to
make it a Received on
Account key and call it
Deposits Received or
similar. It is not necessary
for it to be on the
keyboard.
Post deposits from rsrv
into check?
When set deposits stored
against a reservation are
carried forward into the
check. For this function to
work you must have a
deposit key {key type
deposit} setup in the
transaction key file.
Deposits stored against a
reservation can only be
used once. If a table is
opened from the same
reservation again the
deposit will not be carried
across the second time.
In Drawer used for
reservation deposits
Deposits placed into
checks from reservations
are added to this in
drawer totaliser.
Generally speaking you
should set up a new in
drawer totaliser and call it
deposits used.
5 Time table is reserved before booking
Only applies when NOT using time
zoning, this is the time before the
table is booked that it no longer is
available. ie a time of 1 hour would
mean that the table is not available 1
hour before anytime that it is booked.
No Field Description
6 Default booking duration
Only applies when NOT using time
zoning, when set the table is booked
for this length of time, otherwise the
user is prompted to enter a time.
7 Time zoning
When the reservation system is
configured to work by time zone, the
day is split into zones for example
lunch time, afternoon and evening.
When a table is reserved in a time
zone it will be reserved for the whole
of that time zone. eg booking a table
in the afternoon zone would book the
table for the entire afternoon zone.
Tables reserved by time
zone (no, by time)?
Turns on/off the use of
time zones
Time zone 1 start time
Specifies the time that
zone 1 starts. Zone 1
continues until zone 2
starts.
Time zone 2 start time
Specifies the time that
zone 2 starts.
Time zone 3 start time
Specifies the time that
zone 3 starts.
Time zone 4 start time
Specifies the time that
zone 4 starts.
Time zone 5 start time
Specifies the time that
zone 5 starts.
8 Warn user when opening a table?
When set warns the user that they
are about to open a table from the
reservation.
9 Reserve cashiers not tables? For use in places like hairdressers
where you want to reserve stylists.
1. In TouchPoint select Program > All Prog > System Programming > System
Flags/Webshop.
No Field Description
1 Clerk number This is the clerk that all web sales will
be filed under.
2 Terminal name
The terminal name that will be used
for web sales, this will be printed on
KP tickets and receipts.
3 Paid sale destination
Chose either to store paid
transactions against a check number
or add to an in drawer totaliser.
4 In drawer link
When paid sale destination is set to
in drawer, which totaliser will it add
to.
5 COD sale destination
Chose either to store cash on
delivery transactions against a check
number or add to an in drawer
totaliser.
6 In drawer link
When COD sale destination is set to
in drawer, which totaliser will it add
to.
7 Print receipt? Will a receipt be printed for online
orders.
8 Receipt Printing
Determines which of the following
prints on the customer receipt that's
printed.
Print name? → Prints the
customer's name
Print address? → Prints
the customer's address
Print phone? → Prints the
customer's phone number
Print email? → Prints the
customer's email address
Webshop
All programming, system programming, system flags, webshop fields
No Field Description
9 KP Printing
Determines which of the following
prints on the Kitchen Printer ticket.
Print name? → Prints the
customer's name
Print address? → Prints
the customer's address
Print phone? → Prints the
customer's phone number
Print email? → Prints the
customer's email address
10 Discount Amt key record
Determines which transaction key
the sales totals for any discounts
sent from the webshop flagged as
'amount' type discounts, are stored
against.
11 Discount % key record
Determines which transaction key
the sales totals for any discounts
sent from the webshop flagged as
'percent' type discounts, are stored
against.
12 Stored sales, archive more than
When set, TouchPoint will keep the
number of stored web sales trimmed
to this value. Having too many stored
will impact the performance of the
View Web Sales Status Key.
Recommended setting = 1,000.
1. In TouchPoint select Program > All Prog > System Programming > System Flags > QR
Code.
Note:
1. Not all printers support native QR Code printing.
2. For Epson printers use the Epson TM-T88V driver.
3. TouchPoint will revert to graphics printing for printers that do no support QR Code
printing.
4. Not all features are supported when in graphics printing mode.
QR Code
All programming, system programming, system flags, QR Code fields
No Field Description
1 Use graphic mode (No is Native) Native mode uses the printers inbuilt
QR Code printing - if supported.
2 Use high resolution mode? Enable when printing in graphics
mode and using a thermal printer
3 Model (1-3) Select the model number for the QR
Code
4 Error correction level (0-3) Set the error correction level: 1 - Low
/ 2 - Medium / 3 - Quartile / 4 - High
5 Module size (1-16) Set the module size of the QR code
6 Justification Set the horizontal justification
1. In TouchPoint select Program > All Prog > System Programming > Scheduler.
TouchPoint can process up to 10 price changes, for each day of the week.
The time for the price level change is specified in 24 hour format, in hours and minutes.
It is important to remember to change a price level back again, otherwise the touch screen will
remain on the last price level.
1. In TouchPoint select Program > All Prog > System Programming > Time Zones.
Time zones are used for hourly time zone reporting. TouchPoint goes much further than just hourly
reporting and allows up to 50 time zones with any start and end time. Also, the data that is
reported in the time zone is totally flexible, rather than just a straight sale total, in fact up to 100
of any sales totaliser can be chosen to appear in the time zones. For example you can configure
your time zone to report for every half hour on all the department totals.
No Field Description
Scheduler
Time Zones
All programming, system programming, time zones fields
1 Time zones
In here configure the start and end
time of each of the time zones in 24
hour HH:MM format. The start time is
included in the time zone, the time
zone stops but doesn't include the
end time.
For example, 22:00—23:00 will
include sales from 22:00 up and
including 22:59 but NOT 23:00.
Up to 50 time ranges can be set.
2 Time zone Detail Link
Select the sales information that
you'd like to appear in the time zones
here. Up 100 items can be included.
1. In TouchPoint select Program > All Prog > System Programming > Cheque Print.
TouchPoint can print cheques on the specified slip printer. A slip printer must be set up in Device
Connection to enable use of this function.
No Field Description
1 Store Name This is the text that is printed for
payee on the top line of the cheque.
2 Cheque Printer Type?
This is the type of slip printer being
used, it is very important that this is
set correctly, otherwise it will print
incorrectly.
Next follow printing options for the
individual components of the cheque,
these are Date, Store Name, Amount
in Text & Amount in Figures.
3 Print? Specifies whether the component is
printed or not.
4 X Position The starting x position in characters
for the component.
5 Y Position The starting y position in characters
for the component.
Cheque Printing
All programming, system programming, cheque printing fields
1. In TouchPoint select Program > All Prog > System Programming > Tax Table.
No Field Description
1 Descriptor Name used for the tax rate.
2 Rate % This is the rate, 4 digits after the
decimal point is assumed.
3 Add In (VAT), if no, Add On?
When set to yes, it is assumed that
all amounts already have tax in
them, and any calculated amount is
calculated out of that.
When set to no, it is assumed that all
amounts do not include tax, and so it
is added on.
When the multi tax rates flag
is set, only 'add on' tax is
available.
When the multi tax rates flag
is set, tax is applied to the
original net price only, ie tax
on tax is not supported.
Tax Table
All programming, system programming, tax table fields
1. In TouchPoint select Program > All Prog > System Programming > Non PLU Table.
No Field Description
Image not found or type unknown
Non PLU Table
All programming, system programming, non PLU table fields
1 Format String
Consists of five parts:
1. Header normally 02 or 20 to 29
2. Code number this is represented
with Xs
3. Check digit for the price
represented with a D
4. Price / weight represented with Ps
5. Check digit for the barcode
represented with a D
For Example 02XXXXDPPPPPD
For TouchPoint 2017 > the leading
zero can be removed from the format
string.
2 Embedded value is Weight? (If
No,price)
If not a weight barcode it is a price.
When linking to TouchOffice this
needs to be set to yes for stock to be
calculated.
3 Decimal places of embedded value
Usually 2 for price or 3 for weight. Eg
when set to 2, 1050 would be taken
as 10.50.
1. In TouchPoint select Program > All Prog > System Programming > Reason Table.
Contains a user configurable list of 'Reasons' that can be reported on. Many transaction keys have
a flag to activate the reason table on use.
For example the reason table could be linked to the refund key and used to indicate why the
operator used the refund. The reason is printed on the journal at the time when it was used, the
value is added to the reason table's total for reporting.
The number of reason tables available can be set in Program 5 - File Sizes.
Terminal specific network configuration settings are set in here.
1. In TouchPoint select Program > All Prog > System Programming > System Configuration.
Reason Table
System Configuration
All programming, system programming, system configuration fields
No Field Description
1 Terminal ID
This is the unique network ID for this
till.
Values range from 1 to
100.
You must not have 2
terminals with the same
number on the same
network.
2 Location
Drop down window with up to 6
locations to specify which location
this terminal is in.
This can be used for separating inline
reports by location. See Program 2 →
Fixed Character programming, for
programming the location names.
3 Terminal Name
This is a 12 character descriptive
name for this terminal. This makes
for easier identification of a terminal
in a network.
It is printed on the top of
receipts/reports etc. It is also used in
error messages pertaining to that
terminal.
4 Clerks Float?
When set to yes, clerks can be
moved from this terminal to others in
the network in the middle of a sale.
5 Use Centralised Check System?
When set to yes, the terminal will get
its check file from the check tracking
master.
When set to no, the terminal will use
its own check file.
6 This Machine Check Tracking Master?
When set to yes, this terminal is
responsible for controlling the check
file in a centralised check system.
This must be used in conjunction with
Use Centralised Check System.
7 I am Check Backup Master?
When set to yes, this terminal is
check backup master, for more
information on the check backup
system see the reference manual.
This must be used in conjunction with
Use Centralised Check System. See
reference manual for more
information.
No Field Description
8 Use Centralised Customer Totals?
When set to yes, the terminal will get
its customer file from the customer
master. When set to no, the terminal
will use its own customer file.
9 This Machine Customer Totalmaster?
When set to yes, this terminal is
responsible for controlling the
customer file in a centralised
customer system.
Must be used in conjunction with Use
Centralised Customer System.
10 Use centralised time & attendance
file?
When set to yes, the terminal will get
its time & attendance file from the
time & attendance master. When set
to no, the terminal will use its own
time & attendance file.
11 This machine time & attendance
master?
When set to yes, this terminal is
responsible for controlling the time &
attendance file in centralised time &
attendance system.
Must be used in conjunction with Use
time & attendance System.
12 VLAN
VLAN are used to stop tills on the
same network from cross
communicating. Tills will different
VLAN numbers will not see each
other at all, however the back office
system can communicate with the
whole system.
Used for creating separate site on the
same LAN. Any changes made to
System configuration should be
followed by an IRC Initialise to make
sure that all terminals are kept up to
date.
13 Used for creating separate site on the
same LAN.
Any changes made to System
configuration should be followed by
an IRC Initialise to make sure that all
terminals are kept up to date.
14 TCP/IP
No Field Description
15 Use TCP/IP (No, IPX/SPX)?
Forces a terminal to use TCP/IP as its
communication protocol. When set to
no the till will use IPX.
If set to no the IPX protocol will need
to be installed on the terminal,
Windows CE does not suport IPX so
this should always be set to yes.
16 Back office TCP socket password
A password can be added to all TCP
back office communications
recommended for communications
over WANs.
17 Adapter This will identify the network card
being used.
18 IPAddress The current IPAddress settings of the
terminal.
19 Subnet The current subnet settings of the
terminal.
20 Gateway The current gateway settings of the
terminal.
21 Use DHCP If DHCP is to be used.
22 Internet Enable DynDNS Updater
23 STS
Status of the connection, It will show
the external IP address if it was able
to communicate with DynDNS and
the date and time it was last updated.
24 HostName The hostname that is assign by
DynDNS.
25 Username and Password The username and password for
DynDNS.
26 How often is it updated?
When the broadband IP address
changes
When ICRTouch starts
When Changes are made to the
DynDNS settings in program 3
or every 28 days.
Note: Only 1 terminal in the network
should be configured to update
DynDNS.
27 ICRTouch Connect
No Field Description
28 Access Key:
An access key is provided by
ICRTouch to use online services such
as TouchOffice Web or postcode
lookup.
Once a access key is entered more
menu items will be displayed.
29 SiteID
This should be set to match the
TouchOffice Web site that TouchPoint
is part of.
Allowable range: 1 to 9,000.
30 Table reservations?
This would need to be set when using
online our table reservations system
TouchReservation.
31 Webshop
When set enables the webshop
interface, additional settings can be
found in pgm3 - system programming
- system flags - webshop.
32 IDC Uploader?
This needs to be set to yes when
using TouchOffice Web, this allows
transaction information to be
uploaded to the web site.
33 Last Status Displays the current state of the
connection to TouchOffice Web.
34 Upload Non-turnover Sales? Set to change if Non-turnoversales
are uploaded to TouchOffice Web.
35 Enable stock download?
Downloads the current stock holdings
as listed on Touch Office Web, This is
done every Hour.
36 Online Vouchers?
Grants the ability to use online
vouchers. TOW+ account required.
(
https://forum.icrtouch.com/files/file/39
7-voucher-script/
No Field Description
37 Upload program changes?
Program changes are uploaded to the
TOW system when they are made in
TouchPoint. Things to note:
Only applies to single site
systems
The entire program record
is uploaded, regardless of
what fields are changed
Changes are stored in an
upload queue if the
terminal is offline for any
reason
38 HO Access Key
Insert your consolidated sales
account access key for figures to be
uploaded.
39 Postcode address lookup?
Set to enable address lookup from
the entered postcode when creating
customers.
40 TouchTopUp Web?
Set to enable TouchTopUp web, this
is a customer online payment
service. This will need to be enabled
when using centralized customers in
Touch Office Web.
41 TTU is customer totals master?
When set, customer points and
accounts balances are managed by
TOW and can be used across an
estate. The local customer master
still remains responsible for program
data (Note: this will likely change in
the future).
42 Text Predications? Enables predictive text when creating
PLUs.
43 Barcode Predictions? Enables predictive descriptions when
creating PLUs via barcodes.
44 Caps Type Set how you would like the
predictions capatilised.
45 Enable VNC Server?
This enables TouchPoints built in VNC
server, allowing connection and
control of TouchPoint remotely from
a wide variety of devices.
46 Enable EHP Server?
Gives functionality for creating
webpages via the scripting engine
(Etal).
In TouchPoint select Program > All Prog > System Programming > Device Connection
Image not found or type unknown
The device
connection file contains the location of all external devices, except KPs which are programmed in a
separate file.
No Field Description
Device Connection
All programming, system programming, device connection fields
1 Receipt Printer
Location of the standard receipt/bill
printer. The device can be shared by
multiple terminals. The device can
also have a backup route.
Automatically printed receipts/bills in
ICRTouch use the programming from
the first receipt key found in the
status key file.
2 Connected to MC No.
This is the name of the terminal that
the device is connected to. All
devices can be shared by multiple
terminals, except Customer Display,
Journal Printer and Cash Drawer,
these devices are connected locally
to the machine that is using them.
3 Connected to Port No.
This is the number of the serial port
the device is plugged into on the
machine specified above. This must
be specified, even if the device is not
connected locally on this machine.
The device can be disabled by setting
the port number to 'Not Connected'.
4 Backup – Connected to MC No.
Both the receipt printer, and report
printer allow for a backup route. In
the event of a failure of the specified
device, the terminal will
automatically route the data to the
backup device.
5 Backup – Connected to Port No.
This is the number of the serial port
for the backup device, as above. If
you do not want a backup device,
then set 'Not Connected' here.
6 Report Printer
Location of the report printer. The
device can be shared by multiple
terminals. The device can also have a
backup route.
7 Connected to MC No.
This is the name of the terminal that
the device is connected to. All
devices can be shared by multiple
terminals, except Customer Display,
Journal Printer and Cash Drawer,
these devices are connected locally
to the machine that is using them.
8 Connected to Port No.
This is the number of the serial port
the device is plugged into on the
machine specified above. This must
be specified, even if the device is not
connected locally on this machine.
The device can be disabled by setting
the port number to 'Not Connected'.
9 Backup – Connected to MC No.
Both the receipt printer, and report
printer allow for a backup route. In
the event of a failure of the specified
device, the terminal will
automatically route the data to the
backup device.
10 Backup – Connected to Port No.
This is the number of the serial port
for the backup device, as above. If
you do not want a backup device,
then set 'Not Connected' here.
11 Customer Display
The device can only be connected
locally, and cannot be shared. If you
are using OPOS for the display the
logical device name should be “Line
Display.”
12 Connected to Port No.
This is the number of the serial port
the device is plugged into on the
machine specified above. This must
be specified, even if the device is not
connected locally on this machine.
The device can be disabled by setting
the port number to 'Not Connected'.
Options:
0. Not Connected
1. COM1
2. COM2
3. COM3
4. COM4
5. COM5
6. COM6
7. COM7
8. COM8
9. LPT1
10. LPT2
11. OPOS 1
12. OPOS 2
13. OPOS 3
14. OP0S 4
15. OPOS 5
16. OPOS 6
17. ICRTouch Local POS
Drivr
18. TouchKitchen
13 Slip Printer
Location of the slip printer, for
printing slips and cheques. The
device can be shared by multiple
terminals. There is no backup route
for this device.
14 Connected to MC No.
This is the name of the terminal that
the device is connected to. All
devices can be shared by multiple
terminals, except Customer Display,
Journal Printer and Cash Drawer,
these devices are connected locally
to the machine that is using them.
15 Connected to Port No.
This is the number of the serial port
the device is plugged into on the
machine specified above. This must
be specified, even if the device is not
connected locally on this machine.
The device can be disabled by setting
the port number to 'Not Connected'.
16 Journal Printer
Location of the journal printer. The
device can only be connected locally,
and there is no backup route.
The electronic journal functions
whether a journal printer is
connected or not.
17 Connected to Port No.
Location of the journal printer. The
device can only be connected locally,
and there is no backup route. The
electronic journal functions whether a
journal printer is connected or not.
18 Cash Drawer
This is the location of the cash
drawer. Some touch screen hardware
has internal cash drawer ports, for
example Casio QT7000, in which case
specify that it is on an internal
drawer port.
Otherwise specify the serial port of
the printer that is connected to the
cash drawer. If you are using OPOS
the logical name for drawer1 should
be “Cash Drawer”, the logical name
for drawer2 should be “Cash Drawer
2.”
19 Connected to Click here for a list of supported cash
drawer devices.
20 Ticket Printer 1
Location of the ticket printer. The
device can be connected remotely on
another terminal.
21 Connected to MC No.
This is the name of the terminal that
the device is connected to. All
devices can be shared by multiple
terminals, except Customer Display,
Journal Printer and Cash Drawer,
these devices are connected locally
to the machine that is using them.
22 Connected to Port No.
This is the number of the serial port
the device is plugged into on the
machine specified above. This must
be specified, even if the device is not
connected locally on this machine.
The device can be disabled by setting
the port number to 'Not Connected'.
23 Hotel Printer/PMS
Location of the printer or RS232 PMS
{in the case of the Micros 4700}
used in a hotel posting environment
whereby transactions are sent to an
audit printer in the front desk rather
than to a PMS package.
The device can be connected
remotely on another terminal.
24 Connected to MC No.
This is the name of the terminal that
the device is connected to. All
devices can be shared by multiple
terminals, except Customer Display,
Journal Printer and Cash Drawer,
these devices are connected locally
to the machine that is using them.
25 Connected to Port No.
This is the number of the serial port
the device is plugged into on the
machine specified above. This must
be specified, even if the device is not
connected locally on this machine.
The device can be disabled by setting
the port number to 'Not Connected'.
26 EFT device (Direct RS232)
Location a serial chip and pin
terminal. Can be remote and shared
across terminals.
27 Connected to MC No.
This is the name of the terminal that
the device is connected to. All
devices can be shared by multiple
terminals, except Customer Display,
Journal Printer and Cash Drawer,
these devices are connected locally
to the machine that is using them.
28 Connected to Port No.
This is the number of the serial port
the device is plugged into on the
machine specified above. This must
be specified, even if the device is not
connected locally on this machine.
The device can be disabled by setting
the port number to 'Not Connected'.
29 Receipt Printer 2
Location of the remote receipt/bill
printer which can be used by
PocketTouch 2 in preference to the
standard receipt/bill printer. The
status key, receipt print can be
configured to use this printer.
The device can also have a backup
route.
Automatically printed receipts/bills in
ICRTouch use the programming from
the first receipt key found in the
status key file.
30 Connected to MC No.
This is the name of the terminal that
the device is connected to. All
devices can be shared by multiple
terminals, except Customer Display,
Journal Printer and Cash Drawer,
these devices are connected locally
to the machine that is using them.
31 Connected to Port No.
This is the number of the serial port
the device is plugged into on the
machine specified above. This must
be specified, even if the device is not
connected locally on this machine.
The device can be disabled by setting
the port number to 'Not Connected'.
32 Backup – Connected to MC No.
Both the receipt printer, and report
printer allow for a backup route. In
the event of a failure of the specified
device, the terminal will
automatically route the data to the
backup device.
33 Backup – Connected to Port No.
This is the number of the serial port
for the backup device, as above. If
you do not want a backup device,
then set 'Not Connected' here.
34 Play sounds through speakers?
When set to yes, ICRTouch uses .wav
files residing in the ICRTouch\Sounds
folder for system sounds, these are
played through the sound card and
speakers. When set to No the system
buzzer is used.
35 System contains a mix of Screen
Sizes?
This allows 1024×768 and 800×600
terminals to be run in a system
together.
Keyboard data is sent across the
network excluding coordinate data,
also merged cell data is ignored.
Hence if cells are merged together
then they must be done on each unit
in the system. However, merged cell
data is accepted from machines of
the same resolution.
This also applies to communications
from back office PCs.
Floor plan table coordinates are
assumed to be 1024×768 and are
scaled down to 800×600 for the
lower resolution units. The system
also disallows the editing of the floor
plan table positions on the 800×600
units.
When this flag is set/unset an IRC
initialise must be preformed.
Manager functions - Inline functions -
IRC Init.
36 Disable CTRL-M Macro Start?
Should be set if TouchPoint tries to
record a macro during operation of
the till, this can be caused by certain
hardware sending ctrl characters
when using Ibuttons or mag cards.
37 Receipt/Report printer width: This only needs to be set when using
printers with a width <> 40 columns.
38 KP printer width: This only needs to be set when using
printers with a width <> 40 columns.
39 Search for Dallas iButton readers?
Allows for the use of iButton readers
connected through a blue dongle that
is not licenced.
40 Country Select Country of the till.
41 Language Select language (must have the
specific lang file).
42 Printers Code Page Code page of printer connected.
(Typically 858 in europe).
43 Customer Displays Code Page Code page of customer display set.
44 Pos Device Device name to be listed in the CCTV
journals.
45 CCTV Journal Set Code page of CCTV device.
46 Code Page
47 Append CR? Include carrage returns.
48 Append LF? Include line feeds.
49 Outputting formatting chars Keeps formatting of characters
(double height etc).
50 Persist Connection? Does the connection persist after a
sale has been processed?
1. In TouchPoint select Program > All Prog > System Programming > Kitchen Printers.
2. Replace the kitchen printer name if required.
3. Select ** KP Configuration and press enter.
4. Update the settings are required.
Kitchen printers
All programming, system programming, kitchen printers illustration
All programming, system programming, kitchen printers, KP configuration illustration
Field Description
Kitchen Printers
There are 12 configurable Kitchen Printer routes per
terminal. These can be either kitchen printer or video
depending on the type of device connected.
Note: Many setting are not present when the device type
is 'Kitchen Video' these settings instead are configured in
the device itself
Kitchen Printer Name This is a 12 character descriptive name for the KP. It
appears on the top of the order slip.
Connected to MC No. This is the name of the terminal that the KP is connected
to. All KPs can be shared by multiple terminals.
Connected to COM Port No.
This is the number of the serial port that the KP is plugged
into, this must be specified, even if the KP is not
connected locally on this machine.
The KP can be disabled by setting the port number to 'Not
Connected'. For IP printers this should be the name of the
printer.
Backup – Connected to MC No.
In the event of a failure of the specified KP, the terminal
will automatically route the data to the backup KP (which
can be the receipt printer).
Backup routes are not available when the device
type is Kitchen Video.
Backup – Connected to Port.
This is the number of the serial port for the backup KP, as
above. If you do not want a backup device, then set 'Not
Connected' here.
All programming, system programming, kitchen printers fields
Field Description
KP Configuration
Configuration for each KP is in here. This option is not
visible until a port has been set for the printer.
Print KP in Double Width?
Whether double width characters are used or
not for the KP.
Print KP in Double Height?
When set all KP items are printed in double
height. Can be used with the double width flag
to give quad size printing.
Print Order Number in Double Height?
When set all the order number at the top of
the ticket is printed in double height
characters.
Print Check/Table Number in Double Height?
When set all the check or table number at the
top of the ticket is printed in double height
characters.
Condense double size items when overrun?
When using double width printing, if the text is
wider than the ticket then the item is printed
in single size.
Condiments always print small?
When using double size printing condiment
PLUs are always printed in small.
Compress KP Ticket?
When set unnecessary lines and spaces are
omitted from the order to make it as small as
possible.
Consolidate?
Turns on item consolidation.
Consolidate items with differing condiments?
Determines that if the same item but with
different condiments are consolidated together.
Consolidate set menus with different items?
Determines that if the same set menu but with
different items are consolidated together.
Field Description
Sort Choice of sorting is None, Department, PLU Group or KP
Category.
Insert a line in between KP Items? When set a line feed is issued in between each KP item.
Print prices?
Prints the prices the items were sold at to the KP. Double
width printing it turned off when configured for price
printing.
Translate KP order?
When set, the KP order is sent through the ICRTouch
translation database. This is most commonly used when
setting the order to print in Chinese.
The translation feature is only available on Win32
machines, not WinCE.
Do not print English? When KP translation is turned on only the translation line
is printed.
Autocut KP Ticket? The KP ticket is cut using the cutter if fitted at the end of
an order.
Printed dotted line at the end of the order? A dotted line is used to separate the orders.
Issue FF at end of order? Issues a Form Feed command to the KP printer at the end
of the order.
Sound buzzer at KP order? The buzzer is sounded on the KP before an order is
printed.
Line feeds before order Number of lines feeds that are printed before the order is
printed.
Line feeds after order Number of lines feeds that are fed after the order is
printed.
Local use only? {PocketTouch2}
This kitchen printer will only be active for sales that were
made locally at the terminal itself. The kitchen printer will
not be used for sales that have been received remotely
through the XML socket. For example sales made with
PocketTouch or that originated from the TTA system.
Remote use only? {PocketTouch2}
The kitchen printer will only be active for sales that were
made remotely that were received through its XML
socket, for example sales made using PocketTouch or the
TTA system.
A typical use case for this would be if you wanted bar
sales to print a KP ticket if the sale was made from the
table either from PT or TTA. But you do not want them for
drinks ordered at the till.
Field Description
Do not send to KP Controller
When set items flagged for this KP are not sent to the KP
Controller and so will not appear on products like
TouchKitchen v3.
A typical use case for this is if you have a 'food till' and a
'bar till' and you were using KP number 2 for drinks orders
which are going to a TouchKitchen. You may not want the
bar till to send drinks orders to the kitchen video system
and so this flag set for KP2 on the bar till will facilitate this.
Print large time? When set the time is printed in double size at the top of
the KP ticket.
Alt-text usage When set, alt-text is set on a KP ticket either to 'replace'
or be put 'under' the PLU description.
Is schedulable? When set, orders flagged with a delay will be scheduled
by this kitchen printer.
Kitchen Video No 1-2
Connected to MC No. This is the name of the terminal that the KV is connected
to. All KVs can be shared by multiple terminals.
Connected to COM Port No.
This is the number of the serial port that the KV is plugged
into, this must be specified, even if the KV is not
connected locally on this machine.
The KV can be disabled by setting the port number to 'Not
Connected'. For IP kitchen videos this should be the name
of the KV.
1. In TouchPoint select Program > All Prog > System Programming > I/O Paramter.
IO Parameter ICRTouch supports up to 8 serial devices. The settings for the serial port need to
match the settings of the device connected to it. If there is a mismatch in the settings then you'll
generally get garbage printed out on the connected device.
I/O Parameter
All programming, system programming, I/o parameter fields
No Field Description
1 Baud Rate A range of values between 1200 and
115200 bps are supported.
2 Parity Values are NONE, EVEN and ODD.
3 Data Bits Values are 7 and 8.
4 Stop Bit Values are 0 and 1.
5 Connected Device
This is where you specify what device
is connected to the serial port. A
range of printers and customer
displays are available.
6 LPT 1
7 Connected Device
Parallel printers are supported under
ICRTouch, set the device connected
to LPT1 here.
8 LPT 2
9 Connected Device
Parallel printers are supported under
ICRTouch, set the device connected
to LPT2 here.
1. In TouchPoint select Program > All Prog > System Programming > IP Printers.
TouchPoint supports TCP/IP printers for both the kitchen and receipt/report printing. Journal printer
via TCP/IP is not supported.
Only Epson and Star TCP/IP interfaces are supported.
When using TouchKitchen you would set its IP address here and set connected device to
TouchKitchen.
IP Printers
Clerk Programming
1. In TouchPoint select Program > All Prog > Clerk > Feature.
Clerk Feature
All programming, clerk, feature illustration
No Field Description
1 Descriptor This is the clerk name.
2 Secret Number
This is a 4 digit secret number used
for signing on. If this is set to zero,
then the clerk cannot be signed on
by using secret number.
3 Default menu level at sign on
When set, the clerk will go straight to
a specific menu level when they are
signed on, otherwise they go to the
default for that terminal.
4 Price level at sign on When the clerk signs on it goes
straight to a specific price level.
5 Defaults to floor plan at sign on?
When the clerk is first signed on at
the beginning of a sale, the clerk will
go straight to the floor plan.
6 Default floor plan level
Sets the level on the floor plan that
this clerk defaults to when it enters
the floor plan. A setting of zero will
mean that the clerk will go to the
level set for that terminal.
7 Compulsory Order Number Entry
Means that the clerk has to supply an
order number each time they do a
sale.
8 Compulsory Number of Covers
Means that the clerk has to supply
the number of covers each time they
do a sale.
9 Compulsory Check Number
Means that a check or table number
must be entered before beginning a
sale.
10 Prompt for customer number
When set the unit will prompt for the
operator to enter a customer (loyalty
etc) number at sign on.
The customer can still be logged on
using all the usual methods at this
point, eg mag card.
11 Prompt for Eat In/Take Out
The system will prompt with a list of
all Eat In/Take Out keys found in the
status key file.
12 Sign Off Clerk at Close of Sale?
Means that when the clerk finalises a
sale, they will automatically be
signed off of the till.
All programming, clerk, feature fields
No Field Description
13 Allow to Open Other Clerk's Checks?
Means that the clerk can open
checks/tables that have been opened
by other clerks.
14 Use 2nd Drawer? Means that the clerk uses drawer 2.
15 Clerk is Manager? This function is not implemented yet.
16 Clerk is Trainee? When this clerk signs on, the register
goes into training mode.
17 Allowed to correct items from checks?
When set the clerk is able to item
correct items that have been
previously rung into a check/table.
18 Last item error correct only?
When set the clerk is only able to
correct the last item that they
registered.
19 Non Turnover? (TMS/PLU sales only)
Sets the clerk so that it doesn't effect
sales total for use with entering
wastages for backoffice software etc.
20 Commission Rate 1-4 (%)
Set in here the % commission that
the clerk receives on products link to
rates 1—4.
Typically used in hairdressing type
applications, the commission totals
appear in the main fixed totaliser
totals, and can be shown per clerk by
adding them to the clerk detail report.
21 Prompt to clock in at sign on?
For time attendance, if the Employee
is not clocked in when they sign on
then the unit will prompt them if they
want to clock in at that point.
22 Compulsory clocked in?
For time attendance, means the
employee cannot use the till unless
they are clocked in.
23 Employee Job 1-4
For time attendance, specifies which
jobs the clerk does. This then allows
the system to work out what hours
they should be working etc.
For more info on Time & Attendance
see the time & attendance settings in
this manual, and the ICRTouch
Reference Manual.
24 NI Number National insurance number.
25 Language Sets the language of the clerk. Useful
for multilingual staff.
1. In TouchPoint select Program > All Prog > Clerk > Operation.
Contained in here are all the function keys. These can be set to yes if the clerk is allowed to use
them, or no, in which case they will be disabled for that clerk.
Clerk Operation
All programming, clerk, clerk operation illustration
1. In TouchPoint select Program > All Prog > Clerk > Mode Control.
Contained in here are all of the register modes. When set to yes, the clerk is allowed to sign on in
them, and use functions associated with them. Otherwise the clerk will not be able to use that
mode.
Mode Control
All programming, clerk, mode control illustration
1. In TouchPoint select Program > All Prog > Clerk > iButtons & Finger Prints
No Field Description
1 iButtons
Just press the iButton against the
receiver. This will automatically link
the iButton to that clerk.
Pressing Enter twice will clear out
anything programmed here.
2 Fingerprints
Fingerprints are available in 2019
(v70.+). Please
consult https://forum.icrtouch.com/top
ic/20928-touchpoint-2019-
biometrics/ for more instructions
regarding drivers.
1. In TouchPoint select Program > All Prog > Clerk > Clerk Detail.
iButtons & Finger Prints
All programming, clerk, ibuttons and finger prints fields
Clerk Detail
All programming, clerk, clerk detail illustration
The clerk detail link file is used for clerk reporting. All files that totalise sales data can be linked to
the clerk detail file. The report from the clerk detail file will consist of all sales data for each clerk
on the specified link. This way sales totals and function key data can be tracked for each clerk.
Pressing enter on a detail link will prompt for a file type. From there you are prompted for a record
within that file.
If all available records are used in clerk detail, you can create more links using clerk detail 2.
No Field Description
1 FIle type
No detail link
PLU
PLU Group
Fixed Totaliser
Finalise Key
Transaction Key
Department
Tax
Mix & Match
Mix & Match 2
Reason Table
1. In TouchPoint select Program > All Prog/Clerk > Range Programming.
The clerk file can be programmed by range. Clerk Features, Clerk Operation & Mode Control
can all be programmed by range. Pick the individual section to be programmed – you are
presented with a programming sheet that is completely grey. As you program each item, its
background colour will turn white. Only these white items will be changed – all the grey items will
be left as they are. When you have finished programming in the program sheet, press ESC. You
are then prompted with from clerk, to clerk. Set in the number of the clerk that you want to range
program from, and the number of the clerk that you want to program to, then press enter on
Range Program OK?, this will range program these clerks. Pressing ESC to leave this screen will
cancel range programming.
All programming, clerk, clerk detail fields
Range Programming
1. In TouchPoint select Program > All Prog > Clerk > Employee Job.
Creates a new job, eg Chef. Within here you can set up to 5 shifts that this job function works for
each day of the week.
No Field Description
1 Job Text Title of the Job, eg Chef, Cleaner, Bar
Person etc.
2 Shift 1-5
Select the up to 5 shift times
(configured in employee shifts) for
each day of the week.
For more information on time &
attendance see the ICRTouch
Reference Manual.
1. In TouchPoint select Program > All Prog > Clerk > Employee Shift.
Creates a new shift time, eg. morning. Shifts are then linked in to Jobs which are linked into clerks.
No Field Description
1 Shift Text Text reference name for the shift, eg.
morning, afternoon etc.
2 Shift start time and end time Sets the working hours for the shift in
24 hour HH:MM format.
3 Start of breaks and end of breaks
Sets the time period during which
breaks can be taken. Eg 11:00 to
13:00 would mean that they can take
their break any time between these
times.
Employee Job
All programming, clerk, employee job fields
Employee Shift
All programming, clerk, employee shift fields
No Field Description
4 Break time allowed Selects the amount of time they are
allowed to take as break.
5 Latest work time The is the latest that they can work
after their shift time ends.
6 Start time grace (minutes)
This is the amount they are allowed
to be late by in minutes without
affecting their work time.
7 End time grace (minutes)
This is the amount of time they are
allowed to leave early in minutes
without affecting their work time.
For more information on time &
attendance see the ICRTouch
Reference Manual.
1. In TouchPoint select Program > All Prog > Function Keys.
1. In TouchPoint select Program > All Prog > Function Keys > Finalise Key.
Function Keys
Finalise Key
Finalise keys
are used to 'cash off' sales.
No Field Description
1 Descriptor The name associated with the button.
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
You can force the caption to be
updated by setting this to yes, and
can prevent it being updated by
setting it to no after you have
changed the text in descriptor.
All programming, function keys, finalise key
No Field Description
3 Key Type
This specifies the type of finalise key.
There may be different programming
options, dependent on what type of
finalise key has been allocated.
4 Preset Amount
Only valid for the key type 'CASH' -
used for preset tender keys, eg £5,
£10, £20.
5 Drawer In Any money tendered on this button
will be added to this totaliser.
6 Drawer Out
Any amounts given as change from
this button will be deducted from this
totaliser.
7 Open Drawer? Decides whether the drawer will open
or not when this finalise key is used.
8 Enforce Amount Tendered?
If set to yes, the operator must enter
the amount tendered before pressing
this button.
9 Enforce ST? If set to yes, the operator must press
subtotal before pressing this button.
10 Inhibit Partial Tendering? If set to yes, the operator cannot
tender for less than the sale value.
11 Inhibit Amount Tendering?
If set to yes, the operator cannot
tender an amount before pressing
this button.
12 Automatic Receipt Printing?
If set to yes, regardless of whether
the receipt is on or not, a receipt will
be issued if this key is used.
13 Warn if a check is open?
Will give a warning message if
finalisation is attempted with a
check/table open.
14 Print Tax Breakdown?
If there is any tax content in this sale,
then this will be printed on the
receipt.
15 Print extra ticket with signature strip?
If this finalise key is used then an
extra receipt is issued with the
signature strip bottom message at
the bottom of it.
16 Compulsory non-add number entry?
A non-add number must be entered if
this finalise key is used, if one hasn't
been entered, then the system will
automatically press the first non-add
key in the status key file for you,
prompting for a number.
No Field Description
17 Compulsory Eat In/Take Out?
System will prompt with a list of all
Eat In/Take Out keys found in the
Status Key file if one hasn't already
been used.
18 Tendered amounts in EUROs(sub)?
The finalise key becomes a EURO
finalise key. All amounts tendered
are in EUROs. Only applies to CASH,
CHEQUE & EFT.
19 Prompt with numeric keypad for
tender?
When set and no amount was
tendered into the finalise key, the
unit will popup a numeric keypad for
amount to be tendered.
20 Finalise Key Types
21 CASH
22 Prompt for cash back?
When not using intergrated EFT you
can set the finalise key type cash to
prompt for cash back. The cash back
feature takes its configuration setting
from pgm 3 - system programming -
system flags - EFT control.
23 CHEQUE
Acts as a normal cash key, but gives
the option of printing a cheque on a
slip printer, also prompts for
checking the card number, expiry
date etc.
24 Low Amount Limit £
Specified only in £s, no decimal
place. Sales below this value cannot
be finalised on this key.
25 High Amount Limit £
Specified only in £s, no decimal
place. Sales above this value cannot
be finalised on this key.
26 Print Cheque? If there is a slip printer available then
the cheque can be printed.
27 EFT
Used in conjunction with integrated
EFT systems (Commidea, Yespay or
Thyron). See also EFT Control and the
reference manual.
28 Low Amount Limit £
Specified only in £s, no decimal
place. Sales below this value cannot
be finalised on this key.
29 High Amount Limit £
Specified only in £s, no decimal
place. Sales above this value cannot
be finalised on this key.
No Field Description
30 No over tender? Locks the ability to over tender a sale
using the EFT key.
31 ACCOUNT Used to pay by account for
account/prepaid customers.
32 No tender at partial credit?
Stops the system automatically
finalising a sale if there is only
enough credit to cover part of the
transaction.
33 HOTEL TRANSFER
Used in conjunction with a front desk
hotel system to 'post' the sale to the
hotel server.
34 Preset room number Allows the finalise key to be used for
a specific preset room only.
35 Use booking ref?
For Guestline, when set the booking
ref field is used in place of the room
number.
36 CASH2 Identical to the cash key, except use
by clerks can be restricted.
1. In TouchPoint select Program > All Prog > Function Keys > Transaction Key.
Transaction keys are buttons that affect the sale's totals in some way, they hold sales data so that
a report of their usage can be obtained.
No Field Description
1 Descriptor The name associated with the button.
Transaction Keys
All programming, function keys, transaction key fields
No Field Description
2 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
You can force the caption to be
updated by setting this to yes, and
can prevent it being updated by
setting it to no after you have
changed the text in descriptor.
3 Value This is normally only used for
discount and premium keys.
4 Key Type
This specifies the type of transaction
key. There may be different
programming options, dependent on
what type of transaction key has
been allocated.
5 Show reason table
A table can be displayed listing
preset reasons as to why the key has
been pressed, the reasons can be
configured in pgm3 - system
programming - reason table.
6 Print extra ticket with signature strip?
If this transaction key is used at any
time during the sale then an extra
receipt is issued with the signature
strip bottom message at the bottom
of it.
7 Transaction Key Types
8 + AMOUNT Used to increase the current subtotal
by an amount.
9 +%
Used to increase the current subtotal
by a % amount. Additional
programming as -%.
10 - AMOUNT Used to decrease the current
subtotal by an amount.
11 Allow Preset Override? This allows the operator to type in an
amount and press the button.
12 Restrict to One Use Per Sale? Means that the button can only be
used once in any one transaction.
13 Allow Negative Balance?
Means that after use of this key, the
current sale can fall into negative
amount.
No Field Description
14 - % Used to decrease the current
subtotal by a % amount.
15 Discount All Products?
Means that all products are
discounted regardless of the
Selective Item Setting.
16 Discount Selective Itemiser 1 to 5? Will only discount PLUs that are set
to a matching selective itemiser.
17 Allow Preset Override? This allows operator to type in an
amount and press the button.
18 Restrict to One Use Per Sale? Means that the button can only be
used once in any one transaction.
19 Not Allow After an Item? Means that this key can only be used
after pressing subtotal first.
20 Not Allow After ST?
Means that this key can only be used
directly on an item, and not after a
subtotal.
21 Cancel
Used to cancel the entire contents of
the current sale. No additional
programming is required.
22 CHECK TRANSFER
Used for transferring the contents of
the current sale to a check, can also
be used to transfer tables/checks to
checks.
23 Auto new check?
System automatically generates the
next check number if this key is used
without entering a number first.
24 Compulsory Eat In/Take Out?
System will prompt with a list of all
Eat In/Take Out keys found in the
Status Key file if one hasn't already
been used.
25 EFT PREAUTH
Enables cards to be pre-authorised
for for a set amount. (Only available
on Tyro as of 14/08/2019).
26 Preset Amount Sets a defined amount when the key
is pressed.
27 DEPOSIT Used to record deposit amounts into
checks/tables.
28 Preset drawer totaliser When set amounts automatically use
the specified in drawer total.
29 Force drawer 1? Opens cash drawer 1 regardless of
the what the operator is set to.
No Field Description
30 Force drawer 2?
Opens cash drawer 2 regardless of
the what the operator is set to.
If both flags are set then both cash
drawers will be opened, 1 after the
other. If neither flag is set then the
default for the operator is fired.
31 Show reason table? The user is prompted with a reason
table.
32 ERROR CORRECT Used to correct/void items out of the
current sale.
33 Complete Line void? If yes error corrects by line, if no by
item.
34 Show reason table, voids? The user is prompted with a reason
table if this is a void item.
35 Show reason table, last item
correction?
The user is prompted with a reason
table if this is a last item correction
36 EXCHANGE POINTS Used to exchange customer loyalty
points against the current subtotal.
37 Tendered amount is value?
Determines whether what is tendered
into this key is a monetary value or
number of points to use.
38 House Bon Used to sell items for free.
39 Selected item?
Determines whether the key is used
to scroll up through the list to house
bon items, or whether it is pressed
before the item is registered.
40 Show reason table? The user is prompted with a reason
table.
41 Media Exchange Changes 1 media for another at point
of sale. eg Cheque for Cash.
42 Show reason table? The user is prompted with a reason
table.
43 NEW BALANCE Used to store away the currently
open check/table.
44 Compulsory Eat In/Take Out?
System will prompt with a list of all
Eat In/Take Out keys found in the
Status Key file if one hasn't already
been used.
45 NO SALE Opens the cash drawer.
46 Force drawer 1? Opens cash drawer 1 regardless of
the what the operator is set to.
No Field Description
47 Force drawer 2?
Opens cash drawer 2 regardless of
the what the operator is set to.
If both flags are set then both cash
drawers will be opened, 1 after the
other. if neither flag is set then the
default for the operator is fired.
48 PAID OUT Used to record monies paid out of the
till.
49 Preset drawer totaliser When set amounts automatically use
the specified in drawer total.
50 Force drawer 1? Opens cash drawer 1 regardless of
the what the operator is set to.
51 Force drawer 2?
Opens cash drawer 2 regardless of
the what the operator is set to.
If both flags are set then both cash
drawers will be opened, 1 after the
other. if neither flag is set then the
default for the operator is fired.
52 Show reason table? The user is prompted with a reason
table.
53 PAY ACCOUNT Used to increase balances on
account/prepaid customers.
54 Value Specifies a preset value that is used
with this key.
55 Force drawer 1? Opens cash drawer 1 regardless of
the what the operator is set to.
56 Force drawer 2?
Opens cash drawer 2 regardless of
the what the operator is set to.
If both flags are set then both cash
drawers will be opened, 1 after the
other. if neither flag is set then the
default for the operator is fired.
57 POINTS ADJUSTMENT Used to manually alter the number of
points on a customer.
58 Preset points amt
When set to 0 the number of points
this button adjusts is entered
manually when it's used.
59 Adds to points?
When set this button is used to add
points to the customer. When no it
removes points.
60 PRICE CHANGE Used to temporarily change the price
of an item.
61 Allow Increase? This allows the operator to increase
the price of the item.
No Field Description
62 Allow Decrease? This allows the operator to decrease
the price of the item.
63 Show reason table? The user is prompted with a reason
table.
64 RECEIVED ON ACC Used to record monies received to
the till.
65 Preset drawer totaliser When set amounts automatically use
the specified in drawer total.
66 Force drawer 1? Opens cash drawer 1 regardless of
the what the operator is set to.
67 Force drawer 2?
Opens cash drawer 2 regardless of
the what the operator is set to. If
both flags are set then both cash
drawers will be opened, 1 after the
other. if neither flag is set then the
default for the operator is fired.
68 Show reason table? The user is prompted with a reason
table.
69 REASON TABLE Brings up the reason table. See
System programming , Reason Table.
70 Preset Reason Uses a preset reason defined in the
table.
71 REFUND Used for refunding items (not
necessarily in the current sale).
72 Show reason table? The user is prompted with a reason
table.
73 Tips Allows for tips to be added to a fixed
total when pressed in a transaction.
74 Adds to TIPS 2? Allows tips to be separated into 2
Fixed totalisers.
75 Show Reason Table Brings up a dialogue for with the
reason table.
76 Vouchers For use when processing discount
vouchers.
1. In TouchPoint select Program > All Prog > Function Keys > Status Key.
Status Key
No Field Description
1 Status Key Programming
Status keys are buttons that do not
affect the sale's totals, they do not
hold any sales data.
2 Descriptor The name associated with the button.
3 Update Keyboard Text?
When set to yes, any buttons set as
this key will have their captions
updated with the text in the
descriptor field above. This will
automatically change to yes
whenever you change the descriptor
field.
You can force the caption to be
updated by setting this to yes, and
can prevent it being updated by
setting it to no after you have
changed the text in descriptor.
4 Key Type
Specifies what type of status key it is.
There may be different programming
options depending on what status
key type has been allocated.
5 Status Key Types
6 AUTO CLERK
Works like a standard sign on button,
except that the button 'remembers'
the clerk that last signed onto it.
From then onwards it becomes a
preset clerk button for that clerk.
This will remain until a Period 1 Fixed
Total Z report is taken, or the buttons
are cleared in manager mode.
7 Preset Clerk Specify the current clerk on this
button.
8 BATCH REPORT
Used to print a batch report. Can give
a list of reports, or be used as a one
shot report button. Should be put on
the keyboard level for X or Z mode.
9 Preset Batch Report
Specifies a preset batch report for
the button, or a list of reports to
choose from.
10 Prints to display?
When set the report is sent to a
window on the display. It can also be
printed out from here.
All programming, function keys,status key fields
No Field Description
11 BREAK IN
Ends an employee's break (Time &
Attendance). No additional
programming.
12 BREAK OUT
Starts an employee's break (Time &
Attendance). No additional
programming.
13 CREDIT CARD CAPTURE
Used to capture a customer's credit
card details and store them on the
journal.
14 Prompt for customer name?
When set a QWERTY keyboard will
appear allowing you to enter a
customer's name to store against the
credit card.
15 Issue a stub receipt? A stub receipt will also be issued
containing the credit card details.
16 Manual entry only?
When set, the option doesn't appear
to swipe the card.
The credit card capture stores the
card number in the journal text file,
we would not recommend the use of
this key as it is not PCI DSS compliant.
Large fines can result from storing
card information in an unencrypted
form.
17 CASH DECLARE
Can be allocated to the keyboard in
X/Z mode and allows the user to cash
declare in a similar fashion to the non
add key on traditional tills.
18 Draw totaliser Specifies the drawer totaliser that
this declare key is valid for.
19 When no amount entered, open
drawer?
When set the cash drawer will open if
the key is pressed without an amount
being entered.
20 Add to CASH DECLARED fixed tl?
Monies declared through this are
added to the cash declared fixed
totaliser.
21 CASH DECLARE 2
This works in the same way as the
CASH DECLARE key but has the
option for preset cash amount.
This key always goes to in drawer 1.
22 Fixed denomination
Applies a fixed denomination to the
key. This can be used in conjunction
with an entered value or the multiply
key for multiple amounts.
No Field Description
23 When no amount entered, open
drawer?
When set the cash drawer will open if
the key is pressed without an amount
being entered.
24 Enforce multiply key for multiple qty? When set the direct entry of multiple
quantities is not possible
25 Add to CASH DECLARED fixed tl?
Monies declared through this are
added to the cash declared fixed
totaliser total.
26 CATEGORY SHIFT
Used to shift the catagory a selected
or group of PLUs is linked to, for
example a PLU could be sold that is
linked to the starters category then
shifted in the sale to the mains
category.
27 KP Category Predefine the category the PLU will
be shifted to or prompt for category.
28 Next item only?
If selected the shift will apply to the
next PLU sold otherwise the shift will
apply until shifted again or the sale is
finalized.
29 CLEAN SCREEN
Prompts with a numeric keypad
asking for time in seconds, then
displays the screen saver for that
period counting down to enable the
screen to be cleaned without
pressing any buttons. No additional
programming.
30 CLERK CHANGE
Works similar to a sign on key, but
has the functionality that the clerk
can be changed to a different clerk
mid sale, yet still retaining the
current sale.
Typically used in hairdressing
application where more than one
cashier works on a single customer,
so that the commission is distributed
correctly. Also can be used to sign on
a manager mid sale to enable voids
etc. If the button is used without a
clerk on then it works exactly like a
sign on key.
31 Preset Clerk Specify the current clerk on this
button.
32 CLERK FUNCS
Used to perform functions on the
clerks. Should be put on the
keyboard in manager mode. No
additional programming.
No Field Description
33 CLERK NUMBER
Used for signing on to the register,
either as secret number, or a preset
clerk button.
34 Preset CLERK
If set to yes, the button acts as a
secret number sign on button.
Otherwise a preset clerk button.
35 CLOCK IN
Clocks employees in to the system
(Time & Attendance). No additional
programming.
36 CLOCK OUT
Clocks employees out of the system
(Time & Attendance). No additional
programming.
37 CLOSE TILL DOWN Closes the till down. No additional
programming.
38 COVERS
Allows the user to manually enter the
number of covers for the current
sale. No additional programming.
39 CURRENCY EXCHANGE Used prior to tendering to enable
tendering in an alternative currency.
40 Currency Set the currency that the exchange
key is set to operate in.
41 CUSTOMER BIOMETRICS
Allows customers to assign biometric
data to there account so that the
customer can use a fingerprint to
sign on.
42 CUSTOMER CID LOGON
Allows customers to be logged onto
the system based on Caller ID
information sent down to the system
via a device connected to the phone
line. See the ICRTouch Reference
Manual for information on setting this
up. No additional programming.
43 CUSTOMER HOT CARD
Used to lock a customers card so that
it can no longer be used at the tills.
The hot card flag can be
unprogrammed in PGM3 > Customer
Features.
Will prompt for a customer memory
number, but a customer card can be
swiped at this point. No additional
programming.
44 CUSTOMER INQUIRY
Used to print out details of a
customer on the receipt printer. Will
prompt for a customer memory
number, but a customer card can be
swiped at this point.
No Field Description
45 Use 3rd Party Customer Server (Not
ICRTouch)?
When set ICRTouch 'farms' it's loyalty
system out to another 3rd party
piece of software, for example our
own CLS or Instant Loyalty by Fidelity.
46 CUSTOMER NUMBER Used to open a customer, using a
number entered on the keyboard.
47 Use Customer Number (If No, Mem
No)?
Specifies whether the number
entered is from the number field of
the customer, or is the record
number of the customer.
48 Use 3rd Party Customer Server (Not
ICRTouch)?
When set ICRTouch 'farms' it's loyalty
system out to another 3rd party
piece of software, for example our
own CLS or Instant Loyalty by Fidelity.
49 Use search dialog?
When set ICRTouch will display the
customer search dialog instead of a
numeric keypad, fields to search on
are specified in the skin.
50 Preset customer number Sets a preset number on the key, for
preset customer number buttons.
51 CUSTOMER TRANSFER
Used to transfer the entire contents
of one customer into another,
including name, balance etc. Will
prompt for a customer memory
number to transfer from and to, a
customer card could be swiped at
these points. No additional
programming.
52 DATA BACKUP/RESTORE
Used to back up or restore program
data to/from removable storage,
backup area or programmable area.
Also used for uploading the graphic
logo, screen saver images, fonts etc.
Should be put on the keyboard in
manager mode.
53 Data Backup? Specifies that the button will allow
the user to backup data.
54 Data Restore? Specifies that the button will allow
the user to restore data.
55 Floppy Drive? Specifies that the button will backup
to the floppy drive.
56 Data Back Area? Specifies that the button will backup
to the backup area.
No Field Description
57 PGM3 Programmable Area?
Specifies that the button will backup
to the programmable area, System
Programming > System Flags >
Comms Control.
If multiple items are tagged, then the
button will prompt the user for a
choice.
58 DEFER
Used to recall a choice on a deferred
set menu item. No additional
programming.
59 DOWN LOAD GRAPHIC LOGO
Used to send the graphic logo to the
receipt printer. Should be put on the
keyboard in manager mode.
No additional programming.
60 EAT IN/TAKE OUT
Sets the sale to be 'Eat In' or 'Take
Out'. This can be used to affect tax
calculation, price level and adds the
description of the button to the order
information at the top of receipts and
KP tickets.
61 Exempts Tax 1-5?
When set, it stops any tax
calculations for this sale for the
flagged tax rates. Tax is calculated at
the end of the sale so the key can be
used at any time during the sale and
it will still take effect.
62 Shift tax rates?
When used shifts the tax rates up by
5. For example all tax rate 1 items
become tax rate 6. Non taxable items
remain non taxable.
63 * Change to price level
Selects a price level to change to
when the key is used. Price levels
only take affect after they've been
used, all items registered before the
use of the key will be at their original
price level.
64 EDIT CHECK TEXT Used to change text/name held
against a check or table.
65 EDIT CUSTOMER
Allows some of the customer's details
to be edited at point of sale. No
additional programming.
66 EDIT FLOOR PLAN
Used to edit the layout of tables in
the floor plan. Should be put on the
keyboard in manager mode. No
additional programming.
No Field Description
67 ESCAPE
Will drop back to the previously
selected menu level. No additional
programming.
68 EURO SHIFT
Pressed before using a tender key
means that the amount to be
tendered is in EUROs(sub). No
additional programming.
69 FIDELITY LOYALTY CARD
For use with Fidelity Total Control for
recording customer transactions on
the audit trail. This is not for use with
Fidelity Instant Loyalty which uses
the 3rd Party Customer Server.
70 FLOOR PLAN
Used to switch over to the floor plan
for open tables. No additional
programming.
71 Gift Receipt
Allows a receipt to be printed that
has no sales values on it, the receipt
can later be recalled if required with
the values on (TouchOffice Web
required).
72 Item Consolidation? Consolidates all items of the same
type in the receipt.
73 Sort by Group? The receipt will be printed in group
link order.
74 Sort by Dept? The receipt will be printed in dept
link order.
75 Sort with Totals Only?
When sorted by dept or group, only
the group/dept totals will print, with
no details of individual items.
76 Allow intermediate receipt printing? Allows printing of an intermediate
receipt whilst in the middle of a sale
77 Use receipt printer 2?
When set receipts/bills will be printed
from the device connected to receipt
printer 2 in device connections.
78 GLOBAL EAT IN/TAKE OUT Presets a current eat in take out
setting as default for all new sales.
79 Show current eat in/take out record? When set the current eat in take out
is displayed on the button text.
80 GO DUTCH BILL PRINT Used to print customer bills on a slip
printer.
No Field Description
81 Always prompt for number of bills?
When set, a numeric keypad prompts
the user for the number of bills every
time,
otherwise if the number of covers is
set, then this is used for the number
of bills.
82 * Item Consolidation? Consolidates all multiple items on the
slip.
83 * Sort by Group? The slip will be printed in group link
order.
84 * Sort by Dept? The slip will be printed in department
link order.
85 * Sort with Totals Only? When sorted by dept or group, only
the totals will print, with no detail.
86 * Print Date/Time Separator?
Will print the date and time of a
transaction before each section of
detail.
Cannot be used with item
consolidation, or dept/group sort.
87 * Print Additional Item Only? The slip printer will add items to the
bottom of previously printed slips.
88 HOME MODE Changes the register to the home
mode. No additional programming.
89 INLINE BATCH REPORT
Used to print a consolidated batch
report across a network. Can give a
list of reports, or be used as a one
shot report button. Should be put on
the keyboard level for X or Z mode.
90 Preset Batch Report
Specifies a preset batch report for
the button, or that you get a list of
reports to choose from.
91 Report is inline collection? When set the sales data for each till
is collected and printed individually.
92 Report is inline consolidation?
When set the sales data for each till
is collected and then added together
and printed out as one report.
If neither flag is set the report is
consolidation. If both flags are set
then an individual report is printed
out followed by a consolidated report.
93 Prints to display?
When set the report is sent to a
window on the display. It can also be
printed out from here.
No Field Description
94 Report for this location only?
When set the inline report will only
run for the location that this till is in,
as set in system configuration.
95 Report all locations?
When set the inline report will run all
locations in the system. If both these
2 flags are set, then this one will take
precedence. If neither flag is set, and
there are multiple locations in the
system then the till will prompt the
user for a location.
96 Do not print XZ Counter summary on
Report?
When set report summary
information will not be printed on
report, summary information includes
report count, the last time the report
was run as an X and Z and the last
reset time.
97 Do not print XZ Counter summary on
journal?
When set report summary
information will not be printed on the
journal, summary information
includes report count, the last time
the report was run as an X and Z and
the last reset time.
98 INLINE FUNCTIONS
Contains functions such as IRC
Initialise, check busy reset etc.
Should be put on the keyboard in
Manager Mode. No additional
programming.
99
INLINE PERIOD 1 REPORTS
INLINE PERIOD 2 REPORTS
INLINE PERIOD 3 REPORTS
Used to print a consolidated period
1/2/3 report across a network. Can
give a list of reports, or be used as a
one shot report button. Should be put
on the keyboard level for X or Z
mode.
99 Preset Report
Specifies a preset report for the
button, or that you get a list of
reports to choose from.
100 Report is inline collection? When set the sales data for each till
is collected and printed individually.
101 Report is inline consolidation?
When set the sales data for each till
is collected and then added together
and printed out as one report.
If neither flag is set the report is
consolidation. If both flags are set
then an individual report is printed
out followed by a consolidated report.
102 Prompt for Department Range?
If PLU reports are printed then the
system will prompt for a starting and
ending department range.
No Field Description
103 Prompt for PLU Group Range?
If PLU reports are printed then the
system will prompt for a starting and
ending department range.
104 Prints to display?
When set the report is sent to a
window on the display. It can also be
printed out from here.
105 Report for this location only?
When set the inline report will only
run for the location that this till is in,
as set in system configuration.
106 Report all locations?
When set the inline report will run all
locations in the system. If both these
2 flags are set, then this one will take
precedence.
If neither flag is set, and there are
multiple locations in the system then
the till will prompt the user for a
location.
107 LAUNCH BATCH FILE
Launches a batch file. Batch files are
stored in the batch sub folder of
ICRtouch and should be in the format
batchXX.bat where XX represents the
batch file number, eg batch01.bat
108 Batch file number Number used to identify the batch
file in the batch folder.
109 Wait until completion Control is not returned to the user
until the batch file finishes.
110 Launch as minimized Hides the batch file whilst it is
running.
111 LIST PLU Used for putting drop down windows
directly onto the keyboard.
112 Drop Down Window Link Specifies which drop down window is
allocated to this button.
113 Window stays down until ESC
When set the window will stay on
screen until the ESC button is
pressed.
114 LOCATION
Used to manually set or alter the
customer seating location. No
additional programming.
115 LOCK TERMINAL
Locks the terminal, to unlock enter
the unlock password - this is
configured in System Flags
Passwords. No additional
programming.
116 MANAGER FUNCTIONS Changes the register to manager
mode. No additional programming.
No Field Description
117 MENU LEVEL SHIFT Used to switch between menu levels.
118 Level Shift Specify which menu level the button
switches to.
119 Subtotal after shift?
Shows the subtotal immediately after
the shift. This is useful for payment
screens.
120 MENU LEVEL SHIFT 2
Identical to Menu Level Shift, except
that is can be disabled under clerk
control.
121 MINIMIZE ICRTOUCH
Minimizes ICRTouch to the task bar
so that other applications can be run
in Windows. No additional
programming.
122 MULTIPLY Used for registering multiples of an
item.
123 Print on rct/jrnl?
When set prints the multiplier
including the @ price on a separate
line on the receipt and journal.
124 NEW CHECK
Used to open a new check only, ie
will not open an existing check. No
additional programming.
125 Auto new check?
When set, if the check number is
pressed without a number being
entered, the next available check
number is automatically generated
by the check master.
126 Do not allow numeric entry?
Can only be used in conjunction with
the auto new check key, but means a
check cannot be generated by keying
in a number.
127 NEW/OLD CHECK
Used to open a checks, whether they
are already opened or not. No
additional programming.
128 Opens Tables? When set to Yes, tables rather than
checks will be opened.
129 Auto new check?
When set, if the check number is
pressed without a number being
entered, the next available check
number is automatically generated
by the check master.
No Field Description
130 NON-ADD NUMBER (#)
Prints a non-add number on the
receipt/KP.
Allow alpha-numeric
numbers?
Numbers containing
letters can be used.
Print on Customer
Receipt?
When set, the message
will print on the
customer's receipt.
Print on KP1 to KP8?
Specifies which KPs the
message should print on.
Print in Red on KPs?
When set, then message
will appear in red when
printed on a KP.
Treat as condiment ?
Specifies whether the text
message should take its
KP\KV settings from the
item rung in above it. Also
behaviour of the parent
PLU with regards to
consolidation and sorting.
131 OLD CHECK Used to open an existing check only.
No additional programming.
No Field Description
132 ORDER NUMBER
Used to manually enter an order
number, generates number if none is
supplied on press.
Generate next order
number?
When pressed without
numeric entry the system
automatically generates
the next available order
number.
PERIOD 1 REPORTS
PERIOD 2 REPORTS
PERIOD 3 REPORTS
Used to print a period
1/2/3 report. Can give a
list of reports, or be used
as a one shot report
button. Should be put on
the keyboard level for X
or Z mode.
Preset Report
Specifies a preset report
for the button, or a list of
reports to choose from.
Prompt for Department
Range?
If PLU reports are printed
then the system will
prompt for a starting and
ending department range.
Prompt for PLU Group
Range?
If PLU reports are printed
then the system will
prompt for a starting and
ending department range.
Prints to display?
When set the report is
sent to a window on the
display. It can also be
printed out from here.
No Field Description
133 Play Macro
TouchPoint allows for the recording
of keystrokes to be used from within
Etal or from the play macro status
key.
Number
When recording a macro
you are prompted for a
file name, if you want to
play the macro back from
the play macro key then
enter a number as the file
name, this number is then
entered here.
134 PLU GROUP SEARCH
Displays a list of PLUs linked to a
group, which can be selected from
here.
Linked Group to Search On
Either specify a group
that is to be searched, or
allow the user to select
one when the button is
pressed.
Alphabetical Order
When selected the list is
displayed in alphabetical
order, otherwise it is
displayed in record
number order.
135 PLU NOTES INQUIRY
Displays notes linked with the PLU,
see the reference manual for more
information on setting up PLU notes.
No additional programming. See the
ICRTouch reference manual for more
information on using this function.
No Field Description
136 PLU NUMBER
Used to register PLUs, bin numbers
and scanned items by number.
Use Random Codes (If No,
Mem No)?
Specifies whether the
number entered is from
the random code field of
the PLU, or is the record
number of the PLU.
Use search dialog?
When set ICRTouch will
display the PLU search
dialog instead of a
numeric keypad, fields to
search on are specified in
the skin.
137 PLU PICTURE INQUIRY
Displays a picture linked with the
PLU, see the reference manual for
more information on setting up PLU
pictures.
No additional programming. See the
ICRTouch reference manual for more
information on using this function.
138 Plus Item
When in sales mode an item can be
selected in the reg window, pressing
this key will add an additional item to
the sale.
No Field Description
139 PRESET MESSAGE
Used to print preset messages
(preset messages are programmable
in program 2) on printers, or send
emails to other terminals.
Print on Customer
Receipt?
When set, the message
will print on the
customer's receipt.
Send Message to
Terminals?
When set, the message
will be sent as a pop-up
'email' to other terminals.
Print on KP1 to KP8?
Specifies which KPs the
message should print on.
Print in Red on KPs?
When set, then message
will appear in red when
printed on a KP.
Print on KV1 to KV2?
Specifies which Kitchen
Videos the message
should print on.
Treat as condiment?
Specifies whether the text
message should take its
settings from the item
rung in above it.
140 PRICE INQUIRY
Used to display the price of the next
registered PLU without actually
ringing it in. No additional
programming.
No Field Description
141 PRICE LEVEL CHANGE
Used to manually change the current
price level.
Price Level
Specifies a preset price
level.
Affects current sale only?
Price level affects only the
current clerks sale and
drops back afterwards.
Show current price level
on KB text?
Replaces the button text
with the current price
level name.
142 PRICE SHIFT
Used to shift the price to a different
@ price.
Price Shift
Specify which @ price to
shift to.
143 PROGRAM MODE
Changes the register to one of the
programming modes. No additional
programming.
144 RECEIPT ON/OFF
Toggles the status of the receipt
switch on or off. No additional
programming.
No Field Description
145 RECEIPT PRINT
Item Consolidation?
Consolidates all items of
the same type in the
receipt.
Sort by Group?
The receipt will be printed
in group link order.
Sort by Dept?
The receipt will be printed
in dept link order.
Sort with Totals Only?
When sorted by dept or
group, only the
group/dept totals will
print, with no details of
individual items.
Print Date/Time Separator?
Only used with check
tracking bills. Will print
the date and time of a
transaction before each
section of detail. Cannot
be used with item
consolidation, or sort by
group/dept.
Bill prints only?
If the receipt print key is
used without prior
numeric entry then the
user is prompted with a
numeric keypad.
Allows printing of an
intermediate receipt
whilst in the middle of a
sale.
Reprints last EFT receipt?
When EFT receipts are
being printed from
ICRTouch, this will reprint
the last one issued.
Use receipt printer 2?
When set receipts/bills
will be printed from the
device connected to
receipt printer 2 in device
connections.
Automatically printed
receipts/bills in ICRTouch
No Field Description
146 RECEIVE PROGRAM
Used to receive program information
from another terminal across a
network.
Should be put on the keyboard in
manager mode. No additional
programming.
147 REFUND MODE Changes the register to refund mode.
No additional programming.
148 REG MODE Changes the register to register
mode. No additional programming.
149 REGWIN DOWN ARROW Down arrow for the register window.
No additional programming.
150 REGWIN UP ARROW Up arrow for the register window. No
additional programming.
151 REMOTE JOURNAL VIEW
Allows the user to view the electronic
of another till in the system as it's
created. No additional programming.
152 RESUME Restores a previously suspended
sale. No additional programming.
153 Run Script (Etal)
The run script key is used in
conjunction with Etal script to trigger
the script or events in the script.
Number
This is the number that
will be specified in the
script, ie the script will
run when run script key
10 is pressed.
Value
The value set here can be
passed to the script,
multiple run script keys
can be set with the same
number value passing
different values to the
script.
Flag 1-15
These set bits in the flags
field on the key, this can
be accessed by the script
for further configuration
options.
No Field Description
154 SALE ITEM LIST IMPORT
Imports a list of PLUs to be sold from
a text file. See the reference manual
for more information on this
function.
Item list number
Reference number used
to match the file name.
Use programmed dir
location?
Uses the programmed
location in Comms Control
otherwise used the
ICRTouch\SaleItemList
folder.
Delete file after use?
When set the file is
deleted after it has been
processed.
155 SEAT NUMBER
Seat numbers can be allocated
during an order for the items in it,
this can then set to be sorted on the
KP print by seat.
Preset seat:
A preset seat value can
be set on the, when set
you will not be prompted
for a seat number.
156 SEND PROGRAM
Used to send program information to
other terminals across a network.
Should be put on the keyboard in
manager mode. No additional
programming.
No Field Description
157 SEND TO KP NOW
Allows you to push items in the reg
window to the KPs mid sale.
Print on KP1 to KP8?
Specifies which KPs the
items are printed on (the
PLU has to be flagged for
the KP as well).
Print on KV1 - KV2?
Specifies which KVs the
items are printed on (the
PLU has to be flagged for
the KV as well).
158 SERVICE CHARGE
Deals with service charge and checks.
Removes Service Charge?
When set the key
removes the service
charge from a check/table.
Sets Service Charge?
When set the key sets the
service charge from a
check/table.
When both flags are set
the key toggles service
charge on a check/table.
If neither are set then the
key acts as a Remove
Service Charge key.
Allow override amount
entry?
Allows you to key an
amount as the service
charge. If only this flag is
set and no amount is
entered then the user will
be prompted with a
numeric keypad dialog.
159 SET MENU SHIFT
Shifts the current set menu selected
to the next set menu (must be
sequential).Typically used for
changing 2 course to 3 course meals.
160 SIGN OFF BUTTON When pressed signs off the current
clerk. No additional programming.
No Field Description
161 SLIP PRINT
Used to print customer bills on a slip
printer.
Item Consolidation?
Consolidates all multiple
items on the slip.
Sort by Group?
The slip will be printed in
group link order.
Sort by Dept?
The slip will be printed in
department link order.
Sort with Totals Only?
When sorted by dept or
group, only the totals will
print, with no detail.
Print Date/Time Separator?
Will print the date and
time of a transaction
before each section of
detail. Cannot be used
with item consolidation,
or dept/group sort.
Print Additional Item Only?
The slip printer will add
items to the bottom of
previously printed slips
162 SPLIT CHECK
Used to split items out of a check, to
be cashed off separately. No
additional programming.
163 SPLIT ITEM
Equally splits the selected item in the
registration buffer into the number
specified.
For example, splitting a single item in
4 would result in 4 items with a
quantity of 0.25 and the price divided
by 4. No additional programming.
No Field Description
164 STOCK ENQUIRY
Used to display the current stock of
the next registered PLU without
actually ringing it in. Applies to
TouchPoint stock only, not
TouchOffice. No additional
programming.
165 SUBTOTAL
Shows the current sale subtotal.
Print on receipt?
When set, each time the
subtotal button is pressed
it is printed on the receipt.
Includes Service Charge?
When set, the subtotal
that is displayed includes
any service charge that is
to be applied.
Subtotal is EURO(sub)?
When set, the subtotal
that is displayed is in the
sub currency.
Toggles between
EURO(sub) and local?
When pressed the
subtotal is initially the
local subtotal, if it is
pressed again, the
subtotal shown will be in
the sub currency.
166 SUSPEND
Temporarily stores the current sale in
an interrupt buffer to be picked up
later, is used for suspending EFT. No
additional programming.
167 TABLE RESERVATION Calls up the table reservation screen.
No Field Description
168 TAKE OUT
Sets the sale to be 'Eat In' or 'Take
Out'. This can be used to affect tax
calculation, price level and adds the
description of the button to the order
information at the top of receipts and
KP tickets.
Exempts Tax 1-5?
When set, it stops any tax
calculations for this sale
for the flagged tax rates.
Tax is calculated at the
end of the sale so the key
can be used at any time
during the sale and it will
still take affect.
Shift tax rates?
When used shifts the tax
rates up by 5. For
example all tax rate 1
items become tax rate 6.
Non taxable items remain
non taxable.
Change to price level
Selects a price level to
change to when the key is
used. Price levels only
take affect after they've
been used, all items
registered before the use
of the key will be at their
original price level.
169 TAX
Used in conjunction with manual tax
and enables the Tax calculation for
this sale. No additional programming.
No Field Description
170 TEXT MESSAGE
Used to print messages on printers,
or send emails to other terminals.
Print on Customer
Receipt?
When set, the message
will print on the
customer's receipt.
Send Message to
Terminals?
When set, the message
will be sent as a pop-up
'email' to other terminals.
Print on KP1 to KP8?
Specifies which KPs the
message should print on.
Print in Red on KPs?
When set, then message
will appear in red when
printed on a KP.
Print on KV1 to KV2?
Specifies which Kitchen
Video's the message
should print on.
Treat as condiment ?
Specifies whether the text
message should take its
KP\KV settings from the
item rung in above it. Also
behaviour of the parent
PLU with regards to
consolidation and sorting.
171 VALIDATION PRINT
Prints a validation line for the last
item, sale etc on the slip printer. No
additional programming.
172 VIEW ACTIVE CLERKS
When pressed lists all of the clerks
that are currently in the middle of a
sale. Listed clerks can be signed on
from here. No additional
programming.
No Field Description
173 VIEW CUSTOMER DETAIL
Allows viewing of the individual
customer electronic journal.
For signed on customer
only?
When set the journal can
only be viewed for the
customer that is logged
on. When not set the
system will prompt for
entry of a customer to be
viewed.
174 VIEW JOURNAL
Allows the user to scroll through the
electronic journal.
View for Signed On Clerk
Only
Shows only the journal for
the sales of the clerk that
is currently signed on.
175 VIEW OPEN CHECKS
When pressed lists all checks that are
currently open.
Allowed to open check?
If set checks can be
opened from list.
Show only this clerk's
checks?
The list is propagated
with checks for the clerk
that pressed the button.
Show check file (1-4)?
Selects the check file to
be used, one of which
must be selected.
No Field Description
176 VIEW PAID CHECKS
When pressed a list of all cashed off
bills for tables and checks will be
displayed, these can then be
displayed in detail and reprinted.
This feature will also need to be
enabled in program 3 - system
programming - system flags - check
tracking “Store finalised bills?”
This feature is only available on the
check master.
177 VIEW RECEIPTS
When pressed a list of all cashed off
receipts will be displayed, these can
then be displayed in detail and
reprinted.
This feature will also need to be
enabled in program 3 - system
programming - system flags - Print
Control “Store receipts?”
178 VIEW REPORTS
When pressed a list of all end of day
reports will be displayed, these can
then be displayed in detail and
reprinted.
This feature will also need to be
enabled in program 3 - system
programming - system flags - Report
Control “Store reports?”
179 VIEW WEBSALES
When pressed a list of all web sales
displayed, these can then be
displayed in detail and reprinted. This
is used in conjunction with a valid
web shop service.
180 WEIGHT
Used for manually registering
weights for weight PLUs.
Get weight from scale?
When set, if you press this
key the weight will be set
from the scale. When not
set you’ll be prompted
with a dialog.
181 X/ZMODE Changes the register to X or Z mode.
No additional programming.
0 - No drawer connected
1 - AdvanPos CM-5220
2 - Aures 1000 (B77)
3 - Aures Nino
4 - Aures Sango
5 - Aures Yuno
6 - Bleep TS650
7 - Bleep TS750
8 - Bleep TS910/TS915
9 - BSmart POS515 (POS50)
10 - Casio QT7000
11 - Casio QT7000
12 - Cielo AP-3615
13 - Clover VT1000
14 - Datavan 715/815
15 - Device on COM1
16 - Device on COM2
17 - Device on COM3
18 - Device on COM4
19 - Device on COM5
20 - Device on COM6
21 - Device on COM7
22 - Device on COM8
23 - Digipos A100
24 - Digipos A300
25 - Digipos A500
26 - EBN SolidPOS 70
Cash drawer devices
27 - EBN Xpos 72
28 - EBN Xpos 755
29 - EBN Xpos 75P
30 - EBN XPos 852
31 - Firich (3730)
32 - Firich (4710)
33 - Firich Gladius (3720)
34 - Firich MP2410 (DAC-BT05)
35 - Firich MP3435 (FH-5251)
36 - Firich MP3525 (FEB7100)
37 - Firich PP9635 (MNJ1901)
38 - Firich RP3100 (FEB7000)
39 - Firich RP3500 (c400/c650)
40 - Firich RP3600
41 - Firich TS600 (c400/c650)
42 - Firich TS700 (4720)
43 - Firich TS800 (3710)
44 - Flexpos
45 - Flexpos 2
46 - Flytech POS300
47 - Flytech POS335/350
48 - Flytech POS880
49 - ForPOS Phoenix
50 - Frontier
51 - Hanasis HS-FLS10
52 - Hanasis HS-S01
53 - IBM SurePOS 500
54 - ICRTouch Compak
55 - ICRTouch Local POS Drivr
56 - ICRTouch POS Device
57 - ICRTouch USB Drwr
58 - J2 225
59 - J2 240
60 - J2 500ex
61 - J2 580 (B78)
62 - J2 615
63 - J2 650
64 - J2 680
65 - J2/Aures 1000
66 - Jarltech TouchPOS
67 - Javelin Series
68 - Monitor 1200A
69 - N&P NP3000
70 - NCR RealPOS 20
71 - OPOS
72 - Oxhoo Onix 190E
73 - P2C C-100
74 - Panasonic JS-170FR
75 - Panasonic JS-790WS
76 - Panasonic JS-930WS
77 - Panasonic JS-950WS
78 - Panasonic JS-950
79 - PartnerTech PT-6200
80 - PartnerTech PT-6212
81 - PartnerTech PT-6900/8800
82 - PartnerTech PT-6910
83 - PartnerTech PT-9150
84 - PartnerTech PT-3000
85 - PartnerTech PT-4000
86 - PartnerTech PT-6315
87 - PartnerTech SP600
88 - PartnerTech SP800
89 - PartnerTech SP850
90 - PioneerPOS CORE-87
91 - Poindus Posinno 550/550P
92 - Poindus VariPOS 715
93 - Poindus VariPOS 715S
94 - POSLab Desire-POS (D52)
95 - POSLigne Galeo
96 - Protech PA-6223
97 - Protech PS-3100
98 - Protech PS3120
99 - Protech PS-6508
100 - Protech PS-8851A
101 - Receipt Printer
102 - Sable DT-150
103 - SAM4S SPT-3000
104 - SAM4S TITAN 150/160
105 - SBV-TWO / Ejeton E915
106 - Sigma i700
107 - Tatung RobotPOS COM5/
108 - TEC A-10
109 - TECC-10
110 - TEC ST-60
111 - TEC ST-71
112 - Touch Terminals TT5000
113 - TouchPOS TP-5700
114 - TPOS Wedge
115 - Tysso POS-1000
116 - USB - MS Cash Drawer
117 - USB - Posiflex Cash Drawer
118 - Vectis 6000
119 - WinTech AnyPOS 500
120 - XN711
1. In TouchPoint select Program > Texts.
Texts programming
Texts
Text programming illustration
This allows the PLU text to be changed without being able to alter any other PLU programming.
1. In TouchPoint select Program > Texts > PLU Descriptor.
No Field Description
1 Descriptor PLU name.
2 Update Keyboard Text?
3 Alt Text
This allows the clerk text to be changed without being able to alter any other clerk programming.
1. In TouchPoint select Program > Texts > Clerk Names
No Field Description
1 Descriptor Clerk name.
1. In TouchPoint select Program > Texts > Scrolling Messages
Allows you to change the advertising messages that scroll across the customer display
unit.
PLU descriptor
Texts, PLU descriptor fields
Clerk names
Texts, clerk names fields
Scrolling messages
During periods of inactivity, the touch screen scrolls advertising messages across the
operator and customer displays. These are programmed here.
Each message consists of 2 lines of 50 characters. If the first line of 50 characters is full,
then the 2nd line is added to it when the message is displayed.
Texts, scrolling message illustration
No Field Description
1 Message 1
User definable
error messages
can be changed
here.
2 Message 2
3 Message 3
4 Message 4
5 Message 5
6 Message 6
7 Pole Display Message ->
This message can
be up to 24
characters,
depending on the
type of customer
display.
This message is
shown on the
bottom line of the
customer display
while messages
are scrolled on the
top line.
8 Till Closed Message ->
1. In TouchPoint select Program > Texts > Logos.
All receipt and slip messages are programmed from here, they are all a maximum of 40 characters.
Texts, scrolling message fields
Logos
Texts, logos illustration
No Field Description
1 Receipt Header
This text appears at the top of
receipts & slips, just under the
graphic logo.
2 Receipt Commercial Message
This appears at the top of receipts &
slips just under the receipt header
message.
3 Receipt Bottom Message This appears at the bottom of
receipts & slips.
4 EFT Docket Header This appears at the top of EFT slips,
site information MUST be set in here.
5 EFT Docket Bottom Message, Store
Copy
This appears at the bottom of EFT
slips, for the slip that is retained by
the store. This MUST have the
declaration “Please Debit My Account
As Shown”, and MUST also have a
signature line.
6 EFT Docket Bottom Message,
Customer Copy
This appears at the bottom of EFT
slips, for the slip that is given to the
customer, this MUST have the
declaration “Please Debit My Account
As Shown”, and MUST also have
“Please Keep This Copy For Your
Records”.
7 Report Header When selected to print, this appears
at the top of all reports.
8 Signature Strip
Prints at the bottom receipts when an
extra receipt is issued with signature
strip, see finalise and transaction key
programming.
9 VAT Number
Single line VAT number that prints at
the bottom of receipts and finalised
bills.
These are the user definable error messages. All a maximum of 24 characters long.
1. In TouchPoint select Program > Texts > Error message.
Texts, logos fields
Error messages 1 & 2
Texts, error message illustration
No Field Description
1 Sign on first Transaction attempted without a
clerk being signed on.
2 No Such Clerk Attempt to sign on with a secret
number that doesn't exist.
3 MisoperationZ General Misoperation Error.
4 Print Buff Empty Attempt to print a receipt without
one being available.
5 REG Mode Only Attempt to use a function that can
only be used in REG Mode.
6 X or Z Mode Only Attempt to use a function that can
only be used in X or Z Mode.
7 Sign Off First Attempt to got to Home Mode whilst
in the middle of a sale.
8 No Int. Buff Avail
Attempt to perform clerk interrupt,
but there are too many clerks with
sales open.
9 Close Drawer Attempt to use the register with the
drawer open.
10 Minimum Stock The product has reached it's
minimum stock level.
11 Customer Not Found
A customer number has been
entered using a customer key that
does not exist.
12 Zero Price The item registered has no preset
price.
13 Inhibit Open Amt You have tried overriding a price on a
preset item.
14 Split Tendering Inhibited The finalise key is inhibited against
partial tendering.
15 Mode Operation Inhibited The Clerk is not allowed to sign on in
the currently selected mode.
16 Operation Inhibited The Clerk is not allowed to use that
function.
17 IDC File Near End Too many items have been
registered - finalise the sale.
18 Reg Buffer Near End Too many items have been
registered - finalise the sale.
19 Receipt Buffer Near End Too many items have been
registered - finalise the sale.
Texts, error message fields
No Field Description
20 Multiple Refunds Inhibited
More than one refund mode
operation has been attempted, come
out of refund mode, then go back
again to attempt a 2nd one.
21 Print Buffer Full.
22 Printer Error Check the RJ Printer.
23 No Customer Attempt to use a customer specific
function without a customer on.
24 Check Not Open An Old Check function used to open a
check that doesn't exist.
25 Too Many Checks There are too many checks open.
26 No Check Open An attempt to New Balance a sale,
without a check being open.
27 Check Already Open An attempt to open a check, when
one is already open.
28 Check No. Busy The selected check is in use
somewhere else.
29 No Active Clerks The active clerks list has been used,
none are active.
30 Opened by another clerk The selected check has been opened
by another clerk.
31 Invalid iButton The iButton is not allocated against a
clerk.
32 Invalid Magcard
The magnetic card that has been
swiped has not been recognised by
the system.
33 No Points Available An attempt to exchange loyalty
points has failed.
34 PLU not Found PLU Registered/Scanned that doesn't
exist.
35 Enforced Subtotal You must press Subtotal before
finalising your sale.
36 Enforced Amt Tendered You must enter the tender amount
before pressing the finalise key.
37 Amount Tendering Inhibited You cannot tender an amount with
that button.
38 Partial Tendering Inhibited You cannot tender less than the sale
amount with this button.
No Field Description
39 Insufficient Credit Not enough credit on the customer's
account for the purchase.
40 Not Account Customer Attempt to use an account specific
button, without an account customer.
41 Hot Card The card is flagged as blacklisted.
42 No linked PLUs A product search was attempted with
a group that has no PLUs linked to it.
43 Under Value Limit An attempt to finalise a sale that
uses a preset lower limit.
44 Over Value Limit An attempt to finalise a sale that
uses a preset upper limit.
45 Finalise Sale An attempt to go to HOME mode
whilst in the middle of a transaction.
46 Wrong Mode
A Clerk has signed on in a different
mode. They have a sale active in
another.
47 Clerk is Busy The clerk is in use on another
terminal.
48 No Weight Registered An attempt to use a weight PLU
without first registering a weight.
49 Manual Weight Entry Inhibited Manual (keyed) entry of weight is not
allowed with this PLU.
50 Compulsory Check A check or table number must be
entered before you can continue.
51 Table does not exist Applies only to the hand held means
table is not on floor plan.
52 Outside Time Zone Applies to school meals customer
loyalty.
53 NOT CLOCKED IN
The employee is not clocked in and
required to be to perform the
operation that you are attempting.
54 ALREADY CLOCKED
You are attempting to clock and
employee in that is already clocked
in.
55 NOT ON BREAK You are attempting to end the break
of an employee that isn't on a break.
56 ON BREAK The employee is currently on a
break, this must be ended first.
57 FILE NEAR END The file is nearly full.
No Field Description
58 FILE FULL The file is full.
59 CUSTOMER RESTRICTION You cannot sell this item to this
customer, eg nut allergies.
60 COMP EAT IN/TAKE OUT You must select Eat In or Take Out
before proceeding.
61 OVER ACC USAGE LIMIT You have gone over the spend limit
for this customer.
62 INVALID OR NO WEIGHT The weight entered or weighed is
either invalid or 0.
63 COMM TIMEOUT Timed out during communications.
64 COMM ERROR An error has occurred during
communications.
65 WEIGHT NOT CHANGED
The weight on the scale has not
changed since the last item was
weighed.
66 NO WEIGHT KEY PGMD No weight key exists in the status
key file.
67 Expired
The customer being signed on has
expired, check expiry date pgm3 -
customers - customer features.
68 Manager Duplicates Only
Error when a duplicate bill is trying to
be printed and 'Only managers can
print duplicate bills is set.
69 Invalid Tax ID (clerk) Fiscal.
70 No Tax Rate Error when enforced tax rate is set.
71 Invalid Tax ID (terminal) Fiscal.
Contained in here is user definable text that is used in places such as 2nd @ prices, price level
names etc.
1. In TouchPoint select Program > Texts > Fixed Character.
Fixed character 1 & 2
Texts, fixed character illustration
No Field Description
1 Half Insertion Descriptor for 2nd @ Price.
2 Dbl Insertion Descriptor for 3rd @ Price.
3 Receipt Printer 1st Device Name for Bottom Status
Bar.
4 Serial 2 2nd Device Name for Bottom Status
Bar.
5 Serial 3 3rd Device Name for Bottom Status
Bar.
6 Currency Symbols Local currency (4), Sub currency (4),
Currency Exchange 1 to 4 (4 each).
7 Currency Symbols Currency Exchange 5 to 10.
8 REG Mode name for REG Mode.
9 REFUND Mode name for REFUND Mode.
10 X1 Mode name for XMode.
11 Z1 Mode name for Z Mode.
12 MANAGER Mode name for Manager Mode.
13 HOME Mode name for Home Mode.
14 PROGRAM 1 Mode name for Program Mode 1.
15 PROGRAM 2 Mode name for Program Mode 2.
16 PROGRAM 3 Mode name for Program Mode 3.
17 PROGRAM 4 Mode name for Program Mode 4.
18 PROGRAM 5 Mode name for Program Mode 5.
19 PROGRAM 6 Mode name for Program Mode 6.
20 PROGRAM 7 Not used.
21 Service Not Used.
Texts, fixed character fields
No Field Description
22 Std Prices Name for Price Level 1.
23 Price 2 Name for Price Level 2.
24 Price 3 Name for Price Level 3.
25 Price 4 Name for Price Level 4.
26 Price 5 Name for Price Level 5.
27 Price 6 Name for Price Level 6.
28 Price 7 Name for Price Level 7.
29 Price 8 Name for Price Level 8.
30 Price 9 Name for Price Level 9.
31 Location 1 Descriptive name for Terminal
Location 1.
32 Location 2 Descriptive name for Terminal
Location 2.
33 Location 3 Descriptive name for Terminal
Location 3.
34 Location 4 Descriptive name for Terminal
Location 4.
35 Location 5 Descriptive name for Terminal
Location 5.
36 Location 6 Descriptive name for Terminal
Location 6.
37 Seating Location 1 Text for KP Location print.
...
56 Seating Location 20.
57 Misc Symbols 1
Weight symbol (4) Training mode *
symbol.
Note: Since v80.08 a Training Mode
symbol of a Space or a Null will be
replaced with a * upon restart.
58 Check 1 No Text for Check No.
No Field Description
59 Check 2 No Text for Table No.
60 Check 3 No Future.
61 Check 4 No Future.
62 Covers Text for number of covers.
63 Order No Text for order no.
64 Room No Text for room no.
65 Ticket No Text for ticket no.
66 No Shift Shift for hotel systems.
67 Shift 1 Shift for hotel systems eg Breakfast.
68 Shift 2 Shift for hotel systems eg Lunch.
69 Shift 3 Shift for hotel systems eg Dinner.
70 Shift 4 Shift for hotel systems.
71 Shift 5 Shift for hotel systems.
72 Eat in or Take out Eat in/Take out prompt.
73 POUND Word Pound used for Cheque printing.
74 POUNDS Word PoundS {plural} used for
Cheque printing.
75 PENCE Word Pence used for Cheque printing.
76 Customer Verification 1 Used with the customer verification
flags within PLU programming.
77 Customer Verification 2 Used with the customer verification
flags within PLU programming.
78 SEAT NO: This description is used when KP
prints are sorted by seat number.
79 ORDER REF: Online order reference descriptor.
1. In TouchPoint select Program > Texts > Menu Level Names.
These are text names for the keyboard levels, they are only used for reference and appear at the
top of the screen in PGM4. They make it easier to determine which level you are programming.
Menu Level Names 1&2
Texts, menu level names illustration
1. In TouchPoint select Program > Texts > Check Text.
This file contains permanent names that are given to checks when the checks are first opened. For
example Checks that are rooms can be permanently given the name of the room, or tabs could be
permanently given the customers name.
No Field Description
1 Check Type Select whether it is check or table.
2 Check Number Enter the number of the check or
table in here.
3 Text Enter up to 40 characters of text to
be set on the check when it's open.
Preset Message
1. In TouchPoint select Program > Texts > Preset Message.
Preset messages enables you to give staff/customers guidance, notes or instructions without
having to set up a instruction PLU.
These can be allocated to the keyboard using the status key Preset Message.
Check Text
Texts, check text fields
Customer programming
Customer programming
In TouchPoint select Program > All Prog > Customers > Customer Features
Customers
Customer features
All programming, customers, customer features illustration
No Field Description
1 Forename
The forename of the customer is put
in here. This will appear on customer
reports, receipts etc.
2 Surname
The surname of the customer is put
in here. This will appear on customer
reports, receipts etc.
3 Account Number
This is a 15 digit random number that
can be used to open the customer,
using a customer number button
flagged to look for the random
number field.
4 Customer Group This is the group that the customer is
linked to for programming purposes.
5 Address 1 to 4
These are 24 character address lines,
that can also be flagged to print on
the receipt.
6 Postcode This can be flagged to print on the
receipt.
7 Telephone This can be flagged to print on the
receipt.
8 Mobile This can be flagged to print on the
receipt.
9 Work Tel This can be flagged to print on the
receipt.
10 Blacklisted?
When set the customer can no longer
be logged onto the till. Used with
lost/stolen cards.
11 New customer?
Used in conjunction with the auto
create customer flag in customer
control. When the customer is
activated at point of sale, the system
will prompt for the customer's details.
12 Not allowed selective item 5 items?
Errors if an attempt is made to sell an
item linked to selective itemiser 5
when this customer is logged on,
useful for nut allergies etc
13 Email
14 Expiry date
After the set date the customer will
be expired and no longer be able to
sign on.
15 Notes
Four lines of notes can be registered
against each customer. These can be
flagged to print on the kitchen print.
All programming, customers, customer features fields
In TouchPoint select Program > All Prog > Customers > Customer Groups
Customer groups
All programming, customers, customer groups illustration
Customers are linked to groups. The group area is where all customer programming is done.
No Field Description
1 Group Name
Allows you to name the customer
group, making reference easier for
later on.
2 Loyalty Type
This gives a list of loyalty types that
can be used for this customer group.
There are various loyalty types,
discussed on the next few pages.
3 Account Customer?
When set to yes, balances can be
paid onto the customer, and sales
paid for using this. (prepaid).
4 Overdraft limit £
Specifies the amount the account
customer can go over drawn in
pounds, (no pence).
5 Positive balance adjustment uplift %
When used with customer accounts
this is the % amount extra that gets
automatically added to the account
balance when pre-payments are
made.
6 Shift to price level 2? Shifts the sale to price level 2 when
the customer is signed on.
7 Prompt with picture if present?
Looks in the customer pictures
directory to see if there is a picture
associated with this customer, if
there is then the picture is displayed
with a Yes/No? prompt. See the
reference manual for more
information on how to setup
customer pictures.
8 Print Last Transaction Date on
Customer Receipt?
Specifies whether the last transaction
date is printed on the bottom of the
loyalty receipt.
9 Print Spend Today on Customer
Receipt?
Specifies whether today's spend is
printed on the bottom of the loyalty
receipt.
10 Times Used Today on Customer
Receipt?
Specifies whether the number of
times this customer has been used
today is printed on the bottom of the
loyalty receipt.
11 Spend To Date on Customer Receipt?
Specifies whether the total spend to
date is printed on the bottom of the
loyalty receipt.
All programming, customers, customer groups fields
No Field Description
12 Discount Total To Date on Customer
Receipt?
Specifies whether the discount total
to date is printed on the bottom of
the loyalty receipt.
13 Print Customer Address on Customer
Receipt?
Specifies whether the address and
post code is printed on the bottom of
the loyalty receipt.
14 Print Phone Number on Customer
Receipt?
Specifies whether the telephone
number is printed on the bottom of
the loyalty receipt.
15 Print customer name on KP?
Specifies whether the customer
name is printed on the bottom of the
KP ticket.
16 Print customer address on KP?
Specifies whether the customer
address and post code is printed on
the bottom of the KP ticket.
17 Print phone number on KP?
Specifies whether the customer
phone number is printed on the KP
ticket.
18 Print account number on receipt?
Specifies whether the account
number is printed on the receipt or
not.
19 Loyalty Type 1 – Standard Discount
This loyalty scheme will give
customers set discount rates on
products, these discounts can either
be applied to the whole range of
products, or to products with a set
selective itemiser.
Discount Rate, All Products
% discount rate. When set
all products are
discounted by this rate.
Discount Rate, Selective
Item 1 to 4?
% Discount Rate.
When set, discounts are
given only for PLUs that
have the matching
selective itemiser set.
No Field Description
20 Loyalty Type 2 – Points
This loyalty scheme will give
customers set points based on what
they purchase, these points can
either be applied to the whole range
of products, or to products with a set
selective itemiser. When enough
points are accumulated, they can be
used to pay for goods.
Points per Pound, All
Products
Number of points
awarded for every pound
spent. When set all
products are awarded
points at this rate.
Points per Pound,
Selective Item 1 to 4?
Number of points
awarded for every pound
spent. When set, points
are only awarded for PLUs
that have the matching
selective itemiser set.
No Field Description
21 Loyalty Type 3 – Joes
This loyalty scheme will give
customers set discount rates on
products. Each discount rate has 2
rates, the first time in the week that
the customer is used, they are
awarded with the first discount rate.
The rest of the time the customer is
used, during that week, they will be
awarded with the second set of rates.
Discount Rate(1), All
Products
% discount rate. When set
all products are
discounted by this rate.
This is for the set of
discounts that are used
for the 1st visit during the
week.
Discount Rate(1),
Selective Item 1 & 2?
% Discount Rate. When
set, discounts are given
only for PLUs that have
the matching selective
itemiser set. This is for
the set of discounts that
are used for the 1st visit
during the week.
Discount Rate(2), All
Products
% discount rate. When set
all products are
discounted by this rate.
This is for the set of
discounts that are used
for all subsequent visits
that week.
Discount Rate(2),
Selective Item 1 & 2?
% Discount Rate. When
set, discounts are given
only for PLUs that have
the matching selective
itemiser set. This is for
the set of discounts that
are used for all
subsequent visits that
week.
Day to Reset to Rate (1)
This specifies which day
of the week is classed as
the start of the week.
No Field Description
22 Loyalty Type 4 – Borellis
This loyalty scheme will track the
amount customers spend. When a
certain level of spend is reached,
they are then credited with an
amount that can subsequently used
against future purchases. For
example you could set it that every
time the customer has spent £100,
not necessarily in one transaction,
that the till will credit their loyalty
card with £5, which can then be used
against future sales. When a discount
is due on their next sale, it is also
printed in large at the bottom of the
customer receipt.
Discount Given
This is the amount in
pounds that is awarded to
the customer when they
reach the spend limit.
Spend Required for
Discount
This is the amount that
the customer has to
spend before they are
awarded their discount.
Only Auto Receipt if
Discount Due?
When receipt printing is
set to automatic for all
loyalty sales, the receipt
will only automatically
print if they are to be
awarded a discount on
their next sale.
No Field Description
23 Loyalty Type 5 – School Meals
This loyalty scheme is aimed at
schools/colleges. The customers
account is incremented by the free
meal entitlement each day. If the
customer doesn't use they
entitlement in a day then the
remainder is removed at the end of
the day. A customer is able to add to
the account as normal which is
unaffected by the
increment/decrement of the
entitlement.
Free Meal Entitlement
The amount that is charge
onto customer account
each day.
Can Only Sign on During
Time Zone?
If set to yes will allow
start and end time to be
set as well as which days
it applies to for 4 different
time zones.
Use morning spend limit?
When set there is a limit
to what the customer can
spend on their card in the
morning.
Morning Spend Limit
Sets the morning spend
limit.
Morning End Time
Specifies the end of
'morning'.
Use daily spend limit?
When set there is a limit
to what the customer can
spend on their card
throughout the whole day,
this includes any spends
in the morning.
Daily Spend Limit
Sets the daily spend limit.
No Field Description
24 Loyalty Type 6 – Price Levels
This loyalty scheme changes the
current price level when a customer
is logged on. It should be noted that
the price level becomes effective
only when the customer is logged on,
all previous items within that sale will
still be at their original price level.
Price Level
Select the price level to
switch to.
Customer control
In TouchPoint select Program > All Prog > Customers > Customer Control
All programming, customers, customer control illustration
No Field Description
1 Automatically Issue a Receipt for
Customers?
When set, a receipt will be issued to
a customer regardless of the status
of the receipt switch.
2 Value of 100 points £
Used with loyalty point customers,
this gives the value of 100 points in
£s.
3 Site ID for Customers
Specifies the unique site ID for the
customer magnetic cards, the
TouchPoint demo cards are site ID
1000.
4 Allow open balance Z report?
If set to Yes then the customer
balance report appears in the Z Mode
report list.
5 Warn if acc cust, finalise not by acc?
If you try to cash off a sale with an
account customer, but are not using
an account method of payment then
the system will warn you that you are
doing so.
6 Use alpha numeric account numbers?
Allows account numbers to be a
mixture of letters and numbers. Also
means that when the Customer
Number key is pressed then you are
presented with a QWERTY keyboard
as opposed to a numeric keypad.
7 Show CID info on display?
When using the caller ID system to
log on customer, then incoming
phone numbers and associated
customer name (if available) is
shown in a dialog for 1 second in the
middle of the display.
8 Local area code
Entering this allows local phone
numbers without the area code to be
keyed manually into the CID key.
9 ——- Custom Format Mag Cards ——-
This allows other vendors magnetic
cards to be used with the TouchPoint
loyalty system.
All programming, customers, customer control fields
No Field Description
10 Enable track 1 custom customer
cards?
If a card with data on track 1 is
swiped then this data is passed
through the custom card format filter.
11 Enable track 2 custom customer
cards?
If a card with data on track 2 is
swiped then this data is passed
through the custom card format filter.
12 Custom card format
Contains a layout of track data that
represents a customer card. The card
should be entered in it's entirety
replacing the parts of the card that
represent the number with Xs.
eg. If you have a card that is
10560001 whereby the 0001
represents the customer, in this case
1 then the entered data would be
1056XXXX.
Every time the system then saw a
card that was 8 digits long starting
with 1056, it would extract the
customer number from where the
XXXX is.
13 Search account number for unknown
track 1 swipes?
When a track 1 card swipe doesn't
match any of the preset filters it is
checked against the customer
account number field.
14 Search account number for unknown
track 2 swipes? As above.
No Field Description
15 Directory for customer pictures
Contains the location of pictures
relating to the customer file.
This can be a local folder eg
c:\icrtouch\pictures or a UNC eg
\\server\pictures
The pictures are then placed in this
location with their filenames in the
following format;
R{NUMBER}.jpg - Where {NUMBER}
is the account number of the
customer
or
M{NUMBER}.jpg - Where {NUMBER}
is the memory number of the
customer (1-2000)
Either format can be used, but the
system will always go for the account
number format first.
You also need to set the flag “Prompt
with picture if present” in Customer
Group Programming.
The image that is displayed will be
320×320. A smaller image will have
a border and a bigger image will be
cropped.
16 In drawer for account payments.
Here you would link an in drawer
total that will be added to in addition
to the in drawer total selected when
making the payment.
This would be used to show your total
customer liability in a single fixed
total.
When linking to accounts packages
this would be set to the same in
drawer total that is used by the
account finalise key but set to be
posted as a negative value. As such
when making a payment negative
value is posted into this total, when
an account sale is performed a
positive value is added to this total.
No Field Description
17 Added as a negative value?
Used in conjunction with the above
setting. When set the total is posted
as a negative into the in drawer total.
18 Prompt to post change amounts to
customer balance.
When set if you over tender cash on
a customer account sale you will be
prompted to allocate the change to
the customers account.
19 Auto create for new customers?
When set, customers can be set up
automatically at point of sale. The
customer must have the new
customer flag set on them.
20 Account number
When auto creating customers, the
system prompts for an account
number that will be associated to the
customer.
21 Customer group
When auto creating customers, the
system prompts for customer group.
22 ADDRESS
When auto creating customers, the
system prompts for the customer's
address.
23 Telephone
When auto creating customers, the
system prompts for customer's
phone number.
24 Mobile
When auto creating customers, the
system prompts for customer's
mobile number.
25 Work Tel
When auto creating customers, the
system prompts for customer's work
phone number.
26 Not allowed selective item 5 items?
When set the customer will not be
able to purchase PLUs that have the
selective item 5 flag set to yes.
27 Email
When auto creating customers, the
system prompts for the customer's
email address.
No Field Description
28 Notes
When auto creating customers, the
system prompts for any notes
relating to the customer.
Range Customer Features
In TouchPoint select Program > All Prog > Customers > Range Customer Features
All programming, customers, range customer features illustration
Customer features can be programmed by range. You are presented with a programming sheet
that it completely grey. As you program each item, its background colour will turn white. It is only
these white items that will be changed – all of the grey items will be left as they were. When you
have finished programming in the program sheet, press ESC, and you will be prompted with from
customer, to customer.
Set the number of the customer that you want to range program from, and the number of the
customer that you want to program to, you are may also filter the programming to only effect
customers in a certain group, press enter on Range Program OK? This will range program these
customers.
Pressing ESC to leave this screen will cancel range programming.
In TouchPoint select Program > All Prog > Customers > Export Customer File
Export Customer File
All programming, customers, export customer file illustration
The export customer file utility builds a csv file of address labels of the customer file. This csv file
is compatible with Microsoft Word's mail merge for easy creation of letters, envelopes of address
labels.
Only customer's with text in any of the name fields are exported.
The file created is customer.txt.
No Field Description
1 Export Name & Address Only?
This exports the customer's name
and address fields only.
2 Export Name & Address with Sales?
As above, but limited sales totalisers
are included in the .csv file. Last
Used Date, Current Account Balance
and Total Spend to Date are included.
Using Microsoft Word's mail merge
filters, address labels could be
printed out for people who haven't
visited in over 3 months, have
negative account balance etc.
All programming, customers, export customer file fields
Price programming
Price programming
Price Programming
1. In TouchPoint select Program/Prices.
1. In TouchPoint select Program > Prices > PLU Price.
This gives access to all 27 PLU prices. There are 9 price levels, with 3 @ prices in each level.
1. In TouchPoint select Program > Prices > Range of PLU Prices.
As above but allows you to program a range of them in one hit.
In TouchPoint select Program > Prices > PLU Price Level Copy
This allows you to copy the 3 prices from one price level to another price level for a range of PLUs.
No Field Description
1 Copy from Price Level Allows you to select the price level
that you are copying from.
2 Copy to Price Level Allows you to select the price level
that you want to copy to.
3 From PLU Enter the number of the first PLU that
you are copying.
4 To PLU Enter the number of the last PLU that
you are copying.
Price Programming
PLU Price
Range of PLU Prices
PLU Price Level Copy
Prices, price level copy fields
No Field Description
5 OK?
Press enter on here, and all prices
will be copied across. Esc quits the
operation.
1. In TouchPoint select Program > Prices > Add PLU Stock.
When PLUs have been set to maintain stock (pgm 3 - PLU - PLU).
Stock can be added to the PLU using add PLU stock.
1. In TouchPoint select Program > Prices > Subtract PLU Stock.
When PLUs have been set to maintain stock (pgm 3 - PLU - PLU).
Stock can be added to the PLU using add PLU stock.
1. In TouchPoint select Program > Prices > Set System Date & Time.
No Field Description
1 Set Time Press Enter, enter the time in 24 hour
format HHMM, the press enter again.
Add PLU Stock
Subtract PLU Stock
Set System Date & Time
When the date or time is changed, it is automatically sent to all connected terminals.
Prices, set system date and time fields
No Field Description
2 Set Date
Press Enter, enter the date in the
format DDMMYYYY, then press enter
again.
Manager mode functions
Manager mode functions
1. In TouchPoint select Manager.
The manager mode keyboard level is a flexible keyboard level like the others. If any of these
functions are not on your machine in manager mode, then their buttons need to be set up and
allocated to the keyboard in keyboard programming.
Most manager functions are Status Keys. See PGM3 Status Key Programming.
In the inline functions menu, there are various options:
No Field Description
1 IRC Initialise
This will check for the presence of all
terminals on the network, and
determine which terminal is the
check tracking master. This operation
only needs to be performed on one
terminal, as this terminal will then
inform all other connected terminals.
This operation should be performed
where any change is made to the
network configuration, eg adding a
terminal.
2 Check Busy Reset & Table Busy Reset
If a check or table appears to be lost,
and comes up with a busy error
message, this function will reset the
busy flag for that check/table. This
can be performed on any machine in
the system. The check/table busy
reset should be used with caution,
resetting a check/table which is open
by another operator, can result
checks/tables going missing or being
incorrect.
Checks/tables going missing
Manager Mode Functions
Manager Mode Functions
Inline Functions
Manager functions fields
No Field Description
3 Clerk Busy Reset
If a clerk appears to be lost, and you
get a busy error message, this
function will reset the busy flag for
that clerk. This can be performed on
any machine in the system.
4 Send stock counter Updates the other tills in the system
with the stock counter from this one.
5 Clerk Chk/Table transfer Transfers all the check and tables
'owned' by one clerk to another.
6 Resync Bill Lodging Resends the Bill Lodging file down to
Commidea ILink.
7 Send check file to backup
Only available on the check tracking
master, this option allows the check
file to be synchronized into the check
backup master.
8 Switch to backup master
Only available on the check tracking
backup master, this instructs the
system to switch control over to that
unit.
9 Change Price Level This allows you to manually change
the current price level.
10 Clerk Functions
In the clerk functions menu, there is
currently only one option:
Clear Auto-Clerk Buttons
This will reset all of the
auto-clerk buttons back to
sign on buttons.
Program iButtons
This allows you to assign
iButtons to clerk from
within manager mode.
Manage biometrics
Calls up the background
biometrics application for
configuration.
11 Edit Floor Plan This allows you to add/remove tables
from the floor plan.
12 Download Graphic Logo This resends the graphic logo to
thermal receipt printer.
13 Send Program Sends program data to terminals.
No Field Description
14 Receive Program
Receives program data from a
terminal. When receiving data from a
terminal, that terminal will do it in
the background, and will still be fully
useable, with no degradation in
performance.
15 Backup/restore
Used to backup/restore program data
to one of 3 locations; Floppy Disk,
internal backup area, or a PGM3
programmable area, see PGM3 –
System Programming – System Flags
– Comms Control.
By making use of the PGM3
programmable area, backups can be
made to mapped network drives,
external backup devices etc.
The restore function can also be used
to load screen saver background
images, floor plan background
images, graphic logo and user
definable fonts.
Hidden functions
Hidden functions
1. Select Program - when prompted for a clerk number when entering program mode, the
clerk code 88888888 can be used, this will give access to the hidden functions menu.
2. Update the settings using the guidelines from the hidden functions fields table.
Hidden Functions
Hidden functions illustration
No Field Description
1 Sales Data Reset
This resets all sales data on this
terminal to zero.
Note, if using internal customer
loyalty all sales history and balances
will be cleared.
Note if you are using customer
loyalty, in order to keep the sales
data for the loyalty file up to date
you will need to send it in from
another terminal afterwards.
Note that if the target machine is a
check tracking master, the check file
will be zeroed.
2 Enable Mouse/Remove Mouse
Turns on or off the mouse pointer, so
that the terminal can be used with a
mouse.
3 Enable NET Drivers/Remove NET
Drivers
Turns on or off the networking of the
till. Useful if you do not have a
network card installed, as it will stop
it from coming up with error
messages. May need to set this to
yes when installing a new terminal.
The terminal will need rebooting after
making a change here.
4 Master Reset
CLEARS OUT THE ENTIRE MEMORY
CONTENTS OF THE TILL (Journal 2
files will still need to be deleted
manually from the
c:\icrtouch\sales\journals folder), and
brings it back to a default, blank
program. The till then determines
which terminal ID it is by looking at
others on the LAN, and then prompts
to suck it's program from one of the
other terminals on the LAN.
Beware that the Master Reset
function will only work on software
supplied as version 1.39 or later, on
software supplied earlier than this,
and subsequently updated, this
function will not work correctly as the
appropriate files will not be on the
HDD.
5 Enter Payment Code
Allows you to enter the payment
code for the terminal without being
prompted.
Hidden functions
No Field Description
6 Activate TouchPoint Manually pushes TouchPoint through
the online activator.
7 Check rental codes
8 Refresh rental licence Forces TouchPoint to upload licence
details.
9 Minimize TouchPoint
Minimizes TouchPoint to the task bar
and allows you to run other programs
in Windows in the background.
10 Exit to Windows
Leaves the application without
shutting the terminal down.
No Field Description
1 ACCOUNT
Used for finalisation a sale against
customer account, used in
conjunction with customer loyalty for
accounts/pre paid.
2 CASH Standard payment key
3 CASH2 Same as cash but can be restricted
by clerk
4 CHEQUE
Payment key, with options for
printing cheques on a slip printer.
Also prompt for signature
5 EFT
Payment key, used in conjunction
with Commidea WinTI EFT server
software for processing credit card
transactions.
6 HOTEL TRANSFER Used in conjunction with a front desk
hotel server, eg ADS Hotel Exec 2000.
7 VOUCHER
Used in conjunction with online
vouchers.
Finalise Keys
Transaction Keys
No Key name Description
1 + AMOUNT Used to add an amount to a sale.
2 +% Adds a value by percentage to a sale.
3 - AMOUNT Used to subtract an amount from a
sale.
4 -% Subtracts a value by percentage from
a sale.
5 CANCEL Cancels the entire sale.
6 CHECK TRANSFER Transfers the entire sale contents to
a check.
7 DEPOSIT Places a balance in a check.
8 EFT PREAUTH Used to Pre-authenticate transactions
via card.
9 ERROR CORRECT Corrects items from a sale.
10 EXCHANGE POINTS Change points for cash, used in
conjunction with customer loyalty.
11 HOUSE BON Allows items to be sold for free.
12 MEDIA EXCHANGE
Allows one media type to be
exchanged for another, eg cheque for
cash.
13 NEW BALANCE Stores a check when you have one
open.
14 NO SALE Opens the drawer without a sale
being registered.
15 PAID OUT Allows money to be taken out of the
drawer.
16 PAY ACCOUNT
Used to pay account balances. Used
in conjunction with customer
accounts/pre paid.
17 POINTS ADJUSTMENT Alters the number of points on a
customer.
18 PRICE CHANGE
Allows the price of an item to be
temporarily changed after it has
been rung in.
19 REASON TABLE
Allows the reason table to be brought
up on it's own key press rather than
be enabled on another function key.
No Key name Description
20 RECEIVED ON ACCOUNT Allows money to be added to the
cash drawer.
21 REFUND Used to refund items out of a sale.
22 TIPS Adds tips into the fixed totaliser
TIPS/TIPS2.
23 VOUCHERS Used in conjunction with online
vouchers.
No Key name Description
1 AUTO CLERK
As CLERK NUMBER, but remembers
the last clerk signed on, until the end
of day, when they are reset.
2 BATCH REPORT Used for printing a batch report. Can
be preset with a batch report.
3 BREAK IN Time & Attendance, ends the break
of an employee.
4 BREAK OUT Time & Attendance, starts the break
of an employee.
5 C/CARD CAPTURE
Allows you to capture credit card
details and store them on the
electronic audit roll.
6 CASH DECLARE
Allocated to X/Z mode to allow cash
to be declared in a similar fashion to
a traditional non add key.
7 CASH DECLARE 2 As above but allows a preset amount
to be allocated to the key.
8 CATEGORY SHIFT
Used to shift the category a selected
or group of PLUs is linked to, for
example a PLU could be sold that is
linked to the starters category then
shifted in the sale to the mains
category.
9 CLEAN SCREEN
Puts the screen saver on for a
predetermined time to facilitate
screen cleaning.
10 CLERK CHANGE Allows clerk to be changed mid sale.
11 CLERK FUNCS Contains options such as clerk busy
reset.
Status Keys
No Key name Description
12 CLERK NUMBER Used as a sign on key , or a preset
clerk key
13 CLOCK IN Time & Attendance, clocks an
employee in.
14 CLOCK OUT Time & Attendance, clocks an
employee out.
15 CLOSE TILL DOWN Closes the till down.
16 COVERS Allows you to manually enter the
number of covers against a sale.
17 CURRENCY EXCHANGE Specifies that the next tender will be
in the exchange currency.
18 CUSTOMER BIOMETRICS
Launches biometrics config
application for configuration or the
reader.
19 CUSTOMER CID LOGON
Allows customers to be logged on
using caller id information from a
modem connected to the incoming
phone line.
20 CUSTOMER HOT CARD Disables a customer, so that they can
no longer be logged onto any till.
21 CUSTOMER INQUIRY Balance inquiry for a customer.
22 CUSTOMER NUMBER
Allows a customer to be logged onto
the till using a manually entered
number.
23 CUSTOMER TRANSFER Transfer the balance and details from
one customer to another.
24 DATA BACKUP/RESTORE
Used to backup or restore program
data, either internally , or other
media. NO sales data is backed up
using this feature.
25 DEFER Reprompts the user for a deferred
Set Menu item.
26 DOWNLOAD GRAPHIC LOGO Sends the graphic logo to the local
receipt printer.
27 EAT IN
Sets the sale to eat in status, can be
used to affect tax and price levels
and also display a message on the
top of receipts and KP tickets.
28 EDIT CHECK TEXT Allows text for checks/table to be
altered.
No Key name Description
29 EDIT CUSTOMER Allows the customers to be edited at
the point of sale.
30 EDIT FLOOR PLAN Allows you to lay out tables on the
floor plan.
31 ESCAPE Drops back to the last menu level.
32 EURO SHIFT Specifies that the next tender will be
in EURO.
33 FIDELITY LOYALTY CARD Allows the use of fidelity loyalty cards.
34 FLOOR PLAN Goes to the floor plan, so that tables
can be opened.
35 GIFT RECEIPT
Allows a receipt to be printed that
has no sales values on it, the receipt
can later be recalled if required with
the values on (Touch Office Web
required).
36 GLOBAL EAT IN/TAKE OUT Sets a default eat in/take out f or all
new sales.
37 GO DUTCH BILL PRINT
Used to print a bill a multiple number
of times, with the total divided by
that multiple (covers).
38 HOME MODE Takes the till back to home mode.
39 INLINE BATCH REPORT
Used for printing a batch report for a
range of tills on a network,
consolidated.
40 INLINE FUNCTIONS Contains option such as IRC initialize,
check busy reset etc.
41 INLINE PERIOD 1 REPORT
Used for printing a period 1 report f
or a range of tills on a network,
consolidated. Can be preset with a
report, otherwise gives a list.
42 INLINE PERIOD 2 REPORT
Used for printing a period 2 report for
a range of tills on a network,
consolidated. Can be preset with a
report, otherwise gives a list.
43 INLINE PERIOD 3 REPORT
Used for printing a period 3 report for
a range of tills on a network,
consolidated. Can be preset with a
report, otherwise gives a list.
44 LAUNCH BATCH FILE Launches a remote batch file {.bat}
45 LIST PLU Displays a drop down list of PLUs.
No Key name Description
46 LOCATION Allows you to manually link a seating
location to a sale.
47 LOCK TERMINAL Locks the terminal requiring a pass
code to unlock it.
48 MANAGER FUNCTIONS Puts the till into manager mode.
49 MENU LEVEL SHIFT Changes between menu levels.
50 MENU LEVEL SHIFT 2 Same as Menu Level Shif t but can be
controlled by clerk.
51 MINIMIZE TOUCHPOINT Minimizes ICRTouch to the task bar.
52 MULTIPLY Multiplication button.
53 NEW CHECK Opens a new, unopened check.
54 NEW/OLD CHECK Opens a check, if it doesn't exist it
will be created.
55 NON-ADD NUMBER (#)
Allows a number to be printed on a
bill or KP ticket, can also be preset to
allow alpha numeric numbers.
56 OLD CHECK Opens a previously opened check.
57 ORDER NUMBER Allows you to manually enter an
order number against a sale.
58 PERIOD 1 REPORTS
Used for printing period 1 reports.
Can be preset with a report.
Otherwise gives a list.
59 PERIOD 2 REPORTS
Used for printing period 2 reports.
Can be preset with a report.
Otherwise gives a list.
60 PERIOD 3 REPORTS
Used for printing period 3 reports.
Can be preset with a report.
Otherwise gives a list.
61 PLAY MACRO
TouchPoint allows f or the recording
of key strokes to be used from within
Etal or from the play macro status
key.
62 PLU GROUP SEARCH
Display s a list of PLUs in group
order, so that they can be searched
for and sold. They can also be
displayed in alphabetical order.
63 PLU NOTES INQUIRY Display s a notes text file linked to a
PLU on screen.
No Key name Description
64 PLU NUMBER Allows PLUs to be called up by
number.
65 PLU PICTURE INQUIRY Display s a picture linked to a PLU on
screen.
66 PLUS ITEM Used to resell an item that appears in
the reg window.
67 PRESET MESSAGE Prints a preset message on a food
order or receipt.
68 PRICE INQUIRY Displays the price of a product.
69 PRICE LEVEL CHANGE Changes to one of 9 price levels.
70 PRICE SHIFT Switches to 2nd@ or 3rd@ price.
71 PROGRAM MODE Goes to one of the programming
modes.
72 RECEIPT ON/OFF Toggles the receipt switch on/off.
73 RECEIPT PRINT
Prints post finalisation receipts. Also
prints bills for checks, when a check
number is entered before pressing it.
74 RECEIVE PROGRAM Allows program data to be 'sucked'
from another terminal on the network.
75 REFUND MODE Puts the till into refund mode.
76 REG MODE Puts the terminal into sales
registration mode.
77 REG WIN DOWN ARROW Scrolls down through the reg window.
78 REG WIN UP ARROW Scrolls up through the reg window.
79 REMOTE JOURNAL VIEW Allows you to view another ECR's
audit roll as it is created.
80 RESUME Recalls a stored sale.
81 Run Script (Etal) Used to run scripts when using the
scripting engine Etal.
82 SALE ITEM LIST IMPORT Imports and registers a list of PLUs to
be sold from a text file.
83 SEAT NUMBER
Seat numbers can be allocated
during an order f or the items in it,
this can then set to be sorted on the
KP print by seat.
No Key name Description
84 SEND PROGRAM Send program data to other
terminals on the network.
85 SEND TO KP NOW Sends contents of the reg window to
a KP, PLU needs print to KP set to yes.
86 SERVICE CHARGE Removes the automatic service
charge from a check.
87 SET MENU SHIFT Shifts the current set sequentially to
the next one.
88 SIGN OFF BUTTON Signs of f the current clerk.
89 SLIP PRINT
Prints bills for checks on a slip
printer, enter the check number
before pressing it.
90 SPLIT CHECK Allows you to take items out of a
check, and pay for them separately .
91 STOCK ENQUIRY Display s the stock count of the next
registered PLU.
92 SUBTOTAL Display s the sale total.
93 SUSPEND Stores the current sale in an interrupt
buffer.
94 TABLE RESERVATION Calls up the table reservation
dialogue.
95 TAKE OUT
Sets the sale to take out status, can
be used to affect tax and price levels
and also display a message on the
top of receipts and KP tickets.
96 TAX Turns tax calculation on f or this sale,
when used in a manual tax system.
97 TEXT MESSAGE
Prints a text message on a food order
or receipt. Can also be used to send
an email to a terminal.
98 VALIDATION PRINT Prints a validation line f or the last
item on the slip printer.
99 VIEW ACTIVE CLERKS
Shows all clerks in the system with a
sale open, any active clerks can be
signed on using this function.
100 VIEW CUSTOMER DETAIL
Allows you to view the customer's
audit roll a sale at a time. Sales can
also be reprinted.
101 VIEW JOURNAL
Allows you to scroll through the audit
roll a sale at a time. Sales can be
reprinted.
No Key name Description
102 VIEW OPEN CHECKS
Shows all checks in the system,
checks can be opened using this
function.
103 VIEW PAID CHECKS
When store finalised bills is set in
program 3 - check tracking, this key
allows the bills to be displayed and
printed.
104 VIEW RECEIPTS
When store receipts is set in program
3 - print control, this key allows the
receipts to be displayed and printed.
105 VIEW REPORTS
When pressed a list of all end of day
reports will be displayed, these can
then be display ed in detail and
reprinted.
106 VIEW WEBSALES
When pressed a list of all web sales
displayed, these can then be display
ed in detail and reprinted.
107 WEIGHT Allows manual weight entry, for
weight PLUs.
108 X/Z MODE Put the terminal in X or Z mode.
This manual is aimed at Authorised ICRTouch Partners as a reference tutorial manual for
ICRTouch's TouchPoint lite product.
Pre-installation setup
Licensing & installation
TouchPoint lite main menu
TouchPoint lite settings menu
Sales and refund mode
TouchPoint lite
Manual
The following steps are required before you install and configure TouchPoint lite:
1. Head to portal.icrtouch.com and sign in.
2. Create the company.
3. Add TouchOffice Web as a service.
4. Create a TouchOffice Web admin user.
5. Modify the number of terminals that will be required. (You will need an available terminal
in TouchOffice for TouchPoint lite to use).
1. Head to touchoffice.net and sign in.
2. Configure your sites.
3. You will need to set file sizes for the initial program in TouchPoint either with your client's
copy or a Partner template that you have created for quick deployment of TouchPoint lite.
Thereafter, updates can be performed in TouchOffice Web as required.
4. Collect the TouchPoint program into TouchOffice Web to set file sizes.
5. Configure your Departments, Groups & PLUs.
6. Configure your Clerks:
1. Select Clerks.
2. Select a clerk number.
3. Assign a secret number.
4. Enable the the Clerk control settings as below:
Name Description
Pre-installation setup
Partner Portal
TouchOffice Web
Clerk is manager?
Allows the clerk to access setup functions.
You must create at least one clerk with
the Clerk is manager clerk control enabled.
Failing to set the Clerk is manager option will
result in not being able to perform administrative
tasks on the TouchPoint lite device.
Sign off clerk at close of sale?
When the clerk finalises a sale, they will automatically be
signed off. This setting is recommended when the clerk is
a manager.
7. Program the receipt header.
8. Configure the External product groups to allow the user to change menu levels. Menu levels will
be listed on the left hand side of the TouchPoint lite screen. You should not authorise TouchPoint
lite devices until the External product groups have been configured.
Select a site from the dropdown list. You must configure External product
groups at Head Office.
The background colour is displayed as the stripe colour of the product group
item.
You can also select an icon if required.
Follow the relevant notes below for your chosen device.
Install TouchPoint lite on an Android device
1. Allow your browser to install APKs. This is usually possible via Settings > Apps > Menu >
Special access > Install unknown apps.
2. Download the TouchPoint lite APK from:
https://icrtouch.com/updates/touchpointlite/touchpointlite.apk.
3. Open the file to install as normal.
Install TouchPoint lite on a Dojo device
1. Dojo will configure the initial installation of TouchPoint lite onto your device.
Install TouchPoint lite on an iOS device
1. Download TouchPoint lite from: icrtou.ch/tplappstore
1. Launch the TouchPoint lite application.
2. Select the required language from the dropdown list, then select next.
Licensing & installation
TouchPoint lite is charged per terminal, in arrears, on a monthly basis (as per the TouchPoint
lite licence agreement). Every TouchPoint lite licence includes a TouchOffice Web account.
During the TouchPoint lite initial configuration, the TouchOffice Web user and terminal are
selected. By signing on with the TouchOffice Web user and terminal, you are authorising the
device to use one of the TouchPoint lite licences for the account associated with that user.
Step 1 - Install the application
TouchPoint lite 1.1.2 requires Android version 8 or newer.
Step 2 - Configure the device
3. Select Standalone. (TouchPoint lite can run in 1 of 2 modes - standalone or demo).
Demo mode has the same functionality, allowing all features to be tested, but does
not post sales to TouchOffice Web. We recommend this mode is used for
demonstration and training purposes.
4. After selecting Standalone, enter the TouchOffice Web username and password, then
select Login.
If you have not created a clerk with the 'Clerk is manager?' control enabled, you
will need to do so before progressing further. There MUST be at least one
clerk with the 'Clerk is manager?' control enabled. Failing this will result in not
being able to perform administrative tasks within TouchPoint lite.
5. Select the site and the terminal from the dropdown lists, then select Start.
By selecting the terminal, you are authorising the device to use one of the TouchPoint lite
(terminal) licences.
1. Select the menu button on the top right hand side of the screen to sign on.
2. Sign on with the clerk number and secret sign on number.
3. Select Settings and the 'Sync Program Data' button at the bottom of the screen.
All TouchPoint lite terminals are managed within TouchOffice Web. Each device is listed under
Terminals once it has been installed and set up on the device itself.
As TouchPoint lite devices are set up, the application programming interface between the device
and TouchOffice Web is configured automatically so there is no need to manually add your
terminals within TouchOffice Web.
Selecting the 'Revoke' button under the 'Actions' column will deauthorise that device. This means
it will no longer send sales to TouchOffice Web and the TouchPoint lite user would need to reauthenticate
by entering their password again on device.
Step 3 - Sync the program data
All TouchPoint lite devices need to be synchronised whenever changes are made within
TouchOffice Web.
Managing terminals within TouchOffice Web
If devices are not fully deauthorised, higher billing charges than expected may be incurred.
The max terminals in the portal should be reduced if you do not use the terminal on another
device.
The main TouchPoint lite menu is accessed via selecting the icon in the top-right hand corner of
your device. When there is no clerk signed in, this icon will display as an icon of a person. When a
clerk is signed on, this icon will display the first letter of the clerk name.
Once opened, the menu includes the following options. Read below for more details on each:
Menu item Description
Sign on To sign on a clerk, simply select the 'Sign on' menu button
and enter the clerk number as normal.
Auto receipt
This will toggle on / off the automatic receipt setting with
a single click.
Yes: Receipts will print automatically
No: Receipts will not print automatically. but can still be
printed manually, if required.
Refund mode
This will transfer TouchPoint lite into refund mode
(providing the clerk currently signed on has refund
permissions). The top bar within the application will turn
red to indicate refund mode has been activated.
The menu item will change to 'Sales mode', which can be
selected to return as expected.
There's more on sales and refunds here.
View Previous Sales
This will open the previous sales logs. You will be able to
see all previous sales for the current date, with Sale ID,
Time, Total and Clerk details.
At the top of the page there are left and right arrows to
navigate backwards and forwards by one day. If you
select the date in the centre of these arrows, a calendar
will open where you are able to navigate to a specific date
in the past.
An hourglass icon on a sale indicates that sale is being
uploaded to TouchOffice Web.
By selecting a previous sale, you will view full details of
the transaction, any payment notes and have the
opportunity to print the sale via the printer icon top-right
of the screen.
Transactions can be refunded directly from an individual
transaction page by selecting the 'Refund' button.
TouchPoint lite main menu
Reports
This will open the reports page, with a similar layout to
the 'View Previous Sales' page noted above. Navigate
between dates in the same way as above and select
either the 'Fixed Totals' or 'Tax' views. Each will provide a
breakdown of totalisers, quantities and values or tax
names, gross totals and values.
All reports can be printed via the printer icon in the topright
of the screen.
End of Day
This is where end of day reports can be generated. Simply
select 'Generate Report'.
All end of day reports can be printed via the printer icon
in the top-right of the screen.
Journal
The journal shows a detailed view of each sale and
operation that has been performed on the TouchPoint lite
device.
Navigate between dates in the same way as above.
Logs and journal records can be downloaded via the
download icon in the top-right of the screen.
Settings
The settings menu gives options for:
Payment Device (EFT)
Receipt Printer
Key Mapping
Kitchen
Allergens
Device
Sync Program Data
Find more details on the settings menu here.
Sign off To sign off a clerk, simply select the 'Sign off' menu
button.
App version
The current version of the app will be noted here at the
bottom of the menu. This will also show other useful
information such as the TOW account that it is linked to
and which site has been configured.
The setting menu within TouchPoint lite is accessed via selecting the icon in the top-right hand
corner of your device and selecting 'Settings'.
Once opened, the menu includes the following options. Read below for more details on each:
Menu item Description
Payment Device (EFT)
Payment Provider: Select the relevant provider from
the dropdown list. 'Non integrated' could be used for
demo or training purposes, or when a non integrated EFT
solution is not being used.
Merchant Receipt: Toggle the printing or merchant
receipts on / off.
Receipt Printer
Enable receipt printer: Toggle on or off the ability to
print receipts to a receipt printer.
Receipt printer series name: Select the relevant
printer from the dropdown list.
Receipt printer address: Enter the relevant IP address
for the printer here.
Receipt printer width: Enter the desired number of
columns for the printer here.
Test Print: Use this button to test print an example
receipt.
Key Mapping
Utilise the dropdown menus for each of the following
options to designate the required keys, as programmed
within TouchOffice Web, for each operation:
Finalise Card Key
Finalise Cash Key
Finalise Cash 5 Key
Finalise Cash 10 Key
Finalise Cash 20 Key
Message Key
Cancel Key
Error Correct Key
Custom Minus Percent Key
Plus Percent Key (no current function)
Finalise Voucher Key
Discount Voucher Key
TouchPoint lite settings
menu
Kitchen
Enable Basic Kitchen Printing: Toggle kitchen printing
(kitchen tickets and/or stub tickets) on / off. These would
be printed to the configured receipt printer.
Enable KP Ticket: Toggle the printing of kitchen tickets
on / off.
Enable KP Stub Ticket: Toggle the printing of stub
tickets on / off. This ticket only contains order number info.
Next Order Number: View the order number which the
next placed order will use and utilise the 'Reset' button to
manually override this to the lowest order number
specified in your 'Order Number Range' below.
Order Number Range: Manually set the range for order
numbers. This can be useful when wanting to reset orders
whilst still leaving a range of number available for future
orders.
Enable Reset on Z / End of Day: Toggle the automatic
resetting on order numbers on the processing on a Z or
end of day report on / off.
Enable Large Text: This will adjust the text on tickets
and stub tickets from normal to double width and double
height, allowing for improved readability.
Allergens
Alert when add product: Toggle on / off the allergen
warning pop-up before a product is added to a sale. This
pop-up will display on all products where an allergen is
present.
Alert when finalise sale: Toggle on / off the allergen
warning pop-up before finalising a sale. This pop-up will
display on any order where a product containing an
allergen is present.
Device
Name: Enter a name for the device. Helpful when
operating with multiple devices in one venue.
Terminal number: This will be automatically set via
TouchOffice Web and cannot be changed without
deauthorising the device.
Method of Rounding: For venues operating outside of
the UK, an alternative method of rounding may be
required. Set this here via the dropdown list.
Print Tax Symbol: Toggle on / off the printing of tax
symbols on receipt PLU lines.
Two column mode: Toggle the sale screen display
between two or three column mode.
Show Status Bar: Toggle on / off the device status bar,
displaying the device battery levels, clock and other
details.
Enable scanning for all products: Toggle on / off the
ability, when using the search function, to search all
products across the entire product database that have a
random code allocated, rather than just those allocated to
a menu level on the device.
Deauthorise Device: Utilise this button to deauthorise
the device, removing the API. To re-authorise, the user
must log back in using the TouchOffice Web username
and password.
Sync Program Data
1. Select the menu button on the top right hand
side of the screen to sign on.
2. Sign on with the clerk number and secret sign
on number.
3. Select Settings > Sync program data.
All TouchPoint lite devices need to be
synchronised whenever changes are made within
TouchOffice Web.
Sales mode is activated once you enter the TouchPoint lite application.
You can toggle between sales and refund mode by accessing the main menu.
Menu levels
All menu levels, configured via External Product Groups within TouchOffice Web, will display on the
left-hand side of the device. If there are more levels than will fit within the default window size of
the device, these menu levels will be scrollable (up / down).
Price levels
Price levels can be set per clerk or globally via the circular icon in the top-left of the screen. The
number stated within this circle related to the current price level that is in use. To change a price
level, simply tap the icon and select the required level from the list, then select 'Set'.
Reg window
On portrait devices, the reg window will display at the bottom of the device, with the ability to
swipe up to view the full sale. When minimised, the last item added to the sale is visible.
On landscape devices, the reg window will sit to the right-hand side of the PLUs listed.
To delete single line items from the reg window, simply swipe from right to left on the relevant
product.
If you select an item from the reg window, a pop-up will appear with options to add a note, view
allergen information, adjust the quantity and delete the item.
Within the reg window you have icon options available at the bottom of the screen which include
the option to 'Cancel' the sale, or to apply a 'Discount'. Applying a discount will display a pop-up
window with up to 6 pre-set discount options, the ability to enter a 'Custom Discount', and the
option to 'Redeem Voucher'.
Sales and refund mode
Sales mode
Note: price levels cannot be changed once a sale is in progress. Once changed, the price
level will remain in place until it is either reset manually or a clerk using an alternative price
level is signed on.
Finalise a sale
To finalise a sale select the 'Pay' button. The payment pop-up will display, with all relevant
payment options available. These include gift card redemption, cash in various pre-set amounts,
and card. You can also return to the sale via the 'Back to Sale' button at the bottom of the screen.
Simply select the relevant payment method to complete the sale.
Once the sale is completed, you will have the option to 'Print Receipt', if a receipt printer is
configured.
All of the functionality in sales mode is available in refund mode.
To switch to refund mode, select the menu button on the top right hand side of the screen and
select 'Refund mode'.
When in refund mode, the main header will turn red.
Complete a refund
To complete a basic refund, simply select the PLUs to be refunded and process the refund
transaction as per the above sales process. This refund method can be used to refund individual
items or a full transaction.
Refunds can also be completed from the 'View Previous Sales' page.
Refund mode
Introduction
Company setup and permissions
User setup and permissions
Information organisation
Head office site
Site groups
Sites
Recapturing licence (replacing a machine connected to TouchOffice Web)
Department programming
PLU group programming
Create a product list - recommended steps
Product programming summary
Product details tab
Product option windows tab
Product stock tab
Product terminal flags tab
Product WebShop options tab
Product allergens tab
TouchOffice Web
Product nutrition programming
Product associated items tab
PLU activity
List PLU programming
Mix and match programming
Mix and match 1 programming
Finalise keys programming
Status keys programming
Transaction keys programming
Fixed characters programming
Fixed (sales) totalisers programming
Keyboard menu levels programming
Receipt programming
Tags programming
Tag groups programming
Reasons programming
Tax programming
Non PLUs programming
KP categories programming
Preset message programming
Price level scheduler programming
Set menu programming
Customer programming
Customer group programming
Stock overview
Stock list
Stock orders
Stock transfers
Stock wastages
Stock returns
Stock ins & outs
Stock suppliers
Case sizes
Stock recipe programming
End stock take
Stock take entry
Stock variance
Sales
Sales explorer
Sales till reports
Ticketing dashboard
Ticketing sales gateways
Ticketing terms and conditions
Ticketing seating plans
Ticketing events
Event and slot capacity
Ticketing ticket types
Ticketing tickets
Ticketing sales
Ticketing calendar
Clerks programming
Clerks detail programming
Reports
Cash management introduction
Cash management user permissions
Drawer insert programming
Register the money in (float)
Move drawer insert from safe to till
Move the drawer insert from till to safe
Register the money out (float and cash sales)
Count drawer insert
Delete drawer insert
Vouchers
Voucher templates
Stripe
The following pages provide guidelines to help you customise TouchOffice Web.
https://www.youtube.com/embed/mjUDqwWcK8w?si=RtIVChRsGsBTPSID
Introduction
Introduction
Video
To create a new company:
1. Go to https://portal.icrtouch.com/login.
Company setup and
permissions
2. Select Companies.
3. Select the Create company button.
4. Complete the form using the guidelines below:
The form is validated - you will get a warning if you enter something incorrectly or if
an alias has already been taken.
If the company is outside the UK the postcode field can be left empty.
If the company is inside the UK the postcode field must be a valid.
5. Once submitted you are returned to the main page.
User setup and permissions
The admin user manages user access - it is created on the ICRTouch portal. When granting users
access we recommend that you untick all of the permissions and only tick the ones that the user
will need based on their job role. We also recommend that you limit the reports based on the
user's role. The reports provide in-depth insight into sales and other information that is deemed
confidential.
To setup user permissions follow the instructions below:
1. Go to portal.icrtouch.com to setup the admin user.
2. Select Companies and then select the company name.
User administration
Instructions
3. Select the Create TOW user button.
4. Enter the username, password and email address and then select the create user button.
5. Go to https://www.touchoffice.net.
6. Select the user on the top right hand side of the screen.
7. Select settings.
8. Select the user from the drop down list.
9. Enable/disable setting permission individually or by selecting or unselecting all.
10. Scroll down to Miscellaneous settings.
11. If running TouchOffice Web + and customer totals master is set to yes, select Customer
account adjustment > Allowed to adjust balances/points.
12. Select Yes if the user is allowed to adjust balances or points.
TouchOffice Web stores information individually and within groups. Groups provide the structure
for reporting and programming purposes.
No Name Description
Information organisation
1 Head office
The Head Office site (0) is the default
parent site.
All other sites and site groups are
listed under it. Each TouchOffice Web
instance includes the default site -
Head Office.
2 Site groups
Site groups link multiple sites
together for reporting and
programming purposes.
Site groups can be geographically
based:
North
South East
United Kingdom
They can also be based on
administrative groups:
Restaurant
Bar
3 Sites
Sites can be physical or virtual
locations or a need to separate
products into different administrative
areas.
Physical location can be a completely
different geographical area or a
separate area in the same vicinity.
For example, a farm may have a
restaurant, a local, and an online
shop - the farm creates three sites as
products sold on these sites require
separate management. Customers
accessing the products online
purchase products based on their
physical location.
You must create at least one
additional site.
4 Departments
Departments are for internal
purposes and allow you to track and
run sales reports that are department
or accounting code specific.
Departments are configured in the
Head Office site only.
5 PLU / product groups
Groups are for internal purposes and
allow you to track sales reports that
are group-specific or accounting code
specific.
Groups are configured in the Head
Office site only.
6 PLU / product
The PLU (price look-up) or product is
a sellable item that can be
chargeable or non-chargeable.
A product can be:
a ticket
clothing
meals
drinks
a service
7 List PLUs
List PLUs provide customers with
more choice such as meal deals, addon's,
sizing, optional ingredients, and
more.
List PLUs group non-chargeable and
chargeable add-ons. For instance, a
meal includes non-chargeable addons:
a hamburger
chips and
a coke
The customer can customize their
meal by adding chargeable add-ons:
extra cheese
caramelized onions
mushroom sauce
The Head Office site (0) is a special default parent group - all other sites are listed under it.
Departments, groups and other functionality is configured in the Head Office site only.
Head office site
Site groups link multiple sites together for reporting and programming purposes. The site group
can be a parent or a nested child group. The Head Office site (0) is a special default parent group -
all other sites groups are listed under it. Site groups are created in TillConfig. You need to create
the sites before you can assign them to site groups.
Site groups
Site groups are created in TillConfig.
Create the site group:
1. In TillConfig select OfficeWeb > Site Groups.
2. Select the parent site from the parent group drop down list.
Instructions
3. Enter the site group name and then select Add New Site Group.
View site groups illustration
No Field name Description Type Length
1 Site ID
0 - Head Office
updates the settings
on all sites. Select
individual sites to
update settings on
that specific site.
Number 3
2 Name
Enter a meaningful
name that will help
you easily identify
the site.
Alpha 24
3 Site reference
This is a reference to
help identify the site
using the business's
terminology.
4 Site group Select the site group
the site belongs to.
Once you have created the site groups in TillConfig you will need to ensure the relevant user
permissions are set in TouchOffice Web:
1. In TouchOffice Web select Admin > Settings. Select the relevant user and provide access
to the relevant sites and site groups.
Fields
Site Groups user permissions
Sites connect products, stock, clerks, department, product groups, etc. together for reporting and
programming purposes. They can be geographically based (Europe, United States) or based on an
administrative requirement (accounting, cost centre etc).
You can set up multiple sites to track inventory and fulfill orders at each site. A site can be a retail
store, warehouse, online shop or any other place where you manage or stock inventory. Multiple
sites provide better visibility of your inventory and sales across your business.
The Head Office site (0) is a special default parent group - all other sites are listed under it.
Sites
To setup a new site follow the instructions below:
1. Go to https://www.touchoffice.net.
2. Select the + sign at the top of the page to add a new site.
Instructions
3. Enter a number in the ID field that is not in use and enter a name.
4. Select Add Site.
No Field name Description Type Length
1 Site ID
0 - Head Office
updates the settings
on all sites. Select
individual sites to
update settings on
that specific site.
Number 3
2 Name
Enter a meaningful
name that will help
you easily identify
the site.
Alpha 24
3 Site reference
This is a reference to
help identify the site
using the business's
terminology.
4 Site group Select the site group
the site belongs to.
Once you have created the sites you will need to ensure the relevant user permissions are set in
TouchOffice Web:
1. In TouchOffice Web select Admin > Settings. Select the relevant user and provide access
to the relevant sites and site groups.
Fields
Site user permissions
No Report type Description
1 Financial Fixed Total Sales By Site.
2 Financial Site Comparison.
3 Tax sales by site Tax Sales By Site.
Reports
Preventing accidental connections of TouchPoint terminals
When a TouchPoint terminal connects to TouchOffice Web, its license and terminal numbers are
recorded to prevent accidental connections of other TouchPoint terminals to the same account.
To view this information, follow these steps:
1. Go to https://www.touchoffice.net/
2. Select Terminals.
3. The terminal license numbers are displayed in the License column.
Procedure for replacing a TouchPoint terminal connected to TouchOffice Web
When replacing a TouchPoint terminal connected to TouchOffice Web with another terminal that
has a different license, follow these steps:
1. Navigate to the Site Level Terminals Page in TouchOffice Web: Go to the site level
terminals page within TouchOffice Web.
2. Recapture the License: Recapture the license for the new machine. This action will
clear the current license associated with the terminal number.
3. Update the License Number Field: Allow the new machine to connect and update the
license number field accordingly.
Error message: "Terminal not configured in TOW"
Recapturing licence
(replacing a machine
connected to TouchOffice
Web)
If a TouchPoint terminal is replaced with a machine that has a different license number and the
proper steps are not followed, you will encounter the following error message:
"Terminal not configured in TOW"
This message appears in Program 3 - System Programming - System Configuration, as the status
of the IDC uploader.
Departments are for internal purposes and allow you to track and run sales reports. It is important
to have sufficient departments to make reporting more meaningful.
The department sorts and groups products sent to the kitchen printers.
It is also used to integrate to 3rd party software such as Ireland's new 2024 deposit RETURN
scheme.
Typically a department will be a category such as Drinks and Food.
It is worth configuring a “not allocated” link at the end of the department list. This will
make it easier to see products that have not been allocated to a department.
Once configured the department link will appear in the drop-down menu of other
programming pages.
Departments are configured in the Head Office site only.
Department programming
Enable the relevant user permissions in TouchOffice Web:
1. View department programming.
2. Edit department programming.
To configure departments:
1. Go to https://www.touchoffice.net.
2. Select Programming > Departments.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Descriptor
The department
description should
be meaningful.
Alpha 24
3 Accounting code
The accounting code
is used to integrate
3rd party software
such as Xero, Sage,
and Quickbooks.
Alpha 25
User permissions
Instructions
Fields
No Button type Description
1 Save Save changes.
2 New Add a new department.
No Report type Description
1 Department Department Sales Bar Graph.
2 Department Department Sales Per Till.
3 Department Department Sales Pie Chart.
4 Department Department Totals By Day Week.
5 Financial Department Sales.
Buttons
Reports
PLU groups need to be defined prior to configuring each product.
A PLU group will often be higher hierarchy than department, although they can be
completely unrelated. In the example of this menu, the groups will be Food and Drink.
The PLU group will appear in the drop-down menu in the product configuration page.
It is worth configuring a “not allocated” link at the end of the PLU group lists.
PLU groups are configured in the Head Office site only.
Enable the relevant user permissions in TouchOffice Web:
1. View PLU group programming.
2. Edit PLU group programming.
To configure PLU groups:
1. Go to https://www.touchoffice.net.
2. Select Programming > Groups.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
PLU group programming
User permissions
Instructions
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Descriptor
The PLU group
description should
be meaningful.
Alpha 24
3 Accounting code
The accounting code
is used to integrate
3rd party software
such as Xero, Sage,
and Quickbooks.
Alpha 25
No Button type Description
1 Save Save changes.
2 New Add a new group.
No Report type Description
1 Financial PLU Group Sales.
2 Financial PLU Group Sales By Till.
3 PLU PLU Gross Profit Performance.
Fields
Buttons
Reports
Often the customer will not know how they want to organise their products in the system. This is
especially true of a customer who has upgraded from a cash register. If they have had a previous
EPoS system, they may be able to provide the information in an easy format, see the product table
at the end of this document for guidance.
If they can’t provide any of the information in the product table, then a copy of their menu is a
good place to start.
Create a product list -
recommended steps
Create a product list that includes the following: Product name, department, PLU group, 1st @
price, 2nd @ price, 3rd @ price, 1st @ quantity, 2nd @ quantity, 3rd @ quantity, tax table, cost
price. Refer to the attached template to assist you (PLU programming.ods).
View the Sample menu.ods spreadsheet based on the menu illustration above.
1. Create the departments.
2. Create the PLU groups.
3. Create the tax tables.
4. Create the products.
5. Create the list PLUs.
If the PLUs are programmed to have similar departments near each other in the PLU list, then
leave enough space for expansion before programming the next set of products.
A product is any item or service of value that is sold and can be physical or virtual. Physical (
tangible) products include durable goods such as clothing, cars, furniture, and computers and
nondurable goods such as food, beverages and meals. Products can also be non-tangible items
such as entertainment, travel, tickets, memberships, services etc.
Enable the relevant user permissions in TouchOffice Web:
Product programming
summary
User permissions
1. View PLU programming.
2. Edit PLU programming.
To configure products:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record
The record number
is system generated.
The maximum
number of PLU
records is 65,000.
Number 5
Instructions
Fields
No Field name Description Type Length
2 Product
The PLU (price lookup)
or product is a
sellable item that
can be chargeable or
non-chargeable. It
helps you identify
and search for a
product.
A product can be:
a ticket
clothing
meals
a service
This is an
alphanumeric field
with a maximum
length of 24
characters.
Alpha 24
3 Random code
The random code is
used to access this
PLU. The random
code can be:
A barcode
A sort
option in
TouchTak
eaway,
ByTable
and
ByRetail
menu
Alpha 20
4 Group link
The sales group that
the product is linked
to. It is also used to
sort kitchen items by
group.
If you have not
already setup a
group select
TouchOffice Web,
programming,
groups to set one up.
Dropdown list
No Field name Description Type Length
5 Department link
The sales
department that the
product is linked to.
It is also used to sort
kitchen items by
department.
If you have not
already setup a
department select
TouchOffice Web,
programming,
departments to set
one up.
Dropdown list
6 Tax rate link
The tax rate is used
for tax calculation.
If the multi tax rates
flag is set, then you
will be able to select
any combination of
the first 8 tax rates.
Only tax rates with
configured name or
a rate will be shown.
Dropdown list
Price levels
There are nine price levels, with 12 @ prices for levels 1 to 3 and 18 @ prices for levels 4 to 9. The @ price and @
quantity are used to price portions.
For instance, a 750ml bottle of wine has a 1st @ price of £20.00 and an @ quantity of 1. A 175ml glass of wine has a
2nd @ price of £5.00 and an @ quantity of 4. The regular size of a glass of wine is 175ml - a 750ml bottle of wine can
provide four glasses of wine.
In a real-life scenario, the restaurant would usually increase the price of the wine per glass - we have kept the
explanation as simple as possible.
7 Price 1 Level 1 - 9
The 1st level 1st
price for the PLU. 2
decimal places are
assumed, although
the decimal point is
not entered.
Number 8
8 Price 2 Level 1 - 9
The 1st level 2nd
price for the PLU.
This is accessed by
using a price shift
button, set to 2nd @.
Number 8
No Field name Description Type Length
9 Price 3 Level 1 - 9
The 1st level 3rd
price for the PLU.
This is accessed by
using a price shift
button, set to 3rd @.
Number 8
10 Stock flag Shows the number
of items in stock. Flag 3
No Button type Description
1 Save Save changes.
2 New Add a new product.
No Report type Description
1 Customer Customer PLU sales.
2 Clerk PLU Sales by clerk.
3 Customers Customer PLU sales.
4 Exports Finance export PLUGroup.
5 Exports Finance export PLUGroup NoDecimal.
6 Exports PLU Active Stock Links Export.
7 Exports PLU Detail Export.
8 Exports PLU Export PLUSales.
9 Exports PLU Stock Detail Export.
Buttons
Reports
No Report type Description
10 Financial PLU Group Sales.
Product details tab
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
To configure the product details tab:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the site from the drop down list.
4. Select the PLU number.
5. Select the details tab.
6. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Descriptor
The descriptor
field helps you
identify and
search for a
product.
Alpha 24
User permissions
Instructions
Fields
No Field name Description Type Length
2 Group link
The sales group
that the product
is linked to. It is
also used to sort
kitchen items by
group.
If you have not
already setup a
group select
TouchOffice
Web,
programming,
groups to set
one up.
Dropdown list
3 Department link
The sales
department that
the product is
linked to. It is
also used to sort
kitchen items by
department.
If you have not
already setup a
department
select
TouchOffice
Web,
programming,
departments to
set one up.
Dropdown list
No Field name Description Type Length
3 Random code
The random
code is used to
access this PLU.
The random
code can be:
A
barco
de
A
sort
option
in
Touch
Takea
way,
ByTab
le
and
ByRet
ail
menu
Alpha 20
4 Tax rate
The tax rate is
used for tax
calculation.
If the multi tax
rates flag is set,
then you will be
able to select
any combination
of the first 8 tax
rates.
Only tax rates
with configured
name or a rate
will be shown.
Dropdown list
No Field name Description Type Length
5 Tags
Tags are
searchable
keywords. This is
useful if you
have many
products that
need to be
maintained in
TouchOffice Web
and want to find
them easily.
Words are
separated by
spaces.
Alpha 24
6 Alt text
This feature is
used to display a
different
language or a
shortened
description for
the chef. The
alternative text
replaces the
product name in
TouchTakeaway,
ByTable and
ByRetail.
As an example,
the customer
will select a
meal based on a
long description
but the chef is
able to associate
the meal using
shortened text
or an acronym.
The maximum
field length is 48
characters.
Alpha 48
No Field name Description Type Length
7 Short description
The short
description is
displayed in
ByTable,
TouchTakeaway
etc.
The maximum
field length is
255 characters.
Alpha 255
Price levels
There are nine price levels, with 12 @ prices for levels 1 to 3 and 18 @ prices for levels 4 to 9. The
@ price and @ quantity are used to price portions.
For instance, a 750ml bottle of wine has a 1st @ price of £20.00 and an @ quantity of 1. A 175ml
glass of wine has a 2nd @ price of £5.00 and an @ quantity of 4. The regular size of a glass of wine
is 175ml - a 750ml bottle of wine can provide four glasses of wine.
In a real-life scenario, the restaurant would usually increase the price of the wine per glass - we
have kept the explanation as simple as possible.
8 Price 1 Level 1 -
9
The 1st level 1st
price for the
PLU. 2 decimal
places are
assumed,
although the
decimal point is
not entered.
Number 8
9 Price 2 Level 1 -
9
The 1st level
2nd price for the
PLU. This is
accessed by
using a price
shift button, set
to 2nd @.
Number 8
10 Price 3 Level 1 -
9
The 1st level 3rd
price for the
PLU. This is
accessed by
using a price
shift button, set
to 3rd @.
Number 8
No Field name Description Type Length
11 1st@ Price
The 1st level 1st
price for the
PLU. 2 decimal
places are
assumed,
although the
decimal point is
not entered.
Number 8
12 2nd @ Price
The 1st level
2nd price for the
PLU. This is
accessed by
using a price
shift button, set
to 2nd @. See
Status Key
programming.
Number 8
13 3rd @ Price
The 1st level 3rd
price for the
PLU. This is
accessed by
using a price
shift button, set
to 3rd @. See
Status Key
programming.
Number 8
14 4th @ Price
The 1st level 4th
price for the
PLU. This is
accessed by
using a price
shift button, set
to 4th @. See
Status Key
programming.
Number 8
15 GP target %
The profit that
you wish to
make on the
PLU. This is
calculated with
the average cost
price and the
taxable status of
the product.
TouchOffice
displays this
price in the RRP
field.
Number 3 3
No Field name Description Type Length
16 GP actual %
This is how
much profit is
being made on
the PLU as its
current price.
Number 3
17 RRP
The
recommended
retail price -
the price that
the company tha
t makes
a product sugges
ts it should
be sold for.
Number 8
18 Average cost The average
cost per PLU. Number 8
19 QTY of 1st@
Price
The quantity of
the PLU sold at
the 1st @ price.
This is used for
calculating the
quantity sold on
PLU usage
reports.
Number 3
20 QTY of 2nd @
Price
The quantity of
the PLU sold at
the 2nd @ price.
When a 2nd @
price shift
button is
pressed, only
products with a
quantity set
here will appear
on the keyboard.
Number 3
21 QTY of 3rd@
Price
The quantity of
the PLU sold at
the 3rd @ price.
When a 3rd @
price shift
button is
pressed, only
products with a
quantity set
here will appear
on the keyboard.
Number 3
No Field name Description Type Length
22 QTY of 4th@
Price
The quantity of
the PLU sold at
the 4th @ price.
When a 4th @
price shift
button is
pressed, only
products with a
quantity set
here will appear
on the keyboard.
Number 3
No Button type Description
1 Save Save changes.
2 New Add a new product.
3 Populate
Copy program data from another
PLU, into the current PLU. Specify the
source PLU by searching or selecting
from a recent PLU.
Buttons
Product option windows tab
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
To configure the product option windows tab:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the site from the drop down list.
4. Select the PLU number.
5. Select the option windows tab.
6. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 List Box Link 1 to 6
Drop down window
links that can follow
the product for
cooking instructions
etc.
List boxes are
configured in list PLU.
Dropdown list
User permissions
Instructions
Fields
No Field name Description Type Length
2 Link 6 items
enforced zero price?
When set any items
registered through a
List PLU allocated in
list link 6 are
enforced zero price.
Checkbox
3
Windows Stay Until
ESC?
When set option
boxes will stay on
the TouchPoint
screen until escape
is pressed. When not
set they will
disappear once a
choice is made.
Checkbox
4 Set Menu link
When this item is
registered as part of
a Set Menu then the
3rd @ price of this
product is added to
the sale.
Dropdown list
5 Mix and Match link
Links the PLU to the
mix and match type
1 table. See Mix and
Match 1
programming.
Dropdown list
No Button type Description
1 Save Save changes.
2 New Add a new product.
3 Populate
Copy program data from another
PLU, into the current PLU. Specify the
source PLU by searching or selecting
from a recent PLU.
Buttons
Product stock tab
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
To configure the product stock tab:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the site from the drop down list.
4. Select the PLU number.
5. Select the stock tab.
6. Configure the fields using the guidance in the table.
No Field name Description Type Length
User permissions
Instructions
Fields
1 Non stock
Non stock PLUs are
products where the
price is not looked
up by the
register/computer at
the time of sale but
rather, the price is
obtained directly
from the barcode.
This is often used for
fresh food products,
Non-PLUs are
identified by the
TouchOffice Web,
Products, Stock tab,
Non stock field. The
Random Code field
can be used as a
sort option in
TouchTakeaway,
ByTable and
ByRetail menu.
Checkbox
2 Current stock
The current stock
quantity. When this
value is set, it is sent
to all terminals in
the network.
Number 8
3 Minimum stock
The minimum stock
quantity, used for
restricting the sale
of items when they
fall below this level.
Number 8
4 Maximum stock
The maximum stock
quantity, used for
restricting the sale
of items when they
fall below this level.
Number 8
5 Days to order The order days lead
time.
6 Master PLU
The Master PLU
allows you to
monitor how many
smaller PLUs are
sold (for example a
glass of wine) whilst
maintaining an
accurate record of
the remaining stock
of the larger PLU
(the bottle of wine
itself). Smaller PLUs
are associated with a
Master PLU in the
TouchOffice Web,
Products, Stock tab,
Master PLU
dropdown list.
Dropdown list
7 Quantity adjustment
When a 175ml glass
of wine is sold,
because it has a link
to a Master
PLU of the 750ml
bottle of wine, and
the quantity
adjustment is '0.25',
the
master PLU item's
current stock
amount is adjusted.
When the glass of
wine is sold it will
just affect the stock
of the bottle of
wine, not its own
stock levels.
Number
8 Recipe link
Recipes enable you
to group PLUs
together into a list of
ingredients, such as
a cocktail. A recipe
enables a list of PLU
items to be grouped
under one PLU
name. For example,
a cocktail recipe
called a 'screwdriver
recipe' would
contain two separate
PLU items of vodka
and orange, each
with respective
amounts.
The recipe can then
be linked to a PLU
item, for example, a
PLU can be created
called 'screwdriver'
and it can then be
linked to the
'screwdriver recipe'.
Now, when a
'screwdriver' cocktail
is sold, the stock
levels of the vodka
and orange PLUs are
adjusted.
A PLU with a Recipe
Link does not hold
its own stock, it only
affects the stock of
others.
Dropdown list
9 Unit size
This is the quantity
in units that will be
ordered when you
ask TouchOffice Web
to suggest an order
based on products
being below
minimum stock.
10 Case size How many products
in a case. Dropdown list
11 Outer barcode The barcode on the
packaging.
12 Ref Supplier name.
13 Name Name of the contact
within the company. Dropdown list
14 Code
The reference code
to identify the
supplier.
15 Unit cost
Displays how much a
single unit costs to
buy.
16 Case cost Displays how much a
case costs.
17 Shelf edge labels
These labels are
used in retail
environments to
display information
about products and
are usually slotted
into a data strip
(also known as a
ticket rail or strip or
a scanner rail or
strip) or into a shelf
barker (also known
as shelf talkers).
Checkbox
18 Location
Enter a physical
location for the shelf
edge labels to aid
staff in finding the
correct shelf for the
label, this location
code is printed on
each of the labels.
19 Facings
How many labels are
required? If more
than one shelf edge
label is required for
the display the
quantity should be
entered here.
20 Quantity of type
Enter the conversion
factor for the Unit
being used. This tells
TouchOffice Web the
relationship between
the quantity of each
item that is sold
compared to the unit
quantity that is
shown on the shelf
edge label.
For example a can of
cola sold in
quantities of 250ml
but shown on the
shelf edge label with
a unit of 1 litre,
would be 0.250.
21 Type
A description of the
weight or volume:
millilitre
kilograms
grams
22 Stock labels
Enables stock label
printing for this PLU
on TouchOffice Web.
Checkbox
23 Print shelf label Directly print this
shelf edge label. Button
24 Print stock label Directly print this
stock label. Button
No Button type Description
1 Save Save changes.
2 New Add a new product.
3 Populate
Copy program data from another
PLU, into the current PLU. Specify the
source PLU by searching or selecting
from a recent PLU.
Buttons
Product terminal flags tab
Flags indicate whether an option is enabled or disabled in a program.
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
To configure the product terminal flags tab:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the site from the drop down list.
4. Select the PLU number.
5. Select the terminal flags tab.
6. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Enable zero price
sale?
The product can be
sold with a price of
zero.
Checkbox
2 PLU is negative
price?
The price will be
negated when it is
sold.
Checkbox
User permissions
Instructions
Fields
No Field name Description Type Length
3 Allow manual weight
entry?
Allows the weight to
be entered at time of
sale.
Checkbox
4 Enable preset
override?
When set, prices can
be typed into the
button, for misc
buttons etc.
Checkbox
5 Enable SEL printing
Setting this to yes
will enable shelf
edge labels to be
printed for this PLU.
Checkbox
6 High digit limit
When "enable preset
override" is enabled
you can restrict the
amount of digits that
can be entered onto
the PLU, setting this
value as 3 would
allow prices up to
£9.99 to be
registered.
Checkbox
7 Flag as pending SEL
This will
automatically
change to yes when
any fields that are
set to print on the
SEL are changed,
this can also be
toggled to yes
manually. When
pending is set to yes
a label will be
produced when the
SEL Pending report
is run.
Checkbox
8 PLU is condiment PLU
The PLU will be sold
as a condiment to
the item before it.
Checkbox
No Field name Description Type Length
9 Single item sale
When set the PLU
will automatically
finalise the sale after
registering. Only
applies when it is the
first PLU registered
in the sale. The
finalise key record
that is used can be
preset in
Maintenance -
System
Programming -
System Flags - PLU
Control.
Checkbox
10 PLU is weight PLU
The price is per
kilograms not
quantity.
Checkbox
11 Set menu premium
item? (uses 3rd @)
When this item is
registered as part of
a Set Menu then the
3rd @ price of this
product is added to
the sale.
Checkbox
12 Prompt with notes Future use. Checkbox
13 Prompt customer
verification 1
Used for age
verification, nut
allergies etc. These
can be set in
Maintenance -
Message - Fixed
Character Character
76 and 77.
Checkbox
14 Prompt with picture
A .jpg of the PLU can
be displayed during
a sale or when
enquired about.
Checkbox
15 Prompt customer
verification 2
Used for age
verification, nut
allergies etc. These
can be set in
Maintenance -
Message - Fixed
Character Character
76 and 77.
Checkbox
No Field name Description Type Length
16 Rate 1
The % commission
that the clerk
receives on
products. Typically
used in hairdressing
type applications,
the commission
totals appear in the
main fixed totaliser
totals, and can be
shown per clerk by
adding them to the
clerk detail report.
Checkbox
17 Rate 2
The % commission
that the clerk
receives on
products. Typically
used in hairdressing
type applications,
the commission
totals appear in the
main fixed totaliser
totals, and can be
shown per clerk by
adding them to the
clerk detail report.
Checkbox
18 Rate 3
The % commission
that the clerk
receives on
products. Typically
used in hairdressing
type applications,
the commission
totals appear in the
main fixed totaliser
totals, and can be
shown per clerk by
adding them to the
clerk detail report.
Checkbox
No Field name Description Type Length
19 Rate 4
The % commission
that the clerk
receives on
products. Typically
used in hairdressing
type applications,
the commission
totals appear in the
main fixed totaliser
totals, and can be
shown per clerk by
adding them to the
clerk detail report.
Checkbox
20 Print to kitchen
printer 1 to 12
Select the kitchen
printer that will print
the product order.
Checkbox
21 Print in red on kp?
Print the product
order in red. Checkbox
22 Print to ticket printer
1
Select the printer
that will print the
ticket.
Checkbox
23 Print to ticket printer
2
Select the printer
that will print the
ticket.
Checkbox
24 KP category
A list of text names
that are used for
sorting products on
the kitchen printer.
See PLU
Programming for
linking of PLUs to KP
Categories.
Checkbox
No Field name Description Type Length
25 Itemiser 1 to 5
This is used for
selective discounts,
with customer
loyalty and discount
buttons and for
service charge.
For example setting
selective item 1 on a
product and
configuring the
discount key to only
discount selective
item 1 products will
mean that this
product will be
discounted, whereas
others without this
flag set will not.
Checkbox
26 Maintain stock
When set the
product will perform
stock control
functions. Used
mainly for the use of
restricting the sale
of 'specials'.
Checkbox
27 Error when minimum
stock reached?
When the stock level
reaches the
minimum stock
level, then the
software will throw
up an error message.
Checkbox
28
Inhibit sales when
below minimum
stock?
This prevents
products from being
sold when their
stock counter falls
below their minimum
stock level.
Checkbox
29 Display stock
quantity on keyboard
When the PLU is on
the keyboard, it's
current stock level
will be shown at the
bottom of the button.
Checkbox
30 SEL unit
Setting this to yes
will enable shelf
edge labels to be
printed for this PLU.
Dropdown list
No Field name Description Type Length
31 SEL quantity
Shelf edge label
quantity. Number 8
32 Minimum stock The minimum stock
to be kept. Number 8
No Button type Description
1 Save Save changes.
2 New Add a new product.
3 Populate
Copy program data from another
PLU, into the current PLU. Specify the
source PLU by searching or selecting
from a recent PLU.
Buttons
Product WebShop options
tab
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
Enable the relevant user permissions TouchOffice Web.
To configure the product WebShop options tab:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the head office site from the drop down list.
4. Select the PLU number.
5. Select the Edit button under the Web category section.
6. Enter the name of the new category i.e. Herbs.
7. Save and then select Ok.
8. Make sure the new category is selected and then select the Edit button.
9. Press the pencil icon next to the category.
10. Add the relevant time slots, upload an image, add a description and then select Save.
Edit web categories illustration
User permissions
User permissions
Instructions
11. Repeat to add additional web categories.
12. Drag and drop to reorder web categories.
Edit web categories illustration
13. Associate List PLUs with the PLU
You can create sub-web categories with a colon provided they do not exceed 255
characters.
Parent categories can contain a mixture of PLUs and sub-categories if desired. The
parent category must exist in your category list regardless of whether it is linked
directly to the PLU.
14. Select Web List Link 1 from the drop down list box.
15. Select Web List Link 2 from the drop down list box. Repeat if you have set up other List
PLU's.Select the Webshop options tab.
16. Ensure Shop on Webshop is ticked.
No Button type Description
1 Save Save changes.
2 New Add a new product.
3 Populate
Copy program data from another
PLU, into the current PLU. Specify the
source PLU by searching or selecting
from a recent PLU.
Buttons
Product allergens tab
14 allergens are required by law to be identified:
Celery
Cereals containing gluten - wheat rye, barley, oats etc
crustaceans - prawn, crab, lobster etc
eggs
fish
lupin
milk
Mollusks - mussels, oysters etc
mustard
tree nuts - almonds, Brazil nuts, cashews etc
peanuts
sesame seeds
soybeans
sulphur dioxide and sulphites (if above ten parts per million)
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
To configure the product allergens tab:
1. Go to https://www.touchoffice.net.
User permissions
Instructions
2. Select Products.
3. Select the site from the drop down list.
4. Select the PLU number.
5. Select the allergens tab.
6. Select or deselect as required.
No Field name Description Type Length
1 Celery
Celery is closely
linked to birch and
mugwort and is
often referred to as
birch mugwort celery
syndrome where the
immune system has
mistaken the food
for pollen.
Symptoms are
usually mild and can
include itching or
tingling in the
mouth, lips or throat.
Checkbox
Fields
No Field name Description Type Length
2
Cereals containing
gluten - wheat rye,
barley, oats etc
Allergic reactions to
grains share
common symptoms
that can develop
within minutes to
hours after ingestion.
Symptoms include:
Itching of
the
mouth or
throat
Swelling
of the lips
or throat
Hives or
itchy skin
Difficulty
breathing
Vomiting
and.or
diarrhea
Checkbox
3 Crustaceans - prawn,
crab, lobster etc
Shellfish is a
common food
allergy. Some people
with shellfish allergy
react to all shellfish,
while others react to
only certain kinds.
Symptoms range
from mild symptoms
- such as hives or a
stuffy nose - to
severe and even lifethreatening.
Checkbox
No Field name Description Type Length
4 Eggs
Eggs are one of the
most common
allergy-causing
foods for children.
Symptoms usually
occur a few minutes
to a few hours after
eating eggs or foods
containing eggs.
Signs and symptoms
range from mild to
severe and can
include skin rashes,
hives, nasal
congestion, and
vomiting or other
digestive problems.
Rarely, egg allergy
can cause
anaphylaxis - a lifethreatening
reaction.
Checkbox
5 Fish
Fish allergy can
cause a severe
reaction called
anaphylaxis, even
if a previous
reaction was mild.
Anaphylaxis might
start with some of
the same symptoms
as a less severe
reaction, but can
quickly get worse.
The person may
have trouble
breathing or pass
out.
Checkbox
No Field name Description Type Length
6 Lupin
Symptoms include
hives, oral itching,
swelling of the face,
tongue or throat,
abdominal pain,
nausea, vomiting,
runny nose or
watery eyes,
difficulty breathing,
cough, wheeze, and
cardiovascular
symptoms, such as
low blood pressure.
Checkbox
7 Milk
An allergic reaction
usually occurs soon
after you or your
child consumes milk.
Symptoms of milk
allergy range from
mild to severe and
can include
wheezing, vomiting,
hives and digestive
problems.
Milk allergy can also
cause anaphylaxis -
a severe, lifethreatening
reaction.
Checkbox
8 Mollusks - mussels,
oysters etc
Mollusc allergies
tend towards the
severe, and in the
worst cases this
can result in fatal
anaphylaxis.
In the case of a
mollusc allergy, the
primary allergen is
the filament protein
tropomyosin. People
who have an allergy
to one species to
one type of mollusc
may very well have
an allergy to other
species of mollusc.
Checkbox
No Field name Description Type Length
9 Mustard
Mild to moderate
symptoms may
include: a red
raised rash
(known as hives or
urticaria)
anywhere on the
body, a tingling or
itchy feeling in the
mouth.
Checkbox
10
Tree nuts - almonds,
Brazil nuts, cashews
etc
Allergic reactions
can be
unpredictable, and
even very small
amounts of tree
nuts can cause a
serious allergic rea
ction.
Checkbox
11 Peanuts
Peanut allergy can
result in fatal
anaphylaxis, even
if a previous
reaction was mild.
Checkbox
12 Sesame seeds
Sensitivity to
sesame varies from
person to person,
and reactions can be
unpredictable.
Symptoms of a
sesame allergy
reaction can range
from mild, such as
hives, to severe,
such as fatal
anaphylaxis.
Checkbox
13 Soybeans
A soy allergy causes
your immune system
to overreact to soy
proteins.
Symptoms include
stomach problems,
cough, and itching.
Checkbox
No Field name Description Type Length
14
Sulphur dioxide and
sulphites (if above
ten parts per million)
Breathing in the
sulphur dioxide
when eating food
containing sulphites
could irritate the
airways and cause
breathing problems.
Checkbox
No Button type Description
1 Save Save changes.
2 New Add a new product.
3 Populate
Copy program data from another
PLU, into the current PLU. Specify the
source PLU by searching or selecting
from a recent PLU.
No Report type Description
1 PLU PLU Allergen List
Buttons
Reports
Product nutrition
programming
Options for the nutritional information are:
Energy (kcal)
Fat (g)
Saturates (g)
Carbohydrate (g)
Sugars (g) Protein (g)
Salt (g)
Portions
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
To configure the product nutrition tab:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the site from the drop down list.
4. Select the PLU number.
5. Select the Nutrition tab.
6. Configure the fields using the guidance in the table.
User permissions
Instructions
No Field name Description Type Length
1 Energy
Calorie information
is given in kcals,
which is short for
kilocalories.
Generally, the
recommended daily
calorie intake is
2,000 calories a
day for women
and 2,500 for men.
Number 4
2 Fat
In grams.
All types of fat are
high in energy. A
gram of fat, whether
it's saturated or
unsaturated, provide
s 9kcal (37kJ) of
energy compared
with 4kcal (17kJ) for
carbohydrate and
protein.
Number 4
3 Saturate
In grams.
Saturated fats are
found in many
foods, both
sweet and savoury.
Most of them come
from animal sources,
including meat and
dairy products, as
well as some plant
foods, such as palm
oil and coconut oil.
Number 4
Fields
No Field name Description Type Length
4 Carbohydrate
In grams.
Starchy foods are a
good source of
energy and the main
source of a range of
nutrients in our diet.
As well as starch,
they contain fibre,
calcium, iron and B
vitamins.
Some people think
starchy foods are
fattening, but gram
for gram they
contain fewer than
half the calories of
fat.
Number 4
No Field name Description Type Length
5 Sugar
In grams.
Any
sugars
added to
food or
drinks.
These
include
sugars in
biscuits,
chocolate,
flavoured
yoghurts,
breakfast
cereals
and fizzy
drinks.
These
sugars
may be
added at
home, or
by a chef
or other
food
manufact
urer.
Sugars in
honey,
syrups
(such as
maple,
agave
and
golden),
nectars
(such as
blossom),
and
unsweete
ned fruit
juices,
vegetable
juices
and
smoothies
. The
sugars in
these
foods
occur
naturally
but still
count as
free
sugars.
Number 4
No Field name Description Type Length
6 Protein
In grams.
For most people, a
daily dose of around
0.8-1g of protein per
1kg of body weight
is recommended.
Number 4
7 Salt
In grams.
Current guidelines
recommend that an
adult should have
no more than 6g
of salt a day, which
is the equivalent of
one teaspoon
(children should
have much less than
this).
Number 4
8 Portions
A portion is the
amount of a food
that you eat at one
time, for example
how much food you
put on your plate at
a meal or how much
is in a packet.
Number 4
No Button type Description
1 Save Save changes.
2 New Add a new product.
3 Populate
Copy program data from another
PLU, into the current PLU. Specify the
source PLU by searching or selecting
from a recent PLU.
Buttons
Display additional product pop-up items during ByTable and TouchTakeaway checkout.
Product associated items tab
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
To configure the Associated items tab:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the site from the dropdown list.
4. Select the PLU number.
5. Select the Associated items tab.
User permissions
Instructions
6. Add each Associated PLU, then select a start and end time.
7. Save.
1. Go to tillconfig.net.
2. Select Takeaway, then select Associated items.
3. Select the Site from the dropdown list, then select Enabled.
TillConfig
View the TouchTakeaway, ByTable, ByRetail reference guide
Display PLU changes synchronised to TouchPoint such as the price, department, or group. Supplier
or other changes not synchronised with TouchPoint will not be displayed.
PLU activity
Enable the relevant user permissions in TouchOffice Web:
1. View PLU programming.
2. Edit PLU programming.
To configure the Associated items tab:
1. Go to https://www.touchoffice.net.
2. Select Products.
3. Select the site from the dropdown list.
4. Select the PLU number.
5. Select the PLU activity tab.
6. Select a start and end date and time, then select a specific user or all users.
7. Select submit.
User permissions
Instructions
List PLUs provide customers with more choices such as recipes, meal deals, add-on's, sizing,
optional ingredients, and more. List PLUs group non-chargeable and chargeable add-ons. You
need to create each PLU before you can add it to a list PLU. List PLUs are configured in the Head
Office site only.
Examples:
1. A Mojito recipe includes non-chargeable items: Lime, granulated sugar, mint, rum, and
soda water.
2. A hamburger recipe also includes non-chargeable items: hamburger patty, roll, and
lettuce, tomato.
3. A meal deal includes non-chargeable and add-on chargeable items:
List PLU programming
Coke (included)
Chips(included)
Extra cheese (add-on)
Caramelized onions (add-on)
Mushroom sauce (add-on)
Enable the relevant user permissions in TouchOffice Web:
1. View List PLU programming.
2. Edit List PLU programming.
To configure list PLUs:
1. Go to https://www.touchoffice.net.
2. Select Programming > List PLUs.
3. Select an unused record and click on the number.
4. Setup the list PLU using the information in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
User permissions
Instructions
Fields
No Field name Description Type Length
2 PLU
Enter the PLU
number or select the
PLU from the
Descriptor drop
down list.
Dropdown list
3 Descriptor Alpha 24
4 Minimum Minimum quantity. Number 3
5 Window stays down
until ESC?
This is a TouchPoint
setting - please refer
to the TouchPoint
manual for more
details.
Checkbox
6 Maximum
This is useful for
restricting the
number of add-on's
that can be chosen
for a selected
product. For
example, you can
offer 10 burger addon
ingredients but
allow the customer
to select up to 3.
Number 3
7 Force zero price?
Zero price is
enforced on the
entire PLU list.
This is useful if you
have a meal deal
that includes a
hamburger, chips
and a coke. Sold
separately each item
would be chargeable
however when sold
as a meal deal each
item is inclusive.
You can set up
another List PLU with
chargeable add-on's -
extra cheese,
caramelized onions,
mushroom sauce.
Checkbox
No Field name Description Type Length
8 Price shift
This is the level price
for the List PLU.
Options:
1st @
Price.
2nd @
Price.
3rd @
Price.
4th @
Price.
Numeric, maximum
length = 8. 2
decimal places are
assumed although
the decimal point is
not entered.
This can be used for
selling different
quantities.
Dropdown list
9 Price level change?
You can set up to 9
price levels for the
same List PLU.
This is used for
happy hour -
discounted price.
Different levels of
membership.
Dropdown list
No Button type Description
1 Save Save changes.
2 New Add a new list PLU.
Buttons
Mix and match promotions offer discounts based on purchasing a combination of products in one
sale.
There are two methods:
1. Mix and Match type 1 deals are relatively straight forward i.e. multiple purchase of the
same product, or multi-product deals where the product is included in only one deal at a
time.
2. Mix and Match type 2 deals are more complex i.e. purchasing products from different
categories, and products eligible for more than one deal at a time.
Discount promotion types:
1. Discount amount - the amount is discounted from the total.
2. Discount % - the percentage is discounted from the total.
3. Set price - 3 for £x.
4. Discount amount cheapest - discounts the cheapest item by a set amount.
5. Discount % cheapest - discounts the cheapest item by a set percentage.
6. Discount amount last item - discounts the last item by a set amount.
7. Discount % last item - discounts the last item by a set percentage.
8. Etal, this allows custom offers to be scripted using Etal.
Mix and match programming
Mix and Match discount promotions
Mix and Match type 1 deals are for relatively straight forward discount deals:
multiple purchase of the same product.
multi-product deals where the product is included in only one deal at a time.
Deals can be enabled, restricted to specific days of the week, or restricted to specific hours i.e.
lunch time or happy hour.
As products are added to a sale, a counter tracks the number purchased and triggers the discount.
Mix and match 1
programming
Refer to the 7 examples below.
Enable the relevant user permissions in TouchOffice Web:
1. View mix and match programming.
2. Edit mix and match programming.
To configure Mix and match 1 deals:
1. Go to https://www.touchoffice.net.
2. Select Programming > Mix and match.
3. Select an unused record and click on the number.
4. Configure the deal referring to the field guidelines in the table below.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Descriptor Name of the Mix and
Match. Alpha 24
User permissions
Instructions
Fields
No Field name Description Type Length
3 Mix and match type
The type of mix and
match one of the
following seven:
1. Discount
amount
(amount
to be
reduced
from
total).
2. Discount
% (the
percentag
e to be
reduced
from
total).
3. Set price
(e.g. 3 for
£5).
4. Discount
amount
cheapest
(discounts
the
cheapest
item).
5. Discount
%
cheapest
(discounts
the
cheapest
item by
%).
6. Discount
amount
last item
(discounts
the last
item).
Dropdown list
No Field name Description Type Length
4 Affects Tax Table The applicable tax
rate. Dropdown list
5 Quantity required
The number of items
needed to be sold
before the discount
is performed.
Number 4
6 Amount/Discount
Rate (%)
The amount to be
discounted or the
percentage to be
discounted.
Number 3
7 Include 2nd and 3rd
@ items
Includes items that
were subject to a
2nd, 3rd or 4th@
price shift.
Checkbox
8 Include old items
from checks
If yes mix & match
applies to check
items.
Checkbox
9 Price level 1 items
only?
If yes the Mix and
match will apply only
to products being
sold at price level 1.
Checkbox
10 Warn user when
table starts?
If yes a dialogue box
will appear on
screen after selling
the first item in a
mix and match, to
warn the operator
that an offer exists.
Checkbox
11 Same items only?
When set, in order
for the table to fire
the items in it must
be the same. Price
shift and level are
also used for the
comparison. Items
can have been sold
at different prices.
Checkbox
12 Only available in this
time range?
Restrict availability
of mix and match to
a specific time range.
Checkbox
13 Start Time Range
Sets start time of
range (24 hour
clock).
Number 4
No Field name Description Type Length
14 End Time Range
Sets end time of
range (24 hour
clock).
Number 4
15 Applies to
Select the days of
the week the mix
and match applies to.
Checkbox
No Button type Description
1 Save Save changes.
2 New Add a new mix and match.
Buttons
Example 1 - 4 for £10
To configure a buy 4 for £10 deal.
1. In TouchOffice Web, select Programming > Mix & match 1.
2. Select an unused deal.
3. Enter 4 for £10 in the deal description field.
4. Enter £10 in the Amount/Discount Rate(%) field.
5. Enter 4 in the Quantity field.
6. Select Discount amount from the Mix & match drop down list.
7. Enter a start time of 20:00 and an end time of 01:00.
8. Save.
9. Next select the Mix and match record number and ensure the fields are configured as
follows:
Field name Description
Descriptor 4 for £10
Mix and match type Discount amount
Affects Tax Table VAT @ 20%
Quantity required 4
Amount/Discount Rate (%) 10.00
Include 2nd and 3rd @ items Tick
Include old items from checks
Price level 1 items only? Tick
Warn user when table starts?
Same items only? Tick
Field name Description
Only available in this time range? Tick
Start Time Range 20:00
End Time Range 01:00
Applies to Monday? Tick
Applies to Friday? Tick
10. Configure the products. Select Programming > Products.
11. Select an eligible PLU.
12. Select the Option windows tab.
13. Select 4 for £10 from the Mix & match dropdown list. Repeat for all eligible products.
Example 2 - buy 2 get 10% off
To configure a buy 2 get 10% off deal.
1. In TouchOffice Web, select Programming > Mix & match 1.
2. Select an unused deal.
3. Enter Buy 2 get 10% off in the deal description field.
4. Enter £10 in the Amount/Discount Rate(%) field.
5. Enter 2 in the Quantity field.
6. Select Discount % from the Mix & match drop down list.
7. Enter a start time of 00:00 and an end time of 00:00 - the deal is activated and is not
restricted to a specific day or time.
8. Save.
9. Next select the Mix and match record number and ensure the fields are configured as
follows:
Field name Description
Descriptor Buy 2 get 10% off
Mix and match type Discount %
Affects Tax Table VAT @ 20%
Quantity required 2
Amount/Discount Rate (%) 10.00
Start Time Range 00:00
End Time Range 00:00
10. Configure the products. Select Programming > Products.
11. Select an eligible PLU.
12. Select the Option windows tab.
13. Select Buy 2 get 10% off from the Mix & match dropdown list. Repeat for all eligible
products.
Example 3 - 5 for £15
To configure a 5 for £15 deal.
1. In TouchOffice Web, select Programming > Mix & match 1.
2. Select an unused deal.
3. Enter 5 for £15 in the deal description field.
4. Enter £15 in the Amount/Discount Rate(%) field.
5. Enter 5 in the Quantity field.
6. Select Set price from the Mix & match drop down list.
7. Enter a start time of 00:00 and an end time of 00:00 - the deal is activated and is not
restricted to a specific day or time.
8. Save.
9. Next select the Mix and match record number and ensure the fields are configured as
follows:
Field name Description
Descriptor 5 for £15
Mix and match type Set price
Affects Tax Table VAT @ 20%
Quantity required 5
Amount/Discount Rate (%) 15.00
10. Configure the products. Select Programming > Products.
11. Select an eligible PLU.
12. Select the Option windows tab.
13. Select 5 for £15 from the Mix & match dropdown list. Repeat for all eligible products.
Example 4 - buy 2 get cheapest item
To configure a Buy 2 get cheapest item deal.
1. In TouchOffice Web, select Programming > Mix & match 1.
2. Select an unused deal.
3. Enter Buy 2 get cheapest item in the deal description field.
4. Enter £3 in the Amount/Discount Rate(%) field.
5. Enter 2 in the Quantity field.
6. Select Discount amount cheapest from the Mix & match drop down list.
7. Enter a start time of 00:00 and an end time of 00:00 - the deal is activated and is not
restricted to a specific day or time.
8. Save.
9. Next select the Mix and match record number and ensure the fields are configured as
follows:
Field name Description
Descriptor Buy 2 get cheapest item
Mix and match type Discount amount cheapest
Affects Tax Table VAT @ 20%
Quantity required 2
Amount/Discount Rate (%) 3.00
10. Configure the products. Select Programming > Products.
11. Select an eligible PLU.
12. Select the Option windows tab.
13. Select Buy 2 get cheapest item from the Mix & match dropdown list. Repeat for all
eligible products.
Example 5 - 50% off cheapest item
To configure a 50% off cheapest item deal.
1. In TouchOffice Web, select Programming > Mix & match 1.
2. Select an unused deal.
3. Enter 50% off cheapest item in the deal description field.
4. Enter 50.00 in the Amount/Discount Rate(%) field.
5. Enter 3 in the Quantity field.
6. Select Discount % cheapest from the Mix & match drop down list.
7. Enter a start time of 00:00 and an end time of 00:00 - the deal is activated and is not
restricted to a specific day or time.
8. Save.
9. Next select the Mix and match record number and ensure the fields are configured as
follows:
Field name Description
Descriptor 50% off cheapest item
Mix and match type Discount % cheapest
Affects Tax Table VAT @ 20%
Quantity required 3
Amount/Discount Rate (%) 50.00
10. Configure the products. Select Programming > Products.
11. Select an eligible PLU.
12. Select the Option windows tab.
13. Select 50% off cheapest item from the Mix & match dropdown list. Repeat for all eligible
products.
Example 6 - £3 off last item
To configure a £3 off last item deal.
1. In TouchOffice Web, select Programming > Mix & match 1.
2. Select an unused deal.
3. Enter £3 off last item in the deal description field.
4. Enter £3 in the Amount/Discount Rate(%) field.
5. Enter 4 in the Quantity field.
6. Select Discount amount last item from the Mix & match drop down list.
7. Enter a start time of 00:00 and an end time of 00:00 - the deal is activated and is not
restricted to a specific day or time.
8. Save.
9. Next select the Mix and match record number and ensure the fields are configured as
follows:
10. Next select the record number and update the fields as follows:
Field name Description
Descriptor £3 off last item
Mix and match type Discount amount last item
Affects Tax Table VAT @ 20%
Quantity required 4
Amount/Discount Rate (%) 3.00
11. Configure the products. Select Programming > Products.
12. Select an eligible PLU.
13. Select the Option windows tab.
14. Select £3 off last item from the Mix & match dropdown list. Repeat for all eligible
products.
Example 7 - 20% off last item
To configure a 20% off last item deal.
1. In TouchOffice Web, select Programming > Mix & match 1.
2. Select an unused deal.
3. Enter 20% off last item in the deal description field.
4. Enter £3 in the Amount/Discount Rate(%) field.
5. Enter 20 in the Quantity field.
6. Select Discount % last item from the Mix & match drop down list.
7. Enter a start time of 00:00 and an end time of 00:00 - the deal is activated and is not
restricted to a specific day or time.
8. Save.
9. Next select the Mix and match record number and ensure the fields are configured as
follows:
Field name Description
Descriptor 20% last item
Mix and match type Discount % last item
Affects Tax Table VAT @ 20%
Quantity required 3
Amount/Discount Rate (%) 20.00
10. Configure the products. Select Programming > Products.
11. Select an eligible PLU.
12. Select the Option windows tab.
13. Select 20% last item from the Mix & match dropdown list. Repeat for all eligible products.
No Report type Description
1 Financial Mix And Match Sales.
2 PLU PLU Linked To Mix & Match Discounts.
Reports
Finalise keys programming
The finalise keys control the payment methods i.e. credit card, cash, cheque, charge to account
payments.
Enable the relevant user permissions in TouchOffice Web:
1. View finalise keys programming.
2. Edit finalise keys programming.
To configure the finalise keys:
1. Go to https://www.touchoffice.net.
User permissions
Instructions
2. Select Programming > Finalise keys.
3. Select 0 - Head Office from the drop down list.
4. Select the finalise key number.
5. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Descriptor
The name
associated with the
button.
Alpha 24
3 Key Type
This specifies the
type of finalise key.
There may be
different
programming
options, dependent
on what type of
finalise key has been
allocated.
Cash
Cash 2
Cheque
EFT
Account
Hotel xfer
Voucher
Number 2
4 Preset Amount
Only valid for the
key type 'CASH' -
used for preset
tender keys, eg £5,
£10, £20.
Number 5
Fields
No Field name Description Type Length
5 Drawer In
Any money tendered
on this button will be
added to this
totaliser.
Number 2
6 Drawer Out
Any amounts given
as change from this
button will be
deducted from this
totaliser.
Number 2
7 Opens drawer Checkbox
8 Enforce Amount
Tendered?
If set to yes, the
operator must enter
the amount
tendered before
pressing this button.
Checkbox
9 Automatic Receipt
Printing?
If set to yes,
regardless of
whether the receipt
is on or not, a
receipt will be issued
if this key is used.
Checkbox
10 Print Tax Breakdown?
If there is any tax
content in this sale,
then this will be
printed on the
receipt.
Checkbox
11 Warn if a check is
open?
Will give a warning
message if
finalisation is
attempted with a
check/table open.
Checkbox
12 Compulsory Eat
In/Take Out?
System will prompt
with a list of all Eat
In/Take Out keys
found in the Status
Key file if one hasn't
already been used.
Checkbox
No Field name Description Type Length
13 Compulsory non-add
number entry?
A non-add number
must be entered if
this finalise key is
used, if one hasn't
been entered, then
the system will
automatically press
the first non-add key
in the status key file
for you, prompting
for a number.
Checkbox
14 Update Keyboard
Text?
When set to yes, any
buttons set as this
key will have their
captions updated
with the text in the
descriptor field
above. This will
automatically
change to yes
whenever you
change the
descriptor field.
You can force the
caption to be
updated by setting
this to yes, and can
prevent it being
updated by setting it
to no after you have
changed the text in
descriptor.
Checkbox
15 Inhibit Amount
Tendering?
If set to yes, the
operator cannot
tender an amount
before pressing this
button.
Checkbox
16 Enforce subtotal
If set to yes, the
operator must press
subtotal before
pressing this button.
Checkbox
17 Inhibit Partial
Tendering?
If set to yes, the
operator cannot
tender for less than
the sale value.
Checkbox
18 Prompt for cashback Checkbox
No Field name Description Type Length
19 Is euro finalise key
The finalise key
becomes a EURO
finalise key. All
amounts tendered
are in EUROs. Only
applies to CASH,
CHEQUE & EFT.
Checkbox
20 Prompt with numeric
keypad for tender?
When set and no
amount was
tendered into the
finalise key, the unit
will popup a numeric
keypad for amount
to be tendered.
Checkbox
21 Print extra ticket
with signature strip?
If this finalise key is
used then an extra
receipt is issued with
the signature strip
bottom message at
the bottom of it.
Checkbox
No Button type Description
1 Save Save changes.
2 New Add a new finalise key.
No Report type Description
1 Financial Finalise Sales.
Buttons
Reports
Status keys programming
Status keys are buttons that invoke another function - for instance the table plan.
The status keys are also used for navigation - for instance selecting cellar under the drinks level.
Status keys do not affect the sales totals as they do not hold any sales data.
Enable the relevant user permissions in TouchOffice Web:
1. View status keys programming.
2. Edit status keys programming.
To configure the status keys:
1. Go to https://www.touchoffice.net.
2. Select Programming > Status keys.
3. Select 0 - Head Office from the drop down list.
4. Select the status key number.
5. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Descriptor
The name
associated with the
button.
Alpha 24
User permissions
Instructions
Fields
No Field name Description Type Length
3 Key Type
Specifies what type
of status key it is.
There may be
different
programming
options depending
on what status key
type has been
allocated.
Number 2
4 Preset Clerk Specify the current
clerk on this button. Dropdown
No Button type Description
1 Save Save changes.
2 New Add a new status key.
Buttons
Transaction keys
programming
Transaction keys are buttons that affect the sales totals, they hold sales data so that a report of
their usage can be obtained.
Enable the relevant user permissions in TouchOffice Web:
1. View transaction keys programming.
2. Edit transaction keys programming.
To configure the transactions keys:
1. Go to https://www.touchoffice.net.
2. Select Programming > Transaction keys.
3. Select 0 - Head Office from the drop down list.
4. Select the transaction key number.
5. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Descriptor
The name
associated with the
button.
Alpha 24
User permissions
Instructions
Fields
No Field name Description Type Length
3 Key Type
This specifies the
type of transaction
key. There may be
different
programming
options, dependent
on what type of
transaction key has
been allocated.
Number 2
4 Value
This is normally only
used for discount
and premium keys.
Number 8
5 Complete Line void? If yes error corrects
by line, if no by item. Checkbox
6 Show reason table,
last item correction?
The user is
prompted with a
reason table if this is
a last item correction
Checkbox
7 Show reason table
A table can be
displayed listing
preset reasons as to
why the key has
been pressed, the
reasons can be
configured in pgm3 -
system programming
- reason table.
Checkbox
8 Print extra ticket
with signature strip?
If this transaction
key is used at any
time during the sale
then an extra receipt
is issued with the
signature strip
bottom message at
the bottom of it.
Checkbox
No Button type Description
1 Save Save changes.
2 New Add a new transaction key.
Buttons
No Report type Description
1 Financial Transaction Key Sales.
2 Financial Transaction Key Sales By Clerk.
3 Financial Transaction Key Sales Per. Till.
4 Financial Transaction Key Sales Per Till By
Clerk.
Reports
Fixed characters
programming
Enable the relevant user permissions in TouchOffice Web:
1. View fixed characters programming.
2. Edit fixed characters programming.
To configure fixed characters:
1. Go to https://www.touchoffice.net.
2. Select Programming > Fixed characters.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Descriptor
The name
associated with the
button.
Alpha 24
User permissions
Instructions
Fields
There are two categories of fixed (sales) totalisers:
Gross
Gross totalisers are calculated as items are rung up on the till. The gross total consists of
all the items sold on the till.
Net
When the customer is ready to pay the sale can be cashed up - either on the same till or
on another till. The net total consists of all the items paid for on the till.
Fixed (sales) totalisers
programming
As food and drinks are ordered, in a restaurant or a bar, they are added to a check (also known as
a tab).
The customer pays when they are ready to leave the establishment and not each time they order.
Whilst the check remains open the gross total is calculated - when the customer pays the net total
is calculated.
The clerk rings up items on the till and the gross total is calculated. If the clerk cashes up the sale
on another till this is referred to as floating. The net total consists of all items paid for on the other
till.
There are a number of reasons why a clerk would float to another till:
1. The printer has run out of paper.
2. The payment device is not working.
Many restaurants allocate a till as a waiter station. The waiter station is used to ring up items and
is not used to cash off the sale.
Payment stations are used to cash up the sale - they are not used to ring up items.
Check tracking - restaurant
Floating Clerks
Waiter station
Payment station
Service charges
Service charges are added to the net total and not the gross total.
Discounts are subtracted from the net total and not the gross total.
Enable the relevant user permissions in TouchOffice Web:
1. View fixed totalisers programming.
2. Edit fixed totalisers programming.
To configure fiixed totalisers:
1. Go to https://www.touchoffice.net.
2. Select Programming > Fixed totalisers.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
Discounts
User permissions
Instructions
Fields
1 Record number The record number
is system generated. Number 3
2 Name
The name describes
the fixed totaliser
i.e. net sales, gross
sales, cash in drawer
etc.
Alpha 24
3 Totaliser is nonresettable
Setting a totaliser to
be non-resetable
means that when a Z
report of this file is
taken, the totals in
this record will
remain.
Checkbox
4 Totaliser does not
print on reports
Setting a totaliser to
not print will mean
that when the report
is printed, this
record will be
omitted.
Checkbox
No Button type Description
1 Save Save changes.
No Report type Description
1 Exports Finance Export Fixed Total.
2 Financial Fixed Totals By Day.
3 Financial Fixed Total Comparison.
4 Financial Fixed Total Sales.
Buttons
Reports
No Report type Description
5 Financial Fixed Total Sales By Site.
6 Financial Fixed Total Sales By Till.
Keyboard menu levels
programming
Keyboard levels make it simpler to find sales items- similar to a web page.
Keyboard levels
Enable the relevant user permissions in TouchOffice Web:
1. View keyboard menu levels programming.
2. Edit keyboard menu levels programming.
To configure keyboard menu levels:
1. Go to https://www.touchoffice.net.
2. Select Programming > Keyboard menu levels.
3. Select 0 - Head Office from the drop down list.
User permissions
Instructions
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Descriptor
A description i.e.
drinks, starters,
mains etc.
Alpha 24
No Button type Description
1 Save Save changes.
No Report type Description
1 PLU PLU Allocated To Keyboard.
Fields
Buttons
Reports
Receipt programming
Enable the relevant user permissions in TouchOffice Web:
1. View receipt.
2. Edit receipt.
To configure receipts:
1. Go to https://www.touchoffice.net.
2. Select Programming > Receipt
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Receipt header
Prints at the top of
the receipt - i.e.
restaurant name and
address.
Alpha 40
2 Commercial message
Prints under the
header - i.e. phone
number, URL.
Alpha 40
3 Bottom message
Prints at the bottom
of the receipt - i.e.
thank you, please
come again.
Alpha 40
User permissions
Instructions
Fields
No Field name Description Type Length
4 Signature strip
Area allocated for
the customer
signature.
5 VAT number This is a legal
requirement. Number
No Button type Description
1 Save Save changes.
Buttons
Tags programming
Tags are searchable keywords. They are useful if you have many products that need to be
maintained in TouchOffice Web and you want to find them easily.
Enable the relevant user permissions in TouchOffice Web:
1. View tags programming.
2. Edit tags programming.
To configure tags:
1. Go to https://www.touchoffice.net.
2. Select Programming > Tags.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Tag The searchable
keyword.
3 Name A name to help you
identify the tags. Alpha 24
User permissions
Instructions
Fields
No Field name Description Type Length
4 Tag group
Tag groups need to
be defined prior to
configuring each tag.
Dropdown list
No Button type Description
1 Save Save changes.
2 Add new Add a new tag.
No Report type Description
1 PLU PLU Tags.
Buttons
Reports
Tag groups programming
Tag groups need to be defined prior to configuring each tag.
Enable the relevant user permissions in TouchOffice Web:
1. View tag groups programming.
2. Edit tag groups programming.
To configure tag groups:
1. Go to https://www.touchoffice.net.
2. Select Programming > Tag groups.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Name
The name to help
you identify the tag
group.
Alpha 24
User permissions
Instructions
Fields
Buttons
No Button type Description
1 Save Save changes.
2 Add new Add a new tag group.
No Report type Description
1 PLU PLU Tags.
Reports
Reasons programming
Contains a user configurable list of reasons for reporting. Many transaction keys have a flag to
activate the reason table on use. The refund key is used to indicate why the operator is giving a
refund. The reason is printed on the journal at the time is is used and the value is added to the
reason total report.
Enable the relevant user permissions in TouchOffice Web:
1. View reasons.
2. Edit reasons.
To configure reasons:
1. Go to https://www.touchoffice.net.
2. Select Programming > Reasons.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Name
Enter a descriptive
name such as teller
error, age vertified,
refused sale etc.
User permissions
Instructions
Fields
No Field name Description Type Length
3 Key type
The key type:
+Amount
+%
-Amount
-%
Cancel
Check
transfer
Customer
verify 1
(NO)
Customer
verify 1
(YES)
Customer
verify 2
(NO)
Customer
verify 2
(YES)
Deposit
EFT
preauth
Error
correct
Exchange
points
House
bon
Media
exchange
New
balance
No sale
Paid out
Pay
account
Points
adjustme
nt
Price
change
Reason
table
Dropdown list
No Button type Description
1 Save Save changes.
No Report type Description
1 Other Reason Total.
Buttons
Reports
Tax programming
Head office will update all terminals on all sites with the selected tax rate. Site level will only
update the record if site specific changes exist. This feature is used when there is a tax concession
or the government announces a change in VAT rates and you need to update all of your products
at once.
Enable the relevant user permissions in TouchOffice Web:
1. View tax.
2. Edit tax.
To configure the tax:
1. Go to https://www.touchoffice.net.
2. Select Programming > Tax.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Name Name used for the
tax rate. Alpha 24
User permissions
Instructions
Fields
No Field name Description Type Length
3 Rate
This is the rate, 4
digits after the
decimal point is
assumed.
Number 8
4 Add in (VAT, if no,
add on
When set to yes, it is
assumed that all
amounts already
have tax in them,
and any calculated
amount is calculated
out of that.
When set to no, it is
assumed that all
amounts do not
include tax, and so it
is added on.
When the
multi tax
rates flag is
set, only
'add on' tax
is available.
When the
multi tax
rates flag is
set, tax is
applied to
the original
net price
only, ie tax
on tax is not
supported.
Checkbox
No Button type Description
1 Save Save changes.
Buttons
No Report type Description
1 Financial Tax Sales.
2 Financial Tax Sales By Site.
3 Financial Tax Sales By Till.
4 PLU PLU List By Tax.
5 PLU PLU Tax Sales.
Reports
Non PLUs programming
Non PLUs are products that are sold by weight rather than the quantity of items:
1. Products are weighed when they are packed and a barcode is attached to indicate the
weight or price. Some prepacked items vary by weight i.e. a butcher or deli.
2. Products are weighted on a weighing scale, and the weight keyed in manually.
Enable the relevant user permissions in TouchOffice Web:
1. View non PLUs.
2. Edit non PLUs.
To configure non PLUs:
1. Go to https://www.touchoffice.net.
2. Select Programming > Non PLUs.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Format
The configuration of
the barcode label on
the scale.
Alpha 13
User permissions
Instructions
Fields
No Field name Description Type Length
3 Enabled value is
weight
If not a weight
barcode it is a price.
This needs to be set
to yes for stock to be
calculated.
Checkbox
4 Decimal places of
embedded value
Usually 2 for price or
3 for weight. Eg
when set to 2, 1050
would be taken as
10.50.
Number 2
No Button type Description
1 Save Save changes.
2 New Add a new non PLU.
No Report type Description
1 Utility NonStock PLUs
Buttons
Reports
The kitchen printer category is a list of text names that are used for sorting products on the
kitchen printer.
KP categories programming
A kitchen printer, typically an impact printer (dot matrix) located in the area where goods are
prepared. An example is a restaurant kitchen, where the order is placed and a printer in the
kitchen prints a ticket with the details of the food that needs to be cooked. The concept is also
extended to remote bar locations, delicatessens, and warehouses where goods are prepared and
shipped in a location away from the Point of Sale.
Enable the relevant user permissions in TouchOffice Web:
1. View KP categories.
2. Edit KP categories.
To configure kitchen printer categories:
1. Go to https://www.touchoffice.net.
2. Select Programming > KP categories.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Text
A description of the
kitchen printer
category - for
instance, bar,
kitchen, waiter
station etc.
Alpha 24
User permissions
Instructions
Fields
No Button type Description
1 Save Save changes.
Buttons
Preset message
programming
Enable the relevant user permissions in TouchOffice Web:
1. View preset messages.
2. Edit preset messages.
To configure preset messages:
1. Go to https://www.touchoffice.net.
2. Select Programming > Preset message.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Message
The PLU group
description should
be meaningful.
Alpha 24
User permissions
Instructions
Fields
Buttons
No Button type Description
1 Save Save changes.
Price level scheduler
programming
Change the price level at a specific date and time.
Enable the relevant user permissions in TouchOffice Web:
1. View price level scheduler.
2. Edit price level scheduler.
To configure the price level scheduler:
1. Go to https://www.touchoffice.net.
2. Select Programming > Price level scheduler.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Date
Set the price level
changes to a specific
date.
Number 3
2 Hour
Set the price level
change to a specific
hour.
Number 2
3 Price level
Select the price level
from the dropdown
list.
Dropdown list
User permissions
Instructions
Fields
No Button type Description
1 Set schedule Select to configure a new price level
schedule.
2 Save Save changes.
Buttons
Set menu programming
Scroll down to view a step-by-step guide to help you create a two and three-course set menu.
Enable the relevant user permissions in TouchOffice Web:
1. View set menus.
2. Edit set menus.
To configure set menus:
1. Go to https://www.touchoffice.net.
2. Select Programming > Set menus.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Item Alpha 24
3 Descriptor Alpha 24
4 Item type
PLU
List PLU Dropdown list
User permissions
Instructions
Fields
No Field name Description Type Length
5 Substitution value
Value of
substitutions made
in set menus.
Number 8
6 No defer Tickbox
7 No substitution Tickbox
No Button type Description
1 Save Save changes.
No Type Description
1 PLU (starters)
Create your starter PLU's. In
TouchPoint, select Programming >
PLU > PLU:
1. Soup of the day
2. Chicken liver pate
3. Chicken wings
4. Crab cakes
5. Camembert
6. Blanchbait
7. Tofu skewers
8. Veggie samoosa
Buttons
Step by step - configuring a set menu
No Type Description
2 PLU (mains)
Create your main PLU's, select
Programming > PLU > PLU:
1. Toad in the hole
2. Beefburger
3. Veggie burger
4. Lamb shank
5. Steak & ale pie
6. Grilled seabass
7. Chicken burger
8. Pulled pork buns
3 PLU (desserts)
Create your dessert PLU's, select
Programming > PLU > PLU:
1. Ice cream
2. Cheese board
3. Tiramisus
4. Sticky toffeee
5. Apple crumble
6. Treacle tart
7. Pecan pie
8. Brownie
You can use PLUs or List PLUs for your set menu item type (step 7). List PLUs work well as you can group multiple items
for each meal course (starter, main and dessert).
No Type Description
4 List PLU
Create your set menu starter list PLU -
in TouchPoint select Programming >
PLU > List PLU:
1. Descriptor - Set menu
starters
No Type Description
5 List PLU
Create your set menu mains list PLU -
in TouchPoint select Programming >
PLU > List PLU:
1. Descriptor - Set menu
mains
No Type Description
6 List PLU
Create your set menu desserts list
PLU - in TouchPoint select
Programming > PLU > List PLU:
1. Descriptor - Set menu
desserts
No Type Description
Create your two course set set menu -
in TouchPoint select Programming >
PLU > Set menu:
1. Add the list PLU you
created in Step 4.
No Type Description
Create your three course set set
menu - in TouchPoint select
Programming > PLU > Set menu:
1. Add the list PLU you
created in Step 4.
No Type Description
9 PLU
Create a two course set PLU - in
TouchPoint select Programming >
PLU > PLU:
1. Descriptor - Two course
set
2. 1st @ price - £15
3. Select Two course meal
as the Set menu.
No Type Description
10 PLU
Create a three course set PLU - in
TouchPoint select Programming >
PLU > PLU:
1. Descriptor - Three course
set
2. 1st @ price - £20
3. Select Three course meal
as the Set menu.
No Type Description
11 Keyboard allocation
Allocate the PLUs you created in step
9 and 10 to the keyboard - in
TouchPoint select Programming >
Keyboard.
No Type Description
12 Defer status key
The 'Defer' status key is particularly
useful when running a Three Course
Set and the customer isn't sure what
dessert they want straight away. You
can press the Three Course Set
button, select the starter and main,
and then defer the dessert. All you
need to do after that is open the
table/ check that the set menu is
stored on, select the defer message
in the reg window, and then press
the defer key. This will then bring up
the dessert choice again.
1. In TouchPoint select
Programming > Keyboard.
2. Select the key, then
select status key from the
file type.
3. Scroll down, then select
the defer status key.
No Type Description
13 Set menu shift
The 'set menu shift' status key can
be used to shift between a two
course and a three course
seamlessly. This would apply in a
scenario where the customer has
chosen a two course set (starter &
main), and then decided they would
actually like the full three course set.
This key will only shift set menus that
have been created. sequentially in
the PLU file.
1. In TouchPoint select
Programming > Keyboard.
2. Select the key, then
select status key from the
file type.
3. Scroll down, then select
the set menu shift status
key.
Customer programming
The customer details programming contains all information specific to each customer, name
address, lookup number etc. Each customer is linked to a customer group, the customer group file
then contains programming for discount rates, loyalty types, whether the customer's are pre-paid
or not etc. See customer programming earlier in the manual for more information.
Enable the relevant user permissions in TouchOffice Web:
1. View customer programming.
2. Edit customer programming.
3. View customer details.
4. Edit customer details.
To configure customers:
1. Go to https://www.touchoffice.net.
2. Select Customers > List.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
User permissions
Instructions
Fields
No Field name Description Type Length
2 First name
The forename of the
customer is put in
here. This will
appear on customer
reports, receipts etc.
Alpha 14
3 Last name
The surname of the
customer is put in
here. This will
appear on customer
reports, receipts etc.
Alpha 14
4 Customer Group
This is the group
that the customer is
linked to for
programming
purposes.
Dropdown list
No Field name Description Type Length
5 Title
A title is one or more
words used before or
after a person's
name, in certain
contexts. It may
signify either
generation, an
official position, or a
professional or
academic
qualification.
Common titles
Mr. –
Adult
man
(regardles
s of
marital
status)
Ms. –
Adult
woman
(regardles
s of
marital
status)
Mrs. –
Married
Adult
woman
(includes
widows
and
divorcées)
Miss –
Unmarrie
d Adult
Woman
or
Female
child
Master –
Male Child
Madam (a
lso
Madame
and
Ma'am) –
Formal
form of
address
for an
adult
woman.
Alpha 7
No Field name Description Type Length
6 Initials The first letter of
a name. Alpha 5
7 Account Number
This is a 15 digit
random number that
can be used to open
the customer, using
a customer number
button flagged to
look for the random
number field.
Number 15
8 Account balance
Customers can be
rewarded for
keeping their
accounts in credit,
this often done in
club environments
such as golf club.
Number 8
9 Phone 1
This can be flagged
to print on the
receipt.
Alpha 14
10 Phone 2
This can be flagged
to print on the
receipt.
Alpha 14
11 Phone 3
This can be flagged
to print on the
receipt.
Alpha 14
12 Email Alpha 40
13 Address 1 to 4
These are 24
character address
lines, that can also
be flagged to print
on the receipt.
Alpha 32
14 Postcode
This can be flagged
to print on the
receipt.
Alpha 8
15 Notes
Four lines of notes
can be registered
against each
customer. These can
be flagged to print
on the kitchen print.
Alpha 40
No Field name Description Type Length
16 Blacklisted?
When set the
customer can no
longer be logged
onto the till. Used
with lost/stolen cards.
Checkbox
17 New customer
Used in conjunction
with the auto create
customer flag in
customer control.
When the customer
is activated at point
of sale, the system
will prompt for the
customer's details.
Checkbox
18
Not allowed
selective item 5
items
Errors if an attempt
is made to sell an
item linked to
selective itemiser 5
when this customer
is logged on, useful
for nut allergies etc
Checkbox
19 Enable start/expiry
dates Checkbox
20 Start date
The date the
customer is able to
sign on.
Alpha 8
21 Expiry date
After the set date
the customer will be
expired and no
longer be able to
sign on.
Alpha 8
No Button type Description
1 Save Save changes.
Buttons
No Report type Description
1 Centralised customers Blacklisted customer
2 Centralised customers Customer account last used
3 Centralised customers Customer address list
4 Centralised customers Customer balance
5 Centralised customers Customer balance audit
6 Centralised customers Customer credit debit
7 Centralised customers Customer email list
8 Centralised customers Customer expiry
9 Centralised customers Customer expiry no date filter
10 Centralised customers Customer list
11 Centralised customers Customer PLU sales
12 Centralised customers Customer points
13 Centralised customers Customer snapshot
15 Centralised customers Customer spend by group
Reports
Customer group
programming
There are 6 loyalty types:
1. Standard discount
A set discount applied to either all products, or different rates (or no rate) per selective
itemiser 1 to 4.
When a customer is signed on, all items matching the rules are subject to the specified
discount, this includes any items already rung in, and any items stored to a table.
2. Points
Points are earned based on purchase amounts. Options include points per unit spent on
all products, a range of products or products with a selective itemiser. Points earned can
be on each item, or the subtotal value. Points can also be award on whole pounds only, or
rounded up for any part of a pound spent.
3. Joes
A set discount rate with an initial rate for shopping during a week and a subsequent rate
for shopping during the rest of the week.
The discount rate can be set for all products, or a different rate per selective itemiser 1
and 2 so that different product categories can have different rates or no rates.
The start of the week can be configured, using the Day to Reset to Rate (1) option within
the customer Group.
4. Borellis
When a certain spend level is reached, a credit is applied to the account to be used on
future purchases. EG £5 credit after £100 spend.
The system automatically reduces the subsequent sales value for that customer by the
credit value, if the sale total is not high enough to use up the whole credit then the
discount is taken from subsequent sales.
When the required spend level is reached, the credit value is printed at the bottom of the
receipt. Upon each subsequent sale, the remaining credit value (if any) is also shown. The
receipt printing can be overridden so that the receipt will only automatically print if a
discount is due on the next sale when receipt printing is set to automatic for all loyalty
types.
5. School meals
This loyalty scheme is aimed at schools/colleges. The customers account is incremented
by the free meal entitlement each day. If the customer doesn't use they entitlement
within the day then the remainder is removed at the end of the day, prior to the new
entitlement being added. A customer is able to add to the account as normal which is
unaffected by the increment/decrement of the entitlement although the entitlement is
always used up first when eligible.
6. Price levels
Changes price level at the point the customer is logged on. Previous items rung into the
till will remain at original price level.
Enable the relevant user permissions in TouchOffice Web:
1. View customer groups programming.
2. Edit customer groups programming.
To configure customer groups:
1. Go to https://www.touchoffice.net.
2. Select Customers > Groups.
3. Select 0 - Head Office from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
Group information
User permissions
Instructions
Fields - all loyalty type
No Field name Description Type Length
1 Group name
Allows you to name
the customer group,
making reference
easier for later on.
Alpha 24
2 Loyalty type Standard Discount Dropdown list
Accounts
3 Account customer?
When set to yes,
balances can be paid
onto the customer,
and sales paid for
using this. (prepaid).
Checkbox
4 Overdraft limit £
Specifies the amount
the account
customer can go
over drawn in
pounds, (no pence).
Number 8
Options
5
Print last transaction
date on customer
receipt?
Specifies whether
the last transaction
date is printed on
the bottom of the
loyalty receipt.
Checkbox
6 Print spend today on
customer receipt
Specifies whether
today's spend is
printed on the
bottom of the loyalty
receipt.
Checkbox
7
Print times used
today on customer
receipt
Specifies whether
the number of times
this customer has
been used today is
printed on the
bottom of the loyalty
receipt.
Checkbox
8 Print spend to date
on customer receipt?
Specifies whether
the total spend to
date is printed on
the bottom of the
loyalty receipt.
Checkbox
No Field name Description Type Length
9 Print spend towards
discount on receipt
10 Print discount total
on receipt
Specifies whether
the discount total to
date is printed on
the bottom of the
loyalty receipt.
Checkbox
11 Shift to price level 2
Shifts the sale to
price level 2 when
the customer is
signed on.
Checkbox
12 Prompt with picture
if present
Looks in the
customer pictures
directory to see if
there is a picture
associated with this
customer, if there is
then the picture is
displayed with a
Yes/No? prompt. See
the reference manual
for more
information on how
to setup customer
pictures.
Checkbox
13 Print account
number on receipt
Specifies whether
the account number
is printed on the
receipt or not.
Checkbox
14
Print customer
address on customer
receipt
Specifies whether
the address and post
code is printed on
the bottom of the
loyalty receipt.
Checkbox
15 Print phone number
on customer receipt
Specifies whether
the telephone
number is printed on
the bottom of the
loyalty receipt.
Checkbox
16 Print customer name
on KP
Specifies whether
the customer name
is printed on the
bottom of the KP
ticket.
Checkbox
No Field name Description Type Length
17 Print customer
address on KP
Specifies whether
the customer
address and post
code is printed on
the bottom of the KP
ticket.
Checkbox
18 Print customer notes
on KP
Specifies whether
the customer notes
is printed on the
bottom of the KP
ticket.
Checkbox
19 Print phone number
on KP
Specifies whether
the customer phone
number is printed on
the KP ticket.
Checkbox
20 Also print customer
details on KV Checkbox
No Field name Description Type Length
1 All products Number 8
2 Selective item 1 Number 8
3 Selective item 2 Number 8
4 Selective item 3 Number 8
5 Selective item 4 Number 8
Additional fields - standard discount
No Field name Description Type Length
1 Discount given (£) Number 8
2 Spend required for
discount (£) Number 8
3 Only auto-receipt if
discount due Checkbox
No Field name Description Type Length
Discount rate 1
1 All products (%)
2 Selective item 1 (%)
3 Selective item 2 (%)
Discount rate 2
4 All products (%)
5 Selective item 1 (%)
6 Selective item 2 (%)
7 Day to reset to rate 1 Dropdown list
Additional fields - Borellis
Additional fields - Joes
Additional fields - point
No Field name Description Type Length
Discount rate 1
1 All products (%)
2 Selective item 1 (%)
3 Selective item 2 (%)
5 Selective item 3 (%)
6 Selective item 4 (%)
7 Award points on
whole pounds only Checkbox
No Field name Description Type Length
School meals
1 Free meal
entitlement
2 Morning spend limit
3 Dialy spend limit
4 Morning end time
5 No morning free
meal entitlement
6 Use a morning spend
limit
Additional fields - school meals
No Field name Description Type Length
7 Use a daily spend
limit
8 Tax exempt
9 Can only sign on
during time zone
Time zone 1
10 Start time
11 Endtime
Applies to:
13 Sunday Checkbox
14 Monday Checkbox
15 Tuesday Checkbox
16 Wednesday Checkbox
17 Thursday Checkbox
18 Friday Checkbox
19 Saturday Checkbox
No Field name Description Type Length
Time zone 1
20 Start time
21 Endtime
Applies to:
22 Sunday Checkbox
23 Monday Checkbox
24 Tuesday Checkbox
25 Wednesday Checkbox
26 Thursday Checkbox
27 Friday Checkbox
28 Saturday Checkbox
No Field name Description Type Length
Fields - price level change
1 Price level Dropdown list
No Button type Description
1 Save Save changes.
Buttons
Suppliers must be created as a first step before you can order stock.
1. Most stock items are ordered in volume, rather than individual units, so cases must be
created and the size, and units of each configured:
A barrel
A keg
Large Box.
2. You can also manage the stock of PLU items that make up recipes.
3. There might be a requirement to set certain PLUs to be stock-holding items, or 'Master
PLUs', to enable the stock of individual PLU items to be tracked.
4. Doing a stock take and posting stock values into TouchOffice Web.
5. It is important to see if there is any variances in stock levels through mistakes in stock
taking, or from shrinkage.
6. After stock is counted, then posted into TouchOffice Web, new stock must be ordered.
Before an order of stock can be made a supplier/s must be created.
Stock overview
Introduction
Creating suppliers
1. Select Stock > Suppliers. A list of suppliers is shown
2. Select Add supplier.
3. Add the supplier information where applicable:
Reference - your reference code to identify the supplier.
Name - name of supplier.
Address - postal address for accounting.
Postcode - address postcode.
Contact - name of contact at delivery company.
Phone, fax, email, URL - as required.
Much of your stock will be ordered in cases so it is important to first create cases and sizes i.e. the
number of individual stock units in various cases. Multiple PLUs can be assigned to the same case,
but a PLU can only have one case linked to it at a time.
1. Select Stock > Case sizes.
2. Select Add case size.
3. Complete the fields as follows:
Description
The description could be large box, barrel, keg etc. You can also be more specific
e.g. box of wine.
Size- the number of units in a case.
Creating cases and setting sizes
Recipes enable you to group PLUs together into a list of ingredients, such as a cocktail.
A recipe enables a list of PLU items to be grouped under one PLU name. For example, a cocktail
recipe called a 'screwdriver recipe' would contain two separate PLU items of vodka and orange,
each with respective amounts.
The recipe can then be linked to a PLU item, for example, a PLU can be created called 'screwdriver'
and it can then be linked to the 'screwdriver recipe'. Now, when a 'screwdriver' cocktail is sold, the
stock levels of the vodka and orange PLUs are adjusted.
A PLU with a Recipe Link does not hold its own stock, it only affects the stock of others. To create a
recipe:
1. Select stock.
2. Select recipes.
3. Select new.
4. Enter the recipe name in the first empty record.
5. Enter the PLU number of the first item to add to the recipe. You can also search for the
item by name in the name field:
To add item via PLU number
Select the PLU field and type a PLU number. If the PLU exists, it will appear under
the field in large bold figures. Select the PLU number and the item will appear as the
next item in the table.
To add an item via PLU name
Select the name field and type the name of the product. As you type, products
containing the search term will appear under the name field. Click on the product
item name you want to add. The item will appear as the next item in the table.
6. Enter the measure of each PLU item in the quantity size field. This refers to how many of
each unit size is used in the recipe.
7. Repeat step 5 until you have added all of the recipe PLUs.
8. Save. A warning message is displayed confirming the save operation.
Recipe links overview
9. Select ok to confirm, or cancel.
1. Select products.
2. Select an empty PLU to create a new PLU , or edit an existing PLU.
3. Set the Recipe Link dropdown to the name of the recipe created above previously.
4. Save.
PLUs only affect their own stock. When that PLU item is sold, stock is adjusted accordingly.
Create a PLU linked to a recipe
Master PLU overview
Sometimes when a quantity of a PLU item is sold, the stock of another PLU item is adjusted
instead. This 'stock-holding' item is called a master PLU. Any PLU can be linked to a master PLU.
By default all PLUs have 'No master PLU link' set in the Master PLU dropdown list.
To link a PLU to a master PLU:
1. Select products from the TouchOffice Web menu.
2. Select the appropriate site from the site selection dropdown.
3. Select a PLU number.
4. Select the stock tab, and select the master PLU from the dropdown list. The master
PLU dropdown to the stock-holding PLU. In other words, the PLU whose stock levels will
be affected when the current PLU is sold.
5. In the quantity adjustment field, enter the quantity of the PLU, per unit sold, that is
subtracted from the Master PLU stock level.
6. To work out the quantity adjustment, the amount might be 1. So, where 1 unit of the
product is old it affects 1 unit of stock from another. The value can also be a decimal. For
example, 0.5 for half, or 0.25 for a quarter.
7. In the unit size field, enter the PLUs unit of sale. In other words, how much is being sold
per quantity measure. This value is only for reference and is not used in calculations, but
is useful in other areas such as creating recipes.
8. Save.
A good example is a 175ml glass of wine and a bottle of wine. Wine is ordered for stock, in bottles,
not glasses, but when a glass of wine is sold it affects a percentage of stock of wine from a 700ml
bottle.
If the glass of wine is sold in 175ml measures, then when one glass is sold it uses up a quarter of a
700ml bottle of wine.
If the glass of wine PLU is not linked to a master PLU bottle of wine for stock purposes, then when
a glass of wine is sold, the stock of wine used from the bottle will not be accounted for, meaning
optimum stock levels cannot be maintained.
To try this example, follow the steps below:
1. Select Products.
2. Create the 700ml bottle of wine PLU.
3. Enter '700ml' in the unit size field.
4. Create the glass of wine PLU. Select new.
5. Enter '175ml glass of wine' in the PLU name field.
6. Enter '175ml' in the Unit size field.
7. Divide the glass of wine unit measurement amount by the Master PLU unit amount e.g.
175 / 700 = 0.25 (4 glasses of wine in a bottle). Enter this amount in the QTY adjustment
field.
8. Set the Master PLU to the 700ml bottle of wine PLU (see Figure 5-2 on the next page).
9. Save.
When a 175ml glass of wine is sold (because it has a link to a Master PLU of the 700ml bottle of
wine and the quantity adjustment is '0.25' the master PLU item's current stock amount is adjusted.
When the glass of wine is sold it will just affect the stock of the bottle of wine, not its own stock
levels.
Master PLU example
When you make an order, any PLU item linked with a Master PLU item will not appear on any
orders. In other words, it will not exist as a stock PLU.
You cannot order stock of a PLU with a linked Master PLU item.
You can also use the master PLU links for beers or lager amounts - a pint, a half, a jug, a barrel,
and link them all back to one stock-holding PLU.
If there is a draught beer with unit size of a pint, and case size of a barrel, the stocktaker might
not count in each of those units. Instead, they may count by the gallon.
You can create stockholding PLUs, for example Fosters Gallon, Heienken Gallon, etc. You can then
link those to the appropriate pint PLUs with a master PLU.
So, whenever a pint is sold, it deducts this much from the gallon PLU stockholding item. The Gallon
could then be linked back to the case (i.e. the barrel). So when a stock take is carried out the
gallon amounts are affected, rather than specific cases or units. None of the actual cases (barrels)
and units (pints) will appear on stockholding sheets.
When you are ready to do a stocktake, there is a specific order of operations in TouchOffice Web
as detailed below:
1. Log in to TouchOffice Web.
2. Select the appropriate site from the site selection dropdown.
3. Select Stock.
4. Before you start a stocktake ensure the system is not already in stocktake mode, shown
by End stocktake displayed in the stock menu.
More Complex Stock Options
Start a stocktake
5. At this stage it is not necessary to enter the amounts of stock into TouchOffice Web.
Once you start a stocktake it is strongly advisable to count the physical stock BEFORE
you start trading. If you count stock while trading you have to accept there may be a
variance.
For example, imagine a stock take is happening and a customer picks up an item and
puts it into their basket while they continue to shop. You will not always be sure if the
stock was counted before the customer picked it up, or not? There’s no way of really
knowing and tracking it in the system.
6. Select Start stocktake. The menu will change to End stocktake. A new menu item called
Stocktake entry appears ready for a new stocktake sheet to be created.
7. Select Stocktake entry.
8. Select New stocktake sheet. A list of choices will appear:
New sheet
Starts an empty stocktake sheet and add any number of PLUs to order for stock.
PLU group
Creates a list of stock items in a PLU Group. For example 'Drinks', or 'Food'. Select a
PLU group from the first dropdown labelled ‘All groups’ and then select Add PLU
group . To add all PLUs in the system leave the first drop down as 'All groups'.
Dept
Creates a list of stock items from a Department. For example Draught beers, or Soft
drinks. Select a department from the first dropdown labelled ‘All departments’ then
select Add department. To add all PLUs from all departments select ‘All
departments’ from the dropdown list. You can also add all PLUs that are not
allocated to a department by choosing ‘Not allocated’.
Reuse old stocktake
Creates a list from a previously saved Stocktake sheet. This is very useful if you
want to create templates of different stock items. For example one might be just for
items you need on a regular buffet menu, or an order you always make of drinks
from a brewery, or a regular tobacco order. Select a Stocktake sheet from the list
and select open. The page numbers and First / Next / Last / Prev buttons can be
used to navigate to the page.
Build list For supplier
Creates a list of PLUs that are listed from a particular supplier. For example, there
might be a favourite supplier or only some items may be regularly ordered from one
particular supplier. Select a supplier from the dropdown and choose Add this
supplier.
9. When the Stocktake entry sheet has been created you can enter stock amounts from
your physical stock count at your own pace and continue to trade. The max number of
items you can have in a Stocktake sheet is 1000. Touchstock can also be integrated here
and send back Stocktake sheets.
10. After selecting one of the above Stocktake sheet options, a list of PLUs will be shown in
the Stocktake sheet.
11. For each PLU enter the case quantity if a case of the stock item has been counted, then
enter the item quantity.
12. When all stocktaking values have been added into the Stocktake sheet they can then be
'posted' into TouchOfficeWeb.
Stocktaking Tips
1. If cases are stored for the PLU item, then enter the number of cases in stock into the case
quantity field.
2. If there are any individual items of the same PLU, say you are part way through a case or
items that are out, unpacked, on a shelf, then count those and enter the amount in the
item quantity field.
3. If there are only cases of the item, with no individual items out to count, then leave the
site quantity field blank for that PLU.
4. It is advisable that you regularly save otherwise there is a risk of losing stock entries if
you leave the Stocktake entry window open too long without activity.
5. No actual PLU stock levels are updated in TouchOffice Web during this stage. The new
stock values are just stored until the stock take is complete.
When the counting of stock is complete the values entered must be updated, or 'posted', back into
TouchOffice Web. This will take whatever you count then subtract sales, wastage and transfers
out, then add amounts from deliveries and transfers. This process adjusts stock levels accordingly.
To end the stocktake follow the steps below:
1. Select End stocktake .
2. Select the type of stocktake from the following options:
Full stocktake
This will affect all PLU items in TouchOffice Web, and resets any uncounted quantity
values for cases and units to zero. You will be shown a warning reminding you of
this. Select OK to confirm, or cancel if you change your mind. When the new stock
levels are posted the Stock List is displayed where the in stock quantity can be
checked.
A Full stocktake might be something you do once when you first order initial stock,
or if you always run your stock down to zero.
Partial stocktake
This will affect only the PLUs that have been counted in the stocktake. All other
uncounted PLUs will remain unaffected. Select OK to confirm, or cancel if you
change your mind. When the new stock levels are posted the Stock list is displayed
End a Stocktake
where the In stock quantity can be checked.
A partial stocktake is the most common option after the initial full stocktake. An
example ofdoing a partial stocktake:
You may just do your high value stock regularly and leave the rest to once in a while
over a longer period. You might want to do all your tobacco once a week because
they are high value items, but extremely low profit. If you begin to lose those items
regularly from theft you would have to sell a whole case of cigarettes before you
could recoup the loss. Therefore, a regular partial stocktake can alert you of any
'shrinkage' in your stock.
When stock is entered you check whether there is any stock is missing, perhaps from misscounting
stock, or from shrinkage from theft. The stock variance menu provides a way to check
this.
To check whether there has been any stock variance:
1. Select Stock from the TouchOffice Web menu.
2. Select Stock variance.
If any Stocktake sheets have been posted they will be displayed in the table, either
showing a status of partial or full stocktakes.
3. Select a Stocktake sheet from the table. The following information is displayed if the PLUs
have stock variance:
Frozen stock
The level of stock before the last stock level was entered.
Entered stock
The quantity of stock entered in the last stocktake sheet and posted during End
StockTake.
Variance
The difference between Entered Stock and Frozen Stock. It is this value that can
determine if shrinkage is occurring in your stock. It is effectively showing stock that
hasn't been unaccounted for i.e. not been sold through the system.
Overview of Stock Variance
Avg cost
Average cost of the product item.
Variance value
The amount of value of the variance in stock i.e. the value of lost, missing,
damaged, wasted or stolen stock.
Entered stock value
The total value of all stock just posted from the last stocktake.
The stock ordering process is comprised of 4 main steps. For each step the order changes to a
different status. The details of each step in the stock ordering process is as follows:
1. New order
Build a list of PLUs and quantities to order from a supplier. The initial order status is set to
order.
2. Place order
After sending an order to a supplier. The order status changes to posted order.
3. Post Delivery
When the order of stock arrives it must be checked against the original order. Then the
stock values of each item can be updated or 'posted' into TouchOffice Web. The order
status changes to posted delivery.
Stock Ordering Process
4. Post Invoice
When the supplier's invoice arrives the individual cost price and the total must be
checked against the delivery note. At this stage the average cost price for each PLU is
recalculated. The order status changes to posted invoice.
To view orders follow the steps below:
1. Select Stock > orders.
2. Select a site from the site menu. Any existing current orders are displayed in the orders
table. To filter the table to display each order status select a keyword filter button:
Order
Posted order
Posted delivery
Orders
Posted invoice.
To clear the filters and display all orders, of any status, choose clear filter.
To order stock a new order must be created. This is where a list of PLU stock items are created to
then send to a supplier (either posted or emailed). A quantity must be put into each field. When an
order has been created, and PLUs added, it can be saved, and then reopened at any point to make
amendments to the order, or add items, or remove them.
To create a new order:
1. Select a Supplier from the select a supplier dropdown.
2. An order can be completely customised and also there are some helpful options to make
it quick to create stocksheet lists.
CREATING A NEW ORDER
3. The following options are available:
New Order
A simple manually-entered new order.
Restock to Maximum
All PLUs that currently have Current Stock below the Maximum Stock level are
automatically added to the order. For each PLU that needs to be restocked, the Item
Qty field will be the difference between the Current Stock amount and the Max
Stock value.
Current < Min. Stock
All PLUs that have Current Stock levels below the Minimum Stock (Min.Stock) level
are automatically added to the order. For each PLU that needs to be restocked, the
Item Qty value will be set to the difference between Minimum Stock and Current
Stock levels. This can be thought of as optimum stock levels.
Cur < Min cases Only
All PLUs that have a Current Stock level below the Minimum Stock (Min. Stock) level
are automatically added to the order ONLY if a Case Size has been assigned to the
PLU. i.e. It creates a new order of items that are, generally, only ordered by case
size, in bulk. But, it is also possible to specify individual units to be added to each
total per PLU also. In general, if you just want to reorder to optimum stock levels,
irrespective of a
PLU being assigned to a case, then use the above option ‘ Current < Min.Stock ’.
Recommend Order
All PLUs that will need to be restocked in good time to maintain optimum stock
levels. The Days to Order value is used in this calculation to calculate when new
stock would need to be ordered, using stock turnover. The system works out when
the current stock item PLU is likely to run out, based on the amount of sales over
the last Days to Order days.
NOTE
When an item is already on back order i.e the PLU item/s has already been placed
on order, it will not be added to the recommended order, to ensure that duplicates
of a PLU are not made. If the item is on a previous order, that hasn’t been delivered,
it will not be added to the new order.
ReOrder
This displays a selection table of the previous stock orders so a regular order can be
reordered. This is a handy time-saving feature. Choose Open on any order you want
to reorder, for any regular orders. For example, a newsagent might have a cigarette
order, or a restaurant, a wine order.
Build List For Supplier
All PLUs that are assigned to the selected supplier will be added to an order. It will
prompt to select a supplier.
Build List For All Suppliers
All PLUs assigned to a supplier/s will be added to the order.
Days To Order field
This is how long it will take from order for the PLU to get back into stock. Effectively,
this is the lead time, so that TouchOffice Web can advise you to order a PLU item in
good time to get it in stock when that item is being sold at a particular rate.
NOTE
If you want to remove the order, or you change your mind, or want to delete it, you
can choose cancel.
After an Order is saved it cannot be deleted from the order menu. In this case, PLUs
can be removed from the order but the actual listed order item will remain in the
order table.
Placing an order permanently saves the list as it will be sent to the supplier. After an order is
placed the status changes to posted order and no other PLUs can be added to the list.
The order can then be printed (Print) and sent to a supplier, or emailed (Email order).
To place an order:
1. Select Stock > Orders.
2. Select a site from the site menu. Any existing current orders are displayed in the Orders
table.
3. Select an order with a status of order. To filter the table to only relevant orders choose an
order keyword filter. To clear the filters and display all orders, of any status, select clear
filter.
4. Select place order. The order list will be displayed again showing the order with a status
of posted order.
5. If both fields are left blank, an error message will be displayed.
6. NOTE
All PLUs in the order must have, at minimum, either item quantity or case quantity values
set to show the quantity required of that PLU to be ordered.
When an order arrives from a supplier the items that are delivered should be checked off against
the items on the posted order. If all checks out, the delivery can be 'posted' so that stock levels
can be updated. Post Delivery will update In Stock quantity/current stocklevel for the posted PLU
values. The status of the order then changes to posted delivery. To post a delivery:
1. Select Stock > orders .
2. Select a site from the site menu. Any existing current orders are displayed in the orders
table.
3. Select an order with a status of posted order. The order details page will show the PLUs in
the order.
PLACING AN ORDER
OVERVIEW OF POST DELIVERY
4. To filter the table to only relevant orders select the posted order keyword fileter. To clear
the filters and display all orders of any status select clear filter .
5. Select Post delivery. The order list will be displayed again showing the order with a status
of posted delivery.
When a 'posted order' delivery of stock arrives, it is possible that some of the ordered items may
be missing. This could be due to the supplier having made a mistake, or simply not having the
stock amount requested. In other words, if the quantity amounts of PLU items delivered do not
match up with the quantity of items ordered then there will be a variance that must be accounted
for.
To update PLU quantities where there is a stock variance:
1. Select an order that has just been delivered. The status will show as posted order.
2. Check quantity of dases ordered (case order field) against the quantity delivered. If there
is a variance, enter the actual amount of stock cases that arrived into the Case del field.
3. Check quantity of Items ordered (item ordered field) against the quantity delivered. If
there is a variance, enter the actual amount of stock Items that arrived into the Item del
field.
4. Save.
5. Select Post delivery. A message will appear:
A partial delivery has been added. Do you want to create a new order? If you want
to create a new order to send to the supplier then select OK.
If you would rather not create a new order, select cancel .
6. If a Partial Order is created it will appear at the top of the orders table with an 'OrderID'
suffixed with '-1' and a status of 'posted order'. If you open the newly created order it will
list PLUs where the stock was under ordered.
When you receive an invoice from a supplier you should check the individual cost prices and the
total against the delivery note sent with the stock.
PLU ITEMS MISSING FROM YOUR DELIVERY
Overview of Post Invoice
The average cost amount for each PLU is recalculated by using the unit cost figures (total cost) of
the PLUs just posted. For example, if there is £50 of stock ordered at a cost price of £1 each, the
average cost would be £1.00. If a new order is made of the same PLU, but the cost price has gone
up to £2.00, after ordering 100 the new order is £2 per item, therefore £100 worth of stock is
delivered. Therefore the Average Cost is £1.50.
NOTE
The Unit Cost is the last cost from the supplier. This is the same for the Case Cost. Gross Profit
calculations are made from the Average Cost. Case Cost and Unit Cost are updated from the last
posted invoice.
To post an invoice follow the steps below:
1. Select Stock > Orders .
2. Select a site from the site menu. Existing current orders are displayed in the orders table.
3. Select an order with a status of posted delivery from the list.
4. To filter the table to only relevant orders select the posted delivery keyword Filter.
5. To clear the filters and display all orders of any status select clear filter.
6. Select post Invoice from the detail page. The order list will be displayed showing the
order with a status of posted invoice.
How to Post Invoice
This page is being updated.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. View stock.
2. Edit stock.
3. Search stock in all sites.
Stock list
User permissions
To view the current stock:
1. Go to https://www.touchoffice.net.
2. Select Stock > List.
3. Select the site from the drop down list.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Product
The PLU (price lookup)
or product is a
sellable item that
can be chargeable or
non-chargeable. It
helps you identify
and search for a
product.
A product can be:
a ticket
clothing
meals
a service
This is an
alphanumeric field
with a maximum
length of 24
characters.
Alpha 24
3 Unit size The quantity in units
that will be ordered. Number 4
Instructions
Fields
No Field name Description Type Length
4 Random code
The random code is
used to access this
PLU. The random
code can be:
A barcode
A sort
option in
TouchTak
eaway,
ByTable
and
ByRetail
menu
Alpha 20
5 Group
The sales group that
the product is linked
to. It is also used to
sort kitchen items by
group.
If you have not
already setup a
group select
TouchOffice Web,
programming,
groups to set one up.
Alpha 24
6 Department
The sales
department that the
product is linked to.
It is also used to sort
kitchen items by
department.
If you have not
already setup a
department select
TouchOffice Web,
programming,
departments to set
one up.
Alpha 24
7 In stock quantity The current stock
quantity. Number 8
Buttons
No Button type Description
1 Save Save changes.
2 Place order
After sending an order to a supplier.
The order status changes to posted
order.
3 Email order
Press the email order button to send
the order to the supplier.
4 Print Select the print button to print a hard
copy of the order.
5 Export to CSV
Export the order to a commaseparated
values (CSV) text file. Each
line of the CSV file represents one
order.
6 View as PDF
View the order in PDF format. PDF
stands for portable document
format. Most devices are able to
view PDF files.
7 Supplier PDF Send the order to the supplier.
8 Cancel Cancels the order.
9 Delete Deletes the order.
No Button type Description
10 Batch add
1. Restock to maximum
2. Current < minimum stock
3. Current < minimum cases
only
4. Recommend order
5. Reorder
6. Build list for supplier
7. Build list for all suppliers.
No Report type Description
1 Stock control Stock labels.
2 Exports PLU active stock links export
3 Exports PLU stock detail export
4 Stock control PLU active stock lines
5 Stock control PLU current stock
6 Stock control PLU stock valuation by average cost
7 Stock control PLU stock valuation by item cost
8 Stock control Stock below minimum
9 Stock control Stock movement
Reports
No Report type Description
10 Stock control Stock movement by type
11 Stock control Stock take list by department
12 Stock control Stock take list by group
13 Utility Non-stock PLUs
This page is being updated.
View and existing stock order or create a new stock order.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. Allow stock orders.
Stock orders
User permissions
To view stock and create stock orders:
1. Go to https://www.touchoffice.net.
2. Select Stock > Orders.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Supplier reference
Your reference code
to identify the
supplier.
Dropdown list
2 Order ID Order number. Number 4
3 Expected delivery Delivery date. Number 8
4 Delivery note number
5 Order date Date of order. Number 8
6 Notes
Notes can be used to
record additional
information about
the order.
Alpha 40
7 Invoice number
8 PLU Number 4
9 Code
10 Description Alpha 24
Instructions
Fields
No Field name Description Type Length
11 Supplier code
12 Case size
13 Case order
14 Case cost Number 8
15 Case del
16 Item order
17 Item cost Number 8
18 Item del
19 Total quantity Number 8
20 Total div Number 8
21 Total cost Number 8
No Button type Description
1 Save Save changes.
2 Place order
3 Email order
4 Print
5 Export to CSV
6 View as PDF
7 Supplier PDF
8 Cancel
9 Delete
10 Batch add
Buttons
This page is being updated.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. Allow stock transfers.
Stock transfers
User permissions
To view and create stock transfers:
1. Go to https://www.touchoffice.net.
2. Select Stock > Transfers.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Transfer ID
2 Transfer date Number 8
3 Supplier reference
4 Status
5 Notes Alpha 40
No Button type Description
1 New transfer
Instructions
Fields
Buttons
This page is being updated.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. Allow stock wastages.
Stock wastages
User permissions
To view and create stock wastage:
1. Go to https://www.touchoffice.net.
2. Select Stock > Wastages.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Wastage ID
2 Wastage date Number 8
3 Supplier reference
4 Status
5 Notes Alpha 40
No Button type Description
1 New wastage
Instructions
Fields
Buttons
This page is being updated.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. Allow stock returns.
Stock returns
User permissions
To view and create stock returns:
1. Go to https://www.touchoffice.net.
2. Select Stock > Returns.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Return ID
2 Return date Number 8
3 Supplier reference
4 Status
5 Notes Alpha 40
No Button type Description
1 New return
Instructions
Fields
Buttons
This page is being updated.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. View stock.
2. Edit stock.
Stock ins & outs
User permissions
To adjust stock ins and outs:
1. Go to https://www.touchoffice.net.
2. Select Stock > Ins and outs.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 PLU
2 Name Number 8
3 Department
The sales
department that the
product is linked to.
It is also used to sort
kitchen items by
department.
If you have not
already setup a
department select
TouchOffice Web,
programming,
departments to set
one up.
Dropdown list
Instructions
Fields
No Field name Description Type Length
4 PLU group
The sales group that
the product is linked
to. It is also used to
sort kitchen items by
group.
If you have not
already setup a
group select
TouchOffice Web,
programming,
groups to set one up.
Dropdown list
5 Reason
6 Reason notes Alpha 40
No Button type Description
1 Update template
2 Save as new template
3 Post changes
Buttons
This page is being updated.
Stock supplier list
Stock supplier detail
Stock suppliers
Suppliers must be created before stock can be ordered.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. View suppliers.
2. Edit suppliers.
To view and configure stock suppliers:
User permissions
Instructions
1. Go to https://www.touchoffice.net.
2. Select Stock > Suppliers.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Reference
Your reference code
to identify the
supplier.
3 Name Name of supplier. Alpha 24
4 Address Postal address for
accounting. Alpha 32
5 Postcode Address postcode. Alpha 10
6 Contact Name of contact at
delivery company. Alpha 14
7 Phone number As required. Alpha 14
8 Fax As required. Alpha 14
9 Email As required. Alpha 40
10 URL The supplier's
website. Alpha
11 Account number The supplier's
account number. Alpha 14
12 Delivery notes Alpha 40
Fields
No Button type Description
1 Save Save changes.
Buttons
This page is being updated.
Much of your stock will be ordered in cases so it is important to first create cases and sizes i.e. the
number of individual stock units in various cases.
Multiple PLUs can be assigned to the same case, but a PLU can only have one case linked to it at a
time.
Refer to the stock overview for an explanation of the stock process.
Case sizes
User permissions
Enable the relevant user permissions in TouchOffice Web:
1. View case sizes.
2. Edit case sizes.
To configure case sizes:
1. Go to https://www.touchoffice.net.
2. Select Stock > Case sizes.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Description
The description
should describe the
outer packaging i.e.
large box, barrel,
keg, etc.
You can be more
specific e.g. 'Box of
wine, but then it
cannot be used for
non-wine PLUs.
Alpha 40
3 Size The number of units
of the item in a case. Number 8
Instructions
Fields
No Button type Description
1 Save Save changes.
Buttons
This page is being updated.
Recipes enable you to group PLUs together into a list of ingredients, such as a cocktail.
A recipe enables a list of PLU items to be grouped under one PLU name and also affect stock
levels. For example, a cocktail recipe called a 'screwdriver recipe' would contain two separate PLU
items of vodka and orange, each with respective amounts.
The recipe can then be linked to a PLU item, for example, a PLU can be created called 'screwdriver'
and it can then be linked to the 'screwdriver recipe'. Now, when a 'screwdriver' cocktail is sold, the
stock levels of the vodka and orange PLUs are adjusted.
A PLU with a Recipe Link does not hold its own stock, it only affects the stock of others.
Refer to the stock overview for an explanation of the stock process.
Stock recipe programming
Enable the relevant user permissions in TouchOffice Web:
1. View recipes.
2. Edit recipes.
To configure stock recipes:
1. Go to https://www.touchoffice.net.
2. Select Stock > Recipes.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
2 Name Name your Recipe
here Text 14
3 Unit size Reference set
against the PLU Text 8
4 Quantity
How much of the
PLU is used in the
recipe
Number 8
Enable Recipe User permissions in TOW
Instructions
Fields
No Button type Description
1 Save Save changes.
2 New New stock recipe.
Buttons
This page is being updated.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. Allow full stocktakes.
2. Allow partial stocktakes.
3. Allow start stocktakes.
End stock take
User permissions
To end a stock take:
1. Go to https://www.touchoffice.net.
2. Select Stock > End stocktake.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
No Button type Description
1 Full stocktake
2 Partial stocktake
Instructions
Fields
Buttons
This page is being updated.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. Allow full stocktakes.
2. Allow partial stocktakes.
Stock take entry
User permissions
To start a stock take:
1. Go to https://www.touchoffice.net.
2. Select Stock > Stocktake entry.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
No Button type Description
1 New stocktake sheet
Instructions
Fields
Buttons
This page is being updated.
Refer to the stock overview for an explanation of the stock process.
Enable the relevant user permissions in TouchOffice Web:
1. View stock variance.
Stock variance
User permissions
To view stock varience:
1. Go to https://www.touchoffice.net.
2. Select Stock > Stock variance.
3. Select the site from the drop down list.
4. Configure the fields using the guidance in the table.
No Field name Description Type Length
1 Record number The record number
is system generated. Number 3
No Button type Description
1 Print
2 Export to CSV
3 View as PDF
4 Cancel
Instructions
Fields
Buttons
This page is being updated.
No Field name Description Type Length
1 Start date Sets start date of
range. Number 8
2 End date Sets send date of
range. Number 8
Sales
Fields
No Field name Description Type Length
3 Start Time Range
Sets start time of
range (24 hour
clock).
Number 4
4 End Time Range
Sets end time of
range (24 hour
clock).
Number 4
5 Check
6 Table
7 Department link
The sales
department that the
product is linked to.
It is also used to sort
kitchen items by
department.
If you have not
already setup a
department select
TouchOffice Web,
programming,
departments to set
one up.
Dropdown list
8 Group link
The sales group that
the product is linked
to. It is also used to
sort kitchen items by
group.
If you have not
already setup a
group select
TouchOffice Web,
programming,
groups to set one up.
Dropdown list
9 Clerk
10 Price level
11 Terminal
12 Till location
Buttons
No Button type Description
1 Reset
2 Submit
This page is being updated.
Sales explorer
No Button type Description
1 Reset
2 Submit
Buttons
This page is being updated.
Sales till reports
No Button type Description
1 Reset
2 Submit
Buttons
Ticketing dashboard
Ticketing sales gateways
Ticketing terms and
conditions
Create a seating plan and ticket using the TouchOffice Web+ Ticketing System.
The zoo is selling tickets to attend a lecture by a well-renowned nature conservationist - the
proceeds will be donated to the Save the Rhino wildlife charity. The lecture takes place every night
for a week between 19h00 and 21h00. The capacity for the event slot is 118 seats - 6 rows, 20
seats per row - the middle seats are aisle seats.
The image referred to in this exercise (Save the rhino.png) is included with this manual.
Before you begin this exercise view our How to design and implement a ticketing seating plan
video as it will help you with the exercises - https://youtu.be/XJuixSRskT0
Ticketing seating plans
Objective
Scenario
1. Sign in to TouchOffice Web - https://www.touchoffice.net using your Demo Account.
2. Select 0 - Head Office from the drop down list.
3. Select Programming > Departments from the menu on the left hand side of the screen.
4. Click on the New button and populate the fields using the data from the table below:-
Create a department
DESCRIPTOR ACCOUNTING CODE
Wildlife conservation Leave this field blank.
Department programming illustration
1. Select Programming > Groups from the menu on the left hand side of the screen.
2. Click on the New button (or select an available Group) and populate the fields using the
data from the table below:
DESCRIPTOR ACCOUNTING CODE
Conservation 2022 Leave this field blank.
PLU group programming illustration
Create a group
1. Select Products from the menu on the left hand side of the screen.
2. Click on the New button (or select an available Product) and populate the fields in the
Details tab using the data from the table below.
FIELD TAB DESCRIPTION
Name Details Save the Rhino
Group Details Select Conservation 2022 from
the drop down list.
Department Details Select Wildlife conservation from
the drop down list.
Random Code Details
Tax Rate Details Select VAT @ 20% from the drop
down list.
Tags Details seated conservation lecture
planet evolution
Alternative Text Details Nature conservation lecture 2022
Short Description Details This exciting lecture includes a
lineup of internationallyacclaimed
scientists, explorers,
and conservationists.
1st @ Price Details 50.00
3. Make a note of the PLU number as you will need it later on.
1. Remain in the product and select the Webshop Options tab. Do not select Show on
webshop.
Create the product
Create the web category
2. Click on the Edit button in the Web Category section and enter Save the Rhino 2022 in
the New Category field and Save.
3. Edit the Web Category once more and select the pencil icon to edit Save the Rhino 2022 .
4. Click on the Choose file button and select Save the Rhino.png. Make sure you press the
upload button to complete the upload.
5. Enter the times that the ticket can be purchased (via TouchTakeaway) next to each day
and Save. You could leave the day and time fields empty if you prefer.
NAME DAY TIME
Save the
Rhino
2022
Sun 00:00 - 23:59
Mon 00:00 - 23:59
Tue 00:00 - 23:59
Wed 00:00 - 23:59
Thur 00:00 - 23:59
Fri 00:00 - 23:59
Sat 00:00 - 23:59
6. Make sure Save the Rhino 2022 is selected from the Web Category drop down list and
Save.
1. Select Ticketing from the menu on the left hand side of the screen - by default the
Dashboard tab is active.
2. Select the Terms and Conditions tab then click on Create New.
Create the terms and conditions
3. Populate the fields using the data from the table below:-
FIELD TAB DESCRIPTION
Name Nature conservation lecture
terms and conditions
Description This lecture is suitable for adults
only.
Refer to our website for general
terms and conditions.
1. Select the Seating Plans tab then click on Create New.
2. Populate the fields using the data from the table below and then select Save Seat Plan:
FIELD DESCRIPTION
Name Lecture
Width 1000
Height 1000
3. Populate the Add section fields using the data from the table below and the select Add:
FIELD DESCRIPTION
Add section SECTION A
Rows 6
Seats per row 22
Create the seating plan
4. Drag the seat size slider to 27.
5. Drag the seat xpadding slider to 14.
6. Drag the seat ypadding slider to 13.
7. Enter A in the name field in row 1. Enter B in the name field in row 2 - continue naming
the rest of the rows.
8. Select Save section.
9. Double click Section A and move into position in the middle middle of the screen. Zoom in
by selecting + on the bottom right hand side of the screen. Stop zooming when you see
dots.
10. Select Show seat numbers on the top right hand side of the screen.
11. Select Activate seat editing in Edit section on the left hand side of the screen.
12. Select seats 11 and 12 in all of the rows. This is to create an aisle in the middle of the
seats.
13. Select Deactivate seat editing and select Save section. Select Cancel to close section.
14. Enter PODIUM in the Add landmark field. Select Text from the Type drop down list and
then select Add.
15. Double click on PODIUM (you may need to zoom out or select and drag the screen to see
it on the top left hand side of the screen).
16. Select one of the handles to enlarge.
17. Drag PODIUM into place. Select Save landmark.
1. Select the Events tab then click on Create New.
2. Populate the fields using the data from the table below:-
FIELD TAB DESCRIPTION
Name Save the Rhino 2022
Description This exciting lecture includes a lineup
of
internationally-acclaimed scientists,
explorers, and conservationists.
Total Event Capacity 840
Event Slot Capacity 120
Seated Event Do not select this as we will come
back to it later.
Start date Date Ranges Enter current date.
End date Date Ranges Enter the end date - make sure the
event is available for 1 week.
Start time TIme Ranges 19:00
Create the event
FIELD TAB DESCRIPTION
End time Time Ranges 22:00
Site ID Sites 1
Description Sites Site 1
Status Sites Open
Show on Webshop Webshop Yes
Web Category Webshop Save the rhino 2022
Site Webshop Select the Purchase Site from the
drop down list i.e. Demo.
1. Select the Ticket Types tab.
2. Populate the fields using the data from the table below:
FIELD SECTION DESCRIPTION
Name Save the Rhino 2022
Description Nature conservation charity drive for
the Save the Rhino fund.
Sale PLU
Enter the PLU created in Create the
product.
Ticket Type Design None, default to standard.
Event Nature conservation lecture 2022
Create the ticket type
FIELD SECTION DESCRIPTION
Bookable Select.
Use event slot capacity Capacity Select.
Terms and Conditions Terms and Conditions Select Nature conservation lecture
terms and conditions
1. Select the Events tab once more and select the event the Save the Rhino 2022 event.
2. Select Seated event.
3. Select Lecture from the Seat plan field.
4. Select Assign ticket types.
5. Select Section A.
6. Select Save the Rhino 2022 from the drop down list and then select Add.
7. Close and save.
1. Select the Sale Gateways tab.
2. Click on the Create button.
3. Populate the fields using the data from the table below:
NAME HOST TYPE ACTIVE
Edit the Event
Select the sale gateway
DEMO i.e. alias
.touchtakeaway.net
You can find your
TouchTakeaway site alias
in TillConfig > Takeaway.
TTA/ByTable
Tick
TillConfig TouchTakeaway illustration
It isn’t necessary to clear the cache after every exercise. We have included this step as it is
beneficial to check that your menu is displaying as intended before moving on to the next exercise.
1. Sign in to Tillconfig - https://www.tillconfig.net using your Demo Account.
2. Select Takeaway.
3. Select Clear Cache. Click on Clear Cache. If you are unable to see this option you may not
have Administrator access.
Clear the cache
Location on screen
1. The event will be bookable via our web services (TouchTakeaway, ByTable and ByRetail).
The menu should look like this:
2. Test the ticket to make sure you can book and select the seats.
Ticketing events
Event and slot capacity
Ticketing ticket types
Ticketing tickets
Ticketing sales
Ticketing calendar
Clerks programming
Clerks are the operators who use the till. The clerk settings determine what they are allowed to do,
how they are identified and the method that they use to sign on.
No Field name Description Type Length
1 Number The number is
system generated. Number 3
2 Descriptor
The descriptor is
typically the name of
the clerk, but it
could be for a
specific function
such as wastage,
trainee or engineer.
Alpha 24
3 iButton number
Enter the clerk's
unique iButton
number.
Alpha 20
4 Secret number
The secret sign on
number is the 4 digit
PIN the clerk uses to
sign on.
This should
be the easy
enough for
the clerk to
remember,
but hard
enough not
to guess. For
example,
don’t use
consecutive
numbers, or
make the
signon
number the
same as the
clerk
number.
Other sign
on methods
detailed later.
Number 4
Fields
No Field name Description Type Length
5 NI number National insurance
number. Alpha 12
No Report type Description
1 Clerk Clerk time and attendance
2 Clerk Clerk detail report
3 Clerk Clerk list
4 Clerk PLU sals by clerk
5 Clerk time and attendance Clerk pay rate summary
6 Financial Transaction key sales by clerk
7 Financial Transaction key sales per till by clerk
8 Refund mode transactions Refund mode PLU sales by clerk
Reports
Clerks detail programming
Configuring the permissions that a clerk can or cannot do on the system. Every configurable option
for each clerk is presented on one page, and represented by tick boxes. Tick or untick the allowed
functions. Managers and supervisors (administrators) will typically have access to all of the
programming whereas you will want to limit access for clerks and other staff.
No Field name Description Type Length
General
1 Number The number is
system generated. Number 3
2 Descriptor
The descriptor is
typically the name of
the clerk, but it
could be for a
specific function
such as wastage,
trainee or engineer.
Alpha 24
3 iButton number
Enter the clerk's
unique iButton
number.
Alpha 20
Fields
No Field name Description Type Length
4 Secret number
The secret sign on
number is the 4 digit
PIN the clerk uses to
sign on.
This should
be the easy
enough for
the clerk to
remember,
but hard
enough not
to guess. For
example,
don’t use
consecutive
numbers, or
make the
signon
number the
same as the
clerk
number.
Other sign
on methods
detailed later.
Number 4
5 NI number National insurance
number. Alpha 12
Level defaults
6 Default menu level
Menu level at sign
on is the default
menu screen that
appears once the
clerk signs on. An
example is bar staff
defaulting to the first
drinks screen, and
waiting staff
defaulting to the first
food screen.
Dropdown list
No Field name Description Type Length
7 Default price level
Price Level at sign
on allows a clerk to
immediately switch
to a specific price
level once signed on.
Typically used when
standard clerks are
not allowed to
change price level,
but a manager clerk
can be used to give
discretionary
discounts.
Dropdown list
8 Default floor plan
level
Allows a particular
floor plan level for
the clerk to start on
when they use the
table plan button.
Dropdown list
Commission
9 Rate 1 %
Clerks can earn
commission on
sales, which can
vary by clerk and
product. In Clerk
Feature commission
rates for an
individual clerk can
be set. Commission
rate 1 (%) is the %
commission that the
clerk receives on
products that have a
rate 1 set.
Number 8
10 Rate 2 %
Clerks can earn
commission on
sales, which can
vary by clerk and
product. In Clerk
Feature commission
rates for an
individual clerk can
be set. Commission
rate 2 (%) is the %
commission that the
clerk receives on
products that have a
rate 2 set.
Number 8
No Field name Description Type Length
11 Rate 3 %
Clerks can earn
commission on
sales, which can
vary by clerk and
product. In Clerk
Feature commission
rates for an
individual clerk can
be set. Commission
rate 3 (%) is the %
commission that the
clerk receives on
products that have a
rate 3 set.
Number 8
12 Rate 4 %
Clerks can earn
commission on
sales, which can
vary by clerk and
product. In Clerk
Feature commission
rates for an
individual clerk can
be set. Commission
rate 4 (%) is the %
commission that the
clerk receives on
products that have a
rate 4 set.
Number 8
Allowed functions
13 Allow use of no sale Opens the cash
drawer. Checkbox
14 Allow use of item
correct
When set the clerk is
able to item correct
items that have
been previously rung
into a check/table.
Checkbox
15 Allow use of void
Used to correct/void
items out of the
current sale.
Checkbox
16 Allow use of cancel
Used to cancel the
entire contents of
the current sale. No
additional
programming is
required.
Checkbox
No Field name Description Type Length
17 Allow use of refund
Used for refunding
items (not
necessarily in the
current sale).
Checkbox
18 Allow use of price
shift
Used to shift the
price to a different @
price.
Checkbox
19 Allow use of price
level shift
When using price
levels, if there is no
price in the current
level that you are on
and the PLU is not
set to be sold at zero
price, then the
system uses the
price that is stored
in price level 1.
Checkbox
20 Allow use of menu
level shift
Used to switch
between menu
levels.
Checkbox
21 Allow use of view
active clerk list
When pressed lists
all of the clerks that
are currently in the
middle of a sale.
Listed clerks can be
signed on from here.
No additional
programming.
Checkbox
22 Allow use of new
check key
Used to open a new
check only, ie will
not open an existing
check. No additional
programming.
Checkbox
23 Allow use of old
check key
Used to open a
checks, whether
they are already
open or not. No
additional
programming.
Checkbox
24 Allow use of new
check/old check key
Used to open a new
check only, ie will
not open an existing
check. No additional
programming.
Checkbox
No Field name Description Type Length
25 Allow use of use of
check transfer
Used for transferring
the contents of the
current sale to a
check, can also be
used to transfer
tables/checks to
checks.
Checkbox
26 Allow use of +
amount
Used to increase the
current subtotal by
an amount.
Checkbox
27 Allow use of - amount
Used to decrease the
current subtotal by
an amount.
Checkbox
28 Allow use of +%
Used to increase the
current subtotal by a
% amount.
Additional
programming as -%.
Checkbox
29 Allow use of -%
Used to decrease the
current subtotal by a
% amount.
Checkbox
30 Allow use of
exchange points
Used to exchange
customer loyalty
points against the
current subtotal.
Checkbox
31 Allow use of
suspend/resume
Temporarily stores
the current sale in
an interrupt buffer to
be picked up later, is
used for suspending
EFT. No additional
programming.
Checkbox
32 Allow use of paid out
Used to record
monies paid out of
the till.
Checkbox
33 Allow use of received
on account
Used to record
monies received to
the till.
Checkbox
34
Allow use of
temporary price
change
Used to temporarily
change the price of
an item.
Checkbox
No Field name Description Type Length
35 Allow use of split
check
Used to split items
out of a check, to be
cashed off
separately. No
additional
programming.
Checkbox
36 Allow use of deposit
Used to record
deposit amounts into
checks/tables.
Checkbox
37 Allow use of pay
account
Used to increase
balances on
account/prepaid
customers.
Checkbox
38 Allow use of
customer enquiry
Allows viewing of the
individual customer
electronic journal.
For
signed on
customer
only?
When set
the
journal
can only
be
viewed
for the
customer
that is
logged
on. When
not set
the
system
will
prompt
for entry
of a
customer
to be
viewed.
Checkbox
No Field name Description Type Length
39 Allow use of hot card
button
Used to lock a
customers card so
that it can no longer
be used at the tills.
The hot card flag can
be unprogrammed in
PGM3 > Customer
Features.
Will prompt for a
customer memory
number, but a
customer card can
be swiped at this
point. No additional
programming.
Checkbox
40 Allow use of
customer transfer
Used to transfer the
entire contents of
one customer into
another, including
name, balance etc.
Will prompt for a
customer memory
number to transfer
from and to, a
customer card could
be swiped at these
points. No additional
programming.
Checkbox
No Field name Description Type Length
41 Allow use of service
charge key
Deals with service
charge and checks.
Removes
Service
Charge?
When set
the key
removes
the
service
charge
from a
check/tabl
e.
Sets
Service
Charge?
When set
the key
sets the
service
charge
from a
check/tabl
e.
When
both
flags are
set the
key
toggles
service
charge
on a
check/tabl
e. If
neither
are set
then the
key acts
as a
Remove
Service
Charge
key.
Allow
override
amount
entry?
Allows
you to
key an
amount
as the
service
charge. If
only this
Checkbox
No Field name Description Type Length
42 Allow use of view
customer detail
Allows viewing of the
individual customer
electronic journal.
For
signed on
customer
only?
When set
the
journal
can only
be
viewed
for the
customer
that is
logged
on. When
not set
the
system
will
prompt
for entry
of a
customer
to be
viewed.
Checkbox
43 Allow use of remote
journal view
Allows the user to
view the electronic
of another till in the
system as it's
created. No
additional programmi
ng.
Checkbox
44 Allow use of global
eat in/take out
Presets a current eat
in take out setting as
default for all new
sales.
Checkbox
45 Allow use of edit
customer
Allows some of the
customer's details to
be edited at point of
sale. No additional
programming.
Checkbox
No Field name Description Type Length
46 Allow use of credit
card capture
Used to capture a
customer's credit
card details and
store them on the
journal.
Checkbox
47 Allow use of house
bon
Used to sell items for
free. Checkbox
48 Allow use of view
open checks
When pressed lists
all checks that are
currently open.
Allowed
to open
check?
If set
checks
can be
opened
from list.
Show
only this
clerk's
checks?
The list is
propagate
d with
checks
for the
clerk that
pressed
the
button.
Show
check file
(1-4)?
Selects
the check
file to be
used, one
of which
must be
selected.
Checkbox
49 Allow use of edit
check text
Used to change
text/name held
against a check or
table.
Checkbox
No Field name Description Type Length
50 Allow use of cash 2
key Checkbox
51 Allow use of
minimise TouchPoint Checkbox
52 Allow use of menu
shift 2 Checkbox
53 Allow use of media
exchange
Changes 1 media for
another at point of
sale. eg Cheque for
Cash.
Checkbox
54 Allow use of launch
batch
Launches a batch
file. Batch files are
stored in the batch
sub folder of
ICRtouch and should
be in the format
batchXX.bat where
XX represents the
batch file number,
eg batch01.bat
Checkbox
55 Allow use of points
adjustment
Used to manually
alter the number of
points on a customer.
Checkbox
56 Allow use of
customer biometrics
Allows customers to
assign biometric
data to there
account so that the
customer can use a
fingerprint to sign on.
Checkbox
Allowed modes
57 Reg mode
Changes the register
to register mode. No
additional
programming.
Checkbox
58 Refund mode
Changes the register
to refund mode. No
additional
programming.
Checkbox
No Field name Description Type Length
59 X mode Checkbox
60 Y mode Checkbox
61 Manager functions
Changes the register
to manager mode.
No additional
programming.
Checkbox
62 Program 1 Checkbox
63 Program 2 Checkbox
64 Program 3 Checkbox
65 Program 4 Checkbox
66 Program 5 Checkbox
67 Program 6 Checkbox
Clerk control
68 Use 2nd drawer The clerk uses
drawer 2. Checkbox
69 Clerk is manager This function is not
implemented yet. Checkbox
70 Clerk is trainee
When this clerk signs
on, the register goes
into training mode.
Checkbox
71 Allowed to open
other clerk's checks
The clerk can open
checks/tables that
were opened by
other clerks.
Checkbox
No Field name Description Type Length
72 Allowed to correct
items from checks
When set the clerk is
able to item correct
items that have
been previously rung
into a check/table.
Checkbox
73 Defaults to floor plan
at sign on Checkbox
74 Last item error
correct only
When set the clerk is
only able to correct
the last item that
they registered.
Checkbox
75 Compulsory order
number entry
Prompts the clerk to
enter an order
number for each sale.
Checkbox
76 Compulsory number
of covers entry
The clerk has to
supply the number
of covers each time
they do a sale.
Checkbox
77 Compulsory check
number
A check or table
number must be
entered before
beginning a sale.
Checkbox
78 Compulsory
customer number
When set the unit
will prompt for the
operator to enter a
customer (loyalty
etc) number at sign
on. The customer
can still be logged
on using all the
usual methods at
this point, eg mag
card.
Checkbox
79 Prompt for eat
in/take out
The system will
prompt with a list of
all Eat In/Take Out
keys found in the
status key i.e. Sign
Off Clerk at Close of
Sale? means that
when the clerk
finalises a sale, they
will automatically be
signed off of the till.
Checkbox
No Field name Description Type Length
80 Sign off clerk at
close of sale Checkbox
81 Non turnover
(TMS/PLU sales only
Sets the clerk so that
it doesn't e ect sales
total, ideal for use
with entering
wastages for reports
and backoffice
software.
Checkbox
Employee job
82 Prompt to clock in at
sign on
Allows the system to
prompt for the clerk
to clock-in if they are
not already clocked
in at the point the
clerk signs on. The
clerk can, however
choose not to clock
in at the prompt.
Checkbox
83 Compulsory clocked
in
Forces the clerk to
clock-in, and will not
allow them to start a
sale until they have
successfully clocked
in.
Checkbox
Clerk pay
84 Pay per hour
Workers paid
according to the
number of hours
they are at work are
classed as doing
‘time work’.
For these workers,
the average hourly
pay has to be at
least the National
Minimum Wage,
worked out over the
period each pay
packet covers.
Number
85 Start pay rate from
date Enter the start date. Number 8
No Field name Description Type Length
86 End pay rate at date
(optional) Enter the end date. Number 8
87 Start hour Enter the start hour. Number 4
88 End hour Enter the end hour. Number 4
No Report type Description
1 Clerk Clerk time and attendance
2 Clerk Clerk detail report
3 Clerk Clerk list
4 Clerk PLU sals by clerk
5 Clerk time and attendance Clerk pay rate summary
6 Financial Transaction key sales by clerk
7 Financial Transaction key sales per till by clerk
8 Refund mode transactions Refund mode PLU sales by clerk
Reports
1. Go to https://www.touchoffice.net.
2. Select Reports > View.
3. Select 0 - Head Office from the drop down list.
4. Select Head Office or a specific site.
5. Scroll through the reports or enter a keyword to filter the reports.
Reports
Instructions
Businesses and restaurants that accept cash will usually keep a float in each till. The float is the
amount of cash placed in the till drawer at the beginning of a shift or workday. The cash float
typically consists of a nominal amount of money, such as £50, broken up across several
denominations i.e. 1 x £10, 3 x £5, 5 x £2, 15 x £1 etc. The float usually remains in circulation to
be used the next time a drawer insert is used.
At the beginning of each shift or day you register the money in to each drawer insert (the float) by
entering the denomination quantities. In our example below the float total is £50.00.
Cash management
introduction
At the end of the shift or day you enter the money out of each drawer insert - the total will include
the float and any cash sales registered by the till. In our example below the till total includes the
£50.00 float and £517.00 cash sales.
The follow pages explain how to setup and manage the cash drawer inserts:
Adding and deleting drawer inserts.
Money in.
Moving a drawer insert.
Counting the cash in the drawer insert.
Money out.
Users have to be provided with access to the drawer insert and cash management functions. To
configure the permissions for each user:
1. Sign in to touchoffice.net.
2. In TouchOffice Web select admin, settings.
3. Select the user.
4. Scroll down to the bottom of page permissions and select or unselect the relevant
settings:
View drawer inserts
Allows the user to see the list of drawer inserts.
Edit drawer inserts
Allows the users to create, edit and delete drawer inserts.
Allow drawer insert actions
Allows the user to do counts, cash movements and drawer insert movements.
View cash management settings
Allows viewing of the cash management settings page.
Edit cash management settings
Allows editing of the options on the cash management settings page.
Cash management user
permissions
Before you can manage cash you need to configure the drawer inserts for each of the tills.
To configure the drawer inserts:
1. Sign in to touchoffice.net.
2. In TouchOffice Web select Cash management from the left hand side of the page.
3. Select Drawer inserts.
4. Select the New button.
5. Enter a name for the drawer insert and then select Add.
6. Select the New button once again.
7. Enter a name for the second drawer insert and then select Add.
Drawer insert programming
You can set up multiple drawer inserts for each till. In our examples we create "Till 1
morning shift" and "Till 1 afternoon shift" drawer inserts.
8. The drawer insert programming displays "Till 1 morning shift" and Till 1 afternoon shift"
drawer inserts. Both till inserts are inactive.
9.
The next step is to register the money in from the safe to the drawer insert.
At the beginning of each shift or day you register the money in (the float) to each drawer insert by
entering the denomination quantities:
1. Sign in to touchoffice.net.
2. In TouchOffice Web select Cash management from the left hand side of the page.
3. Select Drawer inserts.
4. Select the Money in button.
5. Select the safe from the drop down list.
Register the money in (float)
6. Enter a summary - for instance "Float in" and then select Next.
7. Enter the float denomination quantity and value that is required in the drawer insert and
then select submit:
8. A complete message appears. Select done to continue.
9. The next step is to move the drawer insert from the safe to the till.
After you have registered the money in to the drawer insert you need to move the drawer insert
from the safe to the till. On completion of this step any cash sales registered on this till will be
added to the drawer insert.
1. Sign in to touchoffice.net.
2. In TouchOffice Web select Cash management from the left hand side of the page.
3. Select Drawer inserts.
4. Select the relevant Move button.
5. Select the till from the drop down list.
6. Enter a summary - for instance "Jack's morning shift".
7. Save.
8. The till is active. All cash sales registered on the till will be added to the float.
Move drawer insert from
safe to till
At the end of a shift you need to move the drawer insert from the till to the safe. Once moved no
sales will be added to the drawer insert total:
1. Sign in to touchoffice.net.
2. In TouchOffice Web select Cash management from the left hand side of the page.
3. Select Drawer inserts.
4. Select the move button.
5. Select the safe from the drop down list.
6. Enter a summary - for instance "Jack's end of shift."
Move the drawer insert from
till to safe
7. Enter a summary i.e. "Counting till 1 morning shift" and then select Next.
8. Enter the denomination quantity and value in the drawer insert and then select submit:
9. If there is no discrepancy between the expected value (float and cash sales) select done.
10. If there is a discrepancy between the expected value (float and cash sales) an error is
displayed.
11. Select the reason from the drop down list box:
Requires investigation
Theft
Miscount
Delivery error
Other
12. Enter the reason for the discrepancy in the notes field and select the recount or done
button.
At the end of each shift or day you need to register the money out of each insert - you also need to
enter the denomination quantity: This clears any totals in the drawer insert so that it is ready to
start the next shift.
1. Sign in to touchoffice.net.
2. In TouchOffice Web select Cash management from the left hand side of the page.
3. Select Drawer inserts.
4. Select the Money out button.
5. Select the drawer insert from the drop down list.
Register the money out
(float and cash sales)
6. Enter a summary - for instance Jack end of shift and the select Next:
7. Enter the denominations that will be moved from the till drawer and then select submit:
8. A complete message appears. Select done to continue.
9. This concludes the cash management for the drawer insert for the selected shift.
If a count is recommended on the drawer insert the status will change to Count Recommended.
Count drawer insert
To count:
1. Sign in to touchoffice.net.
2. In TouchOffice Web select Cash management from the left hand side of the page.
3. Select Drawer inserts.
4. Select Count.
5. Enter a summary i.e. "Recounting till 1 morning shift" and then select Next.
6. Enter the denomination quantity and value in the drawer insert and then select submit:
7. If there is no discrepancy between the expected value (float and cash sales) select done.
8. If there is a discrepancy between the expected value (float and cash sales) an error is
displayed.
9. Select the reason from the drop down list box:
Requires investigation
Theft
Miscount
Delivery error
Other
10. Enter the reason for the discrepancy in the notes field and select the recount or done
button.
To delete drawer insert:
1. Sign in to touchoffice.net.
2. In TouchOffice Web select Cash management from the left hand side of the page.
3. Select Drawer inserts.
4. Select the relevant Delete button.
5. Select the Save button.
Delete drawer insert
Vouchers are used to create a credit note with the value of refunded items to use in the store, gift
cards, discounts and promotions, and gifts.
To configure the voucher:
1. Go to https://www.touchoffice.net.
2. Select Vouchers > List.
3. Select the site from the drop-down list.
4. Select the Actions button.
Vouchers
Instructions - gift card voucher
5. Select New voucher.
6. Populate the fields using the guidance in the table illustration and table below and then
select the Create button.
No Field name Description Type Length
1 Copies of Voucher
This feature
enables you to
generate multiple
vouchers
simultaneously
while setting a
limit on the
number of
vouchers created.
Number 3
2 Active Active makes the
voucher usable. Checkbox 24
3 Site Select the eligible
sites. Dropdown list
No Field name Description Type Length
4 Voucher code
Enter a unique
voucher code or
leave the field
blank to generate
one automatically.
Alpha 24
5 Name
Enter a name that
will help you
identify the
voucher, for
example, "Gift
card".
Alpha 24
6 Description
Enter a
description, for
example, "£50.00
gift card".
Alpha 24
7 Type Select Gift card. Dropdown list
8 Value
Select £5, £10,
£15, £20, £25,
£50 or enter the
monetary value.
Numeric 2
9 Start date and time
Set the start date
and time for the
voucher.
10 End date and time
Set the end date
and time for the
voucher.
Voucher applies to:
11 PLUs Select eligible
PLUs. Dropdown list
12 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
13 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
No Field name Description Type Length
Sale must include:
14 PLUs Select eligible
PLUs. Dropdown list
15 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
16 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
7. Select the voucher number to edit the details, activate voucher, or delete the voucher.
Instructions - % discount voucher
To configure the voucher:
1. Go to https://www.touchoffice.net.
2. Select Vouchers > List.
3. Select the site from the drop down list.
4. Select the Actions button.
5. Select New voucher.
6. Populate the fields using the guidance in the table below and then select the Create
button.
No Field name Description Type Length
1 Copies of Voucher
This feature
enables you to
generate multiple
vouchers
simultaneously
while setting a
limit on the
number of
vouchers created.
Number 3
2 Active Active makes the
voucher usable. Checkbox 24
3 Site Select the eligible
sites. Dropdown list
4 Voucher code
Enter a unique
voucher code or
leave the field
blank to generate
one automatically.
Alpha 24
5 Name
Enter a name that
will help you
identify the
voucher, for
example,
"Customer loyalty".
Alpha 24
6 Description
Enter a
description, for
example, "This
voucher entitles
you to a 20%
discount".
Alpha 24
7 Type Select Discount
voucher. Dropdown list
8 Value Enter the discount
%. Numeric 3
9 Start date and time
Set the start date
and time for the
voucher.
10 End date and time
Set the end date
and time for the
voucher.
Voucher applies to:
11 PLUs Select eligible
PLUs. Dropdown list
12 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
13 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
Sale must include:
14 PLUs Select eligible
PLUs. Dropdown list
15 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
16 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
7. Select the voucher number to edit the details, activate voucher, or delete the voucher.
To configure the voucher:
1. Go to https://www.touchoffice.net.
2. Select Vouchers > List.
3. Select the site from the drop down list.
4. Select the Actions button.
5. Select New voucher.
6. Populate the fields using the guidance in the table below and then select the Create
button.
No Field name Description Type Length
Instructions - free gift
1 Copies of Voucher
This feature
enables you to
generate multiple
vouchers
simultaneously
while setting a
limit on the
number of
vouchers created.
Number 3
2 Active Active makes the
voucher usable. Checkbox 24
3 Site Select the eligible
sites. Dropdown list
4 Voucher code
Enter a unique
voucher code or
leave the field
blank to generate
one automatically.
Alpha 24
5 Name
Enter a name that
will help you
identify the
voucher, for
example, "Free
gift - fathers day".
Alpha 24
6 Description
Enter a
description, for
example, "Buy an
aftershave and
receive a sample
to try."
Alpha 24
7 Type Select Free gift. Dropdown list
9 Start date and time
Set the start date
and time for the
voucher.
10 End date and time
Set the end date
and time for the
voucher.
Voucher applies to:
11 PLUs Select eligible
PLUs. Dropdown list
Sale must include:
14 PLUs Select eligible
PLUs. Dropdown list
15 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
16 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
7. Select the voucher number to edit the details, activate voucher, or delete the voucher.
Voucher templates are created in Head Office.
1. Go to https://www.touchoffice.net.
2. Select Vouchers > Templates.
3. Select the New button.
4. Populate the fields using the guidance in the table below, then select the Save button.
Voucher templates
To configure a Gift card voucher template:
No Field name Description Type Length
1 Site
Select the Head
Office site from
the drop-down list.
Dropdown list
2 Type
Select Gift card
from the
dropdown list.
Dropdown list
3 Value
Select £5, £10,
£15, £20, £25,
£50 or enter the
monetary value.
Numeric 2
4 Name
Enter a name that
will help you
identify the
voucher, for
example, "£50.00
gift card".
Alpha 24
5 Description
Enter a
description, for
example, "Gift
card £50.00".
Alpha 24
Restrictions:
6 Usable at Select all sites or a
specific site. Dropdown list
7 Maximum uses
Restrict the
number of uses or
select unlimited.
8 Allow partial tender
The purchase can
be less than the
value of the Gift
card.
Checkbox
Voucher applies to:
9 PLUs Select eligible
PLUs. Dropdown list
10 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
No Field name Description Type Length
11 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
Sale must include:
12 PLUs Select eligible
PLUs. Dropdown list
13 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
14 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
15 Active Active makes the
voucher usable. Checkbox 24
1. Go to https://www.touchoffice.net.
2. Select Vouchers > Templates.
3. Select the New button.
4. Populate the fields using the guidance in the table below and then select the Save button.
To configure a Discount voucher template:
No Field name Description Type Length
1 Site
Select the Head
Office site from
the drop-down list.
Dropdown list
2 Type
Select discount
from the
dropdown list.
Dropdown list
3 Value
Select the
discount amount
in %.
Numeric 3
4 Name
Enter a name that
will help you
identify the
voucher, for
example, "20%
discount customer
loyalty".
Alpha 24
5 Description
Enter a
description, for
example,
"Customer loyalty
scheme - 20%".
Alpha 24
Restrictions
6 Usable at Select all sites or a
specific site. Dropdown list
7 Maximum uses
Restrict the
number of uses or
select unlimited.
8 Allow partial tender
The discount can
be applied to part
of the sale.
Checkbox
Voucher applies to:
9 PLUs Select eligible
PLUs. Dropdown list
10 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
No Field name Description Type Length
11 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
Sale must include:
12 PLUs Select eligible
PLUs. Dropdown list
13 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
14 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
15 Active Active makes the
voucher usable. Checkbox 24
1. Go to https://www.touchoffice.net.
2. Select Vouchers > Templates.
3. Select the New button.
4. Populate the fields using the guidance in the table below, then select the Save button.
To configure a Free gift voucher template:
No Field name Description Type Length
1 Site
Select the Head
Office site from
the drop-down list.
Dropdown list
2 Type
Select Gift card
from the
dropdown list.
Dropdown list
4 Name
Enter a name that
will help you
identify the
voucher, for
example, "Free
gift - fathers day".
Alpha 24
5 Description
Enter a
description, for
example, "Buy an
aftershave and
receive a sample
to try".
Alpha 24
Restrictions
6 Usable at Select all sites or a
specific site. Dropdown list
7 Maximum uses
Restrict the
number of uses or
select unlimited.
8 Allow partial tender
The discount can
be applied to part
of the sale.
Checkbox
Voucher applies to:
9 PLUs Select eligible
PLUs. Dropdown list
10 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
11 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
No Field name Description Type Length
Sale must include:
12 PLUs Select eligible
PLUs. Dropdown list
13 PLUs in groups
Select the eligible
groups that will be
creating the
vouchers.
Dropdown list
14 PLUs in
departments
Select the eligible
departments that
will be creating
the vouchers.
Dropdown list
15 Active Active makes the
voucher usable. Checkbox 24
Stripe
Installation
Configuration
TouchMenu
reference manual
TouchMenu is the digital signage solution that runs alongside TouchPoint. It will take the product
information available and enable you to construct dynamic pages with content to display in
businesses. This document will guide you through the basic configuration to get products to show
on a single slide and a single screen.
1. This script requires Touchpoint 2017 6845+
2. Up to date libraries needed (Go to PGM5 | Check For Update | type in 'etallib' and press
enter | restart till)
3. If TouchPoint does not have access to the Internet, you can download the library files
from https://forum.icrtouch.com/files/file/151-libraries/
4. TouchMenu files can be downloaded from https://forum.icrtouch.com/files/file/389-touchmenu-
ehp/
5. Allergen icons requires TouchPoint 2019 7000+
6. Calorie information requires TouchPoint 2022 7600+
Installation
Prerequisites
There are two parts to configuring TouchMenu:
1. Configure the menus and content blocks in TouchPoint.
2. Style the menu using HTML and CSS.
1. In TouchPoint select Program > All Prog > System Programming > System
Configuration.
Part 1 - TouchPoint
Enable EHP Server
Configuration
2. Scroll down and select YES in the “Enable EHP Server?” field.
1. Drop the files into your ETAL folder and start TouchPoint.
2. Select Program > All Prog > Etal > TouchMenu Configuration.
TouchMenu Configuration
3. Select YES in the Enable TouchMenu field.
4. Scroll down to the Licence Key field and enter your licence key. If running in demo
mode (no licence) enter "DEMO".
Configure the PLUs so that they appear on TouchMenu:
1. In TouchPoint select Program > All Prog > PLU > PLU > PLU.
2. Scroll down to Selective Itemiser 5 and select YES to enable the product to show
on TouchMenu.
PLU Configuration
3. Repeat for all products that will be displayed on the menu.
Configure the slide, screen, content blocks and group settings.
1. Select Program > All Prog > Etal > TouchMenu Configuration >
Page/Group Refresh Configuration.
2. Configure the fields using the guidance in the tables below:
No Setting Description
1 Enable Multi-Screen Allow multiple screens (displays).
2 Number of Screens Screens used.
3 Enable Multi-Slide
Multiple slides used on a timeout.
If Number of Slides is more than 1
select YES.
4 Number of Slides The number of slides used.
Page/Group Refresh Configuration
Page Configuration - Multi-Screen/Slide
1. Scroll down to PLU Select Method and press enter.
2. Choose how the menu items will be sorted:
PLU Range
PLU Departments
PLU Groups
KP Categories
Keyboard
List boxes
3. Scroll down to Number of Product Groups and press enter. Determine how many
product groups you require i.e. 3 product groups could represent breakfast, lunch
and dinner menus.
4. Select Define Product Groups. Select Product Group 1.
5. Configure the fields using the guidance in the tables below. When you have
completed Product Group 1 configure Product Group 2.
No Setting Description
Page Configuration - Product Groups
1 PLU Dept
Select the PLU dept from the
list. The menu displays the
displays the PLUs associated
with the selected department
regardless of the PLU Range.
2 PLU Group
Select the PLU group from the
list. The menu displays the
PLUs associated with the
selected PLU Group regardless
of the PLU Range.
3 KP Category
Select the KP category from
the list. The menu displays the
PLUs associated with the
selected KP Category
regardless of the PLU Range.
4 Keyboard level
Select the keyboard level from
the list. This field is visible if
you selected Keyboard as the
PLU Select Method.
5 List box
Select the list box from the
list. This field is visible if you
selected List Boxes as the PLU
Select Method.
6 Start PLU Range
PLU selection range start.
This field will appear if you
selected PLU Dept, PLU
Groups, and KP Category.
7 End PLU Range
PLU selection range end.
This field will appear if you
selected PLU Dept, PLU
Groups, and KP Category.
The selected start/end range should only span the necessary number of PLUs. Defining a
range which is too large could have a negative impact on user experience.
8 Allocated to Screen Allocate the menu to a screen
(display).
9 Allocated to Slide Allocate the menu to a slide.
10 Allocated to Scheduled Time
Slot
Allocated the menu to a
timeslot.
11 Schedule Override Will not be affected by any
time slot changes.
12 Price Level Allocated price level.
13 Child Menu Only Group
Group only has child menu
products.
If all product groups on a slide
are child only, the adult daily
intake message will not
display.
14 Use Selective Itemiser
Selective Itemiser 5 is used to
define the PLUs that will
display.
6. Scroll down to Content Blocks.
7. Configure the fields using the guidance in the tables below:
Page Configuration - Content Blocks
No Setting Description
1 Enable Content Blocks Allows content blocks to be
displayed.
No Setting Description
2 Number of Content Blocks How many will be used.
3 Define Content Blocks Configure content blocks.
Define Content Blocks
No Setting Description
1 Allocated to Screen Allocate screen.
2 Allocated to Slide Allocate slide.
3 Allocated to Scheduled Time
Slot Allocate timeslot.
4 Schedule Override Will not be affected by any
time slot changes.
Refresh Options
No Setting Description
1 Enable Automatic Group
Refresh
Refreshes each product group
after timeout expires.
2 PLU Group Refresh Timeout
(Minutes)
Timeout for product group
refresh and content update.
3 Slide Timeout (Minutes) Time between each slide
change.
Configure heading, caption and label display settings.
1. Select Program > All Prog > Etal > TouchMenu Configuration > Heading, Caption
& Label Configuration.
2. Configure the fields using the guidance in the tables below:
No Setting Description
1 Enable Group Headings Display group header.
Heading, Caption & Label Configuration
No Setting Description
2 Product Group Headings
Method
How the group heading is
defined.
3 Define Product Group Headings Define each product group
heading.
4 Enable Group Captions Caption to support the header.
5 Define Product Group Captions Define a caption for the
product group.
6 Enable PLU Captions Captions against PLUs.
7 Define PLU Captions Define captions for each PLU.
8 Enable @Price Heading Heading for each @Price.
9 Define Price Headings Define @Price headings per
product group.
Configure product group headings method settings.
1. Select Program > All Prog > Etal > TouchMenu Configuration > Product
Configuration.
2. Configure the fields using the guidance in the tables below:
No Method Description
1 Group Method
Sets heading using the group
selection method. If PLU
Range, it will allow a userdefined
entry.
2 Manual User-defined heading.
Configure product display settings.
Product Group Headings Method
Product Configuration
1. Select Program > All Prog > Etal > TouchMenu Configuration > Product
Configuration.
2. Configure the fields using the guidance in the tables below:
No Setting Description
1 Show Zero Prices Show £0.00 against PLUs that
have no price.
2 Show Non-Price Products Show products that have no
price configued.
3 Enable Global Price Level
(Else, Group-Specific)
Use a blanket price level
across all displayed PLUs.
4 Global PLU Price Level Set price level to display
against all product groups.
5 Enable @Price Show @Price of a PLU.
6 Enable Allergen Information Display defult allergen images.
7 Allergens Under PLU Name
(No, Right HS)
Images display underneath the
PLU name or to the right.
8 Enable Calories Display calories.
9 Calories Under Price (No, Right
HS)
Display below the price or to
the right.
Stock Configuration
Enable stock and configure settings.
1. Select Program > All Prog > Etal > TouchMenu Configuration > Stock
Configuration.
2. Configure the fields using the guidance in the tables below:
No Setting Description
1 Enable Stock Measurement
Evaluate stock levels of PLUs;
when below 0, modify PLU
using “Stock Strikeout”
method set.
No Setting Description
2 Update Stock After Finalise
Update stock values for
TouchMenu after a sale has
been finalised.
3 Update Stock After PLU
KeyPress
Update stock values for
TouchMenu after a PLU key
has been pressed.
4 Enable Stock Global Minimum
(Else PLU Minimum)
Use global stock minimum to
determine if an item is out of
stock; otherwise, use the PLU
minimum stock.
5 Global Stock Minimum Minimum stock value for all
displayed PLUs.
6 Stock Strikeout Method
How to display a PLU when out
of stock:
Remove item from
screen - remove
from the display.
Line through text -
stroke out with a
horizontal line.
Display out of stock
- replaces prices
with the text "Out
of Stock".
Configure timeslots and enable schedules.
1. Select Program > All Prog > Etal > TouchMenu Configuration > Product/Content
Schedule Configuration.
2. Configure the fields using the guidance in the tables below:
No Setting Description
Product/Content Schedule Configuration
1 Enable Product Group
Scheduler
Show product groups at
particular times. Options:
YES
NO
2 Enable Content Block
Scheduler
Content blocks to show at
particular times.Options:
YES
NO
3 Define SUNDAY Timeslots
Sunday scheduler:
Scheduled timeslot
one - 9:00
Scheduled timeslot
two- 12:00
Scheduled timeslot
three - 15:00
Scheduled timeslot
four - 17:00
Scheduled timeslot
five - 22:00
4 Define MONDAY Timeslots
Monday scheduler:
Scheduled timeslot
one - 9:00
Scheduled timeslot
two- 12:00
Scheduled timeslot
three - 15:00
Scheduled timeslot
four - 17:00
Scheduled timeslot
five - 22:00
5 Define TUESDAY Timeslots
Tuesday scheduler:
Scheduled timeslot
one - 9:00.
Scheduled timeslot
one - 12:00.
Scheduled timeslot
one - 15:00.
Scheduled timeslot
one - 17:00.
Scheduled timeslot
one - 22:00.
6 Define WEDNESDAY Timeslots
Wedday scheduler:
Scheduled timeslot
one - 9:00
Scheduled timeslot
two- 12:00
Scheduled timeslot
three - 15:00
Scheduled timeslot
four - 17:00
Scheduled timeslot
five - 22:00
7 Define THURSDAY Timeslots
Thursday scheduler:
Scheduled timeslot
one - 9:00
Scheduled timeslot
two- 12:00
Scheduled timeslot
three - 15:00
Scheduled timeslot
four - 17:00
Scheduled timeslot
five - 22:00
8 Define FRIDAY Timeslots
Friday scheduler:
Scheduled timeslot
one - 9:00
Scheduled timeslot
two- 12:00
Scheduled timeslot
three - 15:00
Scheduled timeslot
four - 17:00
Scheduled timeslot
five - 22:00
9 Define SATURDAY Timeslots
Saturday scheduler:
Scheduled timeslot
one - 9:00
Scheduled timeslot
two- 12:00
Scheduled timeslot
three - 15:00
Scheduled timeslot
four - 17:00
Scheduled timeslot
five - 22:00
When a schedule is active, then the page will automatically refresh when the
scheduled time for the next content is reached.
Creates any settings which did not exist in a previous version of TouchMenu.
1. Select Program > All Prog > Etal > TouchMenu Configuration > Rebuild Initial
Settings.
Rebuild Initial Settings
2. Change directory to c:\ICRTouch\Web. Make sure the file folder and files below
have been created (if they do not exist restart TouchPoint:
Assets
ContentBlocks.ehp
TouchMenu.ehp
TouchMenu.json
TouchMenuStock.json
Once the script and relevant PLUs have been set up, navigate to the TouchMenu webpage
in a modern web browser (Tested in Google Chrome, Firefox):
1. On the computer running TouchPoint go to http://localhost:9980/TouchMenu.ehp.
This will take you to a landing page.
2. Select a screen to view and select Get screen data.
3. Substitute localhost with the IP address of the computer running TouchPoint. This
allows you to display the menu on another machine on the same network.
4. If you want to call up the screen directly enter
http://localhost:9980/TouchMenu.ehp?nScreen=1 to go directly to screen 1. Enter
http://localhost:9980/TouchMenu.ehp?nScreen=2 to go directly to screen 2 etc.
TouchMenu errors are recorded in c:\ICRTouch\etal\EHP Cache\TouchMenu.ehp\output*.txt.
For output1C2320BB000020A837.txt
Viewing Content
Please note, to view content, the till running TouchMenu must be active.
Errors
When TouchPoint first runs with TouchMenu active, it will create the following key(s)
automatically:
Name File Key Type Number Value Flags
Rebuild
TouchMenu 53 Run Script
(Etal) 650 0 0
These keys are needed for use at a later stage.
Content blocks are used for other media that are not products. These can be used for
providing information to a customer or to promote various items.
1. Select Program > All Prog > Etal > TouchMenu Configuration > Page/Group
Refresh Configuration.
Status Keys
Content Block Configuration
2. Select “Enable Content Blocks” to yes and confirm the “Number of Content
Blocks”.
3. Navigate to “Define Content Blocks” and allocate each content block to the
relevant screen/slide/timeslot as applicable.
CSS and HTML files are edited in c:\ICRTouch\web folder:
1. ContentBlocks.ehp
The default number of content blocks is 25. To increase the content blocks right
click on c:\ICRTouch\Web\ContentBlocks.ehp and open with Wordpad. Scroll down
to:
case 25:
ICR_EHP_Output("");
break;
Copy the code above and paste underneath. Replace 25 with 26. The code should
look like this:
case 25:
ICR_EHP_Output("");
break;
case 26:
ICR_EHP_Output("");
break;
If less content blocks are required comment the relevant content blocks out. The
code should look like this:
/*case 25:
ICR_EHP_Output("");
break;*/
TouchMenuStyle.css contains all of the TouchMenu styling. You are able to style the
following CSS elements (x represents the number):
1. Google font imports
PART 2 - CSS and HTML
ContentBlocks.ehp Configuration
TouchMenuStyle.css
2. Base styling - change the font size, font family, background color and image,
headings, lists etc.
3. Slides - .slidex (.slide1, .slide2 etc.).
4. Product section - .sectionx (.section1, .section2 etc.).
5. Product group header - .headingx (.heading1, .heading2 etc,
6. Product group caption - .captionx (.caption1, .caption2 etc.
7. Product description - .productdescription
8. 1st@Price - .priceone
9. 2nd@Price - .pricetwo
10. 3rd@Price - .pricethree
11. 4th@Price - .pricefour
12. Allergen icon container displayed below the PLU -.allergencontainerbelow
13. Allergen icon container displayed to the right of the PLU -.allergencontainerright
14. Allergen icon image width, height etc -.allergens
15. Content blocks - .contentblockx (.contentblock1, .contentblock2 etc.))
16. Calorie value - .calorie-info
17. Calorie message - .daily-calorie-message
18. Landing page styling
Please refer to the TouchMenu hands on exercise manual for step by step instructions on
styling your menu.
Before you edit the TouchMenuStyle.css file we recommend that you make a copy of
it in case you need to revert back to your original settings.
This manual is aimed at Authorised ICRTouch Partners as a reference tutorial manual for
ICRTouch's Ticketing product solution (found within TouchOffice Web+).
Overview & introduction
Event creation
Ticket type creation
Viewing & amending tickets
Manually creating tickets within TouchOffice Web
Ticketing on TouchPoint
PLU programming
Entry Ticket Scanner App
Seating Plan Creator
Ticketing Manual
(2025)
The ICRTouch Ticketing product, found within TouchOffice Web+, is a comprehensive solution to
enable the sale and management of tickets, for a wide variety of business types. Find out more at
icrtouch.com.
Whether running a local pub that holds quiz nights, a popular cocktail bar and restaurant wanting
to launch a bottomless brunch, a busy attraction welcoming 1,000s of visitors daily, a theatre with
full calendar of performances, or an event hosting visitors on an ad-hoc basis, the Ticketing
solution is capable of handling every situation.
Tickets can be sold via TouchPoint, SelfService and ByTable / TouchTakeaway webshops and apps.
ICRTouch Ticketing covers all the elements you'd expect from a digital ticketing solution, including:
Creation of events, with flexible options for dates, times, capacities, venues, seat plans
and more.
Creation of unlimited ticket types, with options for all of the above + redemptions,
requested data and more.
Bespoke digital ticket creation (+ storage within customer accounts).
Marketing opt-in and push notification functionality.
Comprehensive reporting.
Fully customisable seating plan creator.
Programable ticket upgrade options.
Discounts, vouchers and gift card integration.
Overview & introduction
When/where would it be used?
How does Ticketing integrate with the wider ICRTouch
ecosystem?
What are the basic features?
Full cloud management via TouchOffice Web+.
Entry Ticket Scanner app for on-site validation.
1. Open tillconfig.net and sign in.
2. Select 'TAKEAWAY' and then 'Tickets'.
3. On the relevant site, select the 'Enable ticket sales' box.
4. 'Enable bundle tickets' and 'Enable online ticket upgrades' can also be selected here, if
required. More detail on these settings is included later within this manual.
5. 'Save'.
In order to enable Ticketing, you must purchase a TouchOffice Web+ account. To do so, either
enable it via portal.icrtouch.com or please email orders@icrtouch.com if you have any difficulties
enabling the service.
The following must then be completed within the 'Settings' section of TouchOffice Web+.
1. Open touchoffice.net and sign in.
2. Select 'admin' from the menu bar and then 'Settings'.
3. Find and select all of the following options:
Page permissions: View Ticketing, Edit Ticketing
Ticketing Permissions: View Events, Edit Events, View Tickets, Edit Tickets, View Sales, View
Terms & Conditions, Edit Terms & Conditions, View Seating Plans, Edit Seating Plans, View Calendar
View Report Permissions: Booked Seats, Daily Event Capacity With Detail, Event Capacity,
Event Capacity With Detail, Requested Data Dropdown Summary, Tickets With Requested Data,
Ticket Bookings Calendar, Ticket Sales Summary, Ticket Sales With Detail, Ticket Scans With
Detail, Ticket Scan Summary, Ticket Upgrades, Unique Ticket Scans By Day, Weekly Event
Capacity With Detail
Once the above has been completed, 'Ticketing' will be accessible within the left-hand sidebar
menu at touchoffice.net and all relevant reports and additional functions will also be available.
How to enable Ticketing within TillConfig
How to enable Ticketing within TouchOffice Web+
Before starting the event and ticket type creation process, please be aware that a webshop
category will be required during the event creation process and a PLU will be required for
each ticket type.
Here, we will look at the first step of setting up Ticketing - the creation of a base event. This
process can be repeated as many times as required for sites that wish to host multiple events.
To get started with event creation, follow these steps:
1. Open touchoffice.net and sign in.
2. Select 'Ticketing' then 'Events' in the left-hand sidebar.
3. Select the '+ New' button and a pop-up window will appear. This gives you a step-by-step
approach to creating an event.
4. Use the below notes and explanations to complete the information required in each step
of the pop-up for your chosen event.
Create Event > Details
Field Description
Name
Used to easily identify your events. This name will be
customer-facing if utilising ByTable / TouchTakeaway /
SelfService.
Examples: Bottomless Brunch / Admission Tickets / Pub
Quiz / Santa's Grotto
Description
A general description of your event. This will be customerfacing,
as the name above. It can be helpful to include
important details here such as any age restrictions.
Example: Join us for our pub quiz on Wednesdays at
[venue name], suitable for ages 16+.
Event creation
The following manual refers to the 'NEW' version of Ticketing.
It is worth bearing in mind here that the 'Event' should be the overarching event, such as a
date-specific event, or 'Admission Tickets' for an attraction. Multiple Ticket Types can be
added to each event (see more on the next page).
Use Seating Plan
This selection box will toggle on/off the use of a seating
plan for this specific event. This is only required if you
want customers to be able to purchase a specific seat
(such as at a theatre).
More detail on seat plan creation and implementation will
be added to this manual in due course.
Seating Plan All pre-created seating plans will display within this
dropdown list, if required.
Create Event > Date Selection
The dates entered here are for the event run as a whole. Dates can be set for individual ticket
types which will override the event dates. If no dates are selected, the event will be available
every day.
Field Description
Select individual dates
This option enables you to select individual dates
throughout the calendar simply by clicking on each date.
This is best for any non-recurring event that will take
place across a short period of time.
Select date range
When selected, this option enables you to easily enter
recurring events across a large period of time. To set a
date range for every day of the week, simply select your
starting date and navigate through the calendar to select
your end date - this will automatically select all dates
within that range.
To set a recurring event that takes place on specific
day(s) of the week, select the 'Weekdays (7)' button and
toggle on/off the days as required. Then follow the same
step of selecting the start and end dates - this will
automatically select all weekday dates as specified within
that range.
There is also an option to 'Remove' dates in a similar way.
Simply toggle from 'Add' to 'Remove' and follow the same
steps as above.
Create Event > Time Ranges
Field Description
Times
This is where you COULD add the time range(s) for your
event. If no time range is set, any value entered into the
'Event Slot Capacity' will by default operate from 00:00 -
23:59.
If your event runs during specific timeframe(s), that are
not a full day (either a single or multiple slots), they can
be entered here.
For example, if running a Bottomless Brunch with
multiple bookable slots, these could be entered
separately. Eg, 12:00-12:59, 13:00-13:59, 14:00-14:59 etc.
Create Event > Capacity
Field Description
Total Event Capacity
This is where you COULD enter a total capacity for the
entire event duration.
For example, if you are running a single day or shortterm
event which requires a capacity limit for licensing or
similar, you could enter that here. This would mean that
the number of tickets sold for this entire event (across all
dates) will not exceed this number.
If you are creating an event which runs recurrently across
a larger period of time, it is likely that you would want to
set event slot capacities or ticket type capacities instead
of a total event capacity.
Event Slot Capacity
The value entered here will control the capacity for any
configured time slots. If no time slots have been entered,
this would be the total capacity for each individual event
day (00:00-23:59).
Create Event > Venues
Field Description
Site
Select the site(s) from the dropdown list for which the
event is relevant. Tickets for this event will be
redeemable at all sites/venues added to this list.
Create Event > Webshop
Field Description
Show on webshop
This will need selecting in order for the event to display
on a ByTable / TouchTakeaway webshop or app and
SelfService. Without this selected, the event will not
appear available for sale. The text to the right of the box
will change as this setting is toggled on/off.
Webshop Image
An event image can be uploaded here, which will display
customer-facing on ByTable / TouchTakeaway /
SelfService. The recommended image size is 960pxW x
620pxH.
Web category
Select the relevant web category from the dropdown list.
These web categories are those which have been
programmed via the PLU programming options with
TouchOffice Web+.
Sites
Select the site(s) from the dropdown list for which the
event is relevant. Tickets for the event will be purchasable
from all sites added to this list. If no site is added, the
event tickets will automatically be purchasable from all
sites.
Once the above has been completed, the step-by-step window will progress to creating your ticket
types.
The event creation cannot be finalised until at least one ticket type has been created.
However, by selecting the X at the top of the pop-up 'Create Event' window, you will be
presented with the option to save the event progress as a draft. This allows you to come
back to edit and finalise the event details at another time, without losing any progress.
Once the event has been created, the pop-up window will take you to the 'Ticket Types' section.
Here, we will look at the creation of ticket types and the varied settings available. This process can
be repeated as many times as required for sites that wish to create multiple ticket types.
To get started with ticket type creation, follow these steps:
1. Ensure an event has been created.
2. On the 'Ticket Types' section, select 'Create Ticket Type'
Create Ticket Type > Details
Field Description
Name
Used to easily identify the ticket type. This name will be
customer-facing and appear not only on ByTable /
TouchTakeaway / SelfService once tickets are purchased,
but also on the downloadable PDF and within reports.
Examples: Standard entry / VIP experience / Season
Ticket / Concession / Kids' Ticket
Description
A description of the ticket type. This is customer facing, as
the name above. It can be helpful to include important
details here such as age restrictions, an outline of what
the ticket includes and any other basic terms.
Example: Kids' Tickets are valid for entry on the selected
date only, for children under the age of 16. Children must
be accompanied by an adult upon entry.
Sale PLU
Use the dropdown to select a PLU, either one that has
already been programmed for this ticket type, or any
available/unused PLU which can be programmed at a later
stage.
Type directly into the dropdown to search via the PLU
name.
Ticket type creation
It is worth bearing in mind here that a 'Ticket Type' should be created for every option of
ticket available for the event, such as 'Standard Entry', 'VIP Entry', 'Concession' etc. Multiple
Ticket Types can be added to each event.
Ticket Design
By default, all ticket types will utilise 'tickets/Standard' as
the ticket design. This is a basic design which will provide
all the basic event and ticket information required.
However, we advise that custom ticket designs are
created for all ticket types.
Please complete the form at icrtou.ch/customvoucher to
request the creation of a custom ticket design.
Terms & Conditions
A dropdown will appear from which the relevant terms &
conditions for this ticket type can be selected. There is
more detail on the creation of terms & conditions later in
this manual. Terms & conditions can be added to a ticket
type at any point in the future, simply by editing the
event and ticket type, so during initial creation this can be
left as 'No Terms & Conditions'.
Bookable
If a customer is required to select a specific date or time
slot to be associated with this ticket type, this box must
be selected. This will add a calendar to the purchasing
journey for dated events and/or the ability to select time
slots. The validity of the ticket redemption date(s) can be
overwritten if required in the 'Validity' section below.
If unselected, customers will not have to select a date or
time during the purchase process and tickets will be valid
for the entirety of the event, unless specified otherwise in
date or time ranges below.
Use Event Slot Capacity
Only visible if 'Bookable' is selected.
If selected, the capacity for this ticket type will be set by
the event capacities.
If not selected, independent capacities for the ticket type
will be programmable in the next steps.
Create Ticket Type > Date Ranges
Field Description
Select individual dates
This is where you COULD add individual dates for your
ticket type. This option enables you to select individual
dates throughout the calendar simply by clicking on each
date. This is best for any ticket types used within nonrecurring
dates that will take place across a short period
of time.
The dates entered here are for the individual ticket type and, if set, will override the dates of
the event. This is useful, for example, if a specific ticket is only available on certain dates
within the wider event date range. If no dates are selected, the ticket type will be valid on
every day of the event.
Select date range
This is where you COULD add date ranges for your ticket
type. When selected, this option enables you to easily
enter recurring dates across a large period of time when
the ticket type is to be valid. To set a date range for every
day of the week, simply select your starting date and
navigate through the calendar to select your end date -
this will automatically select all dates within that range.
To set the dates for the ticket type as recurring, to take
place on specific day(s) of the week, select the 'Weekdays
(7)' button and toggle on/off the days as required. Then
follow the same step of selecting the start and end dates -
this will automatically select all weekday dates as
specified within that range.
There is also an option to 'Remove' dates in a similar way.
Simply toggle from 'Add' to 'Remove' and follow the same
steps as above.
Create Ticket Type > Time Ranges
Field Description
Times
This is where you COULD add the time range(s) for your
ticket type. If no time range is set, any value entered into
the 'Slot Capacity' will by default operate from 00:00 -
23:59.
If your event runs during specific timeframe(s), that are
not a full day (either a single or multiple slots), they can
be entered here.
For example, if running a Bottomless Brunch with
multiple bookable slots, these could be entered
separately. Eg, 12:00-12:59, 13:00-13:59, 14:00-14:59 etc.
Create Ticket Type > Capacity
Field Description
The time slots entered here are for the individual ticket type and, as a result, are
independent of the previously set event time slots. If 'Bookable' has been set above and
"use event slot capacity" has not, you will be able to configure ticket specific time ranges
that will be used.
The capacities entered here are for the individual ticket type and, as a result, are
independent of the previously set event capacities. If 'Use Event Slot Capacity' has been
selected, values entered here will not be taken into account.
Slot Capacity
Only visible if the ticket type has been set as 'Bookable'.
The value entered here will control the number of this
ticket type which are available for any configured time
slots. If no time slots have been entered, this would be
the total capacity for each individual event day (00:00-
23:59).
Total Ticket Type Capacity
This is where you COULD enter a total capacity for the
ticket type, meaning no more than the value entered here
will be able to be sold of that ticket type across the entire
event duration. If no value is entered, the number of this
ticket type available for sale would be unlimited, within
the event capacities if specified.
Create Ticket Type > Validity
Field Description
Duration
Here you can set the validity duration for the ticket type.
This specifies the duration for which the ticket will be
valid (scannable). You have an option to set Years, Days,
Hours and Minutes.
For example, if set to 1 day, the ticket will only be valid
for a single day. Either the date selected during the
booking (if the ticket type is set as 'Bookable'), or for the
single day from which is it first scanned.
If using your ticket type for seasonal or annual
memberships, you could set a longer duration here, which
could enable the ticket to be scannable multiple times
within the set duration (see allowances below for more
detail).
Scan on Terminal Sale
If selected, the ticket will be validated (scanned)
automatically once it has been sold via a TouchPoint
terminal and will count towards the ticket scan allowances
(detailed below).
If selling tickets on the door for an event at the point/time
of entry, you may want to select this to make the entry
process quicker. However, if selling tickets for a future
event, you will want to leave this unselected.
Daily Allowance
Any value entered here will control the number of times
each individual ticket sold is able to be validated
(scanned) per day. If no value is entered, this will allow for
unlimited scans.
Total Allowance
Any value entered here will control the total number of
times each individual ticket sold is able to be validated
(scanned) throughout the event or ticket type duration
specified. If no value is entered, this will allow for
unlimited scans.
Create Ticket Type > Requested Data
If no requested data is required, simply select 'Next'.
If required, select the 'Create Data Field' button and complete the following options:
Field Description
Display Name
This is the customer-facing field name for your requested
data that will display on ByTable / TouchTakeaway /
SelfService.
Examples: First name / Dietary Requirements / Menu
selection / Date of birth
Data Type
Select the dropdown and this option enables you to
determine what data type you wish the requested data to
be.
You have the choice of: Text / Number / Date / Dropdown /
Image
If 'Dropdown' is selected, additional settings will be
presented to add individual dropdown options. Each
should be typed in before selecting the 'Add' button. This
could be used, for example, to provide set menu items
which need to be selected by the customer upon booking.
If 'Image' is selected, additional settings will be presented
which enable the setting of your required height and
width dimensions (px) of images. Customers will be asked
to upload an image during the purchase journey and will
be prompted to crop it to these dimensions once
uploaded.
Report Reference
Here you can select a reference for the requested data.
This is utilised both for display on the ticket download and
when creating and running Ticketing reports.
You have the choice of: None / First Name / Last Name /
Age / Date of Birth / Sex / Photo
When requesting an image that's required to
display at the point of entry (eg, an identifying
portrait), the Report Reference MUST be set to
'Photo'.
Required Field
If selected, the requested data field will be required,
meaning customers cannot complete their ticket purchase
until the requested data has been entered.
Values can be entered for both Daily and Total Allowance, giving the ability, for example, to
enable only one scan per day, every day across an event running for 7 days.
Request On
Toggle on/off the settings for the requested data field to
be requested on both a TouchPoint terminal and/or
ByTable / TouchTakeaway / SelfService webshop.
Show on Ticket If selected, the requested data entered by the customer
will be displayed on the ticket download, once purchased.
Multiple requested data fields can be set, with varying data types. Simply repeat the above steps,
as required.
Create Ticket Type > Upgrade Paths
If required, select the 'Create Upgrade Path' button and complete the following options:
Field Description
Event Select the relevant event, within which you wish to enable
ticket upgrade(s) from the dropdown menu.
Ticket Type
From the dropdown menu, select the ticket to which you
wish the ticket type which is currently being created, to
be upgradable to.
For example, if you want to enable a VIP upgrade on a
standard ticket, you will need to edit the upgrade path on
the standard ticket, then select the VIP ticket from this
dropdown.
Upgrade Path Type
Use the dropdown here to select the type of upgrade you
wish to configure. You have the choice of:
Difference Upgrade: The customer will be required to
pay the difference in cost between their current ticket and
the upgrade ticket types. If, for any reason, the upgrade
ticket is cheaper than the current, the difference will be
set to zero.
Fixed Charge Upgrade: The customer will be required
to pay a specified fix charge to complete the upgrade.
Enter in format 00.00, with no symbols.
Full Charge Upgrade: The customer will be required to
pay the full price of the ticket to which they wish to
upgrade.
No Charge Upgrade: The customer will not be required
to pay any additional charge, enabling a free upgrade.
If you are creating an event or ticket type for the first time, you will need to skip this section,
finalise the event and ticket type creation, then once multiple ticket types have been
created, edit the upgrade paths at a later date.
Renewal
If selected, the upgrade option will only be available for
customers whose ticket has expired (passed the duration
specified previously).
Show Online
If selected, the upgrade option will be visible on ByTable /
TouchTakeaway / SelfService, providing ticket upgrades
has been enabled via tillconfig.net.
Availability Date Range If selected, the upgrade option will only be visible during
the date range specified.
Once the above have been completed, select the 'Create Ticket Type' button and the step-by-step
wizard will revert back to the 'Create Event > Ticket Types' landing page. Here you have the
ability to repeat the above steps to add as many additional ticket types as required.
When a customer purchases multiple tickets within a single transaction, by default this would
produce a series of multiple individual tickets, resulting in multiple PDF files or multiple tickets
within the TouchTakeaway / ByTable account.
Within Ticketing, there is the option to enable 'Ticket Bundles'. This function, once enabled, results
in multiple tickets being created within a single PDF file. The QR code relating to the purchase will
then relate to all tickets within the sale, rather than a single individual ticket.
To enable ticket bundles, follow these steps:
1. Head to tillconfig.net and sign in.
2. Navigate to 'TAKEAWAY' and select 'Tickets' from the list.
3. Here, you will see a tick box to 'Enable bundle tickets'
Ticket types can be created at a later stage, so the 'Create Event' button can be selected
here with just one ticket type in place. The event can then be edited in future to set up
additional ticket types, as required.
Ticket upgrades must be enabled via tillconfig.net. Follow these steps:
1. Head to tillconfig.net and sign in.
2. Navigate to 'TAKEAWAY' and select 'Tickets' from the list.
3. Tick the selection box to 'Enable online ticket upgrades'.
Enabling ticket bundles
Ticket bundles require the Ticketing script 1.5.0 or higher.
Once events and ticket types have been set live and customers have started purchasing them,
they will be stored within TouchOffice Web, easily viewable and editable, as noted below.
To view all tickets, follow these steps:
1. Open touchoffice.net and sign in.
2. Select 'Ticketing' then 'Tickets' in the left-hand sidebar.
Here you will be presented with a full list of all purchased tickets, including quick-look information
for Ticket ID, State, Ticket Type, Event, Customer, Total Scans and two Action options.
Tickets are displayed in order of most recently purchased at the top of page one, to least recently
purchased at the bottom of the last page.
You are presented with the following data columns:
Ticket ID
State (ticket status)
Ticket type
Event
Customer
Total scans
Actions
Under actions you can select 'Ticket' to view and edit the ticket or select 'Sale' to view
the overall sale transaction within which the ticket was purchased.
To search for a specific ticket via the search bar at the top of this page, you'll need the Ticket ID.
If you only have access to the email address used to purchase tickets, you'll need to head to the
'Sales' tab under Ticketing in the sidebar and search for the relevant transaction there.
Viewing & amending tickets
Searching for a ticket
To view a ticket, simply select the 'Ticket' button on the right-hand side of each ticket listing,
under the 'Actions' column.
There are various ways to amend a ticket, noted below. These editing options are available within
the 'Ticket' pop-up, on each individual tab.
Ticket > Details
Within this tab, you have access to the basic details of the ticket, including the unique ticket QR
code, current status, Ticket ID, Ticket Type, Event, Customer, and Selected Date and Timeslot, if
relevant.
Field Description
Change Status
Selecting this button will open a pop-up with a dropdown
menu to change the status of the ticket. You have the
choice of:
Inactive: The ticket is inactive and will not scan or validate.
Active: The ticket is active and will function as expected.
Cancelled: The ticket has been cancelled and will not scan
or validate.
Refunded: The ticket has been refunded and will not scan
or validate.
Pending Payment: The ticket is awaiting payment and will
not scan or validate.
Based on customer activity, these ticket statuses are
updated automatically. But, in certain scenarios, the
status may need to be updated manually here.
Select Customer
Selecting this button will open a pop-up with a dropdown
menu to assign the ticket to a specific customer.
All existing customers will be listed in the dropdown,
alongside their Customer ID number. To make navigating
this list easier, once the dropdown is open, you can
search for a customer by typing their name.
This is particularly helpful if, for example, a customer
has accidentally purchased a ticket via guest checkout
and subsequently wants their ticket adding to their
customer account.
Viewing a ticket
Amending a ticket
Change Date Selecting this button will open a pop-up with a date
selection tool.
By clicking on the currently booked date, a calendar will
open and a new date can be selected. Only the dates
relevant to the event and ticket type will be selectable.
This setting is only visible on relevant events and
ticket types that require a bookable date.
Change Timeslot
Selecting this button will open a pop-up with a dropdown
option to select any of the pre-programmed time slots.
This setting is only visible on relevant events and
ticket types that require a bookable time.
Download PDF
Selecting this button will simply download a digital PDF
copy of the ticket. This can be utilised to email to the
customer or printed, as necessary.
Ticket > Requested Data
All requested data can be found here and edited here, as required.
Ticket > Scans
A full record of all ticket scan history is visible here, with date and time stamps for each scan.
Activity will be listed with the most recent at the top and an overview of total scans both in and
out is listed at the top of the window. Manual scans both in and out can be completed here by
using the 'Scan In' and 'Scan Out' buttons.
Ticket > Upgrades
Any previous ticket upgrades will be listed here, with date and time stamps for each upgrade.
Manual updates can be made by selecting the ticket type from the dropdown list at the bottom of
the window.
If relevant, the pop-up window will ask for a new date and time slot to be selected, as well as
provide a warning if requested data is to be removed / requires adding for the new ticket type
selected to upgrade to.
Manual scans here will override any Daily or Total Scan Allowances entered for the ticket
type.
Manual ticket upgrades completed via TouchOffice Web+ will override any price differences
incurred via a Difference Upgrade, Fixed Charge Upgrade or Full Charge Upgrade.
Ticket > Notes
Notes can be manually added to any ticket here. Notes have no impact on the settings or validity
of a ticket, they simply provide an opportunity for team members to keep record of any customer
interactions, important notes etc. Notes are only visible with TouchOffice Web and will not be
visible within TouchPoint or the Ticket Entry Scanner App when validating the ticket.
Each note will be assigned a 'Note Type' from the dropdown menu:
General / Information / Warning / Important
Every note has a date and time stamp and will be listed with the most recent at the top.
An alternative way to view tickets and events as a whole can be accessed via the Calendar.
To view the calendar, follow these steps:
1. Open touchoffice.net and sign in.
2. Select 'Ticketing' then 'Calendar' in the left-hand sidebar.
Here you will be presented with a month-by-month calendar view with event toggle options down
the left-hand side.
Left-hand sidebar
A full list of event titles will appear on the left-hand side, each with a toggle on/off option to
customise the calendar view as you require. At the bottom of the left-hand panel, a toggle for
'Show events with no tickets' is also available. This will toggle on/off the display of any events for
which no tickets have currently been purchased.
Main calendar view
Within the main calendar view, event titles are displayed on the relevant dates, with a total
number of tickets currently purchased for that event to the right of the titles.
By selecting an event, additional ticket details are available.
Field Description
Tickets Booked Displays the total number of tickets, including all types,
that have been booked for the event on the specified date.
Calendar view
Tickets Available
Displays the total number of tickets that are available for
sale for the event on the specified date. This number is
generated by the capacities set on the event and/or ticket
type.
Ticket States
A full list of the available ticket states is included, with
quantities specified.
(Active / Inactive / Cancelled / Refunded / Pending
[Payment])
Ticket Types A full list of the available ticket types is included, with
quantities specified for each.
The calendar view is a great option for seeing quickly, at a glance, how ticket sales are
progressing for certain dates. For more detailed insight, utilise the Reports section of TouchOffice
Web+.
Within TouchOffice Web, users have the ability to manually create tickets. This is particularly
useful, for example, when a ticket needs to be created free of charge as a complimentary entry.
To manually create a ticket, follow these steps:
To view all tickets, follow these steps:
1. Open touchoffice.net and sign in.
2. Select 'Ticketing' then 'Tickets' in the left-hand sidebar.
3. Select '+ New'.
Within the 'Create Ticket' pop-up window, you will be presented with the following options.
Create Ticket > Ticket Details
Within this tab, you have access to select the basic details of the ticket, including the Event, Ticket
Type, Ticket Status and, if relevant, Date, Timeslot and Requested Data.
Field Description
Event User the dropdown to select the required event.
Ticket Type Use the dropdown to select the required ticket type. All
ticket types relating to the chosen event will be displayed.
Ticket State
Use the dropdown to select the required ticket state. All
status options will be available here, including the ability
to set 'Pending Payment' on a ticket that still requires
payment to be processed.
Select Date If relevant to the ticket type selected, a date will need to
be chosen.
Manually creating tickets
within TouchOffice Web
Please note: Manually created tickets are not possible for events which are utilising a
seating plan.
Creating a ticket
Select Timeslot If relevant to the ticket type and date selected, a timeslot
will need to be chosen.
Requested Data If relevant to the ticket type, any requested data will need
to be entered here.
Once the above has been entered, select the 'Create' button to finalise the creation of the ticket.
This new ticket will then display at the top of the 'Tickets' list within TouchOffice Web+.
From here, the 'Ticket' option under the 'Actions' column can be selected, as normal, to edit
further details relevant to the ticket such as assigning to a customer, downloading the ticket PDF
etc.
Selecting the arrow next to the '+ New' button on the 'Ticket's page will provide the option to
select 'Multiple Tickets'. This pop-up window allows you to create multiple tickets in one group
bundle booking, rather than having to create individual tickets separately.
Create Multiple Tickets > Ticket Details
Within this tab, you have access to select the basic details of the tickets to be created.
Field Description
Event Use the dropdown to select the required event.
Ticket State Use the dropdown to select the required ticket state. In
most cases this will remain as 'Active'.
Email
If required, enter the email address that you wish the
tickets to be sent to once completed.
For example, this could be directly to a customer, or, if
preferred, to a business address to be forwarded on to a
customer. If no email address is entered, the tickets will
be created within TouchOffice Web+ and no email will be
sent.
Create Multiple Tickets > Ticket Types
Field Description
Ticket Type Use the dropdown to select the required ticket type.
Creating multiple tickets
Please note: There is no option to add requested data during the multiple ticket creation
process. This must be added by editing the ticket(s) once created.
Quantity Enter the total quantity of tickets you wish to create
within this bundle.
Select Date If relevant to the ticket type selected, a date will need to
be chosen.
Select Timeslot If relevant to the ticket type, a timeslot will need to be
chosen.
Once the above has been entered, select the 'Add' button.
When all tickets have been added, select 'Create' to finalise the creation of all the tickets.
These new tickets will then display at the top of the 'Tickets' list within TouchOffice Web+.
From here, the 'Ticket' option under the 'Actions' column cam be selected, as normal, to edit
further details relevant to the ticket such as entering requested data, assigning a customer,
downloading the ticket PDF etc.
Once installed, configure the script using the options below.
Option Name Values Description
Script Enabled Yes / No Must be set to Yes for the script to
operate.
Company Alias Text
Enter the alias of the TouchOffice
Web+ account to be used. Ensure
this is entered exactly as it appears
on your account. This field is case
sensitive.
Instant Scan Ticket Yes / No
If Yes, tickets are scanned and
validated instantly upon sale. If No,
separate scan operation is required.
Ticket Scan Direction In / Out When the option above is set to yes,
this determines the scan direction.
Override Scan Validation Yes / No
If Yes, this allows clerks to override
validation errors for tickets under
specific failure conditions (see below).
Ticketing on TouchPoint
Prerequisites
Ticketing requires TouchPoint 2023 v78.12 or newer and an active TouchOffice Web+
subscription.
To enable Ticketing functionality in TouchPoint, follow these steps:
1. Download and install the required Etal scripts from Ticketing Etal Scripts
2. Decompress the file.
3. Move the contents to C:\ICRTouch\Etal\Ticketing (this folder must be called ‘Ticketing’).
4. You should also ensure your Etal libraries are up to date, this can be done from program 5
- updates using the EtalLib update code.
It is worth noting that the terminology 'ticket' throughout this page of the manual refers
specifically to a physical ticket printed via a receipt printer, unless stated otherwise.
Configuration Options
Manager Only Override Yes / No
If Yes, this restricts the override scan
validation functionality to managerlevel
clerks only.
Show Ticket Info Window Yes / No
If Yes, this displays a
summary/status window for the
current Ticketing system.
Allow Editing of Requested Info Yes / No If Yes, this allows the clerk to edit
any entered requested data.
Manager Only Yes / No
If Yes, this restricts the requested
data editing functionality to managerlevel
clerks only.
Show Ticket Email Yes / No If Yes, this enables visibility of the
associated ticket email.
Printable Ticket Title Text Configure a ticket title that will be
printed on all tickets.
Print Graphic Logo on Tickets Yes / No If Yes, this prints the configured
graphic logo on tickets.
Don't Print Tickets on Sale Yes / No
If Yes, this prevents tickets from
being printed automatically at the
point of sale.
Don't Print Tickets With Scan on Sale Yes / No
If Instant Scan Ticket is enabled
and this option is set to Yes, this
prevents printing the ticket during
the sale. This is in place to help
reduce wastage.
Ignore Print Receipt Setting Yes / No
If Yes, this setting will override
TouchPoint’s receipt print preference,
forcing ticket-related actions
regardless of pre-existing receipt
settings.
Check Capacity Before Finalise Yes / No If Yes, capacity is checked prior to
the sale being finalised.
Check Capacity, Whole Month Yes / No
If Yes, this option will display a
month calendar view on-screen,
allowing quick identification of the
capacity available on each day the
ticket can be purchased.
Show Capacity Limit Integer
Used in conjunction with the above
two settings, this will show the
amount of tickets remaining, when
that number is below the number
entered here.
Ask for Seat Reservation Extension Yes / No
If Yes, when purchasing a ticket
(which is by default reserved for 15
minutes) if the checkout process
takes longer, a pop-up prompt will
appear on-screen providing the
ability to extend the reservation time.
Photo Interaction Yes / No
If Yes, and a photo is part of the
requested data for the ticket type
being sold, this allows the clerk to
take a photo. (Requires a webcam
device linked to the till)
Photo Flash Yes / No
If Yes, this enables flash when using
webcam devices. On devices without
flash, the screen specified below in
'Photo Screen' option will brighten.
Photo Screen 1 / 2
Relating to the 'Photo Flash' setting
above,
1 = Clerk-facing screen
2 = Rear customer display screen
Log Info Yes / No
If Yes, this enables basic logging.
For example: The log below shows
the purchase of a ticket linked to PLU
1 selecting the date 15/08/2025.
Each entry also includes the exact
date and time the operation occurred.
Pressed ticket PLU : 1
Ticket UI asking for date.
Checking capacity for whole month
Capacity Check starting
[REQUEST] Checking Capacity
[RESPONSE] Capacity Check Done
Capacity Check Succeeded
Checked capacity for whole month
Displaying capacity on calendar
Capacity Check starting
[REQUEST] Checking Capacity
[RESPONSE] Capacity Check Done
Capacity Check Succeeded
Next pressed, Date selected,
continuing
Ticket date selected :
{"year":2025,"month":8,"day":15}
Added Ticket into reg
Finalise Started, 1 tickets -------------
Capacity Check starting
[REQUEST] Checking Capacity of
tickets in sale
[RESPONSE] Capacity Check Done
Capacity Check Succeeded
Sending Ticket Sale to API
Finalised & Successfully Sent (SALE)
-------------
Log Debug Yes / No
If Yes, this enables enhanced
logging, which contains debug
information.
For example: This log shows the
same operation shown in the basic
logging with additional information.
Dates Available:
[{"year":2025,"month":8,"day":14},{"
year":2025,"month":8,"day":15},{"ye
ar":2025,"month":8,"day":16},{"year"
:2025,"month":8,"day":17},{"year":2
025,"month":8,"day":18},{"year":202
5,"month":8,"day":19},{"year":2025,"
month":8,"day":20},{"year":2025,"m
onth":8,"day":21},{"year":2025,"mon
th":8,"day":22},{"year":2025,"month"
:8,"day":23},{"year":2025,"month":8,
"day":24},{"year":2025,"month":8,"d
ay":25},{"year":2025,"month":8,"day
":26},{"year":2025,"month":8,"day":2
7},{"year":2025,"month":8,"day":28}
,{"year":2025,"month":8,"day":29},{"
year":2025,"month":8,"day":30},{"ye
ar":2025,"month":8,"day":31}]
DEBUG - SYS(8201, 1.5.25, 1, 1) -
Added ticket into datastore :
{"event_id":1,"plu_item_id":1,"ticket_t
ype_id":1,"message_item_ids":[2],"sel
ected_date":{"year":2025,"month":8,"
day":15},"selected_ticket_type_time_i
d":""}
Log Error Yes / No
If Yes, this enables logging of any
errors that occur during operation.
For example: The below log shows a
HTTP error when checking the ticket
capacity at finalise. This was due to
an issue with the internet connection.
Capacity Check HTTP request Failed
Capacity Check Failed.
Capacity Check HTTP request Failed
Capacity Check Failed.
Version Info
The following ticket scan errors may trigger override availability when enabled:
Ticket date not within valid event range
Override Conditions
Ticket type time invalid
Incorrect site location
Not scannable today
Invalid timeslot
All scans used (either in total or for today)
Time-lapse between initial scan and present exceeds threshold
Tickets can be sold via TouchPoint by simply selling the PLU that has been allocated to the ticket
type. The sales journey from that point will be determined by the script configuration options
selected above and the type of ticket sold.
The script will also create an 'Open Ticketing' status key. When pressed, this will display all sold
tickets allowing for basic administration on the TouchPoint terminal such as re-print, scan in/out
status, search, etc.
The printed ticket includes a QR code to control entry into an event. Occasionally, there is an
outstanding action required to authorise access - this may be attributable to the following:
ticket cancelled
payment pending
ticket refunded
inactive
not within a valid event date range
invalid ticket type time range
incorrect site location
not scannable today
Selling tickets via TouchPoint
When a new ticket is created, or settings of an existing ticket are edited, you should press
the 'Get Ticketing updates' key. This is a status key that will automatically be created by the
ticketing script.
Scanning in and out of an event
invalid timeslot
all scans used
all scans used today
the time-lapse between now and the first scan has exceeded the threshold
A record of event entry and exit is available in TouchOffice Web and TouchPoint. Staff can make a
note of actions taken to address obstacles. The system includes an override by an authorised staff
member or manager.
Alongside setting up events and ticket types via the Ticketing wizard, there is a requirement to
also program a PLU for each individual ticket type. Here we'll look at the basic PLU programming
needed.
To get started, follow these steps:
1. Open touchoffice.net and sign in.
2. Select 'Products' in the left-hand sidebar.
3. Choose an available, currently unused PLU.
4. When editing the PLU, complete the following settings:
Firstly, give the PLU a relevant name, changing the text 'PLU XX' to your ticket type name.
PLU > Details
Field Description
Group Select the relevant group from the dropdown list.
Department Select the relevant department from the dropdown list.
Tax Rate Select the relevant tax rate from the dropdown list.
Alternative Text
If no alternative text is entered, the PLU name will be
utilised instead. Once alternative text has been entered,
this will be utilised as the main ticket name during the
purchasing journey.
Utilising alternative text is useful as the character limit is
higher than the PLU name.
1st @ Price This is the total ticket price for this specific ticket type.
To find out more about programming PLUs, groups and departments, see the TouchOffice Web
manual.
PLU > Webshop Options
PLU programming
It’s important to note that you need to leave the ‘Show on webshop’ box here UNTICKED.
We’ve already ticked the relevant box when creating the ticket type, so we need to leave
this one blank.
This is where you'll want to programme the web category that your ticket type will sit within on
ByTable / TouchTakeaway / SelfService.
1. Select the 'Edit' button to the right of the 'No Web Category' dropdown.
2. Type in the title of the new required web category.
3. Select 'Add' then 'OK'.
4. Select 'Edit' again and use the pencil icon to the right of your newly created category.
5. Here you can edit the name, if required, and upload a web category image. We
recommend following the below guidelines and dimensions for your web category
images, bearing in mind that these will be responsive across various device sizes.
6. Once you have chosen your file, ensure you select the upload icon then select 'Save'.
7. Close the 'Edit web categories' window and ensure you 'Save' the PLU settings.
8. Once complete, you can navigate back to edit the ticket type and select the relevant web
category and PLU for each ticket type, as required.
The ICRTouch Entry Ticket Scanner App is a companion application to the Ticketing solution,
programmed via TouchOffice Web. The app, available from both the Apple App Store and Google
Play Store, is compatible on a range of devices and enables the user to quickly and easily validate
(scan in/out) tickets, via the scanning of the ticket QR code or searching of the ticket ID number.
Basic features include:
Easily scan and validate tickets in or out.
Scan QR codes via your mobile device’s camera.
Access tickets via the built-in search function.
View ticket validity details in seconds.
Track customer verification details (eg. full name & photo ID).
Operate the app in light or dark mode.
The app has been designed primarily to assist event venues and attraction venues, but is relevant
to any venue that would like the ability to validate tickets, from a portable device, 'on-the-go',
ideal for entrances to venues and events where it is not practical to have a static till terminal.
For example, an attraction that has an on-site theatre venue, or separately ticketed event, may
want to utilise the Entry Ticket Scanner App to validate customers into the on-site venue, rather
than doing so at the main entrance. Essentially, it enables tickets to be scanned at any entrance,
giving flexibility away from the main TouchPoint terminals.
The Ticket Entry Scanner App can be downloaded from either the Apple App Store or Google Play
Store.
Once downloaded, open the app and follow these steps:
Entry Ticket Scanner App
What is it?
When/where would it be used?
How to download and setup the app
1. You will be prompted to enter a terminal access key (TAK).
This TAK can be found within tillconfig.net, under 'Other Settings' > 'Terminal Access Key'
2. Enter a device name. This can be any name that is relevant and recognisable to your
customer. For example, 'Ticket Scanner #1' or 'John's iPhone' etc.
3. Once the above is entered, select the 'Enroll Device' button.
4. The device will then need authorising. Do this be heading to tillconfig.net and selecting
'OFFICEWEBPLUS'.
5. Select 'API Access Controls' from the list and scroll to the bottom of the page. Here, you
can select the following check boxes for each of your devices:
Enabled / Allow Clerk Data / Allow Receipt Data / Allow Customer Data
6. Ensure 'Enabled' is selected then select all additional data options that are relevant,
before hitting 'Save'.
7. Back on the device within the Entry Ticket Scanner app, select 'Check Enrolment' and the
app will resolve, taking you to the home screen. Here, you are presented with the
following menu options:
Home / Scan / Search / Settings
There are a few options within the app. Here we'll run through the basic operations from the home
screen.
Home
Option Description
Scan button
The purple button in the top-left of the home screen will
open the 'Scan' option.
You will be prompted by your device to allow the app
access to the camera. This is required for app function as
the camera acts as the QR code scanner.
To scan a ticket, simply place the camera over the QR
code. There is more detail on the Scan information
screens below.
Basic operation
Find Ticket button
The green button in the top-right of the home screen will
open the 'Search' option.
Here, you'll see a complete list of all tickets with quick
identifiers for their validity, a search function and search
filters.
To search for a ticket, simply scroll the list or use the
search box at the top of the screen. There is more detail
on the search options below.
Scans Today graph
The graph in the centre of the home screen will display
the total number of scans completed today. Utilise the
refresh button in the top-right of the graph to refresh the
scan total at any time.
Scan
The basic function of the scan screen is to scan ticket QR codes quickly and efficiently.
Pressing the lightbulb button in the bottom-right of the screen will turn on the device torch,
enabling scans to be completed in dark environments. It is recommended that the customer
presenting the QR code has the brightness on their screen as high as possible in order to facilitate
quicker scanning.
Upon placing a QR code in range of the scanner screen, a pop-up will appear from the bottom of
the device containing the relevant ticket details. This will include it's validity status, number of
previous scans, event name, ticket type and any requested data. A 'Scan History' button is also
available, where a full list of scans is visible, including the direction of the scan (in/out), the site ID,
date and time.
Depending on the settings enabled (see below), the pop-up wil either have the option for the ticket
to be scanned in, scanned out, both, or automatically scan in/out.
Search
The basic function of the search is for when a customer presents without a QR code, or when a QR
code cannot be scanned for any reason. A full list of tickets will be visible in the list, with clear
identification of the ticket ID, event name, ticket type and validity. Requested data will also be
displayed here.
Selecting a ticket from the list will initiate the same pop-up from the bottom of the device,
containing relevant ticket details and the ability to scan the ticket, if settings allow.
The search bar at the top enables users to search via ticket ID, email address etc.
The 'Filters' option allows users to filter the list by a specific event, 'Tickets for today', or tickets for
a specifically selected date.
Settings
The following settings are available:
Option Description
Dark Mode Toggle light and dark mode on/off.
Alias (required for images)
If requesting images with the report reference of 'photo',
the alias must be entered for these images to be
displayed upon ticket scanning.
Site ID
If entered, the Entry Ticket Scanner app will recognise the
validity of tickets scanned, if site restrictions have been
set within the 'Venues' option of 'Edit Event'.
Clerk ID
If entered, the clerk completing the scan will be recorded
on the ticket within TouchOffice Web (Ticket > Scans),
and within the Ticket Scan Summary report.
Auto Scan Ticket
Toggle on/off the ability for tickets, upon scanning of the
QR code, to be automatically validated (scanned in or out,
depending on the below settings).
Scan Override
Toggle on/off the ability for users to override invalid
tickets. For example, if a ticket is invalid based on the
date, time or location, the app user will be presented with
the option to override this to scan in/out.
Prompt Scan Direction
Toggle on/off the ability to enable the app to prompt users
with the scan direction, meaning upon scanning a ticket
QR code, users will be presented with the option to either
scan in or scan out.
Always Scan In Toggle on/off the option for the app to always scan tickets
in.
Always Scan Out Toggle on/off the option for the app to always scan tickets
out.
Logout Logout of the app.
Here, we will look at the process for setting up and implementing a seating plan for events within
Ticketing. This is most relevant for seated venues such as theatres, cinemas, amphitheatres etc,
however, could be utilised by pop-up venues or smaller venues who wish to offer seat selection as
part of the booking process.
To get started with seating plan creation, follow these steps:
1. Open touchoffice.net and sign in.
2. Select 'Ticketing' then 'Seating Plans' in the left-hand sidebar.
3. Select the 'Create Seating Plan' button and a pop-up will appear.
4. Enter the 'Seating Plan Name' and select 'Create'.
This is an internal name and will not be displayed customer-facing.
5. Use the below notes and explanations to complete the information required to build your
seating plan.
When creating a seating plan, you will first be asked to set an 'Area Width' and 'Area Height'.
These figures determine the size of the workspace you have available within which to create your
plan.
These figures can be adjusted at any time during the build process, but it is recommended to keep
them as accurate as possible to avoid needing to shuffle elements later in the process.
A 'Section' within your seating plan is a block of seats. Building multiple sections will help you
create a plan to mimic the layout of your venue.
Individual ticket types can only be assigned to full seat sections. This means, for example, that if
you require a wheelchair or accessible ticket type to be available in a specific area, this must be
Seating Plan Creator
We recommend that you've spent some time reading through the Ticketing manual prior to
creating a seating plan, to ensure a basic understanding of the software first.
Setting the area size
Creating seating 'Sections'
created as its own section.
1. Select 'Configure Sections'
2. Select 'Create Section' and a pop-up will appear with the following options:
Field Description
Section Name
This name will be customer-facing during the booking
process. This is a good way to distinguish separate
sections. For example, naming a section 'Standing' or 'VIP'
to differentiate from the rest of the seating plan.
Number of Rows
The total number of rows you require within the seating
section.
Rows can be added / removed later in the process, as
required, via the 'Show Row Configuration' settings.
Seats Per Row
The total number of seats you require, per row, within the
seating section. Bear in mind that in the next section, you
are able to 'remove' seats, so if certain rows have a
different number of seats, this can be adjusted without
needing to create separate sections. The removal of seats
in this way can also be utilised to create an aisle.
3. Select 'Add' to move onto the next step. Your seating section will be created within your seating
plan area and the following options available to you.
Field Description
Section Name The section name can be edited here.
Settings
Selecting the cog icon in the top right of the seat plan creator window will open the following
settings:
Show Seat Numbers: on/off
Show Row Letters: on/off
Show Grid: on/off
Gride Size: slider
Adjusting these settings to your preference may help with the accuracy of creating your
seating plan.
Zooming into your seating plan area, either using the +/- icons in the bottom-right of the
screen, or by zooming with your mouse, will reveal your individual seats. This makes
adjusting the following settings much easier.
Curve Section
Toggle on/off a curve to the seating section. This is
required for venues that have curved seating in place, like
stadiums or amphitheatres.
Curve Degrees
If 'Curve Section' is toggled 'on', this setting enables a
slider to manually adjust the angle of the curved seat
section.
Seat Size Using the slider, adjust the standard seat size to fit your
seating plan area.
Seat Spacing Using the slider, adjust the spacing between seats.
Row Spacing Using the slider, adjust the spacing between rows.
Configure Seat Availability
(Toggle Seat Availability)
Select the 'Toggle Seat Availability' button and a pop-up
will appear. By clicking on individual seats, their
availability status will toggle from 'Bookable' to 'Disabled'.
Utilise this function to remove seats from specific rows
and create aisles.
Once all required seats have been disabled, select 'Close'.
These adjustments can be made at any stage during the
creation process.
Configure Seat Availability
(Show Row Configuration)
Select the 'Show Row Configuration' button and a pop-up
window will appear. Here, the following options are
available for each row:
Row Letter: Use this field to enter each individual row's
lettering system. Usually A-Z.
Seat Count: Use the increase/decrease arrows, or enter
a numeric value, to adjust the total number of seats
available within any row.
Seat Start Number: Use this field to enter the starting
seat number for each row. Usually 1.
Count Inactive Seats: Use this check box to turn on/off
the counting of previously 'Deactivated' seats within the
seat number counting system. (For example, this will
enable any deactivated seats used to create an aisle to
not be counted as an available seat number).
Delete: To delete a row, simply select the red bin icon.
This will instantly delete the row.
Add Row Select this button to quickly add a row to the back of your
created seating section.
4. Once the above settings have been adjusted as required, select the 'Hide Row Configuration'
button to close the pop-up window.
As you're working through the creation of seating sections, row adjustments etc, each
section with unsaved changes will be noted with a red circle in the top-left corner of the
Moving seating sections
Once created, seating sections can be moved around the seating plan area. Simply click and drag
a section to move it.
To rotate a section, select the white circle to the right-hand side of the section, click and drag.
To add landmarks to your seating plan:
1. Navigate via the 'Back' buttons to the 'Seating Plan' main options.
2. Select the 'Add Landmark' button and a pop-up will appear.
Here, you have the ability to add a selection of icons with or without accompanying text,
to place on your seating plan. These icons can be utilised as you require, or the 'None'
icon can be selected to simply add a text block. This is helpful, for example, when
wanting to identify a 'STAGE' on your plan.
3. Simply select the icon required, enter any accompanying optional text, and select the
'Add' button.
4. The landmark icon will appear on your seating plan and you are able to click and drag to
place, and utilise white circles to adjust the sizing or rotation.
5. Once positioned correctly, select 'Save'.
Adjusting & deleting landmarks
To re-adjust any landmarks, simply double-click on the icon/text to re-open the adjustment
window. Be sure to select 'Save' after every adjustment.
To delete a landmark, double-click it and select the 'Delete Landmark' button.
Once your seating plan has been created as required, and saved, you'll need to assign it to the
event for which it has been created. This can be done easily by editing the event within the
'Ticketing > Events' section.
Under the 'Edit Event > Details' page of the pop-up, ensure the 'Use Seating Plan' box is checked
and select the relevant seating plan from the drop-down.
For more information about event configuration, see the earlier section of this manual.
section. Ensure that each individual section is selected and press the green 'Save' button to
ensure all changes and updates are saved throughout the process.
Adding landmarks
Assigning seating plans to your event
Once your seating plan has been created and assigned to the relevant event, individual ticket
types within that event can then be assigned to each of your seating 'Sections'. To do this, follow
the below steps within TouchOffice Web+:
1. Select 'Ticketing' then 'Events' in the left-hand sidebar.
2. 'Edit' the event in question and ensure that the seating plan has been allocated via the
'Event > Details' tab.
3. Skip forward to the 'Event > Ticket Types' tab and you will see a new button 'Assign
ticket types to seats' has appeared.
4. Select this button and a new pop-up will appear, displaying the seating plan created.
5. Click each individual seating 'Section' and use the drop-down to 'Add' ticket types to each.
As previously mentioned, ticket types can only be added to an entire seating 'Section', so if there
are VIP or Accessible seats available with individual ticket types, these will need to be created as
an individual section.
Multiple ticket types can be assigned to each seating 'Section'. For example, both Adult and Child
tickets can be assigned to the main seating 'Section', meaning both options will be available to
purchase when a customer selects a seat within that 'Section'.
When all configuration has been completed within the Ticketing sections of TouchOffice Web, and
the event has been set to correctly 'Show on Webshop' (see event configuration earlier in this
manual), the event, seating plan, and relevant ticket types will all be displayed within the ByTable
/ TouchTakeaway webshop and/or app.
At this stage, we strongly recommend completing test purchases to ensure the purchasing journey
is performing as expected.
Assigning ticket types
Ensuring the seating plan is live
Setting Up and Using an Input Device (Bump Bar)
Setting Up and
Using an Input
Device (Bump Bar)
TouchKitchen can make use of any input device that generates a keyboard or gamepad
style event, and allows you to configure any button or key on your device to any event.
To configure or test your input device, go to Settings > Input Device Setup. On the left hand side,
you will see a column of 'actions', named after the commonly described buttons you would find on
a typical KV 'bump bar'. On the right, you will see the assigned key input.
Testing In put
You can test the actions by simply pressing the keys on your input device. At the bottom of the
screen, it will tell you the key pressed, and the action assigned to it. If no action is assigned, it will
say 'NOT ASSIGNED'.
Configuring Input
To assign a new input to an action, click either the action button, or the currently designated input
button for that action, and the key button will display '???' while the prompt at the top of the
screen will tell you, for example: Press Key To Assign To Action 'Home'.
Using An Input Device
Each action within TouchKitchen depends on context; the action performed depends what you're
doing at the time. The actions are described below:
If no ticket is currently selected, and you are on the order or finished tickets screen, the first
numbered ticket will be selected. Navigating with the UP/DOWN/LEFT/RIGHT keys will navigate
through the tickets on the screen.
If a ticket is selected, the first item in that ticket is selected. Navigating with the UP/DOWN keys
will navigate through the items within the ticket.
Use to mark the currently highlighted item row in an order ticket with the currently selected
highlight colour. Usually used to denote that item as completed.
Setting Up and Using an
Input Device (Bump Bar)
'HOME'
'HOLD'
Deselects any currently selected ticket. 'MOVE LEFT', 'MOVE RIGHT'
If a ticket is selected, move left/right will navigate through the tickets in the currently displayed
grid (Orders or Finished Items) by their ticket numbers… that is to say, if you have reordered
tickets within the grid, it may not select the next ticket to the left or right of the previously
highlighted ticket.
If a ticket is not selected, the first or last numbered order ticket will be selected, and then
subsequent presses will navigate left/right as described above.
Note that if you are on the Orders screen, navigating this way will also select numbered items that
are pegged.
Will move up or down through the items on the currently selected ticket. Selections will 'loop' from
first to last or last to first. e.g., pressing 'DOWN' on the last item on the ticket will scroll you back
up to the first item on the ticket.
May be called 'Park' on your bump bar.
If you are on the order screen and have a ticket selected in the main grid, this will 'peg' the ticket
into the 'Pegged Orders' board in the lower half of the screen. If you select a ticket that is already
in the 'Pegged Orders' board, pressing 'Peg' will unpeg the order back to the order grid.
If you are on the Orders screen, pressing RECALL will switch you to the 'Finished Orders' screen.
If you are on the 'Finished Orders' screen with NO order selected, pressing RECALL will return you
to the orders screen.
If you are on the 'Finished Orders' screen and you have an order selected, pressing RECALL will
recall the order to the main orders screen – with an additional visible timestamp in the header to
denote the ticket as a recalled order.
May be called 'FINISH' on your bump bar.
If you are on the order screen with an order selected, pressing FINISH will finalise the order and
move it to the 'Finished Orders' screen.
'END'
'MOVE UP', 'MOVE DOWN'
'PEG'
'RECALL'
'SERVE'
It should not be necessary to redefine the numeric keys from their defaults, since the vast majority
of input devices will simply output the 'keyboard numberpad' numeric value in any configuration.
However, just in case you are using an input device that doesn't, the option to define them as with
any other key is provided.
The number keys are used to select numbered tickets. The '0' (zero) key represents 10.
To select a ticket with a number above 9, press '0' (zero), then another the second number. e.g.,
to select ticket 19, press '0','9'
Further presses of '0' (zero) within 2 seconds will add another '10'… e.g., to select ticket 39, press
'0','0','0',9. This makes it very easy to scroll through order tickets 10 at a time, as well as selecting
specific double digit numbers.
NUMBER KEYS
Version 1.0
Preface
Overview
Licensing and installation
TouchKitchen layout
TouchKitchen settings
Touchkitchen settings - appearance
TouchKitchen settings - operations
TouchKitchen settings - devices
TouchKitchen settings - extras
TouchKitchen
Version 2 and
CollectionPoint
Reference Manual
This document is aimed at Partners and is a reference manual to ICRTouch’s TouchKitchen and
CollectionPoint solution.
Please refer to our TouchKitchen and CollectionPoint Hands-on Exercises Manual for stepby-
step instructions to customise TouchKitchen and CollectionPoint for 'The Sushi Bar' and 'Herb
Cafe'. The exercises are quick and easy to follow and intended to give you an understanding of
how the software can be configured for different scenarios.
Images and a video are included.
The TouchKitchen system minimum ICRTouch software configuration:-
TouchKitchen
CollectionPoint (optional)
ByTable / TouchTakeaway / Webshop
TouchPoint
TouchOffice Web
An ETAL script is required to integrate your TouchPoint till/s. Refer to the ETAL script manual for
additional information.
PLU / Product means a chargeable item.
1. TouchPoint, TouchTakeaway / ByTable / Webshop system and TouchOffice Web are set up
and configured.
2. You are familiar with and have login access to these applications.
Preface
Document description
Reference manual and hand-on exercises
ICRTouch minimum software configuration
Installation
Definitions
Assumptions
URL’S
TouchOffice
TouchKitchen runs in 2 modes - Demo Mode and Licensed Mode. Demo mode has reduced
functionality but will allow you to test all of the TouchKitchen features.
Licensing
TouchKitchen is an easy-to-use ticket management system that organises food orders on single or
multiple kitchen displays. Notify the chef of incoming orders on large displays, tablets, and handheld
devices. Receive orders directly from TouchPoint, PocketTouch, TouchTakeaway, online
webshop, Self-Service kiosks, or ByTable. Colour code Order Tickets to represent the current
status, assign to a specialist chef, and flag items that need attention from the service staff. Notify
staff and customers of the meal status using ICRTouch CollectionPoint.
The TouchKitchen software help chefs manage meal preparation. CollectionPoint is a really handy
notification tool for management, waiting staff and customers. The two products work hand in
hand to ensure that kitchens and hospitality businesses run efficiently.
Customise both products to create a unique look that adheres to your brand identity.
Edit the CollectionPoint css, html and javascript code:
Add a background logo, image, video or live webcam feed of the kitchen
Customise the preparing, ready and recall notifications
Show the status as an icon or text
Display the time the order was placed
Customise the popup alert
Control the colour, font and size of text
Change the spacing between elements, and how elements are positioned and laid out
Refer to the TouchKitchen and CollectionPoint hands on exercises guide for step by step
instructions on creating a look for a sushi bar and a herb cafe.
Diagram 1:- TouchKitchen illustration
Overview
TouchKitchen and CollectionPoint
Diagram 2:- CollectionPoint illustration
Run unlimited TouchKitchen instances on your network - ideal for large restaurants with separate
kitchens.
Diagram 3:- Multiple TouchKitchen example illustration
Multiple TouchKitchen Instances
TouchKitchen runs in 2 modes:
Demo Mode
Licensed Mode.
Demo mode has reduced functionality but will allow you to test all of the TouchKitchen features.
Download the latest software from the ICRTouch forum, Software Downloads section. If installing
on a Windows device download the *.ZIP file.
If installing on a mobile device such as a tablet or phone download the TouchKitchen.apk file.
1. Open the Downloads folder, right click on the ZIP file and extract the file to C:\ ICRTouch
folder.
2. Open the TouchKitchen.Win32 folder.
3. Drag the TouchKitchen.exe file to the taskbar.
4. Click on the TouchKitchen icon on the taskbar.
5. Select the Setup button.
6. Select License Device if you are ready to purchase the license. Select License Device
once more. Select Yes when prompted “Would you like to activate this software?”.
7. Contact the ICRTouch support team and provide them with the device code. Select OK
and enter the activation code.
8. Close TouchKitchen and restart it to activate the license.
Licensing and installation
Demo & licensed mode
Download and install TouchKitchen
Windows device
Mobile device
1. You can install TouchKitchen.apk on your Android smartphone or tablet directly from your
browser.
2. Open your browser on your device, tap the APK file and it will begin downloading.
3. Once downloaded, open Downloads, tap on the file and tap Yes when prompted. The app
will begin installing on your device.
1. Download the latest software from the ICRTouch forum, Software Downloads section.
2. Double click on CollectionPoint.exe.
3. Leave the default destination folder as c:\ICRTouch\CollectionPoint. Click on Extract.
4. Change directory to c:\ICRTouch\CollectionPoint.
5. Drag CollectionPoint.exe to the taskbar.
1. Click on the TouchKitchen and CollectionPoint icons on the taskbar.
2. TouchKitchen will open in full screen mode. Press F11 so that the taskbar is visible.
3. Open a browser window (Firefox, Chrome, Internet Explorer etc.).
4. Enter localhost:8080 and press return.
1. Select the Setup button.
2. Select CollectionPoint under Devices.
3. Ensure CollectionPoint is enabled.
1. Go back to TouchKitchen.
2. Select the Demo Tickets button under Extras.
3. Choose the number of tickets to create and the frequency in seconds.
4. Select the Demo Tickets button.
5. Go back to CollectionPoint to view the orders that were created in TouchKitchen.
Download and install CollectionPoint
Start TouchKitchen and CollectionPoint
Enable CollectionPoint in TouchKitchen
Create demo tickets in TouchKitchen
The Orders Screen is displayed, by default, when the application is launched.
Diagram 4:- TouchKitchen illustration
TouchKitchen layout
Order screen
The Orders Toolbar contains the Edit, Finish, Peg, Archived, Ticket Status, Refresh and Setup
Buttons. The toolbar can be docked at the top, bottom, left or right hand side of the screen.
Diagram 5:- Orders screen toolbar illustration
Orders Screen Toolbar Location
Order grid
The Order Grid consists of columns (1 to 10) and rows (1 to 20) and is scrollable downwards,
upwards, left and right.
The Order Grid dynamically increases to accommodate the Order Tickets. Tickets can be placed in
the order that they are received, snapped to the grid, reshuffled and stacked on top of each other.
A custom logo and background image can be displayed.
DIagram 6:- Orders tickets placed horizontally in the order received illustration
Diagram 7:- Orders tickets stacked on top of each other illustration
Order Tickets contain extensive information to make it easy for the Chef to prioritise meal
preparation based on meal type, allergens, the time that has lapsed since the order was placed
and special instructions provided by the customer or service staff. The content, look and feel of the
Order Ticket can be customised to suit the restaurant’s requirements.
Diagram 8:- Orders ticket illustration
Order Tickets
Each Order Ticket contains:-
1. HEADER - the Header contains the Order Ticket Number, the Timer and TItle. The Header
colour can be changed and the font size increased or decreased.
2. ORDER TICKET NUMBER - the Order Ticket Number is automatically assigned in the
order received. The field can be hidden.
3. TIMER - the Timer is configured to count up or down beginning when the order is
received. The font size can be increased or decreased.
4. ORDER TICKET TITLE - the Order Ticket Title can be customised to display either the till
flag, order number, check number, table number, consecutive number, check text,
location text or Webshop information. The font size can be increased or decreased.
5. ORDER TICKET ITEM - Order Ticket Items are summarised by Product / PLU. Items can
be coloured by Category, Group or Department within TouchKitchen.
Order Ticket Items can be highlighted across multiple Order Tickets in a choice of 4
colours. The colours can be used to represent the current status - in progress, completed,
requiring attention etc.
6. SPECIAL INSTRUCTIONS - meal preparation instructions and allergens are relayed to
the chef via instructions provided by the service staff or the customer online. The
customer may request their steak to be medium rare. They may also request nuts to be
left off the desert.
7. PAYMENT STATUS - the payment status is either cash on delivery, unpaid or paid. This
field can be suppressed.
8. CLERKS DETAILS - the employee who processed the sale.
9. CUSTOMER INFORMATION - Order Tickets can be flipped to reveal the customer name,
address, phone number and multiple notes.
This functionality is for orders coming from TouchPoint only.
Diagram 9:- Orders ticket flipped illustration
Order ticket timers, traffic light colour coding and sound warnings
Colour coded Order Ticket Timers visually warn the chef when a meal is overdue. Set the time, in
seconds, to change the Order Ticket state from green to amber and then to red. Set thresholds for
Order Tickets that have been set aside pending feedback from service staff - this feature is useful
to pace the time between preparing starters, main courses and deserts.
1. TIMER TRAFFIC LIGHT - all enabled timers will display a traffic light system. If an order
ticket is nearing overdue state, the colour of the timer will be changed to amber. If red,
the order is overdue.
2. ORDER TICKET TRAFFIC LIGHT - if enabled the Order Ticket will change colour based
on the due state. This setting will colour tickets green, amber and red.
3. NEW ORDER AND OVERDUE ORDER SOUNDS - customise sounds for new orders and
for overdue orders. Increase or decrease the volume and prevent audio overlay by
capping sounds when multiple new orders are received simultaneously.
Diagram 10:- Colour coded order ticket illustration
FONT SIZE / TEXT - customise the order ticket header, timer, footer, order item text size and
automatically resize the order items to fit on a line.
Display online order information and online order notes.
Diagram 11:- Orders screen toolbar illustration
The Edit button is used to highlight individual items on Tickets in a choice of 4 colours - red, blue,
green and orange. The colours can be used to represent the current status of a meal and to flag
items that need attention before they can be prepared.
1. Double tap the Edit button to reveal the Colour Picker.
2. Select one of the 4 colours and then touch Order Ticket Items across multiple Order
Tickets. This assists the Chef to visually indicate the status of like meals across Order
Tickets.
3. Select another colour to select other Order Ticket Items.
4. To remove the colour select the Order Ticket Item once more.
5. Deactivate the Colour Picker by double tapping the Edit button once more.
Orders screen toolbar buttons
Edit button
Finish button
Select an Order ticket and then tap the Finish Button to complete the order. Finished Order Tickets
are moved to the Archived Orders screen.
Diagram 12:- Archived orders screen toolbar illustration
The Peg button moves selected Tickets to the Pegged Orders area.The Pegged Orders area
contains Order Tickets that have been set aside pending further instruction from the service staff.
Pegging may also be referred to as Parking.
1. Select the Order Ticket and then tap the Peg Button to peg the Order Ticket.
2. Select the Order Ticket in the Pegged Orders area once more to return it to the Order
Grid.
3. On an Input Device: navigate to the Order Ticket and press the assigned PEG/PARK
button on your Input Device.
4. Navigate to a Pegged Order Ticket by inputting its Order Ticket Number, or press the
arrow keys to navigate between the Pegged Order Tickets.
5. Press the PEG button on the Input Device to UNPEG the order.
Diagram 13:- Pegged orders area illustration
Peg button
The Archived button invokes the Archived Orders screen to provide you with a view of completed
Order Tickets.
Diagram 14:- Archived orders area illustration
Archived button
The Order Summary Button displays live and pegged orders sorted by identical orders
(ingredients, cooking instructions etc).
1. Select the button to invoke the Order Summary screen.
2. Select the scroll button to navigate downwards and upwards.
3. Select the Return button to return to the Order Grid.
Diagram 15:- Order summary illustration
Order summary button
Sorts Order Tickets on the Orders Grid and the Archived Orders screen by Ticket Number.
If you have moved, stacked or otherwise sorted Order Tickets manually, pressing Refresh will undo
these changes.
Accesses all the TouchKitchen configuration options.
Opens the Magnify Panel to provide a consolidated order summary for a selected Order Ticket.
1. ORDER DETAILS SELECTED TICKET BUTTON - Displays the order list for the selected
Order Ticket. To highlight individual items click on the Edit button and select items on the
Order Ticket.
2. ALTERNATIVE LANGUAGE SELECTED TICKET ICON - Displays the alternative
language for the selected Order Ticket.
3. NOTES SELECTED TICKET ICON - Displays special instructions for the selected Order
Ticket.
4. ORDER LIST ALL TICKETS - Displays all Live Order list items.
Diagram 16:- Magnify panel illustration
Refresh button
Setup button
Magnify button
Flip order tickets button
Flips all of the live Order Tickets to show additional notes.
Diagram 17:- Flipped ticket illustration
This switches between the PLU description and the ALT Text fields in TouchPoint and TouchOffice
Web.This feature is useful to display either a different language (such as Chinese) or a shortened
description for the Chef. As an example, the customer will select a meal based on a long
description but the Chef is able to associate the meal using shortened text or an acronym.
The Archived button on the Order Grid invokes the Archived Orders screen and the Archived
Orders toolbar.
Diagram 18:- Archived orders toolbar illustration
The Recall button returns the Archived Order Ticket back to the Orders Grid. Chefs may use this
feature if a customer has returned a meal as they would like it cooked longer or the Order Ticket
may have been finished accidentally.
1. Select the Archived Ticket.
2. Select the Recall button to move the ticket back to the Orders screen.
Alternative language all tickets button
Archived orders toolbar
Recall button
Orders button
Returns you to the Orders screen.
The Order Summary Button is repeated on the Archived Orders toolbar for convenience. The
screen displays live and pegged orders sorted by identical orders (ingredients, cooking instructions
etc).
1. Select the button to invoke the Order Summary screen.
2. Select the Archived Button to return to the Archived Orders screen.
Sorts Archived Order Tickets by Ticket Number.
Order summary button
Refresh button
The Settings screen is invoked by pressing the Setup button from the Orders screen.
Setup consists of:-
1. APPEARANCE - Layout and Themes.
2. OPERATIONS - Tickets, Timers, Colours, Sounds and Restore Backup.
3. DEVICES - TouchPoint, CollectionPoint, Kitchen Printer and Bump Bar.
4. EXTRAS - Sync With Till, Demo Tickets, Save/Load Settings, View App Info, License
Device, Users / Access, Toggle FullScreen (F11)
1. DEVICE - the device that you intend to display it on (sizing).
2. PERIPHERAL DEVICES - peripheral devices such as a kitchen printer and a bump bar.
3. INTEGRATION - integration with TouchPoint and CollectionPoint.
All changes are saved in real time - there is no need to commit or save changes before you exit
the setup screen.
Diagram 19:- TouchKitchen settings illustration
TouchKitchen settings
Settings screen
Settings need to be adjusted to accommodate:-
Colour schemes consist of 4 colours for the buttons, buttons text, header background and Order
Grid. You can use the default colour schemes or configure new colour schemes using colours that
suit your personal preferences. Updates reflect in real-time.
1. Create a new theme by selecting the NEW button.
2. Use the minus and plus buttons to scroll through the default colour schemes.
3. Move a colour up or down by selecting the Background, Button, Button Text or Toolbar
colour and selecting the UP or DOWN buttons.
Diagram 20:- TouchKitchen colour scheme settings illustration
Touchkitchen settings -
appearance
Settings - appearance - themes Colour scheme settings
You are able to to customise the colours in new Colour Themes by selecting the Background,
Button, Button Text or Toolbar colour.
1. Select the EDIT button.
2. Move the Colour Slider to choose the colour and the shade.
3. Select the Save & Close button.
Custom background and logo images can be imported and displayed on the Order Grid.
TouchKitchen displays your screen size and recommended image sizes to assist you. Images must
meet the following requirements:-
1. The file format is PNG.
2. The background image must be named tkbg.png.
3. The logo image must be named tklogo.png.
4. The image must be placed in the ICRTouch > Socket Config directory.
SETTING DESCRIPTION
Custom Background Enabled
Options:
ON
OFF
Custom Logo Enabled
Options:
ON
OFF
Custom colours
Background/logo
SETTING DESCRIPTION
ORDER TIMERS
Order Timers Enabled
Options:
ON
OFF
Count UP or DOWN Options:
ON = DOWN
OFF = UP
Order Timer MAX Value (seconds) The maximum time, in seconds, before an Order Ticket is
coloured red.
Order Time Amber Value (seconds) The maximum time, in seconds, before an Order Ticket is
coloured amber.
Auto-Finish Tickets after Timer Automatically move Order Tickets to the Archived Orders
Screen when the timer reaches the maximum threshold.
Options:
ON
OFF
TouchKitchen settings -
operations
Settings - operations - timers
SETTING DESCRIPTION
Colour Order Tickets to Timer Traffic Light If set to ON the Order Ticket header will be green, amber
or red.
Options:
ON
OFF
Order Timers Persist After Pegging If set to ON the Order Ticket will continue counting UP or
DOWN when pegged.
Options:
ON
OFF
Show Total Prep Time for Finished Tickets If set to ON the Order Ticket will display the time it took to
complete.
Options:
ON
OFF
PEGGED ORDERS
Peg Timers Enabled If set to ON the Pegged Order Tickets will display the
timer.
Options:
ON
OFF
Peg Timers Count UP or DOWN Options:
ON = DOWN
OFF = UP
Peg Timer MAX Value (seconds) The maximum time, in seconds, before a Pegged Order
Ticket is coloured red.
Peg Timer Amber Value The maximum time, in seconds, before a Pegged Order
Ticket is coloured amber.
SETTING DESCRIPTION
Colour Pegged Tickets to Timer Traffic Light If set to ON the Pegged Order Ticket header will be green,
amber or red.
Options:
ON
OFF
Auto-Unpeg Tickets After Timer Automatically return the Pegged Order Tickets to the
Orders Screen when the timer reaches the maximum
threshold.
Options:
ON
OFF
If Auto-Unpegging, Unpeg at Amber Threshold
Instead of MAX Threshold
Automatically return the Pegged Order Tickets to the
Orders Screen in Amber instead of Red.
Options:
ON
OFF
Auto Refresh Pegboard Automatically refresh the pegboard.
Options:
ON
OFF
Ignore Timer Text Modifiers Ignore timer text modifiers.
Options:
ON
OFF
Settings - operations - colours
1. Select DEPTS if you enabled Item Colour by KP Department as described on Page 39.
2. Select a department and choose a colour from the Colour Picker. Select Save & Close.
Diagram 21:- Operations, colours illustration
Settings - operations - sounds
SETTING DESCRIPTION
New Order Sound
Options:
NONE
bell
bing
ding
lion
orderorder
alert1.warning
Max Time Alert Sound
Options:
NONE
bell
bing
ding
lion
orderorder
alert1.warning
Sound Volume Between 1 and 100.
Max Audio Channels
Max audio to overlay before capping.
Between 1 and 6.
If TouchKitchen is closed whilst there are live Order Tickets on the Orders Screen the Order Tickets
will disappear. To restore them you need to Restore Backup.
Settings - operations - restore backup
1. Close TouchKitchen and start it up again.
2. Select Setup.
3. Select the Restore Backup button.
4. Select Restore Backup.
TouchKitchen stores every update to Order Tickets in real-time.
Diagram 22:- Restore backup illustration
SETTING DESCRIPTION
CheckMaster IP Address Enter the IP address of the CheckMaster till.
CheckMaster Socket Port Enter 5559.
CheckMaster Socket Password Enter the socket port password for the CheckMaster till.
Diagram 23:- TouchPoint illustration
TouchKitchen settings -
devices
Settings - devices - TouchPoint
SETTING DESCRIPTION
CollectionPoint enabled
Display the Order Ticket status on CollectionPoint.
Options:
ON
OFF
CollectionPoint IP Address Enter the CollectionPoint IP address.
CollectionPoint Port Enter the CollectionPoint Port number - this is usually
8080.
CollectionPoint Announce Locale Display the CollectionPoint location.
SUPPRESS BY STATUS KEY
Takeout Suppress take out notifications.
Options:
ON
OFF
Delivery Suppress delivery notifications.
Options:
ON
OFF
SETTING DESCRIPTION
Settings - devices - CollectionPoint
Settings - devices - kitchen printer
Print Finished Tickets to KP Print finished order tickets.
Options:
ON
OFF
Print Online Order Notes Automatically print online order notes.
Options:
ON
OFF
Printer Order Info Lines Print order information.
Options:
ON
OFF
Print Customer Info Print the customer’s information.
Options:
ON
OFF
This functionality is for orders coming from TouchPoint
only.
Print Ticket Items to KP when completed Automatically print completed order tickets.
Options:
ON
OFF
KP Device Number Enter the kitchen printer device number.
Settings - devices - bump bar
SETTING DESCRIPTION
Set to Defaults The default operation is a horizontally mounted bump bar.
Set to Vertical Set the operation of the bump bar to vertical.
Options:
ON
OFF
Direct Numeric Entry (3+3 = 33) Allow the entry of the Order Ticket number.
Options:
ON
OFF
HOME
If no ticket is currently selected, and you are on the order
or finished tickets screen, the first numbered ticket will be
selected. Navigating with the UP/DOWN/LEFT/RIGHT keys
will navigate through the tickets on the screen.
If a ticket is selected, the first item in that ticket is
selected. Navigating with the UP/DOWN keys will navigate
through the items within the ticket.
MOVE UP, MOVE DOWN
Will move up or down through the items on the currently
selected ticket. Selections will 'loop' from first to last or
last to first. e.g., pressing 'DOWN' on the last item on the
ticket will scroll you back up to the first item on the ticket.
MOVE LEFT, MOVE RIGHT
END
Deselects any currently selected ticket. 'MOVE LEFT',
'MOVE RIGHT'.
If a ticket is selected, move left/right will navigate through
the tickets in the currently displayed grid (Orders or
Finished Items) by their ticket numbers… that is to say, if
you have reordered tickets within the grid, it may not
select the next ticket to the left or right of the previously
highlighted ticket.
If a ticket is not selected, the first or last numbered order
ticket will be selected, and then subsequent presses will
navigate left/right as described above.
Note that if you are on the Orders screen, navigating this
way will also select numbered items that are pegged.
SETTING DESCRIPTION
PEG
May be called 'Park' on your bump bar.
If you are on the order screen and have a ticket selected
in the main grid, this will 'peg' the ticket into the 'Pegged
Orders' board in the lower half of the screen. If you select
a ticket that is already in the 'Pegged Orders' board,
pressing 'Peg' will unpeg the order back to the order grid.
HOLD
Use to mark the currently highlighted item row in an order
ticket with the currently selected highlight colour. Usually
used to denote that item as completed.
RECALL The Recall button returns the Archived Order Ticket back
to the Orders Grid.
SERVE
Select an Order ticket and then tap the Serve Button to
complete the order. Finished Order Tickets are moved to
the Archived Orders screen.
Diagram 24:- Bump bar settings illustration
Diagram 25:- ICRTouch bump bar illustration
SETTING DESCRIPTION
Number of Tickets Between 1 and 100
Ticket Frequency (Seconds) Between 1 and 20
Direct Numeric Entry (3+3 = 33) Between 1 and 100
Create demo tickets of varying lengths at specified intervals - this is useful for testing. Once you
have completed testing, return to this feature to delete the demo tickets and CollectionPoint
Tickets.
SETTING DESCRIPTION
Number of Tickets Between 1 and 100
Ticket Frequency (Seconds) Between 1 and 20
Direct Numeric Entry (3+3 = 33) Between 1 and 100
TouchKitchen settings -
extras
Settings - extras - sync with till
Settings - extras - demo tickets
Settings - extras - save/load settings
Use these options to backup or save a copy of the settings for this kitchen video to your
TouchPoint till, or to restore the settings on this kitchen video from a previous backup.
Displays the TouchKitchen version and release.
Displays the TouchKitchen license status.
SETTING DESCRIPTION
Change Pass Code The change pass code password is 8989 unless changed
previously
Edit Locks The edit locks password is 7171 unless changed
previously.
Settings - extras - view app info
Settings - extras - license device
Settings - extra - users / access
Settings - extras - toggle/untoggle fullscreen (F11)
Setting Up and Using an Input Device (Bump Bar)
Setting Up and
Using an Input
Device (Bump Bar)
TouchKitchen can make use of any input device that generates a keyboard or gamepad
style event, and allows you to configure any button or key on your device to any event.
To configure or test your input device, go to Settings > Input Device Setup. On the left hand side,
you will see a column of 'actions', named after the commonly described buttons you would find on
a typical KV 'bump bar'. On the right, you will see the assigned key input.
Testing In put
You can test the actions by simply pressing the keys on your input device. At the bottom of the
screen, it will tell you the key pressed, and the action assigned to it. If no action is assigned, it will
say 'NOT ASSIGNED'.
Configuring Input
To assign a new input to an action, click either the action button, or the currently designated input
button for that action, and the key button will display '???' while the prompt at the top of the
screen will tell you, for example: Press Key To Assign To Action 'Home'.
Using An Input Device
Each action within TouchKitchen depends on context; the action performed depends what you're
doing at the time. The actions are described below:
If no ticket is currently selected, and you are on the order or finished tickets screen, the first
numbered ticket will be selected. Navigating with the UP/DOWN/LEFT/RIGHT keys will navigate
through the tickets on the screen.
If a ticket is selected, the first item in that ticket is selected. Navigating with the UP/DOWN keys
will navigate through the items within the ticket.
Use to mark the currently highlighted item row in an order ticket with the currently selected
highlight colour. Usually used to denote that item as completed.
Setting Up and Using an
Input Device (Bump Bar)
'HOME'
'HOLD'
Deselects any currently selected ticket. 'MOVE LEFT', 'MOVE RIGHT'
If a ticket is selected, move left/right will navigate through the tickets in the currently displayed
grid (Orders or Finished Items) by their ticket numbers… that is to say, if you have reordered
tickets within the grid, it may not select the next ticket to the left or right of the previously
highlighted ticket.
If a ticket is not selected, the first or last numbered order ticket will be selected, and then
subsequent presses will navigate left/right as described above.
Note that if you are on the Orders screen, navigating this way will also select numbered items that
are pegged.
Will move up or down through the items on the currently selected ticket. Selections will 'loop' from
first to last or last to first. e.g., pressing 'DOWN' on the last item on the ticket will scroll you back
up to the first item on the ticket.
May be called 'Park' on your bump bar.
If you are on the order screen and have a ticket selected in the main grid, this will 'peg' the ticket
into the 'Pegged Orders' board in the lower half of the screen. If you select a ticket that is already
in the 'Pegged Orders' board, pressing 'Peg' will unpeg the order back to the order grid.
If you are on the Orders screen, pressing RECALL will switch you to the 'Finished Orders' screen.
If you are on the 'Finished Orders' screen with NO order selected, pressing RECALL will return you
to the orders screen.
If you are on the 'Finished Orders' screen and you have an order selected, pressing RECALL will
recall the order to the main orders screen – with an additional visible timestamp in the header to
denote the ticket as a recalled order.
May be called 'FINISH' on your bump bar.
If you are on the order screen with an order selected, pressing FINISH will finalise the order and
move it to the 'Finished Orders' screen.
'END'
'MOVE UP', 'MOVE DOWN'
'PEG'
'RECALL'
'SERVE'
It should not be necessary to redefine the numeric keys from their defaults, since the vast majority
of input devices will simply output the 'keyboard numberpad' numeric value in any configuration.
However, just in case you are using an input device that doesn't, the option to define them as with
any other key is provided.
The number keys are used to select numbered tickets. The '0' (zero) key represents 10.
To select a ticket with a number above 9, press '0' (zero), then another the second number. e.g.,
to select ticket 19, press '0','9'
Further presses of '0' (zero) within 2 seconds will add another '10'… e.g., to select ticket 39, press
'0','0','0',9. This makes it very easy to scroll through order tickets 10 at a time, as well as selecting
specific double digit numbers.
NUMBER KEYS
Preface
Engineer setup
Engineer configuration
Staff settings
SelfService -
Version 1.03
ICRTouch SelfService Software
ICRTouch’s SelfService software turns a self-standing touch-screen device(kiosk) into a self service
point of sale device. In restaurants and fast food outlets the software allows customers to view
time based menus, ingredients and allergens prior to placing their order. The software processes
card payments, prints receipts and sends the order directly to the kitchen.
The screensaver feature can be used to advertise specials, menus and store opening and closing
hours.
The software is not restricted to food and drink and can be used in a wide range of applications
such as retail, hospitality and leisure.
ICRTouch uses the Progressive Web Application methodology to seamlessly integrate with
TouchPoint, TouchTakeaway, Bytable and TouchKitchen.
Document Description
This document is aimed at Partners and is a reference manual to ICRTouch’s SelfService software.
The SelfService software allows customers to independently use the interactive touch-screen
menu to place their order and pay in-store without the assistance of staff.
System Requirements
Minimum system requirements:-
1. PC - Intel Pentium 4 processor or later (SSE3 capable).
2. Windows 7, Windows 8, Windows 8.1, Windows 10 or later.
3. Self Service Screen - dimensions 1×2.
4. Keyboard or Windows on screen keyboard. (for Engineer setup).
5. EFT terminal running the Opayo EFT Interface.
6. A receipt printer.
7. Internet Connection.
Preface
ICRTouch Minimum Software Configuration
The SelfService minimum ICRTouch software configuration:-
1. TouchOffice Web.
2. TouchPoint.
3. TouchTakeAway.
Prerequisites
A fully set up and working TouchTakeaway. If you need to configure TouchTakeaway
please refer to the manual - https://forum.icrtouch.com/files/file/504-touchtakeawaybytable-
configuration-guide/
Integration with an Opayo card terminal, for this to work you must also have the latest
version of the Opayo EFT Interface available here:
https://forum.icrtouch.com/files/file/274-sagepay-eft-interface-for-touchpoint/
Out of Scope
1. Landscape orientation.
2. Logos on receipts.
3. Cash payments.
4. Small screens.
Marketing Video
https://www.youtube.com/embed/W5WVrHGmBpQ
https://youtu.be/W5WVrHGmBpQ
Definitions
Engineer means the authorised Partner engineer performing the installation.
Staff means hospitality / retail manager or staff.
Assumptions
1. You are familiar with Microsoft Windows.
2. You have an understanding of hospitality / retail hardware and peripherals.
3. TouchPoint, TouchOffice Web, TillConfig and TouchTakeaway is setup and configured.
Third Party Disclaimer
This manual contains links to websites owned and operated by third parties. These links are
provided for your information and convenience only and are not an endorsement of the content of
such websites or third party services.
ICRTouch has no control of the content of any linked website and is not responsible for these
websites or their content or availability.
Microsoft Windows
1. Enable the Windows On Screen Keyboard.
Refer to https://support.microsoft.com/en-us/windows/use-the-on-screenkeyboard-
osk-to-type-ecbb5e08-5b4e-d8c8-f794-81dbf896267a for details.
2. Disable the Windows Screen Swipe to prevent users from invoking the Windows
system User Interface.
3. Refer to Microsoft’s Screen Swipe Policy for further information:-
https://docs.microsoft.com/en-us/windows/iot/iot-enterprise/advancedlockdown-
features/edge-swipe-policy
4. Disable the Action Bar in Windows to stop customers exiting the kiosk software whilst it
is operational.
Refer to Microsoft’s Change Notification Settings for further information:-
https://support.microsoft.com/en-us/windows/change-notification-and-quicksettings-
in-windows-11-ddcbbcd4-0a02-f6e4-fe14-6766d850f294.
Configure products in TouchOffice Web
1. Sign in via https://www.touchoffice.net.
2. Select Products.
3. Select the product.
4. Select the WebShop Options tab.
5. Select Show on WebShop. Click on Upload an image. Repeat for all eligible products.
Engineer setup
PLU PROGRAMMING - WEB CATEGORY
1. Select the Webshop Options tab.
2. Edit the Web Category.
3. Enter a new category name and click on Add (this is the name that will appear on the
Kiosk as per the Sample breakfast menu image below).
4. Select the category and click on Edit. Select the pencil icon to edit.
5. Enter the times the Web Category will be available. If you leave the timeslots blank the
products in the Web Category will be available at all times. If you would like a different
menu for breakfast and Sunday lunch setup 2 Web Categories and enter the available
times in each category.
6. Select file to upload an image. You will find a selection of licence free pre-sized Web
Category images on our Hub - https://hub.icrtouch.com.
7. Images should not exceed 960 x 358 pixels as the image will be cropped.
WEB CATEGORY
FAST FOOD SUNDAY LUNCH DAY DESCRIPTION
12:00 - 16:00 Sun Sunday lunch menu
8:00 - 11:00 Mon Breakfast menu
8:00 - 11:00 Tue Breakfast menu
8:00 - 11:00 Wed Breakfast menu
8:00 - 11:00 Thu Breakfast menu
8:00 - 12:00 Fri Breakfast menu
09:00 - 12:30 Sat Breakfast menu
Sample breakfast menu
Configure TillConfig
Sign in via https://www.tillconfig.net.
1. Select TakeAway.
2. Select Payment Settings.
3. Ensure you have selected the correct site for the Kiosk.
4. Scroll down to Kiosk EFT.
5. Select Yes under Enabled.
NEW CLEAR CACHE FEATURE
TouchOffice Web updates take approximately 15 minutes before they are automatically reflected
on TouchTakeaway / ByTable / ByRetail. To have changes updated instantly, clear the cache in
TillConfig using the new Clear Cache feature:-
1. Sign in via https://www.tillconfig.net.
2. Select TakeAway.
3. Select Clear Cache.
4. Select Clear Cache once more.
5. You may need to clear your local browser cache.
Download and install the Software
1. Download SelfServiceKiosk.Win32.zip from - https://forum.icrtouch.com/files/file/550-
selfservice-v2/ .
2. Extract the files to a folder of your choice.
3. Run SelfServiceKiosk.exe to install the software.
4. Run bytable-kiosk.exe when you are ready to configure the software.
Screensaver Images
1. Save your Screen Saver images to the C:\SelfServiceScreenSavers folder (you may need
to optimize or adjust the images for your screen).
2. Screen Saver images double up as advertisements and can showcase menus or special
offers.
Login
1. Run bytable-kiosk.exe to launch the software.
2. Press the hand point button on the initial splash screen to begin.
3. Press the Accessibility button on the bottom left of the screen. This will shift the page
down.
4. Press the top left followed by the top right of the screen to login (or vice versa).
5. When logging in for the first time you will need to enter the default engineer code - 2552.
If the code is incorrect the login will remain visible.
Engineer configuration
Exit Kiosk Application
Exit the application and return to Windows if the kiosk is not operational or to fix issues.
URL Settings
1. Alias for URL - the alias for the ByTable URL - this setting directs the kiosk to the menu.
Example - the alias for https://thehogs.touchtakeaway.net/menu is thehogs.
2. Default Site ID - the default site ID which will be included in the URL. If not applicable,
set to 0.
3. Web Page Zoom Level - by default the site is zoomed in to mobile view. Changes are
updated without a restart.
Set Timeouts
1. Screen Saver Timeout - the number of seconds before the screensaver is displayed.
This number must be higher than the Abandon Cart Countdown.
2. Screensaver Image Transition - the number of seconds each screensaver image is
displayed.
3. Inactivity Before Abandon Cart Countdown - if there are items in the cart and no
activity a message asks if the customer is still there. This field sets the time to wipe the
cart and reset for the next customer.
TouchPoint Communications
1. Kiosk name - the name displayed on the customer’s receipt and on messages sent to
the till. This helps staff identify where the message has come from.
2. Terminal Access Key - required for payment verification. The Terminal Access Key is
found on www.tillconfig.net > Terminal Access Key.
3. Enable TouchPoint Communication - if the kiosk is being integrated with TouchPoint.
4. TouchPoint IP address - the IP address should point to the till that will receive
messages from this kiosk. Choose a manned till for out of paper and licensing alerts.
5. TouchPoint Port - by default this is 5559.
6. TouchPoint Socket Password - this needs to match what is set on the till. You can find
this setting in TouchPoint by selecting Program>All Prog>System Programming>System
Configuration>TCP/IP>BackOffice TCP Socket Password.
7. The content of the Terminal Access Key field is not displayed.
Printer Set Up - Option 1 - IP connection
1. Printer Type - select IP from the dropdown list. This will show the relevant connection
settings.
2. Paper Setting - when there is no paper, lock the kiosk to stop orders or show a warning
that receipts will not be issued (not supported if using virtual comm ports).
3. IP Address - printer IP address.
4. Test Print - print an example receipt with demo data.
Printer Set Up - Option 2 - Serial port connection
1. Serial Port Settings - you should be able to perform a self test on the printer to print
out the Serial Port settings.
2. Printer Type - select Serial from the dropdown list. This will show the relevant
connection settings.
3. No Paper Setting - when there is no paper, lock the kiosk to stop orders or show a
warning that receipts will not be issued (this feature is not supported when using virtual
comm ports).
4. Serial Port - COM3-COM9, LPT1-LPT3.
5. Baud Rate - 19200.
6. Stop Bit - 1.
Receipt Layout
1. Receipt Width - set the receipt width so the receipts are printed centrally.
2. Receipt Header Text - four lines are printed at the top of the receipt. The top line prints
double height.
3. Currency Symbol - defaults to the GBP symbol. Select another currency from the drop
down.
4. Receipt Footer Text - text displayed at the very bottom of the receipt.
EFT Settings
1. EFT IP Address - this points to the EFT terminal that is running and correctly set up.
2. EFT Port - this is the port configured for your EFT terminal. Enter 9999.
3. 20p Test EFT - test a 20p transaction. This will not report to TouchOffice Web and
therefore will mean the totals will not balance.
Change Engineer Code
1. The default Engineer Code is - 2552.
2. It is best practice to change the Engineer Code to a lengthier one.
3. If you forget your code you will need to reinstall the software.
Change Staff Code
1. The default Staff Code is - 8888.
2. It is best practice to change the Staff Code to a lengthier one.
Lock Kiosk
1. Locks the kiosk so that it cannot be used.
2. Press Save and Exit to prevent an unauthorised person accessing the Staff Settings.
3. It is advisable to lock the kiosk if you need to step away from it whilst you are setting it
up, if it requires maintenance or the payment system is not working.
4. Screen Saver images are displayed whilst the kiosk is locked making it an ideal
opportunity to showcase the menu or display an advertisement.
Unlock Kiosk
Unlocks the Kiosk and returns you to the Engineer Settings menu.
Operational State
Test the Kiosk - we recommend that you fully test the Kiosk with the staff to ensure that the
Kiosk is able to connect to the peripheral devices and is fully operational.
Login
1. Run bytable-kiosk.exe to launch the software.
2. Press the Accessibility button on the bottom left of the screen. This will shift the page
down.
3. Press the Staff login button.
4. When logging in for the first time you may need to enter the default staff code - 8888 if it
was not changed in Section 3.13.
5. If the code is incorrect the login will remain visible.
Staff settings
Exit Kiosk Application
Exit the application and return to Windows if the kiosk is not operational or to fix issues.
Restart
Restart the application to fix issues.
Reprint Receipts
Reprint the last 5 sales and card receipts. Your manned till will notify you of paper and licensing
alerts.
Lock Kiosk
1. Locks the kiosk so that it cannot be used.
2. Press Save and Exit to prevent an unauthorised person accessing the Staff Settings.
Unlock Kiosk
Unlocks the kiosk.
Operational state
Test the Kiosk - we recommend that you fully test the Kiosk to ensure that the Kiosk is able to
connect to the peripheral devices and is fully operational.
ICRTouch’s SelfService software turns a self-standing touch-screen device(kiosk) into a self service
point of sale device. In restaurants and fast food outlets the software allows customers to view
time based menus, ingredients and allergens prior to placing their order. The software processes
card payments, prints receipts and sends the order directly to the kitchen.
Preface
Engineer Setup
Configure products in TouchOffice Web
Download and install the Software
Configuration
Staff login options
SelfService
Reference Guide
ICRTouch’s SelfService software turns a self-standing touch-screen device (kiosk) into a self
service point of sale device. In restaurants and fast food outlets the software allows customers to
view time based menus, ingredients and allergens prior to placing their order. The software
processes card payments, prints receipts and sends the order directly to the kitchen.
The screensaver feature can be used to advertise specials, menus and store opening and closing
hours.
The software is not restricted to food and drink and be used in a wide range of applications such
as retail, hospitality and leisure.
ICRTouch uses the Progressive Web Application methodology to seamlessly integrate with
TouchPoint, TouchTakeaway, Bytable and TouchKitchen.
This document is aimed at Partners and is a reference manual to ICRTouch’s SelfService software.
The SelfService software allows customers to independently use the interactive touch-screen
menu to place their order and pay in-store without the assistance of staff.
PC - Intel Pentium 4 processor or later (SSE3 capable)
Windows 10 or later
Self Service Screen - dimensions 1×2
Keyboard or Windows on screen keyboard. (for Engineer setup)
EFT terminal running the Opayo EFT or DOJO PAC Interface
Receipt printer
Internet Connection
TouchOffice Web
Preface
ICRTouch SelfService software
Document description
System requirements
ICRTouch Minimum software configuration
TouchPoint
TouchTakeAway
A fully set up and working TouchTakeaway. If you need to configure TouchTakeaway
please refer to the Docs Manual
Integration with an Opayo or DOJO card terminal, for this to work you must also have the
latest version of the Opayo EFT or DOJO PAC Interface available here: Opayo EFT
Application / DOJO PSConnect EFT Interface
Engineer means the authorised Partner engineer performing the installation
Staff means hospitality / retail manager or staff
You are familiar with Microsoft Windows
You have an understanding of hospitality / retail hardware and peripherals
TouchPoint, TouchOffice Web, TillConfig and TouchTakeaway is setup and configured
This manual contains links to websites owned and operated by third parties. These links are
provided for your information and convenience only and are not an endorsement of the content of
such websites or third party services. ICRTouch has no control of the content of any linked website
and is not responsible for these websites or their content or availability.
Enable the Windows On Screen Keyboard. Refer to Use the On-Screen Keyboard (OSK) to
type for details.
Disable the Action Bar in Windows to stop customers exiting the kiosk software whilst it is
operational. Refer to Microsoft’s Change Notification Settings for further information:
Notifications and Do Not Disturb in Windows.
Prerequisites
Definitions
Assumptions
Third party disclaimer
Microsoft Windows Resources
SelfService setup instructions for the engineer.
Engineer Setup
Engineer Setup
1. Sign in via https://www.touchoffice.net
2. Select Products
3. Select the product
4. Select the WebShop Options tab
5. Select Show on WebShop. Click on Upload an image
6. Repeat for all eligible products
1. Select the Webshop Options tab
2. Edit the Web Category
3. Enter a new category name and click on Add (this is the name that will appear on the
Kiosk)
4. Select the category and click on Edit. Select the pencil icon to edit
5. Enter the times the Web Category will be available. If you leave the timeslots blank the
products in the Web Category will be available at all times. If you would like a different
menu for breakfast and Sunday lunch setup two Web Categories and enter the available
times in each category
6. Select file to upload an image. You will find a selection of licence-free pre-sized Web
Category images on our Hub - https://hub.icrtouch.com.
Configure products in
TouchOffice Web
TouchOffice Web Products
PLU programming - Web Category
Images should not exceed 960 x 358 pixels as the image will be cropped.
1. Sign in via https://www.tillconfig.net
2. Select TakeAway
3. Select Payment Settings
4. Ensure you have selected the correct site for the Kiosk
5. Scroll down to Kiosk EFT
6. Select Yes under Enabled
Configure TillConfig
Engineer Setup
1. Download SelfServiceKiosk.Win32.zip from -
https://forum.icrtouch.com/files/file/550-selfservice-v2/
2. Extract the files to a folder of your choice.
3. Run SelfServiceKiosk.exe to install the software.
4. Run bytable-kiosk.exe when you are ready to configure the software.
1. Save your Screen Saver images to the C:\SelfServiceScreenSavers folder (you may need
to
optimize or adjust the images for your screen).
2. Screen Saver images double up as advertisements and can showcase menus or special
offers
Download and install the
Software
Download and install the Software
Screensaver Images
Engineer Setup
1. Run bytable-kiosk.exe to launch the software.
2. Press the hand point button on the initial splash screen to begin.
3. Press the Accessibility button on the bottom left of the screen. This will shift the page
down.
4. Press the top left followed by the top right of the screen to login (or vice versa).
5. When logging in for the first time you will need to enter the default engineer code - 2552.
1. Alias for URL - the alias for the ByTable URL - this setting directs the kiosk to the menu.
Example - the alias for https://thehogs.touchtakeaway.net/menu is thehogs.
2. Default Site ID - the default site ID which will be included in the URL. If not applicable, set
to 0.
3. Web Page Zoom Level - by default the site is zoomed in to mobile view. Changes are
updated without a restart.
1. Screen Saver Timeout - the number of seconds before the screensaver is displayed. This
number must be higher than the Abandon Cart Countdown.
2. Screensaver Image Transition - the number of seconds each screensaver image is
displayed.
3. Inactivity Before Abandon Cart Countdown - if there are items in the cart and no activity a
message asks if the customer is still there. This field sets the time to wipe the cart and
reset for the next customer.
Configuration
Login
If the code is incorrect the login will remain visible
URL Settings
Timeouts
1. Kiosk name - the name displayed on the customer’s receipt and on messages sent to the
till. This helps staff identify where the message has come from.
2. Terminal Access Key - required for payment verification. The Terminal Access Key is
found on www.tillconfig.net > Terminal Access Key.
3. Enable TouchPoint Communication - if the kiosk is being integrated with TouchPoint.
4. TouchPoint IP address - the IP address should point to the till that will receive messages
from this kiosk. Choose a manned till for out of paper and licensing alerts
5. TouchPoint Port - by default this is 5559
6. TouchPoint Socket Password - this needs to match what is set on the till. You can find this
setting in TouchPoint by selecting Program>All Prog>System Programming>System
Configuration>TCP/IP>BackOffice TCP Socket Password.
1. Serial Port Settings - you should be able to perform a self test on the printer to print out
the Serial Port settings.
2. Printer Type - select Serial from the dropdown list. This will show the relevant connection
settings.
3. No Paper Setting - when there is no paper, lock the kiosk to stop orders or show a
warning that receipts will not be issued (this feature is not supported when using virtual
comm ports)
Serial Port - COM1-COM9, LPT1-LPT3.
Baud Rate - 19200
Stop Bit - 1
1. Receipt Width - set the receipt width so the receipts are printed centrally.
2. Receipt Header Text - four lines are printed at the top of the receipt. The top line prints
double height.
TouchPoint Communications
Printer Set Up
Make sure to check which COM port your printer is using.
Receipt Layout
3. Currency Symbol - defaults to the GBP symbol. Select another currency from the drop
down.
4. Receipt Footer Text - text displayed at the very bottom of the receipt.
1. EFT IP Address - this points to the EFT terminal that is running and correctly set up.
127.0.0.1 if connected to itself.
2. EFT Port - this is the port configured for your EFT terminal. Enter 9999.
3. 20p Test EFT - test a 20p transaction. This will not report to TouchOffice Web and
therefore will mean the totals will not balance.
The default Engineer Code is - 2552.
It is best practice to change the Engineer Code to a lengthier one.
If you forget your code you will need to reinstall the software.
The default Staff Code is - 8888.
It is best practice to change the Staff Code to a lengthier one.
Locks the kiosk so that it cannot be used.
Press Save and Exit to prevent an unauthorised person accessing the Staff Settings.
EFT Settings
Change Engineer Code
Change Staff Code
Lock Kiosk
This button will change to a unlock kiosk if the kiosk is locked.
Engineer Setup
1. Run bytable-kiosk.exe to launch the software
2. Press the Accessibility button on the bottom left of the screen. This will shift the page
down
3. Press the Staff login button
4. When logging in for the first time you may need to enter the default staff code - 8888
5. If the code is incorrect the login will remain visible
Restart the application to fix issues.
Reprint the last 5 sales and card receipts. Your manned till will notify you of paper and licensing
alerts.
Staff login options
Login
Restart
Reprint receipts
locks the kiosk so that it cannot be used
press Save and Exit to prevent an unauthorised person accessing the Staff Settings
Lock kiosk
Overview
Postcodes
Postcodes
Reservations
Reservations
Takeaway
Webshop Range Programming
Sales overview
View sales
Site branding
Site settings
Payment settings
Page manager
Terms and conditions
Delivery options
TillConfig Reference
Manual
Delivery settings
Custom times
Discounts
Language
Tickets
Interactive map
Customers
Service charge
Tax
Clear cache
Vouchers
SelfService
ChefGuard
Commander
Analytics
Order config
Associated items
TouchTakeaway site
Topupweb
TouchTopUp
Webshop
Webshop range programming
Sales overview
View sales
View stock
Shopify
Just Eat
Deliveroo
Other settings
Terminal Access Key
Company Settings
Rental Licences
Change password
Connecting QuickBooks in TillConfig
TillConfig allows you to setup and configure web services:
1. Go to https://www.tillconfig.net/.
2. The services under My Services are subscription dependent and can be added via the
partner portal - https://portal.icrtouch.com/.
TillConfig my services illustration
Overview
Partner portal illustration
Postcodes
Postcodes
Enables access to the UK postal code database via an API (Application Programming Interface).
This is enabled in TouchPoint and allows the customer address lookup from the entered postcode.
This is a separate subscription service.
To setup postcodes:
1. In TillConfig select Postcodes > Settings - add up to 5 postcode regions.
2. Select Postcodes > Register terminals to add TouchPoint devices.
Postcodes
Reservations
Reservations
Please refer to the TouchReservations Guide for details -
https://docs.icrtouch.com/books/touchreservations-quick-start-guide.
Reservations
Takeaway
Takeaway
Webshop Range
Programming
Speed up the setup of products by associating multiple products with List PLUs and Web
Categories:
1. In TillConfig select TouchTakeaway > Webshop range programming.
2. Select the filters and settings, and save.
No Field name Description
1 Site
Select 0 - Head Office to update
the settings on all sites. Select
individual sites to update settings
on that specific site.
2 From PLU
Enter the range of PLU's to import.
3 To PLU
4 Department
Select the department from the
dropdown list.
5 PLU group
Select the PLU group from the
dropdown list.
6 Show on Webshop This field needs to be ticked to
show on the Webshop.
7 Web list links 1 - 6
Refer to the Web-list link Web-list
link for guidance on List PLUs
created in TouchOffice Web.
8 Min Minimum quantity.
Fields
No Field name Description
9 Max
Maximum quantity.
This is useful for restricting
the number of add-on's
that can be chosen for a
selected product.
For example, you can offer
10 burger add-on
ingredients but allow the
customer to select up to 3.
10 3rd @ price
Uses 3rd @ Price. Tick box if the
price of the PLU uses the 3rd @
Price from the till.
11 Web Category
Select the Web Category from the
drop down list.
Takeaway
Web Sales Dashboard
View, print, and export web sales reports via the Web Sales Dashboard.
1. In TillConfig select TouchTakeaway > Web sales overview.
2. Refer to the table below for guidelines.
No Field name Description
1 Start Date
Select the start and end date
from the popup calendar selector
or enter the date in the relevant
field.
Format: dd/mm/yyyy.
2 End Date
3 Start Time Select the start and end time
from the popup time selector. or
enter the time in the relevant
field.
Format: hh:mm.
4 End Time
5 Site
Sales overview
Fields
No Field name Description
6 Order Status
Select the order status from the
drop down list:
All Orders
Pending Orders
Accepted Orders
Rejected Orders
Cooking Orders
Ready Orders
In Transit Orders
Delivered/Collected
Orders
7 Report types
No Field name Description
Sales totals
No Field name Description
PLU sales
No Field name Description
Last 50 sales
No Field name Description
PLU sales by day
No Field name Description
Payment method usage
No Field name Description
Payment type totals
No Field name Description
Customer sales
No Field name Description
Sale locations (Google maps widget)
Customer details are entered by the customer during checkout.
Takeaway
Filter, view, and sort sales by ID, reference number, site, etc. The View Sales report provides a list
of last errors for troubleshooting. Please refer to Troubleshooting for further details.
1. In TillConfig select TouchTakeaway > Webshop range programming > View sales.
2. Sort the results by column by selecting the relevant column header.
3. Select the ID to view the sale detail.
4. Search for a specific sales transaction using the search bar.
5. Select the number entries to return.
No Field name Description
1 ID This is an internal transaction
reference number.
2 Reference
The reference number received by
the customer is either generated by
ICRTouch or a 3rd party such as Just
Eat.
3 Site
Select the site column to sort site
numerically.
4 Name
This information is entered by the
customer on checkout.
5 Postcode The total number of items sold. Field
type: numeric.
View sales
Fields
No Field name Description
6 Phone The value of the transaction.
7 Items
The payment method is set up in the
Tillconfig > Payment Settings section.
Method type examples:
Paid
Cash on delivery
8 Amount
The payment types are set up in the
Tillconfig > Payment Settings section.
Payment type examples:
Self-service payment
Sagepay
Paypal
Cash on delivery
9 Method Date and time.
10 Type Date and time.
11 Date Created Date and time.
12 Date Received Date and time.
No Field name Description
13 Date Processed
The sale status. Status examples:
Pending
Scheduled
Completed
Rejected
14 Date Scheduled
Last error examples:
Receipt printer error
KP # Error, Retry?
Unrectified errors will prevent
new orders from being
processed and therefore
need to be addressed
urgently.
15 Status
16 Last error
Sample report illustration
Sample report illustration
No Field name Description Type Length
1 Site
Select 0 - Head
Office to update the
settings on all sites.
Select individual
sites to update
settings on that
specific site.
Dropdown list
Fields
Takeaway
Incorporate your brand identity by uploading a logo, company image, and accent colours. Setup
non contact, self isolation and kitchen messages.
1. In TillConfig select TouchTakeaway > Site Branding.
2. Refer to the image and table below for guidelines.
3. Save your changes.
Site branding illustration
Site branding
Set up your site branding in Head Office. Individual sites can be configured with different
branding, colours. etc.
Setting Description
Logo
The logo appears at the top of the page between the
menu and the shopping basket.
Specifications:
500px width by 110px height
JPEG or PNG format
Icon
The favorite or shortcut icon that appears on smartphones.
Specifications:
512px by 512px
PNG format
Smartphone icon illustration
Setting Description
Loading icon
The animated GIF is displayed when the site is loading.
Available options:
moped, bag, bench, burger, cocktail, cocktail shaker,
dishes, ferris wheel, fish and chips, mug, noodles, pint,
pizza, plate, rollercoaster, takeaway bag, takeaway
containers, ticketing, wine.
Company image
The image is displayed above the category heading on
desktop devices.
Specifications:
At least 1280px by 720px
JPEG or PNG format
Intro heading The text is displayed above the category heading on
desktop devices.
Intro text The text is displayed below the intro heading on desktop
devices.
Accent colour The background buttons and link/heading underline color.
This colour should be visible against white.
Kitchen message
Allows customers to specify messages for the kitchen -
printed on the receipt and kitchen tickets. Toggle options:
Hide
Show
View the TouchKitchen and CollectionPoint manual
Message per product
Allows customers to specify messages for the kitchen on
individual products - printed on receipts and kitchen
printer printouts. For instance, no onions. Toggle options:
Hide
Show
Setting Description
Phone number
The phone number is entered into the checkout form by
the customer. Toggle options:
Hide
Show
Search box
The product search box. Toggle options:
Hide
Show
Discounts
The discount is shown in the cart. Toggle options:
Hide
Show
NHS staff
A checkbox enables customers to indicate that they work
for the NHS. Toggle options:
Hide
Show
NHS staff role
A field where the customer can enter their role within the
NHS. This field will be displayed when the checkbox is
enabled and has been selected. Toggle options:
Hide
Show
Non-contact checkbox
Allows customers to indicate whether they prefer noncontact
- a message is printed on the receipt and kitchen
tickets. Toggle:
Hide
Show
Setting Description
Self-isolation checkbox
Allows customers to indicate whether they are selfisolating
at checkout. Printed on the receipt and kitchen
tickets. Toggle options:
Hide
Show
Partner logo
Show or hide the partner logo on the side menu. Toggle
options:
Hide
Show
If Show is selected please enter the partner
website URL.
Marketing opt-in checkbox
Allows customers to specify their marketing preference at
checkout. Toggle options:
Hide
Show
This feature will be made available in a future
release.
Takeaway
Site settings
1. In TillConfig select TouchTakeaway > Site Settings.
2. Refer to the table below for guidelines.
3. Select the arrow on the drop-down list to view the available options.
4. Save.
Setting Description
Site name Enter your company name.
Company email Ener you company email.
Footer note
This text will appear at the base of the sidebar on the
front page of the site. The
content of the message is at the discretion of the
company. The message may be to notify of seasonal
closing times, or the invitation to get in touch if the
customer has additional questions about dietary
requirements. Alternatively, this field can be left blank,
and no message will appear on the site.
Default language
The primary language that will be displayed. Dropdown
list options:
English
Castellano - Spanish
Cymraeg - Welsh
Nederlands - Dutch
Dansk - Danish
Language switch
Permit the automatic switching to a different local
language if applicable. Dropdown list options:
English
Castellano - Spanish
Cymraeg - Welsh
Nederlands - Dutch
Dansk - Danish
Setting Description
Language switch
Permit the automatic switching to a different local
language if applicable. Dropdown list options:
English
Castellano - Spanish
Cymraeg - Welsh
Nederlands - Dutch
Dansk - Danish
Cookie compliance
We use cookies to store information such as login
credentials, user preferences, and shopping cart contents.
Data privacy compliance requires us to obtain the user's
consent to activate this functionality.
Radio button options:
Off
On (recommended)
This feature will be made available in a future
release.
Currency
The currency used for pricing. Dropdown list options:
£ (GBP) - British Pound
$ (AUD) - Australian Dollar
$ (NZD) - New Zealand Dollar
$ (USD) - US Dollar
$ (CAD) - Canadian Dollar
(EUR) - Euro
฿ (THB) - Thai Baht
kr (ISK) - Icelandic Króna
kr (DKK) - Danish Krone
Rs (LKR) - Sri Lankan Rupee
Tk (BDT) - Bangladeshi Taka
S$ (SGD) - Singapore Dollar
RM (MYR) - Malaysian Ringgit
R (ZAR) - South African Rands
Setting Description
Minimum spend
Choose whether the minimum spend includes a discount
in this calculation. Radio button options:
Include Discount
Exclude Discount
Restrict to table
Prevent the user from changing the site or table when the
table has been set for them. Radio button options:
Off
On
This feature is useful when a QR code has been
assigned to the table.
Stock
Choose whether TouchOffice Web checks stock
availability when displaying items. Items that are out of
stock will not be purchasable. Date scheduling to be
disabled. Radio button options:
Off
On
Display low stock value
When stock levels fall below the stock value threshold, a
low stock warning will display against that PLU on the site.
Display low stock when less than <enter value>.
Alternative text
Choose whether the till and web sales display the PLU
description or alternative text field.
Radio button options:
Off
On
Setting Description
Default sort products by
Choose the web category sorting method.which method of
sorting will be used to display the PLUs in the web
categories on the site.
Dropdown list options:
Record (Default) - sorts by the PLU number.
Name - sorts the PLU alphabetically.
Random Code - sorts by the numbers in the
random code field. eg
Random codes are sorted numerically.
Default sort direction
Choose whether to sort products in ascending or
descending order. Dropdown list options:
Ascending
Descending
Store picker
Hide the store picker to prevent customers changing sites
once one has been selected. Radio button options:
Show
Hide
This is useful when using QR codes or site-specific
apps.
Redirect Store Page to Menu
When enabled the customer will be taken straight to the
menu when selecting a site rather than the store
summary page. Redirect Store Page to Menu. Radio
button options:
Off
On
Postcode landing
Postcode entry landing page. Radio button options:
Off
On
Setting Description
Date format
This will alter the format of the date that TouchPoint
prints on the order receipt. Dropdown list options:
Wed 30th Mar
Wednesday 30th Mar
Wed 30th March
Wednesday 30th March
Wed Mar 30
March 30th
March Wed 30th
30.03.2022
30-03-2022
2022-03-30
03/30/2022
Date on receipt
This will alter the size of the date that TouchPoint prints
on the order receipt. Dropdown list options:
Large
Normal
Allow zero value sales
Radio button options:
Off
On
An example use case is customers who have
purchased a season ticket using the ICRTouch
Ticketing System. The customer selects a date
and time online without any charges.
Order confirmation emails
Toggles whether the Company Email address receives a
copy of the customer confirmation email when an order is
placed. This is set to “On” as default. Radio button
options:
Off
On
View a sample order.
Delivery surcharge PLU Enter the PLU number of the delivery charge set up in
TouchOffice Web.
Setting Description
Payment surcharge PLU Enter the PLU numbers of the surcharge set up in
TouchOffice Web. Legal info check.
Auto accept orders
Toggle off to allow you to filter out rogue and unpaid
orders. Rejected orders trigger an email to the address on
the order form explaining the reason for the rejection.
Manual acceptance or rejection of orders is handled on
TouchTakeaway Commander.
Radio button options:
Off
On
Takeaway
Payment settings
There are 10 payment settings: Manual, Paypal Express, SagePay Server, PaymentSense,
PaymentSense Connect E, Mollie, Kiosk EFT, Customer loyalty, Voucher redemption, Zero priced
sale.
1. In TillConfig select TouchTakeaway > Payment Settings.
2. Drag and drop the payment headings to reorder.
3. Refer to the tables below for guidelines.
4. Save.
Field Description
Site
{{@642#bkmrk-0---head-office-upda}}
This will process funds to the correct merchant accounts.
Manual is primarily used for cash on delivery and collection.
Field Description
Description The description the customer will see when checking out.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
The Paypal Express option requires a PayPal Business Account. You will need to retrieve the API
key from the Paypal website:
1. Log in to your PayPal Live or Sandbox account.
2. Go to Settings.
3. Click Account Settings.
Manual
Paypal Express
4. Click Account Access.
5. In the API access section, click Update.
6. Under NVP/SOAP API integration (Classic), Manage API credentials.
7. You will see the View or Remove API Signature page. If you have already generated an
API Signature, you will see the details by clicking on “Show” next to API username, API
Password and Signature.
8. Create a PLU for the PayPal surcharge.
Field Description
Description The description the customer will see when
checking out.
Card minimum spend Set the minimum spend and surcharge. Enter the
PLU number of the surcharge into this field.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Paypal Express PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules
prohibit traders from levelling a surcharge
in relation to a wide variety of transactions,
and surcharges are limited in some other
circumstances.
User name
Password Obtained from Paypal.
Signature
Field Description
Test mode
Paypal sandbox - test PayPal standard transactions
before accepting real payments. Once testing has
been completed select No from the drop down list.
Drop down list options:
No
Yes
The SagePay Server option Requires an Opayo e-commerce account.
1. Create a PLU for the SagePay Server surcharge.
2. Contact Opayo to obtain your vendor id.
Field Description
Description The description the customer will see when checking out.
Card minimum spend Set the minimum spend and surcharge. Enter the PLU
number of the surcharge into this field.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Paypal Express PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules prohibit
traders from levelling a surcharge in relation to a
wide variety of transactions, and surcharges are
limited in some other circumstances.
SagePay Server
Field Description
Card schemes
Toggle the card scheme logos that show during the card
details entry screen. Radio button options:
Visa
Mastercard
Maestro
Amex
JCB
Diners
Discover
UnionPay
Save payment/card details
Toggles whether card tokens can be stored for quicker
repeat check outs. Contact Opayo to enable this service
for the account. Drop down list options:
No
Yes
Required billing fields
Disabling a field may result in payments failing, please
check the configuration of your merchant account before
making changes. Check box options:
First name
Last name
Address Line 1
Address Line 2
Town
County
Post code
Simulator mode
Drop down list options:
No
Yes
Field Description
Test mode
This is for testing new accounts. Select No when the
account goes live. Drop down list options:
No
Yes
Vendor Enter your vendor id supplied by Opayo.
The Paymentsense option requires a Paymentsense account.
1. Create a PLU for the Paymentsense surcharge.
Setting Description
Description The description the customer will see when checking out.
Card minimum spend Enter a minimum spend value.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Paypal Express PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules prohibit
traders from levelling a surcharge in relation to a
wide variety of transactions, and surcharges are
limited in some other circumstances.
Paymentsense
Although TouchTakeaway integrates with Paymentsense it is unsupported. A known bug
exists in the Paymentsense gateway in which duplicate payments can occur. If you choose
to use this payment all support queries must be directed to Paymentsense directly.
Setting Description
Card schemes
Toggle the card scheme logos that show during the card
details entry screen. Radio button options:
Visa
Mastercard
Maestro
Amex
JCB
Diners
Discover
UnionPay
Save payment/card details
Toggles whether card tokens can be stored for quicker
repeat check outs. Contact PaymentSense to enable this
service for the account. Drop down list options:
No
Yes
Required billing fields
Disabling a field may result in payments failing, please
check the configuration of your merchant account before
making changes. Check box options:
First name
Last name
Address Line 1
Address Line 2
Town
County
Post code
PresharedKey This can be obtained from the customers MMS portal
under the Security Information header.
MerchantID
This is usually the customer name followed by a series of
numbers and not the one you use to log into the MMS
account.
Password This is usually the eCommerce account password.
Setting Description
Test mode
This is for testing new accounts. Select No when the
account goes live. Drop down list options:
No
Yes
The Paymentsense Connect E option requires a Paymentsense account.
1. Create a PLU for the Paymentsense surcharge.
2. Obtain the webtoken key for the e-commerce account from Paymentsense.
Setting Description
Description The description the customer will see when checking
out.
Card minimum spend Enter a minimum spend value.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the PaymentSense Connect E PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules
prohibit traders from levelling a surcharge in
relation to a wide variety of transactions, and
surcharges are limited in some other
circumstances.
Paymentsense Connect E (Ps Connect E)
Setting Description
Save payment/card details
Toggles whether card tokens can be stored for quicker
repeat check outs. Contact PaymentSense to enable
this service for the account. Drop down list options:
No
Yes
User name
Obtained from PaymentSense.
Password
Jsonwebtoken The webtoken key for the e-commerce account
provided by Paymentsense.
Test mode
This is for testing new accounts. Select No when the
account goes live. Drop down list options:
No
Yes
Preauth
Certain businesses take a reauthorization i.e. hotels. If
this is applicable select Yes.
Payments can be authorised on the interface taking
monies before a successful transaction. This is then
confirmed by the TTA platform via the users device.
Please note: With preauth turned on do not
attempt to refund customers who have had
unsuccessful payment attempts on TTA where
money has already been taken.
Drop down list options:
No
Yes
Enable Apple Pay and Google Pay
If using Apple Pay and Google Pay select Yes. Drop
down list options:
No
Yes
The Mollie option requires a Mollie account.
Mollie
1. Create a PLU for the PaymentSense surcharge.
2. Obtain the api key for the e-commerce account from Mollie.
Setting Description
Description The description the customer will see when checking out.
Card minimum spend Enter a minimum spend value.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Mollie PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules prohibit
traders from levelling a surcharge in relation to a
wide variety of transactions, and surcharges are
limited in some other circumstances.
ApiKey Enter the API key provided by Mollie.
Setting Description
Description The description the customer will see when checking out.
Card minimum spend Enter a minimum spend value.
Paid
Determines whether to process payments during
checkout or collection. Dropdown list options:
No - pay upon collection
Yes - pay during checkout
Kiosk EFT
Setting Description
Enabled
Toggles whether to show this payment option at
checkout. Drop down list options:
No
Yes
Surcharge
Enter the Mollie PLU.
Check local consumer rights to determined
whether this is permitted. In the UK rules prohibit
traders from levelling a surcharge in relation to a
wide variety of transactions, and surcharges are
limited in some other circumstances.
Test mode
This is for testing new accounts. Select No when the
account goes live. Drop down list options:
No
Yes
Setting Description
Description This wording will be printed on the receipt and will
appear in the email.
Customer loyalty
Voucher redemption
Setting Description
Description This wording will be printed on the receipt and will
appear in the email.
Zero priced sale
Setting Description
Description This wording will be printed on the receipt and will
appear in the email.
Takeaway
Page manager
Add custom pages to your site and show them in the menu or hide them.
1. In TillConfig select TouchTakeaway > Page manager.
2. Select Add new page.
3. Create the page content:
Link images, hyperlinks, horizontal lines, dates, and times.
Make sure the text stands out using bold, italicize, or underline.
Select the text you wish to turn bold, italic, and more.
Create tables containing text.
If you are familiar with HTML you can edit the source code.
4. Save.
5. Select the home page.
6. Select whether to show the page in the menu.
7. Select multiple sites by dragging. Hold down CTRL to select non-sequential line items.
Page manager illustration
You can hide the page by deselecting "home page" and "show in menu". We recommend
that you check your pages on multiple devices to ensure the page displays correctly -
desktop, tablet and mobile.
Takeaway
Terms and conditions
Terms and Conditions apply to particular users of the website, usually when the user is required to
pay for a product or service.
1. In TillConfig select TouchTakeaway > Terms and conditions.
2. Populate the Generic, Paypal Express, and SagePay server privacy policies.
3. Update the "contact us" information.
Takeaway
Delivery options
Setup collection, delivery and eat in options:
1. In TillConfig select TouchTakeaway > Delivery Options.
2. Refer to the table below for guidelines.
3. Save.
Setting Description
Enabled
Determines whether a collection option is available.
Dropdown list options:
No - collection unavailable.
Yes - collection available.
Description This field is prefilled with the word Collection.
Status key
Select the appropriate EAT IN / TAKE OUT status key for
collection from the dropdown
menu of the status keys stored on your till. This will flag
the type of sale for tax reporting
purposes.
Payment methods permitted
Customer payment options. Check box options:
Paymentsense Connect E
Paymentsense
Mollie
Sagepay
Paypal
Cash on delivery/collection
Self service payments
Scheduling enabled
Enables the customer to order ahead of time, setting a
time and date for its collection. Dropdown list options:
No
Yes
Collection
Setting Description
Scheduling interval
The collection time interval in minutes:
5 minutes
10 minutes
30 minutes
Must be divisible by 60.
Scheduling offset
Specifies how far in advance of the chosen collection time
the kitchen receives the order. If collection is set to 18:00
and the scheduling offset is set to -30, Webshop will send
the the order to TouchPoint at 17:30.
It is best practice is to not set this so far in advance that it
receives the order on the previous days.
Enter a numeric value.
Scheduling preparation time
Specifies how far in advance of the collection time a
customer can select that time/slot. Setting this to 0 will
use the Scheduling Interval time. This prevents customers
ordering time slots that are inside of the preparation time.
If the order is set to 18:00 and the preparation time is 30
the latest the order can be placed is 17:30.
Enter a numeric value.
Scheduling times or slots
Toggles between individual times or timeslots. Drop
downlist options:
Times - 15:00, 15:30, 16:00
Slots - 15:00 to 16:00
Scheduling dates
Allow customers to order food days in advance. Dropdown
list options:
No
Yes
Scheduling days into the future
Enter a value to set the days in advance customers can
order.
Setting Description
Enable ASAP time slot
If as soon as possible is offered as a delivery time.
Dropdown list options:
No
Yes
Setting Description
Enabled
Determines whether a delivery option is available.
Dropdown list options:
No - delivery unavailable
Yes - delivery available
Description This field is prefilled with the word Delivery.
Status key
Select the appropriate EAT IN / TAKE OUT status key for
collection from the dropdown
menu of the status keys stored on your till. This will flag
the type of sale for tax reporting
purposes.
Payment methods permitted
Customer payment options. Check box options:
Paymentsense Connect E
Paymentsense
Mollie
Sagepay
Paypal
Cash on delivery/collection
Self service payments
Delivery
Setting Description
Delivery address lookup mode
Delivery Area List creates lists of eligible delivery areas.
Allowed postcodes list creates lists of eligible delivery
postcodes. Denied postcodes list is a list of postcodes to
avoid. Please refer to the Delivery Settings section for
further details. Dropdown list options:
Delivery Area List
Allowed/Denied Postcode List
Scheduling enabled
Enables the customer to order ahead of time, setting a
time and date for its collection. Dropdown list options:
No
Yes
Scheduling interval
The collection time interval in minutes:
5 minutes
10 minutes
30 minutes
Must be divisible by 60.
Scheduling offset
Specifies how far in advance of the chosen collection time
the kitchen receives the order. If collection is set to 18:00
and the scheduling offset is set to -30, Webshop will send
the the order to TouchPoint at 17:30.
It is best practice is to not set this so far in advance that it
receives the order on the previous days.
Enter a numeric value.
Scheduling preparation time
Specifies how far in advance of the collection time a
customer can select that time/slot. Setting this to 0 will
use the Scheduling Interval time. This prevents customers
ordering time slots that are inside of the preparation time.
If the order is set to 18:00 and the preparation time is 30
the latest the order can be placed is 17:30.
Enter a numeric value.
Setting Description
Scheduling times or slots
Toggles between individual times or timeslots. Drop
downlist options:
Times - 15:00, 15:30, 16:00.
Slots - 15:00 to 16:00.
Scheduling dates
Allow customers to order food days in advance. Dropdown
list options:
No
Yes
Scheduling days into the future Enter a value to set the days in advance customers can
order.
Enable ASAP time slot
If as soon as possible is offered as a delivery time.
Dropdown list options:
No
Yes
Eat in
Setting Description
Enabled
Determines whether an eat in option is available.
Dropdown list options:
No - eat in unavailable
Yes - eat in available
Description This field is prefilled with the wording Order at table.
Status key
Select the appropriate EAT IN / TAKE OUT status key for
collection from the dropdown
menu of the status keys stored on your till. This will flag
the type of sale for tax reporting
purposes.
Setting Description
Payment methods permitted
Customer payment options. Check box options:
Paymentsense Connect E
Paymentsense
Mollie
Sagepay
Paypal
Cash on delivery/collection
Self service payments
Delivery to tables A list of eligible tables.
Takeaway
Delivery settings
Setup collection, delivery and eat in options:
1. In TillConfig select TouchTakeaway > Delivery Options.
2. Refer to the table below for guidelines.
3. Save.
Setting Description
Site {{@642#bkmrk-0---head-office-upda}}
Suspend delivery methods
Used to suspend a delivery method. Checkbox
options:
Collection
Delivery
Eat in - order at table
Suspend until time?
Suspend delivery until a specific date and time. Leave
this field blank if the delivery method is suspended
indefinitely.
Redirect sales to site
Allow the sales from the current site to be redirected
and printed at an alternative one. A useful feature if
sales are in the same building.
Price shifts Allow 2nd, 3rd, and 4th prices to be displayed. Tick to
enable.
Mix & match
When enabled mix and match tables from
TouchOffice Web will be processed on the checkout
page. Tick to enable.
TouchPoint 2021 (73.15) or greater is
required. Recommended to TouchPoint 2021
(73.19) or later.
Gratuities
Will be added to the final amount to be paid. The till
receives the gratuity amount as a tip. Tick to enable.
You will need to configure the service charge settings.
TouchPoint 2021 (73.19) or greater is
required. Allow gratuity options on the
checkout order summary screen. Any amount
selected when prompted.
Setting Description
Android/iOS app notifications Send order status notifications from Commander to
the customers app. Tick to enable.
Suspend sales message
Sends service suspension alerts to the customer if the
business is too busy to fulfil new orders i.e. staff sick.
You can also suspend sales is in Commander. Delivery
Settings with pop up calender.
Name
Street address
This information is displayed when the menu is
selected.
Address locality
Address region
Postal code
Coordinates
Telephone
Timezone
Locale
Checkout terms The company terms and conditions in this space.
Custom message
A message can include last order times, opening
hours, delivery hours, allergens, etc. This message is
displayed as a banner across the bottom of the
screen.
Closed
Dropdown list options:
Yes
No
Closed message Displayed when the customer logs into the website.
Last order message The last order message.
Setting Description
Display till order status
This relates to the order status at the order
confirmation page.
In scenarios where Commander is being used
without a till you may wish to disable this as it
will never show that the order has been
received. Turn off will show order placed and
order received (when sent down to till).
Display TouchReservation page
If enabled this will show a link in the side menu to the
related TouchReservation site. This must be enabled
under the same alias.
Max orders per timeslot
Set the maximum number of orders you would like to process per delivery method and timeslot.
Global
Global will determine the total number of orders that
can be processed per timeslot, for example kitchen
capacity.
Delivery
Delivery limits the number of orders that will be
delivered. Ensure that you set the number of
deliveries that you will be able to handle.
Collection
Collection limits the number of orders to fulfill. Ensure
that you set the number of orders that your kitchen
will be able to handle.
Setting Description
Site logo
Site level logos are supported in the modern theme.
The logo is inherited from the generic branding logo.
Please upload a logo 500px width by 110px height.
This can be a JPEG or PNG format.
This will be displayed instead of any logo set on the
branding page.
Site branding layout illustration
Setting Description
Opening hours Add the start and end times under each day of the
week.
The last order time is different from collection
timeslot. Last orders is the last time the order
can be created and not the time the order will
be picked up. The order prep and opening
times should be configured in order for the
kitchen to be able to fulfil the order.
Delivery hours
Last Orders
Allow orders outside of opening/delivery hours
Commonly used with digital products such as Tickets
or Vouchers which can be sold anytime without the
store being open. Can be used in conjunction with
web category times to control which products are
available out of hours.
Price Level Scheduling
Price level scheduling is used to provide
discounted pricing for loyalty customers,
happy hour etc.
Use Price Level 1 if No Price in Current Level
This can be configured to switch product pricing from
one price level to
another. The Start Time will dictate when the change
occurs and the Switch to Price Level will govern which
level it changes to. You can use the Add Time button
to add additional schedule changes per day. It is
possible to use a different price level all the time on
TTA / ByTable by scheduling a change to a new level
without scheduling a change back again.
Will sell at zero price if there is no price level
set.
Price level scheduling hours Add the start and end times under each day of the
week.
Setting Description
If you selected Postcode Lookup on the Delivery
Options page, you will be able to select a delivery
area. Add each delivery area separately.
Takeaway
Custom times
Takeaway
Discounts
Discounts are triggered by promotional codes entered by the customer at checkout:
1. In TillConfig select TouchTakeaway > Discounts.
2. Refer to the table below for guidelines.
3. Save.
Setting Description
Discount code Enter a code that the customer will need to enter at
checkout.
Discount percentage Enter the discount percentage as a numeric value.
Start date Invokes the calendar widget.
End date Invokes the calendar widget.
Minimum spend The minimum amount that the customer needs to spend
in order to redeem the discount.
Voucher codes created in TouchOffice Web+ can be entered into the discount field. The
entered code will be checked against TouchOffice Web+ voucher codes first, and then
against the codes entered in the Discounts page.
The discounts page is limited to the Admin user only in Tillconfig.
Takeaway
Language
The language page consists of an extensive list of language and response messages in English,
Castellano, Cymraeg, Nederlands, and Dansk. Edit the terminology to suit your personal
preferences/industry. For example, replace "Sorry, the minimum spend for delivery hasn't been
met" with "Add an extra item to qualify for delivery."
1. In TillConfig select TouchTakeaway > Language.
2. Select the language from the dropdown list on the top right hand side of the page.
3. Make changes and save.
Messages are listed under the following headings:
Cart
Order
JS (response messages)
Store
Customer
Menu
The language page caters for all types of businesses - ordering from the table, a caravan
etc. Use Ctrl F to search for the phrase you are looking for.
Takeaway
Tickets
The selling of tickets through ByTable can be configured on a per site basis via the site picker at
the top of the page.
1. In TillConfig select TouchTakeaway > Tickets.
2. Enable Ticket Sales: when ticked this will show the PLUs linked to tickets in TouchOffice
Web.
3. Make changes and save.
Ticketing must be enabled for the alias and correctly configured in TouchOffice Web. Refer
to our Ticketing Reference Manual for details.
Takeaway
Interactive map
Takeaway
Customers
To configure customers:
1. In TillConfig select TouchTakeaway > Customers.
2. Refer to the table below for guidelines.
No Field name Description
1 Site
2 Disable customer self sign up
Enhanced customer sign up slides
3 Enable customer signup prompt
Select customer features in use
4 Customer features in use
1. Tickets
2. Reorders
3. Notifications
4. Store addresses
5. Earn points
6. Manage balances
Customer loyalty card
5 Hide loyalty card
Membership settings
6 Enabled
7 Allow expired customer login Allows the customer to log in.
8 Restart expired customer Allows the customer to log in and
renew their membership only.
Membership PLUs
Fields
No Field name Description
9 PLU selection Select the extension membership
PLU.
10 Extension duration (months) The duration that the membership is
extended by in months.
11 Customer group shift Shift the customer to another group
until they renew their membership.
Balance topups
12 Enable balance topups
13 PLU selection Select the balanced popup PLU.
Takeaway
Service charge
A service charge can be added on a per site basis.
1. In TillConfig select TouchTakeaway > Service Charge.
2. Select the site. Selecting Head Office will apply the changes to all sites.
No Field name Description
1 Site
2 Enabled Turn service charge on/off.
3 Compulsory
When enabled the service charge
cannot be removed when checking
out.
4 Percent
Set the percentage value of the order
that will be applied as a service
charge.
5 Service charge on all items Service charge being applied to the
value of all items in the sale.
Service charge on selective itemisers
6 Itemiser 1 Service charge applied to selective
itemiser 1.
7 Itemiser 2 Service charge applied to selective
itemiser 2.
8 Itemiser 3 Service charge applied to selective
itemiser 3.
9 Itemiser 4 Service charge applied to selective
itemiser 4.
Fields
No Field name Description
10 Itemiser 5 Service charge applied to selective
itemiser 5.
Service charge on delivery method:
1. Check local consumer rights to determined whether this is permitted.
2. TouchPoint 2021 (74.04) or greater is required.
11 Collection Select which method(s) the service
charge will be applied to.
12 Delivery Select which method(s) the service
charge will be applied to.
13 Eat in Select which method(s) the service
charge will be applied to.
Takeaway
Tax
1. In TillConfig select TouchTakeaway > Tax.
2. Refer to the table below for guidelines.
No Field name Description
1 Site
If you have different tax numbers for
different sites then select each site to
enter the VAT details.
2 VAT Number If VAT registered add your company
VAT number.
3 Tax Breakdown On Email Receipt
Tick to enable.
Enabling this setting is
recommended so that
companies and international
visitors can claim the tax
back. Enabling Tax
breakdown will also enable
tax symbol product
indicators. These symbols
can be edited in the
Language setting or set not
to show by omitting them
from the language.
Fields
Takeaway
Clear cache
TouchOffice Web updates take approximately 15 minutes before reflecting on TouchTakeaway /
ByTable / ByRetail. To have changes updated instantly, clear the cache in TillConfig using the new
Clear Cache feature:
1. In TillConfig select TouchTakeaway > Clear Cache.
2. Select Clear Cache once more.
3. You may need to clear your local browser cache.
Caching is a process that stores multiple copies of data or files in a temporary storage
location (or cache) to speed up site loading.
Takeaway
Vouchers
Voucher codes created in TouchOffice Web+ The entered code will be checked against
TouchOffice Web+ voucher codes and then against the codes entered in the Discounts page.
Please refer to the Voucher sale PLU documentation for further details - for further details.
1. In TillConfig select TouchTakeaway > Vouchers.
2. Enter a minimum amount and years until expiry.
3. Save.
Takeaway
SelfService
ICRTouch’s SelfService software turns a self-standing touch-screen device(kiosk) into a self service
point of sale device. In restaurants and fast food outlets the software allows customers to view
time based menus, ingredients and allergens prior to placing their order. The software processes
card payments, prints receipts and sends the order directly to the kitchen.
Please refer to the Self service reference guide for further details.
1. In TillConfig select TouchTakeaway > SelfService.
2. Select the site.
3. Hide or show customer detail fields.
Takeaway
ChefGuard
ChefGuard is a handy feature that throttles customer orders placed through ByTable to prevent
the kitchen from being overwhelmed. End users will be able to place orders but they will be
trickled down to the till and the kitchen at a rate set by you.
1. In TillConfig select TouchTakeaway > ChefGuard.
2. Refer to the table below for guidelines.
3. Save your changes.
Setting Description
Site
{{@642#bkmrk-0---head-office-upda}}
You are able to control customer orders on a site level.
Enabled Check box.
Maximum orders per minute Enter a numeric value.
Delay message threshold (minutes) If the delay is longer than this the customer will be alerted.
Minimum spend The minimum amount that the customer needs to spend
in order to redeem the discount.
Preparation time (minutes) This time will be added to the delay time when informing
the customer.
Message type
Dropdown list:
Timed (including the delay time)
Generic
TouchPoint MUST be running version 74.13 or above.
In Programming | System Programming | Kitchen Printers | YOUR PRINTER | **KP Configuration you
will see a setting called "Is Schedulable".
Enable this for all the printers that you want ChefGuard to work on.
For example you may want drinks orders to print regardless, so keep this setting to NO on your
drinks KP.
Takeaway
Commander
If your business is not ready to incorporate a fully-featured Point of Sale, the ICRTouch
Commander App offers a low-cost solution for managing orders as they arrive.
1. Email support@icrotuch.com to obtain your Webshop API key. Please mention your
company alias and that it is for use with the Commander app.
2. Go to https://commander.touchtakeaway.net/. Enter the API key to login.
1. In TillConfig select TouchTakeaway > Commander.
2. Select the site from the site drop down list.
3. Select Show detailed order tracking.
4. Select Auto Accept Orders if you prefer this option.
Using TouchTakeaway Commander
Configure Commander in TillConfig
5. Save.
Setting Description
Site {{@642#bkmrk-0---head-office-upda}}
Show detailed order tracking Show full order status tracking to the customer on the
order complete page.
Auto accept orders
Select whether orders are automatically accepted and
sent to the till, or whether they require accepting via
Commander. The setting is only available at site level.
Options:
On
Off
1. Switch back to the Commander app.
2. Select the top-left menu icon and select Settings to set your preferences.
Fields
Configure Commander
Pending Orders
Select the top-left menu icon and select "Pending Orders". The pending orders are shown with:
the time the order was placed
the time elapsed since
the price of the order
the order number
the type of order
1. Select an order to begin.
2. Manually change the status of the order from pending to accepted, cooking, ready for
collection/delivery, out for delivery, all complete, archived and rejected and then select
the submit button.
3. Select the customer history button.
Starting Orders
Takeaway
Analytics
Enable Google analytics. Refer to Google Help Center for additional information.
Takeaway
Order config
Edit the order number length and include a prefix and/or a suffix.
Customer order confirmation email illustration
Customer order app confirmation email illustration
Customer order app confirmation email illustration
Takeaway
Display additional product pop-up items during ByTable and TouchTakeaway checkout.
Associated items
1. Go to tillconfig.net.
2. Select Takeaway, then select Associated items.
Instructions
3. Select the Site from the dropdown list, then select Enabled.
4. Configure the Associated items in TouchOffice Web.
View the TouchOffice Web reference guide
Takeaway
FInd your TouchTakeaway URL:
1. In TillConfig select TouchTakeaway > View TouchTakeaway site.
TouchTakeaway site
Topupweb
Topupweb
Please refer to the TouchTopUp guide for details - https://docs.icrtouch.com/books/touchtopup.
TouchTopUp
Webshop
Webshop
Webshop range
programming
Speed up the setup of products by associating multiple products with List PLUs and Web
Categories:
1. In TillConfig select TouchTakeaway > Webshop range programming.
2. Select the filters and settings, and save:
Setting Description
Filters
Site
Select 0 - Head Office to update the settings on all
sites. Select individual sites to update settings on that
specific site.
From PLU
Enter the range of PLU's to import.
To PLU
Department Select the department from the dropdown list.
PLU group Select the PLU group from the dropdown list.
Show on Webshop This field needs to be ticked to show on the Webshop.
Web list links 1 - 6
Refer to the Web-list link Web-list link for guidance on
List PLUs created in TouchOffice Web.
Min Minimum quantity.
Max
Maximum quantity.
This is useful for restricting the number of addon's
that can be chosen for a selected product.
For example, you can offer 10 burger add-on
ingredients but allow the customer to select up
to 3.
3rd @ price Uses 3rd @ Price. Tick box if the price of the PLU uses
the 3rd @ Price from the till.
Web Category Select the Web Category from the drop down list.
Webshop
Web Sales Dashboard
View, print, and export web sales reports via the Web Sales Dashboard.
1. In TillConfig select TouchTakeaway > Web sales overview.
2. Refer to the table below for guidelines.
Field Description
Start Date Select the start and end date from the popup
calendar selector or enter the date in the relevant
field.
End Date Format: dd/mm/yyyy.
Start Time Select the start and end time from the popup time
selector. or enter the time in the relevant field.
End Time Format: hh:mm.
Site {{@642#bkmrk-0---head-office-upda}}
Order Status
Choose the order status from the drop down list:
All Orders
Pending Orders
Accepted Orders
Rejected Orders
Cooking Orders
Ready Orders
In Transit Orders
Delivered/Collected Orders
Report types
Sales overview
Field Description
Sales totals
Field Description
PLU sales
Field Description
Last 50 sales
Field Description
PLU sales by day
Field Description
Payment method usage
Field Description
Payment type totals
Field Description
Customer sales
Field Description
Sale locations (Google maps widget)
Customer details are entered by the customer during checkout.
Webshop
Filter, view, and sort sales by ID, reference number, site, etc. The View Sales report provides a list
of last errors for troubleshooting. Please refer to Troubleshooting for further details.
1. In TillConfig select TouchTakeaway > Webshop range programming > View sales.
2. Sort the results by column by selecting the relevant column header.
3. Select the ID to view the sale detail.
4. Search for a specific sales transaction using the search bar.
5. Select the number entries to return.
Column Description
ID This is an internal transaction reference number.
Reference
The reference number received by the customer is
either generated by ICRTouch or a 3rd party such as
Just Eat.
Site Select the site column to sort site numerically.
Name
This information is entered by the customer on
checkout.
Postcode
Phone
Items The total number of items sold. Field type: numeric.
Amount The value of the transaction.
View sales
Column Description
Method
The payment method is set up in the Tillconfig >
Payment Settings section.
Method type examples:
Paid
Cash on delivery
Type
The payment types are set up in the Tillconfig >
Payment Settings section.
Payment type examples:
Self-service payment
Sagepay
Paypal
Cash on delivery
Date Created Date and time.
Date Received Date and time.
Date Processed Date and time.
Date Scheduled Date and time.
Status
The sale status. Status examples:
Pending
Scheduled
Completed
Rejected
Column Description
Last error
Last error examples:
Receipt printer error
KP# Error Retry?
KV# Error Retry?
GET CHECK INDEX ERROR DURING FINAL
TIMEOUT WAITING FOR RESPONSE
ERROR CONNECTING TO MYSELF
TIMEOUT WAITING FOR REPLY FROM
MYSELF
NOT STARTED
SATELLITE
Unable to reach icrtouch-connect.com
No reply from icrtouch-connect.com
Invalid Server Response
NO CLERK BUFFER AVAILABLE
Ticket Printer # Error, Retry?
NO CHECK NUMBER DURING FINAL
The server is busy. Please try again
Unrectified errors will prevent new orders from
being processed and therefore need to be
addressed urgently.
Sample report illustration
Sample report illustration
Webshop
Filter, view, and sort stock by PLU, site and stock quantity.
1. In TillConfig select Webshop > View stock.
2.
View stock
Webshop
On hold.
Shopify
Webshop
Please refer to the Just Eat / Deliveroo Integration manual for details -
https://docs.icrtouch.com/books/deliveroojust-eat-integration-manual-zxK.
Just Eat
Webshop
Please refer to the Just Eat / Deliveroo Integration manual for details -
https://docs.icrtouch.com/books/deliveroojust-eat-integration-manual-zxK.
Deliveroo
Other settings
Other settings
From time to time it may be necessary to change the terminal access key to ensure that only the
intended sources are uploading data into the account. The terminal access key will be provided
when you sign up to the service and will need to be configured in the till:
1. In TillConfig select Terminal Access Key.
2. Select Generate New Key.
Terminal Access Key
3. In TouchOffice Web select > All prog > System programming > System configuration >
Access Key.
Generating a new key will stop sales being uploaded to TouchOffice Web until the new
terminal access key has been set in TouchPoint.
Other settings
The company settings are used for reporting purposes.
1. In TillConfig select Company Settings.
Field Description
Company information
Company name Insert your organisation's name.
Company Settings
Field Description
Business type
Drop down list:
Restaurant
Pub
Retail Misc
Cafe
Takeaway
Hotel
Hospitality Other
Speciality Shop
Ecig
Convenience Store
Demo Account
Don't Know
Test Account
Stadium
Holiday Park
Members Club
Bakery
NEEDS NEW TYPE
Charity Shop
Garden Centre
Insurance Company
Catering Company
Deli
Leisure Centre
Farm Shop
Hospital
Theme Park
Gift Shop
Supermarket
Newsagent
Tourist Info
Residential Home
Field Description
Company Website Enter the company URL
Company VAT number
Contact Information
Contact Name
Contact Tel
Address 1 Insert address line 1
Address 2 Insert address line 2
Address 3 Insert address town/city
Address 4 Insert county
Postcode Insert address postcode
Notifications email Insert the email address
Company branding
Company logo
Logo Requirements:
- Minimum dimensions of 500px
width by 150px height
- Aspect ratio of 10:3
- In PNG format
- File size less than 250KB
*Please allow a moment for this to take affect
Other settings
The section displays the licences that are linked to the account.
1. In TillConfig select Rental Licences. The following information is displayed:
Licence number
Serial number
PocketTouch licences
Till reported expiry
Expiry
Rental Licences
Other settings
1. In TillConfig select Change password.
Field Description
Existing password
New password
Confirm password
Change password
1. Log into www.tillconfig.net.
2. TillConfig will load and the homepage will be displayed.
Connecting QuickBooks in
TillConfig
3. Select OfficeWeb.
TillConfig illustration
4. Select QuickBooks under the TouchOffice Web heading. The QuickBooks Integration
screen will now be displayed.
QuickBooks integration illustration
5. Select the site you wish to integrate, and click Settings.
6. Select the live account or the sandbox account.
7. Select connect to QuickBooks. Your first login will require a verification code which will be
emailed to you by Intuit - enter the code when prompted.
QuickBook settings illustration
For further information on Quickbooks please refer to the Quickbooks integration manual.
Printing flags for receipts and checks
Receipt flags
Customer receipts
1. In TouchPoint select Program > All Prog > Function keys > Status key > Print receipt.
2. Scroll down to Customer receipts.
3. Configure the fields using the guidance in the table below:
No Setting Description
1 Descriptor The name associated with the
status key.
2 Update Keyboard Text?
When set to yes, any buttons set
as this key will have their
captions updated with the text in
the descriptor field above. This
will automatically change to yes
whenever you change the
descriptor field.
.
You can force the caption to be
updated by setting this to yes,
and can prevent it being updated
by setting it to no after you have
changed the text in descriptor.
3 Key type
This specifies the type of finalise
key. There may be different
programming options, dependent
on what type of finalise key has
been allocated.
Customer receipts
4 Item consolidation Consolidates all items of the
same type in the receipt.
5 Sort by group? The receipt will be printed in
group link order.
6 Sort by dept? The receipt will be printed in
department link order.
Printing flags for receipts
and checks
No Setting Description
7 Sort with totals only?
When sorted by dept or group,
only the group/dept totals will
print, with no details of individual
items.
8 Allow intermediate receipt
printing?
Allows printing of an intermediate
receipt whilst in the middle of a
sale.
No Setting Description
TouchPoint customer receipts illustration
No Setting Description
Check tracking bills
9 Item consolidation Consolidates all items of the
same type in the receipt.
10 Sort by group? The receipt will be printed in
group link order.
11 Sort by dept? The receipt will be printed in
department link order.
12 Sort with totals only?
When sorted by department or
group, only the
group/department totals will
print, with no details of individual
items.
13 Opens tables? When set to Yes, tables rather
than checks will be opened.
14 Print date/time separator?
When set upon reopening a
check/table a date time seperator
is displayed in the reg window.
15 Bill prints only?
When set all bill prints are
previewed on the screen with the
option to print (check master
only).
16 Reprints last EFT receipt?
When EFT receipts are being
printed from ICRTouch, this will
reprint the last one issued.
17 Use receipt printer 2?
When set receipts/bills will be
printed from the device
connected to receipt printer 2 in
device connections.
No Setting Description
TouchPoint check tracking bills illustration
ICRTouch has many functions for automatically issuing receipts.
These are great 99% of the time, however there are times when the customer doesn't want them
and it can be difficult to track down what is generating them. Check the following:
1. In TouchPoint select Program > All Prog > System programming > System flags > Order
control > Automatically issue a receipt for KP items.
When set to yes, if there are any items heading towards the kitchen printer then a receipt
is issued automatically regardless of the setting of the receipt switch.
When the receipt is switched on a printer icon will be displayed on the TouchPoint till next to
the clock.
Other receipt settings
2. In TouchPoint select Program > All Prog > System programming > System flags > Check
Tracking > Auto receipt for checks?
When set to yes, if a check or table is used then a receipt is issued automatically
regardless of the setting of the receipt switch.
3. In TouchPoint select Program > All Prog > System programming > System flags > Check
Tracking > Automatic full bill at finalisation?
When set to yes, when a check or table is cashed off a full bill is issued for that check or
table. This is separate from a receipt and can be issued automatically as well as a receipt,
sometimes giving the impression of 2 receipts being issued.
4. In TouchPoint select Program > All Prog > System programming > System flags > 3rd
Party customer > Auto receipt when customer is used?
When set to yes, if a 3rd party customer is used, eg Fidelity Instant Loyalty, then a
receipt is automatically issued.
5. In TouchPoint select Program > Customers > Customer Control > Automatically issue a
receipt for customer?
Again, when a customer is logged on during the sale a receipt is issued automatically.
6. In TouchPoint select Program > Function Keys > Finalise Key > Finalise Key > Automatic
receipt printing?
When set to yes a receipt is issued if this finalise key is used. The illustration below
toggles Automatic Receipt Printing for CASH.
7. In TouchPoint select Program > Function Keys > Finalise Key > Finalise Key > Print extra
ticket with a signature strip?
When set to yes, if this finalise key is used at any time during the sale then an extra
receipt is issued with the signature strip on it (user configurable through receipt
messages). Can be used for validations kept for account posting etc. The illustration
below toggles Print extra ticket with signature strip for CASH.
TouchPoint 2024
Keyboard programming
Button shapes and sizes
Finalise button shapes
Colours and the 60-30-10% rule
Text buttons and the | character
Sizing images for the home screen level
Sizing images for the home screen level - new grid
Sizing images for sales and other screen level buttons
Sizing images for sales and other screen level buttons - new grid
Sizing images for view PLU and prompt with picture
Replace the splash screen
Replace the reseller image
Reseller window planner
Replace the screensaver images
Sales mode icons
Customising your
TouchPoint 2024 till
Colour palette
Navigation
Planner
Programming mode - useful tips
The TouchPoint grid
Stock button shapes
Date tutorial
Time tutorial
Clerk name tutorial
Numeric keypad tutorial
Canva lesson 1
Third party disclaimer
PartnerPOS logo
The following pages provide guidelines to help you customise TouchPoint 2024 using button shape
styles and button shape sizes, images, icons, logos and colour schemes.
All three versions of the new skin are available for download on The Forum:
1920 x 1080 - https://forum.icrtouch.com/files/file/603-touchpoint-skin-2024-
1920x1080px/
1366 x 768 - https://forum.icrtouch.com/files/file/604-touchpoint-skin-2024-1366x768px/
1024 x 768 - https://forum.icrtouch.com/files/file/605-touchpoint-skin-2024-1024x768px/
There are some significant enhancements to the skin - we recommend you spend time
familiarising yourself with these changes to achieve the best quality (button shapes, sizes, colours,
usage, and naming convention). Features and enhancements include:
1. A highly customisable contemporary interface
TouchPoint 2024
2. New icons
3. 32 home mode buttons in 8 button shape styles
4.
New button shape styles to apply to all screen level buttons.
5. Improved button shape naming convention
6. New horizontal and vertical button shape sizes
7. Easily customisable.
8. New finalise button shapes
9. Improved pop up messages and windows
10.
Improved keyboard programming
11. Fresh new colour palette
12. Image organisation
13. Settings
14. Asset packs
Periodically we will be releasing asset packs (on the forum) to provide additional styling
options.
15. Footer device status icons
NAME ICON NAME ICON
Receipt on Receipt off
NAME ICON NAME ICON
Data both No data
Data out Data in
On mains Charging
NAME ICON NAME ICON
Battery 100% Battery 80%
Battery 60% Battery 40%
Battery 20% Battery 0%
The purpose of the tutorials is to illustrate how easy it is to change TouchPoint components.
1. Reseller window using the Planner
Quick and easy tutorials:
2. Date tutorial.
3. Time tutorial.
4. Clerk name tutorial.
5. Numeric keypad tutorial.
6. Create a reseller image using Canva.
Keyboard programming allows you to easily customise the buttons on your till to achieve the
desired functionality and look.
Keyboard programming
1. In TouchPoint select Programming > Keyboard.
Program the keyboard
2. The keyboard programming panel is invoked. Move the panel by sliding it across the
screen to reveal buttons underneath.
Screen levels
1. Level 1 - home mode, level 2 - x mode, level 3 - z mode, level 4 - manager mode, level 5 -
list PLU, level 6 - 9 are reserved system levels. Sales mode levels start from level 10.
2. Select the desired screen level to begin customising the buttons on that level.
Allows you to change the selected button type.
1. Select a button - the button changes colour when selected.
2. Select the button type:
File type
PLU
PLUs include products and services that are being sold.
Finalise Keys
Finalise keys include £5, £10, £20, £50, cheque, credit card, cash, hospitality etc.
Transaction keys
Transaction keys include new balance, error correct, cancel etc.
Status key
Status keys include sign on, menu level, open tables etc.
Fixed key
Fixed keys include numeric keys, multiply buttons etc.
Function key wizard
This simplifies adding list PLU's and menu level shift keys to the keyboard.
No function
Disables the button.
Allows you to change the button font.
1. Select a button - the button will change colour when selected.
2. Select the font.
Font
The name of the button shape identifies the shade/function and whether it is intended to be used
with a single cell or merged cells.
1. Select a button - the button will change colour when selected.
2. Select the shape.
3. Refer to button shapes and sizes for an explanation of the available shapes.
Button shape
Change the background colour.
1. Select a button - the button will change colour when selected.
2. Select the background colour from the colour picker. We control the background colour
by applying an alpha channel and different shades within the button shape. This method
increases the number of colours that can be applied to a button (1,536 colours). As the
colour picker does not represent the final button colour - you may find it easier to select
the colour by navigating to screen level 30, and copying the button from one of the rows.
Select programming, keyboard programming and then select level 30. Scroll through the
screen levels to view all of the available colours.
Background colour
Text colour
Allows you to change the text colour.
1. Select a button - the button will change colour when selected.
2. Select the desired colour from the colour picker.
Allows you to change the button description.
1. Select a button - the button will change colour when selected.
2. Enter the new description.
Edit text
3. To force a new line between text press the blue shift key followed by the | key.
Select an image.
1. Select a button - the button will change colour when selected.
2. Select the image.
3. Refer to the sizing pages for guidelines when creating your own button images.
Image
Merge cells to create a bigger button.
1. Select 2 or more cells from left to right and from top to bottom - the cell will change
colour when selected.
2. Select merge.
3. Select the correct button shape.
Split cells that have been merged.
1. Select a cell - the cell will change colour when selected.
2. Select split.
3. Select the correct button shape.
Undo and redo the previous action.
Merge
Split
Undo and redo
Button shapes and sizes
Button shapes are applied to buttons across all levels including the home level. They effectively:
1. Create a compatible colour scheme for your till.
2. Adhere to the 60, 30, 10 % design rule.
3. Maintain the aspect ratio of the border.
4. Provide unlimited design options.
5. Draw attention to buttons.
6. Help the user navigate screen levels and functionality.
7. Show the user when the button is in an up (not selected) or down state (selected).
The buttons shape name identifies the style and whether it has been sized for a single cell or
merged cells (width and height).
There are 8 button shape styles. These shapes can be applied to any screen level including Home
mode. You can apply any of the 256 background colours to each shape style (except the default
shape which is a dark blue). Select a single colour across the other 7 shapes to create a
harmonious colour palette. The button shape colour changes when selected. Button shapes are
visible when applied to text buttons and buttons with transparent backgrounds (PNG files).
Button shape styles
We have applied an alpha channel to each of the button shapes - this is a special channel that
handles transparency. This allows us to adjust the opacity level of the image to make areas
translucent or totally see-through.
Scroll down to the list of button shapes for more details.
There are 11 button shape sizes that are applied to a single or merged cell. It is important to
select the correct shape size in order to maintain the aspect ratio. If the incorrect shape is applied
the border will distort.
1. Correct - button style 11. Default home w4h2
We applied button shape 11. Default home w4h2 to the settings button on the home
page. This button consists of 8 merged cells - 4 across and 2 down.
Alpha channels
Button shape sizes
2. Incorrect - button style 1. Default w1h1
We applied button Shape 1. Default w1h1 to the settings button - the lines are blurred as
this is the incorrect shape for the button size.
Text can be wrapped onto the next line to fit onto the button.
Wrap text
Other levels button shape sizes
Home mode button shape sizes
The buttons below are illustrated in a variety of colours in order to demonstrate how customizable
they are.
List of button shapes and usage
If the numbering is not exactly the same it is because we are adding buttons that will be
made available in an asset pack.
Default
The default shape is dark blue with a 15% opacity, 1-pixel white border. This shape has been used across most of the
buttons to create a harmonious, neutral palette. It is not possible to change the colour of this shape in TouchPoint.
Description
1. Use across 60% of the buttons to adhere to the 60, 30, 10% design rule.
2. Use on buttons you do not want to draw attention to.
3. Use on inactive navigation buttons.
4. Use on buttons with a lighter image or text.
Usage
1. Created by our graphic designers.
2. The background is a neutral colour that goes with all other colours.
3. Can be edited outside of TouchPoint to:
Change to a different brand colour.
Change the theme from dark to light.
Enforce the 60, 30, 10% design rule.
Advantages
No Button shape name File name Style Cells width and
height
No of cells
1 Default w1h1 Defaultw1h1.
png Default w1h1 1
2 Default w2h1 Defaultw2h1.
png Default w2h1 2
3 Default w2h2 Defaultw2h2.
png Default w2h2 4
4 Default w3h2 Defaultw3h2.
png Default w3h2 6
5 Default w1h2 Defaultw1h2.
png Default w1h2 2
6 Default w1h3 Defaultw1h3.
png Default w1h3 3
7 Default w1h4 Defaultw1h4.
png Default w1h4 4
8 Default w9h2 Defaultw9h2.
png Default w9h2 18
9 Default home
w1h1
Default-homew1h1.
png Default w1h1 1
10 Default home
w1h2
Default-homew1h2.
png Default w1h2 2
11 Default home
w2h2
Default-homew2h2.
png Default w2h2 4
12 Default home
w4h2
Default-homew3h2.
png Default w3h2 6
The stripe shape is a lighter neutral blue with a 15% opacity, 1-pixel white border and a 5-pixel coloured stripe at the
bottom. Apply any of the 256 colours to this shape.
Description
1. Use across 30% of the buttons to adhere to the 60, 30, 10% design rule.
2. Use across PLU buttons or active navigation buttons.
Usage
Stripe
1. Created by our graphic designers.
2. The background is a neutral colour that goes with all other colours.
3. The stripe adds a pop of colour.
4. Can be edited outside of TouchPoint to:
Change to a different brand colour.
Change the theme from dark to light.
Advantages
No Button shape name File name Style
Cells width and
height
No of cells
13 Stripe w1h1 Stripe-w1h1.png Stripe w1h1 1
14 Stripe w2h1 Stripe-w2h1.png Stripe w2h1 2
15 Stripe w2h2 Stripe-w2h2.png Stripe w2h2 4
16 Stripe w3h2 Stripe-w3h2.png Stripe w3h2 6
17 Stripe w1h2 Stripe-w1h2.png Stripe w1h2 2
18 Stripe w1h3 Stripe-w1h3.png Stripe w1h3 3
19 Stripe w1h4 Stripe-w1h4.png Stripe w1h4 4
20 Stripe home
w1h1
Stripe-homew1h1.
png Stripe w1h1 1
21 Stripe home
w1h2
Stripe-homew1h2.
png Stripe w1h2 2
22 Stripe home
w2h2
Stripe-homew2h2.
png Stripe w2h2 4
23 Stripe home
w4h2
Stripe-homew3h2.
png Stripe w3h2 6
Active
The active shape has a white 1-pixel border - this shape can be applied to a navigation button or a button that you want
to draw attention to. Apply any of the 256 colours to this shape.
Description
1. Use on buttons you want to draw attention to.
2. Use on active navigation buttons.
Usage
1. Helps create a compatible colour scheme.
2. 256 colours can be selected in TouchPoint.
Advantages
No Button shape name File name Style
Cells width and
height
No of cells
24 Active w1h1 Active-w1h1.png Active w1h1 1
No Button shape name File name Style
Cells width and
height
No of cells
25 Active w2h1 Active-w2h1.png Active w2h1 2
26 Active w2h2 Active-w2h2.png Active w2h2 4
27 Active w3h2 Active-w3h2.png Active w3h2 6
28 Active w1h2 Active-w1h2.png Active w1h2 2
29 Active w1h3 Active-w1h3.png Active w1h3 3
30 Active w1h4 Active-w1h4.png Active w1h4 4
31 Active home
w1h1
Active-homew1h1.
png Active w1h1 1
32 Active home
w1h2
Active-homew1h2.
png Active w1h2 2
33 Stripe home
w2h2
Stripe-homew2h2.
png Active w2h2 4
34 Active home
w4h2
Active-homew3h2.
png Active w3h2 6
Inactive
The inactive shape is a slightly darker shade than the active shape. It has a 15% opacity, 1-pixel white border. Apply
any of the 256 colours to this shape.
Description
1. Use across 60% of the buttons to adhere to the 60, 30, 10% design rule.
2. Use on buttons you do not want to draw attention to.
3. Use on inactive navigation buttons.
Usage
1. Helps create a compatible colour scheme.
2. 256 colours can be selected in TouchPoint.
Advantages
No Button shape name File name Style
Cells width and
height
No of cells
35 TouchPoint name Inactivew1h1.
png Active w1h1 1
36 Inactive w2h1 Inactivew2h1.
png Active w2h1 2
37 Inactive w2h2 Inactivew2h2.
png Active w2h2 4
38 Inactive w3h2 Inactivew3h2.
png Active w3h2 6
39 Inactive w1h2 Inactivew1h2.
png Active w1h2 2
40 Inactive w1h3 Inactivew1h3.
png Active w1h3 3
41 Inactive w1h4 Inactivew1h4.
png Active w1h4 4
42 Inactive home
w1h1
Inactive-homew1h1.
png Active w1h1 1
43 Inactive home
w1h2
Inactive-homew1h2.
png Active w1h2 2
44 Inactive home
w2h2
Inactive-homew2h2.
png Active w2h2 4
45 Inactive home
w4h2
Inactive-homew3h2.
png Active w3h2 6
Light
The light shade shape has a 15% opacity, 1-pixel white border. Apply any of the 256 colours to this shape.
Description
1. Use on buttons with a darker image or text.
Usage
1. Helps create a compatible colour scheme.
2. 256 colours can be selected in TouchPoint.
Advantages
No Button shape name File name Style
Cells width and
height
No of cells
46 Light w1h1 Light-w1h1.png Active w1h1 1
47 Light w2h1 Light-w2h1.png Active w2h1 2
No Button shape name File name Style
Cells width and
height
No of cells
48 Light w2h2 Light-w2h2.png Active w2h2 4
49 Light w3h2 Light-w3h2.png Active w3h2 6
50 Light w1h2 Light-w1h2.png Active w1h2 2
51 Light w1h3 Light-w1h3.png Active w1h3 3
52 Light w1h4 Light-w1h4.png Active w1h4 4
53 Light home w1h1 Light-homew1h1.
png Active w1h1 1
54 Light home w1h2 Light-homew1h2.
png Active w1h2 2
55 Light home w2h2 Light-homew2h2.
png Active w2h2 4
56 Light home w4h2 Light-homew3h2.
png Active w3h2 6
Medium
The medium shade shape has a 15% opacity, 1-pixel white border. Apply any of the 256 colours to this shape.
Description
1. Use across buttons with light or dark coloured text.
2. Use on buttons with a lighter or darker image or text.
Usage
1. Helps create a compatible colour scheme.
2. 256 colours can be selected in TouchPoint.
Advantages
No Button shape name File name Style
Cells width and
height
No of cells
57 Medium w1h1 Mediumw1h1.
png Active w1h1 1
58 Medium w2h1 Mediumw2h1.
png Active w2h1 2
59 Medium w2h Medium-w2h.png Active w2h2 4
60 Medium w3h2 Mediumw3h2.
png Active w3h2 6
61 Medium w1h2 Mediumw1h2.
png Active w1h2 2
62 Medium w1h3 Mediumw1h3.
png Active w1h3 3
63 Medium w1h4 Mediumw1h4.
png Active w1h4 4
64 Medium home
w1h1
Medium-homew1h1.
png Active w1h1 1
65 Medium home
w1h2
Medium-homew1h2.
png Active w1h2 2
66 Medium home
w2h2
Medium-homew2h2.
png Active w2h2 4
67 Medium home
w4h2
Medium-homew3h2.
png Active w3h2 6
The dark shade shape has a 15% opacity, 1-pixel white border. Apply any of the 256 colours to this shape.
Description
1. Use across buttons with light to dark coloured text.
2. Use on buttons with a lighter or darker image or text.
Usage
Dark
1. Helps create a compatible colour scheme.
2. 256 colours can be selected in TouchPoint.
Advantages
No Button shape name File name Style
Cells width and
height
No of cells
68 Dark w1h1 Dark-w1h1.png Active w1h1 1
69 Dark w2h1 Dark-w2h1.png Active w2h1 2
70 Dark w2h2 Dark-w2h2.png Active w2h2 4
71 Dark w3h2 Dark-w3h2.png Active w3h2 6
72 Dark w1h2 Dark-w1h2.png Active w1h2 2
73 Dark w1h3 Dark-w1h3.png Active w1h3 3
74 Dark w1h4 Dark-w1h4.png Active w1h4 4
75 Dark home w1h1 Dark-homew1h1.
png Active w1h1 1
76 Dark home w1h2 Dark-homew1h2.
png Active w1h2 2
77 Dark home w2h2 Dark-homew2h2.
png Active w2h2 4
78 Dark-home-w4h2 Dark-homew3h2.
png Active w3h2 6
Border
The border shape is a lighter neutral blue with a 15% opacity, 5-pixel coloured border. Apply any of the 256 colours to
this shape.
Description
1. Use across buttons with light to medium coloured text.
2. Use on buttons with a lighter image or text.
3. Use to draw attention to a button.
Usage
1. Created by our graphic designers.
2. The background is a neutral colour that goes with all other colours.
3. The border adds a pop of colour.
4. Can be edited outside of TouchPoint to:
Change to a different brand colour.
Change the theme from dark to light.
Advantages
No Button shape name File name Style
Cells width and
height
No of cells
79 Border w1h1 Border-w1h1.png Active w1h1 1
80 Border w2h1 Border-w2h1.png Active w2h1 2
81 Border w2h2 Border-w2h2.png Active w2h2 4
82 Border w3h2 Border-w3h2.png Active w3h2 6
83 Border w1h2 Border-w1h2.png Active w1h2 2
84 Border w1h3 Border-w1h3.png Active w1h3 3
85 Border w1h4 Border-w1h4.png Active w1h4 4
86 Border home
w1h1
Border-homew1h1.
png Active w1h1 1
87 Border home
w1h2
Border-homew1h2.
png Active w1h2 2
88 Border home
w2h2
Border-homew2h2.
png Active w2h2 4
89 Border home
w4h2
Border-homew3h2.
png Active w3h2 6
The cash, cheque, credit card, card, and hospitality buttons shapes are dark blue with a 15%
opacity, 1-pixel white border and white text. When the button is selected or the transaction is
completed the background changes to a light blue - the text or image changes to the colour
selected as the background colour.
This feature is enabled by showing the end of sale total window.
Finalise button shapes
1. In TouchPoint, select Settings > Keyboard.
2. Select the finalise button.
3. Select the cash, cheque, credit card, card, or hospitality button.
4. Delete the text.
5. Delete the image (if there is one).
6. Select a background colour.
7. Select Programming > System programming > System flags > System control 1.
8. Scroll down to Show end of sale total window and select yes.
9. Open DlgTotalWindow.xml in a text editor.
10. Change the auto clear time in seconds. In the example below we changed the auto clear
time to 2 seconds.
<AUTOCLEARTIME>2</AUTOCLEARTIME>
Instructions
1. The background is a neutral colour that goes with all other colours.
2. Easier to see when the transaction has been finalized.
Advantages
No Button shape
name File name Style Cells width and
height No of cells
90 Cash w2h2 Cash-w2h2.png Cash w2h2 4
91 Cheque w2h2 Chequew2h2.
png Cheque w2h2 4
92 Credit card w2h2 Credit-cardw2h2.
png Credit card w2h2 4
93 Card w2h2 Card-w2h2.png Card w2h2 4
94 Hospitality w2h2 Hospitalityw2h2.
png Hospitality w2h2 4
Cash, cheque, credit card, card, and hospitality button shapes
The screen below depicts the cash button in the balanced / down state.
Balanced state
There are 256 shape colours that can be applied to 88 button shapes (you cannot change the
colour of the default shapes in the keyboard editor). Select the colour from the keyboard
programming panel or navigate to screen level 30 to scroll through the colours and shapes.
1. In TouchPoint select Programming > Keyboard programming.
2. Select the button and then select the background colour from the keyboard programming
panel.
3. Select the background colour button.
Colours and the 60-30-10%
rule
Selecting a colour
Shades
The examples below illustrate the shades that are created when applying different button shapes
and a single colour to a transparent image.
Steel blue
Burnt orange
Lime green
Gold dust
A great way to create a harmonious, balanced colour scheme is to use the 60-30-10% rule. The
rule states that 60% of the screen should be a dominant colour, 30% should be the secondary
colour and the last 10% should be an accent colour.
1. 60% - the primary or dominant colour - in our example below the dominant colour is dark
blue.
2. 30% - the secondary colour - we used a lighter shade of blue on the PLU buttons. This
colour complements the dominant colour.
3. 10% - the accent colour - this is a pop of vibrant colour that creates interest and contrast.
These are buttons that we want to stand out i.e. the current screen level and the text
colour on the cash button. To achieve the look below we used the default, active, stripe,
and cash button shapes.
The 60-30-10% rule
You can apply any of the 256 colours to the button text. You may want to use a dark text colour on
the lighter backgrounds and a light colour on the darker backgrounds.
To force a new line between text press the blue shift key followed by the | key. The line will break
at the position of the | character. You can use the | key 3 times on a button
Text buttons and the |
character
The | character
Result:
In the example below we wrapped the text on the lock and cash buttons.
Screen level 0 is reserved for the home mode. From this screen level you can access sales mode,
end of day, manager mode, refund mode, programming and close till down.
You can create your own images to use with the button shapes.
1. Images should be created using the sizes in the table.
Resolution Home w1h1 Home w1h2 Home w2h2 Home w4h2
1024 x 768 110 px x 65 px 110 px x 136 px 226 px x 136 px 458 px 136 px
1366 x 768 110 px x 65 px 110 px x 136 px 226 px x 136 px 458 px 136 px
1920 x 1080 158 px x 92 px 158 px x 197 px 321 px x 197 px 657 px x 197 px
Sizing images for the home
screen level
The home screen level
Sizing images for the home screen level
2. Create the image in png format with a transparent background with no border. If
exporting images from Adobe Illustrator make sure the image opacity is 100%.
3. Button shapes are only visible when applied to images with a transparent background
(png files).
4. It is helpful to identify how many cells the image is for by including the information in the
image name:
No File name Cells width and height No of cells
1 Sales-home-w1h1.png w1h1 1
2 Sales-home-w1h2.png w1h2 2
3 Sales-home-w2h2.png w2h2 4
4 Sales-home-w3h2.png w4h2 6
5. If the image name is longer than 20 characters the image will not display on the button.
6. Place the images in the ICRTouch > skin > images folder and restart TouchPoint.
7. Select Programming > Keyboard.
8. Select home level from the Keyboard programming panel.
9. Select the image button and then select your image.
10. Select the Button shape.
Screen level 0 is reserved for the home mode. From this screen level you can access sales mode,
end of day, manager mode, refund mode, programming and close till down.
You can create your own images to use with the button shapes.
1. Images should be created using the sizes in the table.
Resolution Home w1h1 Home w1h2 Home w2h2 Home w4h2
1024 x 768 116 px x 71 px 116 px x 142 px 232 px x 142 px 464 px 142 px
1366 x 768 116 px x 73 px 116 px x 146 px 232 px x 146 px 464 px 146 px
1920 x 1080 164 px x 98 px 164 px x 196 px 328 px x 196 px 656 px x 196 px
Sizing images for the home
screen level - new grid
The home screen level
Sizing images for the home screen level
2. Create the image in png format with a transparent background with no border. If
exporting images from Adobe Illustrator make sure the image opacity is 100%.
3. Button shapes are only visible when applied to images with a transparent background
(png files).
4. It is helpful to identify how many cells the image is for by including the information in the
image name:
No File name Cells width and height No of cells
1 Sales-home-w1h1.png w1h1 1
2 Sales-home-w1h2.png w1h2 2
3 Sales-home-w2h2.png w2h2 4
4 Sales-home-w3h2.png w4h2 6
5. If the image name is longer than 20 characters the image will not display on the button.
6. Place the images in the ICRTouch > skin > images folder and restart TouchPoint.
7. Select Programming > Keyboard.
8. Select home level from the Keyboard programming panel.
9. Select the image button and then select your image.
10. Select the Button shape.
The following image guideline are for the following screen levels:
1 - x mode.
2 - y mode.
3 - manager mode.
4 - List PLU.
10 + - sales levels.
You can create your own unique images to use with the button shapes.
1. Images should be created using the sizes in the table.
1024 x 768 61 px x 56 px 124 px x 56 px 124 px x 114
px
187 px x 114
px
565 px x 114
px
1366 x 768 65 px x 56 px 132 px x 56 px 132 px x 114
px
199 px x 114
px
601 px x 114
px
1920 x 1080 92 px x 77 px 188 px x 77 px 188 px x 158
px
284 px x 158
px
844 px x 158
px
Cell width x
height
Cell width x
height
Cell width x
height
Cell width x
height
Cell width x
height
Screen resolution w1h1 w2h1 w2h2 w3h2 w9h2
Sizing images for sales and
other screen level buttons
Sizing images
2. When sizing images for vertically merged cells follow the sizes below:
Screen resolution w1h2
width x height
w1h3
width x height
w1h4
width x height
1024 x 768 61 px 114 px 61 px x 172 px 61 px x 230 px
1366 x 768 65 px x 114 px 65 px x 172 px 65 px x 230 px
1920 x 1080 92 px x 158 px 92 px x 239 px 92 px x 320 px
1. Create the image in png format with a transparent background with no border. Button
shapes are only visible when applied to images with a transparent background (png files).
Instructions
2. Make sure the images are the correct size for the button and the screen resolution. If the
image size is incorrect the image will pixelate.
3. If exporting images from Adobe Illustrator make sure the image opacity is 100%.
4. It is helpful to identify the image colour and whether it has been sized for a single or
merged cell by including the information in the image name:
No File name Cells width and height No of cells
1 Table-white-w1h1.png w1h1 1
2 Table-white-w2h1.png w2h1 2
3 Table-white-w2h2.png w2h2 4
4 Table-white-w3h2.png w3h2 6
5 Table-white-w1h2.png w1h2 2
6 Table-white-w1h3.png w1h3 3
7 Table-white-w1h4.png w1h4 4
5. Place the images in the ICRTouch > skin > images folder and restart TouchPoint.
6. Select Programming > Keyboard.
7. Select screen level from the Keyboard programming panel.
8. Select the image button and then select your image.
9. Select the button shape.
When you include image details in the image name it makes it easier to select the correct size and
colour within TouchPoint. Most users do not have access to the operating system and can't
preview the image before selecting it. Naming the images saves time as the user doesn't have to
scroll through all of the images to select the right one.
Naming images
The following image guideline are for the following screen levels:
1 - x mode.
2 - y mode.
3 - manager mode.
4 - List PLU.
10 + - sales levels.
You can create your own unique images to use with the button shapes.
1. Images should be created using the sizes in the table.
1024 x 768 63 px x 58 px 126 px x 58 px 126 px x 116
px
189 px x 116
px
567 px x 116
px
1366 x 768 68 px x 59 px 136 px x 59 px 136 px x 118
px
204 px x 118
px
816 px x 118
px
1920 x 1080 96 px x 81 px 192 px x 81 px 192 px x 162
px
288 px x 162
px
864 px x 162
px
Cell width x
height
Cell width x
height
Cell width x
height
Cell width x
height
Cell width x
height
Screen resolution w1h1 w2h1 w2h2 w3h2 w9h2
Sizing images for sales and
other screen level buttons -
new grid
Sizing images
2. When sizing images for vertically merged cells follow the sizes below:
Screen resolution w1h2
width x height
w1h3
width x height
w1h4
width x height
1024 x 768 63 px 116 px 63 px x 174 px 63 px x 232 px
1366 x 768 68 px x 118 px 68 px x 177 px 68 px x 236 px
1920 x 1080 96 px x 162 px 96 px x 243 px 96 px x 324 px
1. Create the image in png format with a transparent background with no border. Button
shapes are only visible when applied to images with a transparent background (png files).
Instructions
2. Make sure the images are the correct size for the button and the screen resolution. If the
image size is incorrect the image will pixelate.
3. If exporting images from Adobe Illustrator make sure the image opacity is 100%.
4. It is helpful to identify the image colour and whether it has been sized for a single or
merged cell by including the information in the image name:
No File name Cells width and height No of cells
1 Table-white-w1h1.png w1h1 1
2 Table-white-w2h1.png w2h1 2
3 Table-white-w2h2.png w2h2 4
4 Table-white-w3h2.png w3h2 6
5 Table-white-w1h2.png w1h2 2
6 Table-white-w1h3.png w1h3 3
7 Table-white-w1h4.png w1h4 4
5. Place the images in the ICRTouch > skin > images folder and restart TouchPoint.
6. Select Programming > Keyboard.
7. Select screen level from the Keyboard programming panel.
8. Select the image button and then select your image.
9. Select the button shape.
When you include image details in the image name it makes it easier to select the correct size and
colour within TouchPoint. Most users do not have access to the operating system and can't
preview the image before selecting it. Naming the images saves time as the user doesn't have to
scroll through all of the images to select the right one.
Naming images
View PLU and prompt for picture invoke a pop-up window with a larger product image. This feature
helps ensure the correct PLU is selected - for instance, when products are similar and requires the
cashier to confirm the product choice to prevent selling the product at a lesser price.
View PLU is invoked by pressing the view PLU button and then selecting the PLU during
the sale.
Prompt for picture automatically displays the pop-up window when selecting the PLU
during the sale.
Sizing images for view PLU
and prompt with picture
When creating your own images to use for view PLU and prompt with picture follow the guidelines
below:
1. Images should be created using the sizes in the table below.
VIEW PLU PROMPT FOR PICTURE
Screen resolution Image size in pixels
width x height
Image size in pixels
width x height
1024 x 768 350 px x 320 px 350 px x 320 px
1366 x 768 350 px x 320 px 350 px x 320 px
1920 x 1080 350 px x 320 px 350 px x 320 px
2. Create the image in jpeg format.
3. Rename the image m1.jpg, m2.jpg, m3.jpg etc. The number in the image name
associates it with the PLU:
Image sizes
m1.jpg = PLU 1
m2.jpg = PLU 2
m3.jpg = PLU3
4. Save the images in the ICRTouch > pic folder and restart TouchPoint.
1. In TouchPoint, select sales.
2. Select view PLU.
3. Select the PLU to view the PLU image.
To configure TouchPoint to automatically prompt for the product image during the sale:
1. In TouchPoint select Programming > All programming > PLU > PLU > PLU.
2. Scroll down to prompt with picture and select YES.
View PLU
Prompt with picture
The splash screen is visible when TouchPoint is loading.
1. Create the splashscreen.png image using the sizes in the table below.
SCREEN RESOLUTION
SIZE
width x height
1024 x 768 1024 px x 473 px
1366 x 768 1024 px x 473 px
1920 x 1080 1024 px x 473 px
2. Place the images in the ICRTouch > Skin > {your skin} folder.
3. Restart TouchPoint to view the changes.
Replace the splash screen
The reseller window is displayed in home mode.
The reseller image can be replaced with your own design. For example you could include your
support contact details. Refer to the Canva lesson to help you design your reseller image.
1. Create the reseller.png image using the sizes in the table below.
1024 x 768 468 px x 576 px
1366 x 768 728 px x 576 px
Replace the reseller image
Instructions
SCREEN RESOLUTION SIZE (width x height)
1920 x 1080 985 px x 778 px
SCREEN RESOLUTION SIZE (width x height)
2. Place the images in the ICRTouch > Skin > {your skin} folder.
3. Restart TouchPoint to view the changes.
Use our Planner if you would like to change the reseller image position or the size.
Change the position and the size
The Planner is used to view the coordinates and size of TouchPoint components. It's a useful tool
to experiment with i.e. you can move components around or resize them whilst making sure you
don't overlap other components and buttons. If you want to keep the same position and size but
want to change the look refer to replace the reseller image. Refer to the Canva lesson to help you
design your reseller image.
Reseller window planner
In the example below the artwork is a different size and position.
We use the planner to help us place the artwork correctly.
In our example our new position and size on 1024 x 768 is:
Left Top Width Height
551 62 416 634
The reseller window contains the following components:
1. XML file - salesmodewindows.xml.
2. Image - reseller.png.
1. Download the files on the left hand side of the page under Attachments. If viewing on
your mobile device the attachments select the Info tab.
2. Run ICRTouchKBEditor.exe.
3. Select File > Open.
4. Open all of the files below:
PLANNER - 1920 x 1080.074.
PLANNER - 1366 x 768.074.
PLANNER - 1024 x 768.074.
5. Select the Tile Horizontally icon underneath the menu.
1. Select the Planner - 1920 x 1080.074 window - make sure Info and Tools are selected.
Download the Planner
Reseller window 1920 x 1080
2. Select the large block. The coordinates for the reseller window are:
Left Top Width Height
815 150 985 778
1. Select the Planner - 1366 x 768.074 window - make sure Info and Tools are selected.
Reseller window 1366 x 768
2. Select the large block. The coordinates for the reseller window are:
Left Top Width Height
580 96 728 576
1. Select the Planner - 1024 x 768.074 window - make sure Info and Tools are selected.
2. Select the large block. The coordinates for the reseller window are:
Left Top Width Height
518 96 468 576
Reseller window 1024 x 768
1. Modify the position or size of the large block in the Planner. You can drag and stretch the
block, or enter the new coordinates and size in the Info window.
2. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
3. Right click on salesmodewindows.xml and select Open with Wordpad.
4. Scroll down to the bottom of the file.
5. Replace the code highlighted in bold below with the new coordinates and size:
1. 1920 x 1080
<WINDOW id="WDW:RESELLER" name="Reseller window" left="815" top="150"
width="985" height="778">
<BACKGROUND image="reseller.png" TransparentColour="0D1C26"/>
</WINDOW>
2. 1366 x 768
<WINDOW id="WDW:RESELLER" name="Reseller window" left="580" top="96"
width="728" height="576">
<BACKGROUND image="reseller.png" TransparentColour="0D1C26"/>
</WINDOW>
3. 1024 x 768
<WINDOW id="WDW:RESELLER" name="Reseller window" left="518" top="96"
width="468" height="576">
<BACKGROUND image="reseller.png" TransparentColour="000000"/>
</WINDOW>
4. Create your artwork and export it as a PNG file. Name the file reseller.png.
5. Place reseller.png in the ICRTouch > Skin > {your skin} folder.
6. Restart TouchPoint to view the changes.
Create your own artwork
1. Create the image in png, jpeg or bmp format using the sizes in the table below.
Screen resolution Screensaver 1 Screensaver 2 Screensaver 3 Screensaver 4
Image size
width x height
1024 x 768 scrnsave.png scrnsave2.png scrnsave3.png scrnsave4.png 1024 px x 768
px
1366 x 768 scrnsave.png scrnsave2.png scrnsave3.png scrnsave4.png 1366 px x 768
px
1920 x 1080 scrnsave.png scrnsave2.png scrnsave3.png scrnsave4.png 1920 px x
1080 px
Replace the screensaver
images
2. Place the images in the ICRTouch > Skin > {your skin} folder.
3. Open ScreenSaver.xml. in a text editor such as Notepad ++.
4. To add additional images remove <!-- and --> from the code and add additional images
as required:
<IMAGES>
<IMAGE id="IMG:1" IMAGE="scrnsave.png" />
<IMAGE id="IMG:2" IMAGE="scrnsave2.png" />
<IMAGE id="IMG:3" IMAGE="scrnsave3.png" />
<IMAGE id="IMG:4" IMAGE="scrnsave4.png" />
<IMAGE id="IMG:5" IMAGE="scrnsave5.png" />
</IMAGES>
5. To remove images add <!-- and --> to the code:
<IMAGES>
<IMAGE id="IMG:1" IMAGE="scrnsave.png" />
<!--<IMAGE id="IMG:2" IMAGE="scrnsave2.png" />
<IMAGE id="IMG:3" IMAGE="scrnsave3.png" />
<IMAGE id="IMG:4" IMAGE="scrnsave4.png" /> -->
</IMAGES>
6. Restart TouchPoint to view the changes.
1. TouchPoint lite
Sample screensaver images
2. ByTable
3. PocketTouch
4. Integration 1
5. Integration 2
6. Integration 3
7. Schweppes
8. Tribute
9. Trip
10. ICRTouch 1
11. ICRTouch 2
12. ICRTouch 3
13. Split bills
14. Software family
The sales mode icons appear in the footer.
NAME ICON NAME ICON
Receipt on Receipt off
Data both No data
Data out Data in
Sales mode icons
NAME ICON NAME ICON
On mains Charging
Battery 100% Battery 80%
Battery 60% Battery 40%
NAME ICON NAME ICON
Battery 20% Battery 0%
The background and text colour is determined by the the colour palette. To create your own colour
palette:
1. Open ICRTouch > Pallette.bmp in PhotoShop.
2. Select Image > Mode > Color table.
3. Select one of the colours.
4. Replace the colour and then select OK.
5. Continue replacing the colours until you have built your custom palette.
6. Row 1 contains legacy colours and therefore we don't recommend you changing them.
Colour palette
Use button shape styles and sizes to help the user navigate sales levels and functionality.
Navigation
The planner is a useful tool to help plan sizes, spacing and positioning of buttons, windows and
icons. Once you have the final positions you will need to update the XML files in the ICRTouch
keyboard editor.
We do not recommend you change the sizes and spacing of the buttons as the button shapes are
designed for the current sizes. You can, however, add, move or remove buttons you do not need.
1. Run ICRTouchKBEditor.exe.
2. Select file, open - select PLANNER - 1920 x 1080.074, PLANNER - 1366 x 768.074,
or PLANNER - 1024 x 768.074.
3. Make sure the tools and info windows are selected under the Windows menu at the top of
the page.
4. Select the menu from the info panel:
Menu level 11 - home level.
Menu level 12 - sales levels.
Planner
ICRTouch keyboard editor
1. Select menu level 11.
Home reseller window
2. Select the reseller window cell to resize and/or reposition.
3. Make a note of the new positions and size as this will be entered into the xml file.
4. Save.
5. Open salesmodewindows.xml in a text editor.
6. Update the code highlighted in bold with the new positions and size:
<WINDOW id="WDW:RESELLER" name="Reseller window" left="xxx" top="xxx" width="
xxx" height="xxx">
7. Add/reposition the buttons and make a note of the new position.
8. Edit your artwork to ensure it is sized correctly.
9. Save the image and name it reseller.png.
10. Place the image in the skin folder.
11. Run ICRTouchKBEditor.exe.
12. Select file, open - select prog > KEYCONV.074.
13. Move the buttons to the new positions, if applicable, and save. Make sure buttons are the
same size and spaced evenly othewise they will not merge in TouchPoint.
When you update the KEYCONV.074 file you need to merge buttons that were
previously merged.
14. Restart TouchPoint to view your changes.
COMPONENTS
Name Program file Image
ICR icon Salesmodeicons.xml - line 31 skin > icons.png
Clerk Salesmodewindows.xml - line 12
Check no Salesmodewindows.xml - line 47
Mode Salesmodewindows.xml - line 33
Price level Salesmodewindows.xml - line 40
Date Salesmodewindows.xml - line 19
Reseller window Salesmodewindows.xml - line 95 skin > reseller.png
Devices Salesmodewindows.xml - line 54
to 94
Icons Salesmodeicons.xml - line 2 to 29 skin > icons.png
Name Program file Image
Time Salesmodewindows.xml - line 26
1. Select menu level 12.
Sales
2. Select the input window cell to resize and/or reposition.
3. Make a note of the new positions and size as this will be entered into the xml file.
4. Save.
5. Open salesmodewindows.xml in a text editor.
6. Update the code highlighted in bold with the new positions and size:
<WINDOW id="WDW:INPUT" name="Input window" left="xxx" top="xxx" width="xxx"
height="xxx">
7. Add/reposition the buttons and make a note of the new position.
8. Edit your artwork to ensure it is sized correctly.
9. Save the image and name it inputwindow_bg.png.
10. Place the image in the skin folder.
11. Run ICRTouchKBEditor.exe.
12. Select file, open - select prog > KEYCONV.074.
13. Move the buttons to the new positions, if applicable, and save. Make sure buttons are the
same size and spaced evenly othewise they will not merge in TouchPoint.
When you update the KEYCONV.074 file you need to merge buttons that were
previously merged.
14. Restart TouchPoint to view your changes.
COMPONENTS
Name Program file Image
ICR icon Salesmodeicons.xml - line 31 skin > icons.png
Clerk Salesmodewindows.xml - line 12
Check no Salesmodewindows.xml - line 47
Mode Salesmodewindows.xml - line 33
Price level Salesmodewindows.xml - line 40
Date Salesmodewindows.xml - line 19
Input window Salesmodewindows.xml - line 2 skin > inputwindow_bg.png
Devices Salesmodewindows.xml - line 54
to 94
Icons Salesmodeicons.xml - line 2 to 29 skin > icons.png
Name Program file Image
Time Salesmodewindows.xml - line 26
Reg window Regwindows.xml - line 1 skin > regwindow_bg.png
if you have accidentally deleted the Programming mode status key In TouchPoint, start TouchPoint
and enter %STS97?
You will be prompted to login and taken to programming mode.
Programming mode - useful
tips
The TouchPoint grid
Display stock count on top of an image using button shapes. The TouchPoint 2024 skin includes 15
stock button shapes. Additional shapes will be added on request.
Stock button shapes
1. In TouchPoint, select settings > Keyboard.
2. Select the PLU button - make sure you have merged 2 cells across and 2 cells down.
3. Select the button shape i.e. Heineken w2h2.
4. Remove the image.
5. Replace the text with a space. In order for the stock to display on the button you need at
least one character.
6. Double-click the button.
Instructions
7. Scroll down to maintain stock and select yes.
8. Scroll dow to select Display stock quantity on one-shot PLU and select yes.
9. Enter the current stock quantity.
The time required to modify the date is +/- 5 minutes.
At the end of this section you will have changed the colour of the date from this.
Date tutorial
To this.
The date is configured in the salesmodewindows.xml.
The Planner is used to view the coordinates and size of the date window. It's a useful tool to
experiment with i.e. you can move components around or resize them whilst making sure you
don't overlap other components and buttons.
1. Download the files on the left hand side of the page under Attachments. If viewing on
your mobile device the attachments select the Info tab.
2. Run ICRTouchKBEditor.exe.
3. Select File > Open.
4. Open all of the files below:
PLANNER - 1920 x 1080.074.
PLANNER - 1366 x 768.074.
PLANNER - 1024 x 768.074.
5. Select the Tile Horizontally icon underneath the menu.
1. Select the Planner - 1920 x 1080.074 window - make sure Info and Tools are selected.
Download the Planner
Date 1920 x 1080
2. Select the block on the top right hand side. The coordinates for the date are:
Left Top Width Height
1580 17 300 24
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:DATE" name="Date window" Left="1580" top="17" width="300"
height="24">
<!-- <BACKGROUND image="datewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="300" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="21" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="21" align="right" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the date in the Planner. You can drag and stretch the block,
or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
<WINDOW id="WDW:DATE" name="Date window" Left="1580" top="17" width="300"
height="24">
<!-- <BACKGROUND image="datewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="300" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="right" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
1. Select the Planner - 1366 x 768.074 window - make sure Info and Tools are selected.
Date 1366 x 768
2. Select the block on the top right hand side. The coordinates for the date are:
Left Top Width Height
1054 19 300 24
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:DATE" name="Date window" left="1054" top="19" width="300"
height="24">
<!-- <BACKGROUND image="datewindow_bg.bmp"/> -->
<TEXT right="0" top="0" width="300" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="21" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="21" align="right" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the date in the Planner. You can drag and stretch the block,
or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
<WINDOW id="WDW:DATE" name="Date window" left="1054" top="19" width="300"
height="24">
<!-- <BACKGROUND image="datewindow_bg.bmp"/> -->
<TEXT right="0" top="0" width="300" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
1. Select the 'Planner - 1024 x 768.074 window - make sure Info and Tools are selected.
Date 1024 x 768
2. Select the block on the top right hand. The coordinates for the date are:
Left Top Width Height
676 12 340 24
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:DATE" name="Date window" left="677" top="12" width="340"
height="24">
<!-- <BACKGROUND image="datewindow_bg.bmp"/> -->
<TEXT right="0" top="0" width="340" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="21" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="21" align="right" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the date in the Planner. You can drag and stretch the block,
or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
<WINDOW id="WDW:DATE" name="Date window" left="677" top="12" width="340"
height="24">
<!-- <BACKGROUND image="datewindow_bg.bmp"/> -->
<TEXT right="0" top="0" width="340" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="right" valign="top" colour="75ff00"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
The time required to modify the time is +/- 5 minutes.
At the end of this section you will have changed the colour of the time from this.
Time tutorial
To this.
The time is configured in the salesmodewindows.xml.
The Planner is used to view the coordinates and size of the time window. It's a useful tool to
experiment with i.e. you can move components around or resize them whilst making sure you
don't overlap other components and buttons.
1. Download the files on the left hand side of the page under Attachments. If viewing on
your mobile device the attachments select the Info tab.
2. Run ICRTouchKBEditor.exe.
3. Select File > Open.
4. Open all of the files below:
PLANNER - 1920 x 1080.074.
PLANNER - 1366 x 768.074.
PLANNER - 1024 x 768.074.
5. Select the Tile Horizontally icon underneath the menu.
1. Select the Planner - 1920 x 1080.074 window - make sure Info and Tools are selected.
Download the Planner
Time 1920 x 1080
2. Select the block on the bottom right hand side. The coordinates for the time are:
Left Top Width Height
1816 1050 60 20
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:TIME" name="Time window" left="1816" top="1050" width="60"
height="20">
<!-- <BACKGROUND image="timewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="60" height="20" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="16" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="16" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="16" align="right" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the time in the Planner. You can drag and stretch the block,
or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
<WINDOW id="WDW:TIME" name="Time window" left="1816" top="1050" width="60"
height="20">
<!-- <BACKGROUND image="timewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="60" height="20" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="16" align="right" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
1. Select the Planner - 1366 x 768.074 window - make sure Info and Tools are selected.
Time 1366 x 768
2. Select the block on the bottom right hand side. The coordinates for the time are:
Left Top Width Height
1264 724 70 20
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:TIME" name="Time window" left="1264" top="724" width="70"
height="20">
<!-- <BACKGROUND image="timewindow_bg.bmp"/> -->
<TEXT right="0" top="0" width="70" height="20" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="17" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="17" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="17" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the date in the Planner. You can drag and stretch the block,
or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
1. <WINDOW id="WDW:TIME" name="Time window" left="1264" top="724" width="
70" height="20">
<!-- <BACKGROUND image="timewindow_bg.bmp"/> -->
<TEXT right="0" top="0" width="70" height="20" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="17" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
1. Select the Planner - 1024 x 768.074 window - make sure Info and Tools are selected.
Time 1024 x 768
2. Select the block on the bottom right hand side. The coordinates for the time are:
Left Top Width Height
965 745 50 20
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:TIME" name="Time window" left="965" top="745" width="50"
height="20">
<!-- <BACKGROUND image="timewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="50" height="20" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="16" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="16" align="right" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="16" align="right" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the time in the Planner. You can drag and stretch the block,
or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
1. <WINDOW id="WDW:TIME" name="Time window" left="965" top="745" width="50
" height="20">
<!-- <BACKGROUND image="timewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="50" height="20" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="16" align="right" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
The time required to modify the time is +/- 5 minutes.
At the end of this section you will have changed the colour of the clerk name from this.
Clerk name tutorial
To this.
The clerk name is configured in the salesmodewindows.xml.
The Planner is used to view the coordinates and size of the clerk name window. It's a useful tool to
experiment with i.e. you can move components around or resize them whilst making sure you
don't overlap other components and buttons.
1. Download the files on the left hand side of the page under Attachments. If viewing on
your mobile device the attachments select the Info tab.
2. Run ICRTouchKBEditor.exe.
3. Select File > Open.
4. Open all of the files below:
PLANNER - 1920 x 1080.074.
PLANNER - 1366 x 768.074.
PLANNER - 1024 x 768.074.
5. Select the Tile Horizontally icon underneath the menu.
1. Select the Planner - 1920 x 1080.074 window - make sure Info and Tools are selected.
Download the Planner
Clerk name 1920 x 1080
2. Select the block on the top left hand side. The coordinates for the clerk name are:
Left Top Width Height
100 17 260 24
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:CLERK" name="Clerk name window" left="100" top="17"
width="260" height="24">
<!-- <BACKGROUND image="clerknamewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="260" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="22" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="22" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="22" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the clerk name window in the Planner. You can drag and
stretch the block, or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
<WINDOW id="WDW:CLERK" name="Clerk name window" left="100" top="17" width="
260" height="24">
<!-- <BACKGROUND image="clerknamewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="260" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="22" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
1. Select the Planner - 1366 x 768.074 window - make sure the Info and Tools are selected.
Clerk name 1366 x 768
2. Select the block on the top left hand side. The coordinates for the clerk name are:
Left Top Width Height
97 19 260 24
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:CLERK" name="Clerk name window" left="97" top="19"
width="260" height="24">
<!-- <BACKGROUND image="clerknamewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="260" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="21" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="21" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the clerk name in the Planner. You can drag and stretch the
block, or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
<WINDOW id="WDW:CLERK" name="Clerk name window" left="97" top="19" width="
260" height="24">
<!-- <BACKGROUND image="clerknamewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="260" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
1. Select the Planner - 1024 x 768.074 window - make sure the Info and Tools are selected.
Clerk name 1024 x 768
2. Select the block on the top left hand side. The coordinates for the clerk name are:
Left Top Width Height
43 12 200 24
3. Go to ICRTouch > Skin > {your skin} folder.
4. Right click on salesmodewindows.xml and select Open with Wordpad.
5. Scroll down to the code below:
<WINDOW id="WDW:CLERK" name="Clerk name window" left="43" top="12"
width="200" height="24">
<!-- <BACKGROUND image="clerknamewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="200" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
6. Replace:
<FONT face="Roboto" size="21" align="left" valign="top" colour="FFFFFF"
highlightcolour="FFFFFF"/>
With:
<FONT face="Roboto" size="21" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
7. Save and restart TouchPoint to view your changes.
8. Modify the position or size of the clerk name in the Planner. You can drag and stretch the
block, or enter the new coordinates and size in the Info window.
9. Make a note of the new position and sizes. You will need the new information to enter
into the salesmodewindows.xml files.
Left Top Width Height
10. Right click on salesmodewindows.xml and select Open with Wordpad.
11. Replace the code highlighted in bold below with the new coordinates and size:
<WINDOW id="WDW:CLERK" name="Clerk name window" left="43" top="12" width="
200" height="24">
<!-- <BACKGROUND image="clerknamewindow_bg.bmp"/> -->
<TEXT left="0" top="0" width="200" height="24" highlightbackcolour="FFFFFF">
<FONT face="Roboto" size="21" align="left" valign="top" colour="a1cefc"
highlightcolour="FFFFFF"/>
</TEXT>
</WINDOW>
12. Save and restart TouchPoint.
The numeric keypad consists of the following components:
1. A background image - numkpad_bg.png. The background is a single image - when
viewing the image outside of TouchPoint it looks like this:
Numeric keypad tutorial
2. A buttons image - numkpad_buttons.png. The buttons image is also a single image -
when viewing the image outside of TouchPoint it looks like this (it includes white space so
that they buttons are positioned correctly on the background image:
3. The button image is positioned on top of the background as illustrated below. The Up
position is on the left hand side and the Down position is on the right hand side. When
the button is selected the button changes colour.
4. Title and input text.
5. DlgNumericKeypad.xml contains the numeric keypad instructions. The XML file is edited
using Notepad or any other text editor.
Edit the DlgNumericKeypad.xml file to change the input text size and colour.
1. Make a copy of the DlgNumericKeypad.xml and call it DlgNumericKeypad-backup.xml.
2. Open DlgNumericKeypad.xml in a text editor (right click on the file name and open with
Wordpad or Notepad.
3. Scroll down to the following line:
<INPUT left="11" top="31" width="381" height="67" textleft="370" texttop="100">
<FONT face="Lato" size="50" align="right" valign="bottom" colour="ffffff"/>.
4. Replace Lato with Roboto.
5. Replace ffffff with a1cefc.
6. Save and restart TouchPoint to view your changes.
Change the font face and input colour
Edit the artwork
You can create your own numeric keypad and background containing any colour using graphic
design software. The artwork is attached in .eps format:
1. Download the .eps file on the left hand side of the page under Attachments. If viewing on
your mobile device the attachments select the Info tab.
2. The artwork is in 2 layers - a background layer and a buttons layer. When exporting your
background artwork, hide the buttons layer and name the background numkpad_bg.png.
3. Export the buttons and name it numkpad_buttons.png. You can export the buttons with
both layers.
4. We recommend that you don't change the positioning or sizing of the buttons unless you
have the skills to edit the .XML file.
3rd party disclaimer
Canva is a useful online tool to create custom artwork including reseller images.
In this lesson we will create a reseller image for the 1024 x 768, 1366 x 768 and 1920 x 1080
screen resolution.
Download the files on the left hand side of the page under Attachments. If viewing on your mobile
device select the Info tab.
1. Go to canva.com.
2. Register to use the free version.
1. Select Create a design button on the top right hand side of the page.
Canva lesson 1
Create a reseller image
Step 1
Step 2
2. Select Custom size at the bottom of the menu.
3. Enter the positions based on your screen resolution.
1024 x 768 468 px x 576 px
1366 x 768 728 px x 576 px
1920 x 1080 985 px x 778 px
SCREEN RESOLUTION SIZE (width x height)
1. Select Elements from the left hand side of the page.
2. Select the Square under Shapes.
3. Select Position.
Create the background
4. Enter the positions based on your screen resolution. Enter 0 for the x position and 0
for the y position and make sure the image is align in the middle and center.
1024 x 768 468 px x 576 px
1366 x 768 728 px x 576 px
1920 x 1080 985 px x 778 px
SCREEN RESOLUTION SIZE (width x height)
5. Select the Colour on the top of the page.
6. Enter #13161F.
7. Add a heading or text.
8. Select position to align it, select the colour and size.
9. Select uploads to upload your own image or download the Coca-cola.svg and
Heineken.svg files on the left hand side of the page under Attachments. If viewing
on your mobile device the attachments select the Info tab. If you upload an SVG file
you are able to modify it's colour.
Heineken example
10. Select Share to download the image.
11. Name the image reseller.png and place it in the skin folder.
12. Restart TouchPoint.
This manual contains links to websites owned and operated by third parties. These links are
provided for your information and convenience only and are not an endorsement of the content of
such websites or third party services.
ICRTouch has no control of the content of any linked website and is not responsible for these
websites or their content or availability.
Third party disclaimer
PartnerPOS logo