Tuesday, January 21, 2020

Setting up a point of sale (POS) system for a Horizon library

Back in September/October 2019 I was tasked with finding a solution for a point of sale system to replace and old cash register system.  The cash register system we were using couldn't be purchased any longer with the features we currently had in place and required.  It was a simple cash register it had generalized logins for staff via id number, it did not tie into any point of sale system (Chase, Moneris, etc).  So we decided to look at a number of Point Of Sale Systems, 

The current system had the following requirements.
  • The cash drawer needed to work from 2 workstations
  • It had to auto logout after each transaction
  • It had to have individualized generalized logins (ie. id number) for transactions
  • It had to not open the cash drawer printing out of the ILS (Horizon)
  • It had to have remote reporting and administration
  • It had to have an export for specific reporting that is required by our accounting system
  • It had to be expandable to two locations (just one to start)
  • It had to be easy to use and manage
  • NOT BREAK THE BUDGET (approx $100/month for 2 locations and 20 staff)
  • Make reconciling the payments easier
After setting up and trying of several point of sale systems some open source and several paid systems the one we settled on was VEND.  

VEND Point of Sales System

VEND is a small business Point of Sale system that we can use for what we require.

Vend's Features:
  • Sell on any platform (a chromium based browser is really the only requirement)
  • Customer Tracking (for repeat purchases and profiles)
  • Built in Inventory
  • Ecommerce and marketing
  • web based staff / user management
  • web based reporting
  • programming api
  • Quick Keys / Custom Buttons
  • Product and Customer Search
  • Line Item and Sale Notes
  • Discounts
  • Custom Receipts
  • Customization payment layout such as (Visa, Mastercard or combined Credit button)
  • Split Payments
  • Excel exportable reports with all listed line items and notes.
I asked the customer services supervisor Jordan Moss to make sure it did all the features her department required.  After the initial setup, Jordan was able to setup the point of sale systems, verify the reporting and user management information was just what they required.  She setup all the different payment types for both locations allowing me to further investigate how to setup the systems with the payment system and receipt printer.    The feature we were only interested in was the sales and reporting.  Vend got all these check boxes for us and now I could focus on the technical process and work out the issues with the desired setup.

Payment Terminal

For the most part my research into this showed that you should setup a point of sale from a single unit (machine) that has a sales terminal and debit/credit machine tied to that individual device (called semi-integrated mode).  Typically you would setup a payment system in semi-integrated mode, which is a checkout method used by retailers which integrates payment processing and POS software in a secure & streamlined network configuration. Semi-Integration allows retailers to accept Chip/EMV credit card and debit card payments, as well account for inventory changes, returns, voided transactions and other payment functions.  Vend supports 2 chase point of sale terminals in Canada for semi-integrated mode, but they are not universally compatible.  So if you want to use iOS from Apple you need to go with the Chase iCT250.  If you want to go with a wired Windows system you need to go with the Moneris Desk 5000.  We had got the Chase iCT250 (wired) but it was assumed we were going to be using an iPad for a sales terminal; so it would not semi-integrate with VEND on windows.  

Chase Payment Terminal

This turned out to be a good thing as for the Semi-integrated mode to work you have to tie the debit machine to a single pay station therefore eliminating the ability of using the second machine with the one debit terminal.  So we are not working with the payment system in semi-integrated mode.  It was decided to keep the Chase system because if we did want to setup a stand alone payment terminal because of the space requirements a 9.7" ipad might be the best choice and since we could not utilize semi-integrated mode anyways because it can't be used with more then one point of sale system as shown above.

Since we wanted to use 2 workstations that would double as point of sale stations using one receipt printer and one payment terminal; I started using my imagination and was looking at some documentation for networked Epson receipt printers and I came across this.  It gave me an idea for how to handle this point of sale setup.

Epson TM88-IV Lan Diagram
This diagram came from an Epson TM-T88IV manual and I drew inspiration to try setup the point of sale between two workstations.  The system is simple, setup the default Windows printer to be the default printer to be used with VEND.  This will allow the cash drawer to open when VEND is logged in and in use.  There is no changing the printer when you go to print, everything on the system is setup to work as a point of sale system.  This identically done on both systems that will be using the POS software.  Since the same slip printer would be required to print off sips from the ILS (See my post about setting up slip printing in horizon).  

Setting up the cash drawer was pretty easy with the networked receipt printer.  The

cash drawer we selected was the CBM 2000 Universal 24V cash drawer.  The cash drawer connected with the RJ12 to the TM88-V DK port and worked flawlessly though the driver.




After you install the printer driver it is located in Printer Preferences as shown below.


Epson TM88-V cash drawer settings


Even after getting the printer setup and installed; the setup with the Horizon ILS created a couple of issues that had to be resolved to get the system setup with the requirements we started with.

Issues to resolve

  • Stop cash drawer opening when horizon prints a slip (receipt)
  • Setting up the receipt printer to stop wasting paper on the receipts
The first issue was easy to resolve, since this was a network based 80mm printer, I created 2 printers on the client, one opens the cash drawer at the end of the document as shown above the other does not.  Both printers must be installed on both clients, with the Horizon Slip Printer being setup for use specifically for the ILS slip/receipt printing and the other Epson TM88-V is setup as the default printer for VEND and takes care of opening the cash drawer for the VEND point of sale system as shown below.


Horizon ILS Slip Printer Settings

Windows IP Printers for receipt printing

By default both the Epson TM88-V and the Horizon Slip Printer would print the full 297mm length by default regardless of how big the receipt was being printed.  To stop that from happening I setup a new paper size of 80mm wide by 58mm high.  I set this paper size to be the default for both printers as they were printing the full 297mm.  To make this change you use the Epson TM88-V utilities that are installed with the driver.  Once you make these changes, you can add other printers etc, but I've experienced issues where if you go to print to another printer, the printer prints to the size of the 80mm receipt on a letter size piece of paper unless you select printer properties and re-select letter.  

A caveat with this setup according to VEND is that we could encounter out of order or duplicate numbering with our payment processing; though this has not come about in testing, the main thing I had noticed was the browser not recognizing that the system had been closed and needed to be re-opened.  Deleting the browsers cookies or re-syncing VEND's local data with the browser seems to resolve this issue.

Overall the staff and managers quite like the setup; and think it is easy for them to use and manage.  It hasn't quite been a month that they have been using it but I have my fingers crossed!

How to fix CURL call imporitng an RSS feed on a site blocking CURL calls

There is a 3rd party service provider that my organization uses called bibliocommons.  They have these nice book carousels.  However the car...