Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

18

What kind of hardware is supported by the Point of Sale ?

By
Frédéric Van Der Essen (fva)
on 1/31/13, 6:59 AM 15,246 views

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 ?

This question has been included in the official documentation.
21

Frédéric Van Der Essen (fva)

--Frédéric Van Der Essen (fva)--
903
| 6 7 5
--Frédéric Van Der Essen (fva)--

Frédéric worked on different core projects at Odoo since 2012. He is a core developer of the Odoo R&D department. He worked on several projects including the design of the current website and the UI of the open chatter communication tool.

Frédéric is also the owner of the PosBox project and the latest versions of the point of sale frontend.

Frédéric Van Der Essen (fva)
On 1/31/13, 7:31 AM

Standard Hardware

  • 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.

Custom Hardware

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)

Ok, but if I don't want to code the proxy? You should at least have a default implementation of the proxy that will work with some precise hardware, if I buy the exact same one it should work isn't it?

Nicolas Vanhoren (niv)
on 1/31/13, 10:34 AM

Right now, if you don't want to code the proxy you should stick with the standard hardware setup. We do have specific code for some hardware but it is not ready for release.

Frédéric Van Der Essen (fva)
on 1/31/13, 10:46 AM

I've looked all over the web for this answer!! Wow how did I not know about help.openerp.com until now?? Thank-you so much!

Kevin Shenk
on 2/8/13, 4:57 PM

What do you mean by install OpenERP on the client machine? How will it work in a server to multi-clients environment?

Osoul for Technology and Software Development
on 2/15/13, 5:08 PM

You must have a local openerp install on the client machines. There is very little setup to do on those installs, it's just to talk to the hardware. There is unfortunately not many ways around the browser sandbox.

Frédéric Van Der Essen (fva)
on 2/19/13, 12:27 PM

Frédéric, would you mind explaining what this local openerp install means? In my case I would have a PC with the webclient for the POS, and the server installed on the same/different machine. the card reader/receipt printer would be on the same LAN. What else?

Thank you,

Bodi
on 2/20/13, 8:48 AM

I notice that payment communication is WIP. Is there a way as of today to communicate with the card reader? Meaning: 1. sent amount to be charged, payment type (e.g. visa, mc, etc) 2. receive payment transaction result 3. print receipt (this I guess is what this question was about) Thank you so much

Bodi
on 2/20/13, 8:52 AM

Pls let me know if I should open another question for my inquiry; I considered it a developemnt of the original question, but just saw Fabrice's comment :-)

Bodi
on 2/20/13, 8:54 AM

The local openerp install means you need to install an openerp on the same machine that will display the point of sale with a web browser.

Frédéric Van Der Essen (fva)
on 3/5/13, 8:55 AM

And for the card reader, communicating from the python proxy to the hardware will depend on the hardware you use. As for communication from the web client to the python proxy, the basics are there, with a lot left to be done, namely managing errors returned from the reader, and making it work outside the self checkout mode. And the PosOrder object has to be modified to include receipt data generated by the payment terminal.

Frédéric Van Der Essen (fva)
on 3/5/13, 8:57 AM

Oh and, development on the payment terminal is currently on hold on our part, but I'll gladly give pointers or review code :)

Frédéric Van Der Essen (fva)
on 3/5/13, 9:08 AM

Please give more detail on this local openerp install, for OpenErp Ver. 7, there is no client option to install. If it is server installation, how would the local installation get my server data? Is there some config that must be changed to allow local installation to work off server installation?

Fritz Schlechter
on 8/21/13, 5:36 PM

I'm doing a replacement proxy server to whole OpenERP: https://github.com/Sandwych/openerp_pos_devices_bridge

It's just a proof-of-concept script right now, but it works.

Wei Li
on 10/12/13, 2:08 PM
This question has been included in the official documentation.
1

michel Guénard

--michel Guénard--
1033
| 5 5 8
VIROFLAY, France
--michel Guénard--

VP operations & finance Social entrepreneur Certified Public Accountant Past Chief internal auditor

michel Guénard
On 2/15/13, 2:01 PM

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.

Please do not ask questions in answers. Instead create a new question.

Fabrice Henrion (fhe)
on 2/15/13, 4:37 PM
This question has been included in the official documentation.
1
Alexandre Takacs
On 5/4/13, 5:49 AM

Is there anyone offering openERP-ready POS setups ?

Also I don't think Walid's question about multi-client setup has been answered ?

This question has been included in the official documentation.
0
mamak111
On 5/6/13, 7:04 AM

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.

Wonder if you managed to work out your problem? May I know what POS printer model are u using?

ROVYX BizTech Pte Ltd, Ronnie Choo Partner Portal Access
on 9/24/13, 8:06 AM

Hi Ronnie, you can try our Fiscal Printer Module: http://www.didotech.com/index.php/progetti/download/category/2-openerp-70 It gives you a possibility to create a printer driver without using JavaScript and developing proxy server.

Andrei Levin
on 10/13/13, 8:44 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

17 follower(s)

Stats

Asked: 1/31/13, 6:59 AM
Seen: 15246 times
Last updated: 9/20/16, 3:17 AM