Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

OFBiz-POS (Point Of Sales)

OFBiz has it's own open source POS front end application. The interface utilises XUI whilst the business functionality is directly reusing the core OFBiz technology underneath. Thus the POS terminal gains all the benefits already built into the framework around products, pricing, promotions and facilities etc.

System options

Those familiar with OFBiz will understand most of these options as they already exist in the main framework.

  • Choice your Database your choice as per OFBiz entity engine. Run one locally on the POS terminal, effectively standalone mode for resilience against network connection problems, or from another machine if you only want to maintain one database.
  • Synchronise - It's possible to synchronise the POS database with an upstream central (or mid tier) database. This allows for all product administration to be done at the upstream level and synchronised down to the POS terminals. This process works the other way for reporting of sales back and customer info into the central system from the POS terminals.
  • Stock management - In simple terms the main database will have visibility on the stock levels and the POS terminals can feed updates. As always the real time argument comes into effect based on how often you synchronise and even then you will still fall foul to the customer who has picked it from a shelf but not processed through the till yet scenarios!

It would be nice to see development of a stock check against other facilities screen to ease customer enquires about other shops having it in stock. Think real time stock issues again though!

To Setup

Getting Started
POS Setup Process
Technical Production Setup Guide
Business Setup Guide
Documentation Index

To Run

java -jar ofbiz.jar -pos

Getting Started:

Login with userid "1" and password "1" (or 2/2 for a non manager person).
To use the "register" it must be opened, which basically involves telling the system how much cash you are starting with. It will then keep track of cash transactions so you can see if everything balances when you close the register.

...

Using Load and Save Sale buttons, you can park customer transactions for later recall. If using a central store database it allows you to pick up again from any till.

Internationalisation (I18n)

Localisation (L10n) of POS application is straightforward, look in \applications\pos\config\.
There are 2 kinds of labels.

  • Those managed by OFBiz directly : in PosUiLabels.xml
  • Those managed by XUI : in XuiLabels.properties (add your language if needed)

Synchronization

Sync Setup Notes and Example 

Some Hints from:

  • How to run the POS terminal at the same time as an instance of OFBiz on the same machine? It's a real pain shutting down POS and starting OFBiz and vice-versa to make changes!
  • You must launch 2 instances with different port numbers. You need to turn off the BeanShell ports in the ofbiz-containers.xml file. You are able to overide this port on the command line, in which case you will be able to continue to run the BeanShell access on different ports.
  • There is even a better way to do that. Running it in 2 Java instances is fine but just not as efficient because (depending on your JVM) Java won't be able to share resources that are sharable, like jar file in memory and such. You can run both in the same instance. The easiest way to do this is to add the catalina section of ofbiz-containers.xml to the pos-container.xmlUse startofbizBoth on Windows and "java -jar ofbiz.jar -both" at large

Tried and Tested hardware:

You may find a more complete list here. To know more about JavaPOs in general

...

Some comments pulled from the mailing list and added since

I found STAR (serial) receipt printers to be the best; a cash drawer which plugs into the back of the printer works great. As for scanners, use a keyboard wedge scanner and a keyboard or USB MSR. The POS devices we used had MSR built in, not exactly sure how it was configured, but in the end it send the signal through the keyboard device. A term pole display will need to be implemented, as this is not currently supported. However, it shouldn't be very difficult which the base which is there today. Touch screen is configured on the OS level. ELO based devices work on Linux.

The multiple drawers can be thru the serial. most are thru the parallel port. Gets tricky if you have a parallel device as well. Touch screens can use the keyboard wedge as well.

The model we used for testing was a DigiCom iPOS435 with a side-mounted MSR. Our particular units had Celeron 850MHz processors and 512MB of RAM. Performance was adequate, but I don't think I could call it "fast". (OS - Gentoo, Fedora; DB - postgres). You may want to compare the ipos430 spec to whatever you're looking at currently. Aside from the speed, it is a very nice unit. For printers we used a basic Star Micronics thermal (model TSP600), which worked out just fine during testing, though I can't comment on long-term reliability.

Beware with wedge scanners not self-powered. I had a problem with a Dell Dimension 4600 (too weak keyboard alimentation I think) and a Zebex 3080. No problem with the USB model.

I've used Metrologic scanners (tabletop & handheld) almost exclusively for the past 5 years with a variety of Dell's and custom built machines. I've never had a problem with the keyboard wedge versions. They all had their own power source.

Deployed OK on FC3-XFC4 with a Star TSP600 printer using serial, MetroLogic keyboard wedge scanner and MultiQ 156 serial touch screen using mutouch drivers. Cash draw linked into the printer and operates fine. No MSR requirements so not tested.

How to use a MSR for CC payments.
Program your MSR to work as a keyboard, not a human interface device (HID) if you can. Change the device from NullMSR (I think) to GenericMSR in framework/base/pos-configuration.xml. Use the device in specialpurpose/pos/config/jpos.xml.
The payment services can be set under Catalog -> Store payments

Mag Stripe Readers issue on Windows XP.
Using both an ID Tech USB MSR using ID Tech's JavaPOS driver and a Magtek USB device with the GenericMSR driver a problem appears on Windows XP. While it was working properly on other platforms, on WinXP it seems the data isn't  getting captured and waiting when paymentEvents.payCredit is run.  When installed  on Windows they show up as HID's and Keyboard's in the Windows Device Manager. The problem was solved by increasing MaxWaitKeyboard in  jpos.properties.  The complete string from the MSR wasn't received in a single event so the logic wasn't recognizing it as an MSR swipe.

How to setup the Epson JavaPOS ?

Setup the Epson JavaPOS

Areas for thought/investigation

For UK receipts the VAT needs to be shown as the amount made up in the gross price. The system can handle multiple VAT codes/values i.e. books have 0% VAT and books with tapes have 13% and pretty much everything else has 17.5%. The till functions correctly in applying the different amounts when the data is configured but need to look into the receipt reporting as we need a sub total listing the amounts for each VAT code separately. Plus if we store gross amounts then the VAT should not be added, just show how much it is! Ray Barlow 25/05/05

...