Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP | etc.
I want to set up a Point of Sale at my shop, and I wonder what kind of hardware is supported. Is there a list somewhere ? Where do I get started ?
- Barcode scanners :
- any kind of EAN13 usb barcode scanner should be supported. Make sure you configure it to always emit 13 characters (sometimes they ignore the zero at the start, and then it doesn't work) and that it doesn't end with a special control character. Newline should work Ok.
- Touchscreens :
- Any kind of resistive or multitouch screen should work. In those cases you may want to activate the on screen keyboard in the Point of Sale settings.
- Printers :
- In the default settings, the Point of sale will use the browser to print. In this case any laser or inkjet printer supported by your operating system will work. But those kinds of printers are not ideally suited for printing receipts. There is a 'Print by Proxy' settings that enables you to bypass the browser and directly use your printer, but in this case you'll need to develop a driver for your printer or find one provided by the community.
Because the Point of Sale runs in your browser, it is sandboxed and cannot access your hardware directly. To solve that problem, we developed a custom proxy server that must be run on the client machine while running the point of sale. The Proxy server can access your hardware and forward commands to and from the Point of Sale.
The proxy server is part of a standard Odoo install. All you have to do is install Odoo on the client machine and run it with a default setup. What you'll need to do, however, is to customize the proxy to talk to your hardware.
The proxy is located in addons/point_of_sale/controllers/main.py In that file there are several stub rpc methods that will be called by the point of sale to control the hardware. You will need to implement these methods to use your hardware. There is more documentation available for these methods in the addons/point_of_sale/static/src/js/devices.js file. Some of there stubs are for functionality that couldn't be finished and fully tested before release, I'll mark them below as WIP.
Here is a list of the methods available :
scan_item_success(self,request, ean) scan_item_error_unrecognized(self,request,ean) help_needed(self, request) help_canceled(self,request) weighting_start(self,request) weighting_read_kg(self,request) weighting_end(self,request) #WIP payment_request(self,request,price) #WIP payment_status(self,request) #WIP payment_cancel(self,request) transaction_start(self, request) transaction_end(self,request) cashier_mode_activated(self,request) cashier_mode_deactivated(self,request) open_cashbox(self,request) print_receipt(self,request,receipt) #WIP print_pdf_invoice(self,request, pdfinvoice)
How to set up the 'Print by Proxy' settings that enables you to bypass the browser and directly use your printer.
Is this available for the online Saas V7?
The objective being to print the POS receipt for the customers, rapidly and automatically once the validate button of the POS is pushed.
As Frederic has stated virtually any standard barcode reader can be used. This is basically because they emulate keyboards and end the scanned string with a carriage return. Some older ones may need to be programmed for your choice of barcode standard as they can support multiple symbology standards see http://en.wikipedia.org/wiki/Barcode. Please consult your user manual. I suspect that if your scanner is not reading correctly this may be the case.
Touch screens are also universally supported as they are similar to a trackpad or a mouse.
As for POS printers, this is tricky as because the POS is run within the browser there is no direct interaction with the driver, resulting in garbled or unformated prints. The best out of the box/easy solution is to use Firefox browser with the AttendPrint add on. Although I am still trying to work out the font size issue. I can't change the font size.