You are on page 1of 19

Integrating Hardware with the Point of Sale

Frederic van der Essen

July 8, 2013

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

The Issues

The Point of Sale is a Sandboxed Web Application


We need to work trough the browser API.
Not an easy task

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Topics for Today

TouchScreens
Barcode Scanners
Printers
Scales, Cashbox, leds
OpenERP Proxy API
Point of Sale Debug Mode
Roadmap

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Touchscreens Issues

Touchscreens dont have hover events


Bad Touchscreens can only click, no drag and drop.
We cant detect what kind of screen is used.
Not all OS provide keyboard emulation

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Touchscreens Solutions

Dont rely on hover events


Scrollbars that work without drag and drop
Provide onscreen keyboard.
Hope bad touchscreens go out of market

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Barcode Scanners

Barcode Scanners are keyboards that type very fast


Hard to reliably differenciate from regular keyboard
The scanner needs to be perfectly configurated.

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Barcode Scanner Configuration

Maximum interval between keys: 30ms


Must always output 13 numbers (EAN13)
The OS must be configured in QUERTY US
The Barcode scanner must output upper row numbers

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Printers

The html print() API allows to print the current page


Prompts the user for confirmation
Not reliable in google-chrome

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Printer Solutions

Use chrome kiosk mode with silent printing --kiosk


--kiosk-printing
Use OpenERPs Proxy API instead

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Scales, Cashbox, leds

No browser API.
How do we go around that ?

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

OpenERP Proxy API

Create a connection to a locally installed proxy OpenERP


server
Use the proxy server to control the devices

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

OpenERP Proxy API

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

OpenERP Proxy API

The proxy server implements the device drivers


The proxy is just a simple python file
point of sale/controllers/main.py
Communication between the Point of Sale and proxy
standardised by a simple api

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

OpenERP Proxy API: Scale

weighting start()
weighting read kg()
weighting end()

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

OpenERP Proxy API: User Interaction

help needed(self, request)


help canceled()
transaction start()
transaction end()
cashier mode activated()
cashier mode deactivated()

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

OpenERP Proxy API: Other Hardware

scan item success(ean)


scan item error unrecognized(ean)
open cashbox()
print receipt(receipt)

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Point of Sale Debug Mode

Debug mode demo

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

POS Hardware Roadmap

Provide list of supported hardware and associated drivers.


Payment Services Integration
Improve tablet support

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

Fin

Questions ?

Fr
ed
eric van der Essen

Integrating Hardware with the Point of Sale

You might also like