Administration Guide
Version 4.3
Jack Gerrard
May 2017
This Administrator Guide deals with the
t he setup and configuration of uniCenta oPOS after installation.
It is a “How to” of key points for Products, Security and User Permissions to enable a quick
customization to suit the
t he users operation.
Foreward
The focus of this document is the Administration of uniCenta oPOS
It follows a proven 10 Step process to get a uniCenta oPOS installation up and running quickly.
Date Version Author Comment
March 2017 4.1 Jack Gerrard Draft
May 2017 4.3 Jack Gerrard Update
June 2017 4.3 Jack Gerrard Final
Useful things
Editor Toolbar
You will see this toolbar is used throughout uniCenta oPOS so here’s a qui ck overview of what the
buttons do. The Editor Toolbar appears in all record management forms.
Previous record Refresh Delete record
Current record Next record Sort
& Total records
First record Last record Add record
Undo changes Find Save record
Tooltips
Lots of things in uniCenta oPOS use pop-up Toolti ps.
All you have to do is hover your mouse pointer over a component for a second and it wil l give you
a brief description of what it does. Tooltips are constantly being added or revised as uniCenta
oPOS development progresses.
ADMINISTRATION
Configuring uniCenta oPOS for the first time? Take thi ngs step-by-step and try not to feel too
intimidated.
Follow the steps in this guide and you will be up and running quickly.
If an upgrade, you can use all your existi ng settings and only need to review, and possibly adjust,
the new Configuration settings in uniCenta oPOS where necessary.
Either way, fresh install or upgrade, it’s a good idea to be prepared before embarking on the set
up.
If you’re upgrading, it’s recommended you read the upgrade page.
https://unicenta.com/pages/upgrade-unicenta-opos/
There are a few things that need to be done if this is a new uniCenta oPOS installation.
Decide if this is a single or multi-terminal installation
Install Java JRE 1.8 (minimum).
Install MySQL server 5.5 (minimum) or use the MAMP installer for a local installation if you
intend to use uniCenta Web reporting.
Support for installing and configuring a local MySQL server is partially covered in this guide and on
our online Support section.
MySQL server installation on another machine hosted in the cloud or elsewhere is not covered in
this guide. It i s expected that it is installed, and supported by, a suitably qualified techni cian and
functioning properly.
Settings i n Administration>Maintenance>Resources are stored within the MySQL database and
affect all connected machines such as: Printer.Ticket
Settings that are stored locally and affect only the local machine’s installation are set using the :
Configuration form.
Online uniCenta guide : https://unicenta.com/pages/install-unicenta-opos/
SETUP STEPS
The key to making sure you get the best out of uniCenta oPOS is follow these Set-up steps.
Have some patience when you fi rst start out and try to follow these simple steps...
1. INSTALL Java JRE
2. INSTALL MySQL
3. START UNICENTA OPOS
4. CONFIGURATION
5. PERMISSIONS - ROLES & USERS
6. SET TAXES
7. CREATE CATEGORIES
8. CREATE PRODUCTS
9. SET RECEIPT LOGO
10. RESTART UNICENTA OPOS
Play with uniCenta oPOS first. Get to know it. Take your ti me. Don't rush. You will be up & running
with uniCenta oPOS in not time compared to other systems.
You're ready to deploy in your store. Now take a Backup!
Always better to do it now rather starting over again or trying to unravel mistakes later when
trading.
1 – JAVA
You have to have the correct Java JRE Runtime installed for your Operating System.
If you're running Windows x64 use Java for x64, not the x86 version, and that i t's running properly.
If using Linux or Mac OS X you will need to install the Oracle JRE.
If have Open JDK installed you may run into problems running uniCenta oPOS. At thi s time it is not
supported and for future it depends on Open JDK’s compatibility with current and latest JRE.
Get Java : https://java.com
Online uniCenta guide :
https://youtu.be/mHVUmA29TdQ
2 – MYSQL
This version requires MySQL 5.5 or later instal led and configured properly. A Schema must be
created and Users Permissions also set correctly.
Get MySQL : https://www.mysql.com/downloads/
Online uniCenta guides :
https://youtu.be/jgnUzIqBZEI?list=PLCCYL2bRmxw1tngbebCFY8fg1uaZc8jVE
https://youtu.be/URglMDmxwS0?list=PLCCYL2bRmxw1tngbebCFY8fg1uaZc8jVE
3 – UNICENTA OPOS
Fire-up unicenta oPOS and head straight for the Confi guration panel. Settings are here for
everything from Databases through to Printers.
Get uniCenta oPOS : https://unicenta.com/download-files/installers/
Online uniCenta guides :
https://unicenta.com/download-files/installers/
https://unicenta.com/pages/install-unicenta-opos/
https://youtu.be/mOnMCEpfJ2w?list=PLCCYL2bRmxw1tngbebCFY8fg1uaZc8jVE
4 – CONFIGURATION
Fire-up unicenta oPOS and head straight for the Confi guration panel. Settings are here for
everything from Databases through to Printers.
Configuration settings are stored in a disk file: unicentaopos.properties
Windows XP : \Documents and Settings\username
Windows 7-10: \Users
Linux : /home/username
Mac OS X : Users/username
Online uniCenta guides :
https://unicenta.com/pages/configure-unicenta-opos/
https://unicenta.com/packages/guide-configuration/
5 – PERMISSIONS
ROLES
Permissions control what is visible on the main
uniCenta oPOS menu as well as certain other
functionality.
By default the Administrator Role has access to all
uniCenta oPOS features and functions.
Four default Roles are created at time of
installation.
Here in descending order of importance and
visible menu options :
1. Administrator
2. Manager
3. Employee
4. Guest
You can create an unlimited number of Roles and
modify them to suit your operation.
Use the Admini strator Role as the template for new
roles.
Go to Administration> Maintenance>Roles
Below is the application's list of options you can grant access to a Role :
Comment out <! The function name -->
<!-- <class name="com.openbravo.pos.sales.JPanelTicketEdits"/> -->
ADMINISTRATOR ROLE PERMISSIONS
SALES PANEL
<class name="com.openbravo.pos.sales.JPanelTicketSales"/>
<class name="com.openbravo.pos.sales.JPanelTicketEdits"/>
<class name="com.openbravo.pos.customers.CustomersPayment"/>
<class name="com.openbravo.pos.panels.JPanelPayments"/>
<class name="com.openbravo.pos.panels.JPanelCloseMoney"/>
<class name="com.openbravo.pos.panels.JPanelCloseMoneyReprint"/>
<class name="sales.Override"/>
<class name="sales.ViewSharedTicket"/>
<class name="sales.DeleteLines"/>
<class name="sales.EditLines"/>
<class name="sales.EditTicket"/>
<class name="sales.RefundTicket"/>
<class name="sales.PrintTicket"/>
<class name="sales.Total"/>
<class name="sales.ChangeTaxOptions"/>
<class name="payment.bank"/>
<class name="payment.cash"/>
<class name="payment.cheque"/>
<class name="payment.voucher"/>
<class name="payment.magcard"/>
<class name="payment.slip"/>
<class name="payment.free"/>
<class name="payment.debt"/>
<class name="refund.cash"/>
<class name="refund.cheque"/>
<class name="refund.voucher"/>
<class name="refund.magcard"/>
<class name="sales.PrintKitchen"/>
<class name="sales.ShowList"/>
STANDARD BUTTONS
<class name="button.totaldiscount"/>
<class name="button.print"/>
<class name="button.opendrawer"/>
<class name="button.posapps"/>
ADDITIONAL BUTTONS
<class name="button.linediscount"/>
<class name="button.sendorder"/>
<class name="button.refundit"/>
<class name="button.scharge"/>
CUSTOMER PANEL
<class name="com.openbravo.pos.forms.MenuCustomers"/>
<class name="com.openbravo.pos.customers.CustomersPanel"/>
<class name="/com/openbravo/reports/customers.bs"/>
<class name="/com/openbravo/reports/customers_sales.bs"/>
<class name="/com/openbravo/reports/customers_debtors.bs"/>
<class name="/com/openbravo/reports/customers_diary.bs"/>
<class name="/com/openbravo/reports/customers_cards.bs"/>
<class name="/com/openbravo/reports/customers_list.bs"/>
<class name="/com/openbravo/reports/customers_export.bs"/>
SUPPLIER PANEL
<class name="com.openbravo.pos.forms.MenuSuppliers"/>
<class name="com.openbravo.pos.suppliers.SuppliersPanel"/>
<class name="/com/openbravo/reports/suppliers.bs"/>
<class name="/com/openbravo/reports/suppliers_b.bs"/>
<class name="/com/openbravo/reports/suppliers_creditors.bs"/>
<class name="/com/openbravo/reports/suppliers_diary.bs"/>
<class name="/com/openbravo/reports/suppliers_list.bs"/>
<class name="/com/openbravo/reports/suppliers_sales.bs"/>
<class name="/com/openbravo/reports/suppliers_export.bs"/>
<class name="/com/openbravo/reports/suppliers_products.bs"/>
STOCK MANAGEMENT PANEL
<class name="com.openbravo.pos.forms.MenuStockManagement"/>
<class name="com.openbravo.pos.inventory.AttributesPanel"/>
<class name="com.openbravo.pos.inventory.AttributeValuesPanel"/>
<class name="com.openbravo.pos.inventory.AttributeSetsPanel"/>
<class name="com.openbravo.pos.inventory.AttributeUsePanel"/>
<class name="com.openbravo.pos.inventory.AuxiliarPanel"/>
<class name="com.openbravo.pos.inventory.BundlePanel"/>
<class name="com.openbravo.pos.inventory.CategoriesPanel"/>
<class name="com.openbravo.pos.inventory.ProductsPanel"/>
<class name="com.openbravo.pos.inventory.ProductsWarehousePanel"/>
<class name="com.openbravo.pos.inventory.StockDiaryPanel"/>
<class name="com.openbravo.pos.inventory.StockManagement"/>
<class name="com.openbravo.pos.inventory.TaxCategoriesPanel"/>
<class name="com.openbravo.pos.inventory.TaxCustCategoriesPanel"/>
<class name="com.openbravo.pos.inventory.TaxPanel"/>
<class name="com.openbravo.pos.inventory.UomPanel"/>
<class name="/com/openbravo/reports/barcode_sheet.bs"/>
<class name="/com/openbravo/reports/barcode_shelfedgelabels.bs"/>
<class name="/com/openbravo/reports/inventory.bs"/>
<class name="/com/openbravo/reports/inventoryb.bs"/>
<class name="/com/openbravo/reports/inventory_diary.bs"/>
<class name="/com/openbravo/reports/inventorybroken.bs"/>
<class name="/com/openbravo/reports/inventorydiff.bs"/>
<class name="/com/openbravo/reports/inventorydiffdetail.bs"/>
<class name="/com/openbravo/reports/inventorylistdetail.bs"/>
<class name="/com/openbravo/reports/productscatalog.bs"/>
<class name="/com/openbravo/reports/products.bs"/>
<class name="/com/openbravo/reports/productlabels.bs"/>
<class name="/com/openbravo/reports/salecatalog.bs"/>
SALES MANAGEMENT PANEL
<class name="com.openbravo.pos.forms.MenuSalesManagement"/>
<class name="/com/openbravo/reports/sales_cashflow.bs"/>
<class name="/com/openbravo/reports/sales_cashregisterlog.bs"/>
<class name="/com/openbravo/reports/sales_categorysales.bs"/>
<class name="/com/openbravo/reports/sales_categorysales_1.bs"/>
<class name="/com/openbravo/reports/sales_closedpos.bs"/>
<class name="/com/openbravo/reports/sales_closedpos_1.bs"/>
<class name="/com/openbravo/reports/sales_closedproducts.bs"/>
<class name="/com/openbravo/reports/sales_closedproducts_1.bs"/>
<class name="/com/openbravo/reports/sales_extendedcashregisterlog.bs"/>
<class name="/com/openbravo/reports/sales_extproducts.bs"/>
<class name="/com/openbravo/reports/sales_paymentreport.bs"/>
<class name="/com/openbravo/reports/sales_productsalesprofit.bs"/>
<class name="/com/openbravo/reports/sales_saletaxes.bs"/>
<class name="/com/openbravo/reports/sales_taxcatsales.bs"/>
<class name="/com/openbravo/reports/sales_taxes.bs"/>
<class name="/com/openbravo/reports/sales_chart_chartsales.bs"/>
<class name="/com/openbravo/reports/sales_chart_piesalescat.bs"/>
<class name="/com/openbravo/reports/sales_chart_productsales.bs"/>
<class name="/com/openbravo/reports/sales_chart_timeseriesproduct.bs"/>
<class name="/com/openbravo/reports/sales_chart_top10sales.bs"/>
MAINTENANCE PANEL
<class name="com.openbravo.pos.forms.MenuMaintenance"/>
<class name="com.openbravo.pos.admin.PeoplePanel"/>
<class name="com.openbravo.pos.admin.RolesPanel"/>
<class name="com.openbravo.pos.admin.ResourcesPanel"/>
<class name="com.openbravo.pos.inventory.LocationsPanel"/>
<class name="com.openbravo.pos.mant.JPanelFloors"/>
<class name="com.openbravo.pos.mant.JPanelPlaces"/>
<class name="com.openbravo.pos.voucher.VoucherPanel"/>
<class name="/com/openbravo/reports/people.bs"/>
<class name="/com/openbravo/reports/usersales.bs"/>
<class name="/com/openbravo/reports/usernosales.bs"/>
<class name="/com/openbravo/reports/uservoids.bs"/>
<class name="com.openbravo.pos.imports.JPanelCSV"/>
<class name="com.openbravo.pos.imports.JPanelCSVImport"/>
<class name="com.openbravo.pos.imports.StockQtyImport"/>
<class name="com.openbravo.pos.imports.CustomerCSVImport"/>
<class name="com.openbravo.pos.imports.JPanelCSVCleardb"/>
<class name="com.unicenta.pos.transfer.Transfer"/>
<class name="/com/openbravo/reports/badprice.bs"/>
<class name="/com/openbravo/reports/invalidcategory.bs"/>
<class name="/com/openbravo/reports/invaliddata.bs"/>
<class name="/com/openbravo/reports/missingdata.bs"/>
<class name="/com/openbravo/reports/newproducts.bs"/>
<class name="/com/openbravo/reports/updatedprices.bs"/>
<class name="/com/openbravo/reports/inventoryqtyupdate.bs"/>
EMPLOYEE MAINTENANCE PANEL
<class name="com.openbravo.pos.forms.MenuEmployees" />
<class name="com.openbravo.pos.epm.BreaksPanel" />
<class name="com.openbravo.pos.epm.LeavesPanel" />
<class name="com.openbravo.pos.epm.JPanelEmployeePresence" />
<class name="/com/openbravo/reports/dailypresencereport.bs" />
<class name="/com/openbravo/reports/dailyschedulereport.bs" />
<class name="/com/openbravo/reports/performancereport.bs" />
ADDITIONAL OPTIONS
<!-- <class name="com.openbravo.possync.ProductsSyncCreate"/> -->
<!-- <class name="com.openbravo.possync.OrdersSyncCreate"/> -->
<class name="Menu.ChangePassword"/>
<class name="com.openbravo.pos.panels.JPanelPrinter"/>
<class name="com.openbravo.pos.config.JPanelConfiguration"/>
USERS
Go to Administration>Mainten ance>Users
Four default Users are created at time of installation.
1. Administrator
2. Manager
3. Employee
4. Guest
You can create an unlimited number of Users.
To create a new User: Click button New
Name The name this User will be known by
Password Enter a password and press OK. You will be asked to re-enter to confirm.
Card ID An auto-generated Id. If you are using iButton option - assign a specific button to a
User.
Role Assign a Role
Visible Keep checked to display this User on the Main form. Uncheck to Hide
Image An image of your choice
6 – TAXES
uniCenta oPOS has three Rate types already created: Exempt, Standard and Other.
Go to Stock under Administration and Select Taxes.
Set up Tax bands that can be associated with Products. This allows taxation calculations to be
performed automatically.
Online uniCenta guide :
https://unicenta.com/packages/guide-taxes-management/
7 – CATEGORIES
Go to Administration>Stock>Categories
Use a Category to conveniently group a set of Products.
A default Category is created at the ti me of install – Category Standard. You can rename it and
go on to create as many as you need.
Managing your Product catalogue starts with setting up Categories and then adding Products to
the Categories you create here.
Online uniCenta guide :
https://unicenta.com/packages/guide-categories/
8 – PRODUCTS
Go to Administration>Stock>Products
Probably the most important part in uniCenta oPOS you need to get ri ght.
Assign everything here from Barcodes through to Sales screen button i mages and fancy looking
text.
Two default wildcard Products are created at the time of install which you can rename, but
recommend you do not delete.
** - Service Charge – see Configuration Guide
*** Variable price Products
Online uniCenta guide :
https://unicenta.com/packages/guide-products/
9 – RECEIPTS
Advanced configuration of uniCenta oPOS is
done via the Resources panel rather than with
a GUI.
To change the default ticket you must go to
the Resources panel and edit the resource with
the name Printer.Ticket .
uniCenta oPOS uses a language based on XML
called Apache Velocity - reference to Velocity
- to print receipts and output to a Customer
Display which is independent of the model of
printer and customer display used.
All of the variables available are used in the
Printer.Ticket template
A default ticket template such as Printer.Ticket
(a Receipt) can serve as a good reference
point for other ticket variations you may want
to create.
$ticket and $ticketlines class vari ables are pre-
set and you should refer to the uni Centa oPOS
Developer documentation if you wish to
change or add additional variables.
Go to Administration>Resources>Printer.Ticket
See the Appendix in this guide for a list of Ticket Templates
Online uniCenta guide :
https://unicenta.com/packages/uniCenta oPOS Developer Scripting Guide
Ticket
The ticket tag prints everything to a printer that is contained within begin <ticket> tag and the end
</ticket> tag.
When the </ticket> tag is encountered; print output is stopped and the printer i s sent a command
to perform a form-feed and partially cut the paper.
The begin <printer> tag can also contain which printer the output should be di rected to.
Example:
<ticket printer=2> ... </ticket> - printer 2 will print the receipt
The following elements can be used in any position in a ticket template
<line>...</line> <text>...</text>
<image>...</image> <barcode>...</barcode>
You can force any element tag to be ignored during processing by using the special <!-- ... --> tags
at the beginning and end of a line or block of lines:
Example:
<!-- <line size=3> ... </line> -->
OR
<!-- <line size=3> ... </line>
<text align ="right" length="10" underline="true">Some text</text> -->
Line
The line tag sets the text size and hei ght properties of a printed line in a receipt.
Values you can use are:
0 - Normal size (default)
1 - Double height
2 - Double weight
3 - Double height and weight
Example:
<line size=3> ... </line>
Text
The text tag sets the actual text to be printed on a line in a receipt.
Values you can use are:
align - defines the Alignment of the text string:
left - align text to the left (Default value)
right - align text to the right
center - sets the text in the centre.
length - defines the length in characters used to fit the text strings.
bold - defines whether if the text is bold or not. By default false.
underline - defines whether if the text is underlined or not. By default false
Example:
<text align ="right" length="10" underline="true">Some text</text>
Image
The image tag will include your chosen image in the ticket.
Define the image to be used in the Resources panel using the Image type.
The Image is converted to black and white before sending i t to the printer.
The default logo Image can be changed for your own by editing the resource Printer.Ticket.Logo
The image types supported vary by printer. Most thermal printers support image printing and most
dot-matrix don't. The image must be 256 pixels wide at most.
Example:
<image>Printer.Ticket.Logo </image>
Barcode
Insert a barcode image in the receipt.
EAN13 and CODE128 formats are used.
Example:
<line><barcode type=” EAN13”>0201820070796</barcode> -- a fixed string
OR
<line><barcode type=”CODE128”>${ticket.getPickupId()} </barcode> -- Order #
Opendrawer
Opens the Cash-drawer attached to the receipt pri nter.
It is a special command and does not hav e a begin tag or end tag.
It can be inserted i n any position within the <ticket>...</ticket> tags.
<opendrawer/>
Display
The display tag sends everything to a Customer Display which is contained within begin <display>
tag and the end </display> tag.
Only 2 line x 20 characters matrix Customer Displays are supported.
When uniCenta oPOS starts it reads the Printer.Start resource to initialize the Customer Display.
Go to Administration>Resources>Printer.Start
Depending on the capabilities of your Customer Display you can try the following settings:
Customer Display Animation Options
<display animation=”none”> no text animation
<display animation=”flyer”> whole text line appears from right
<display animation=”scroll”> text line scrolls from right
<display animation=”blink”> text line On/Off
<display animation=”curtain”> text line converges from left & right
You can use the same <li ne><text>...</text></line> tags to send text to the Customer Display.
align - defines the alignment of the text string
left - align text to the left (Default value)
right - align text to the right
center - sets the text in the centre
length - defines the length in characters used to fit the text strings
Line
Example:
<display animation=”flyer”>
<line><text align=”center” length=”20”>Welcome to </text></line>
<line><text align=”center” length=”20”>My Store!</text></line>
</display>
10 – RESTART
Adding or changing Taxes, Categories, Products and Resources are i mmediately visible and
available to use.
The only exception to this i s if you have made a change to the Printer.Start Resource as this
initializes the Customer Display when uniCenta oPOS starts.
If you have made any setting changes in the Configuration form you need to restart uniCenta
oPOS for them to take effect.
APPENDIX
List of printed standard tickets which use Velocity XML
TICKET TEMPLATE USAGE
Printer.CloseCash CloseCash – Z Reading
Printer.CloseCash.Preview CloseCash – Z Reading Preview dos not run actual CloseCash function
Printer.CustomerPaid Customer Payment
Printer.CustomerPaid2 Customer Payment – Al ternative
Printer.FiscalTicket Alternative / Additional CloseCash for Fiscal output where required by law
Printer.Inventory Stock Management – Audit ticket
Printer.PartialCash Partial Cash – X Reading
Printer.PrintLastTicket Recall of the LAST printed receipt
Printer.Product Legacy
Printer.ReprintTicket Edit Sale – Recall and print of a specific receipt
Printer.Start Output to Customer Display – called from various ticket templates
Printer.Ticket Sale - Printed receipt for Sale or Refund transaction
Printer.Ticket.P1 Remote Printer 1 – as assigned in Product – called from script.SendOrder
Printer.Ticket.P2 Remote Printer 2 – as assigned in Product – called from script.SendOrder
Printer.Ticket.P3 Remote Printer 3 – as assigned in Product – called from script.SendOrder
Printer.Ticket.P4 Remote Printer 4 – as assigned in Product – called from script.SendOrder
Printer.Ticket.P5 Remote Printer 5 – as assigned in Product – called from script.SendOrder
Printer.Ticket.P6 Remote Printer 6 – as assigned in Product – called from script.SendOrder
Printer.Ticket2 Customer Display – alternative
Printer.TicketClose Sale - Invoked after transaction settlement
Printer.TicketLine Sale - Customer Display output alternative
Printer.TicketNew Sale - Customer Display output alternative
Printer.TicketPreview Sale - Pre-Sale settlement
Printer.TicketRemote Sale - Remote Printer – legacy for users of Kitchen print script
Ticket.Line Sales Screen - Displays current transaction’s ticket lines