So I happened across a tweet via Fabien Pinckaers ( #fpopenerp ) the other day, dropping a hint about a new (and of course modular & very extensible) web-based touchscreen POS system being developed by the core team. The only glimpse I had of this web client was via the two urls he mentioned, pointing to a wonderful, snazzy touchscreen GUI. It looked like this:
So, needless to say, I was enticed. There are numerous ways to interface OpenERP-server with other touchscreen POS systems, such as Adiempere's POS, OpenBravo, and others. Data would be moved around via a TerminaTOOR/Kettle kind of bulk data synchronization scheme. The pos.module, out of the box, has all the functionality - but even in the snazzy new web interface lacked the true interaction design of a touchscreen POS system - large buttons, immediate information and functionality. an on-screen 10-key numerical pad, etc. I will give the alternative, KDE-based desktop client Koo some creds for making a good crack at this a while back, and really kind of squeezing the most possible out of the de-facto inline tree view interface.
But really, this is one of OpenERP's greatest weakpoints - the Point of Sale system - until now! It's about time that OpenERP's core team start taking on a BHAG like this. I'm sure it has quite a ways to go, but I would love to help make this happen - and as soon as possible, as we have clients who need this now!
Finding the Project on Launchpad
I knew the project had to be somewhere on launchpad - but this turned out to be a tricky venture. In retrospect, I probably could have taken a better approach and just meticulously plowed through the openerp codebase on launchpad... but I didn't even know who was developing it at the time - had only just seen glimpses!
But just tonight, I had a lucky break and found the OpenERP eventbrite schedule for the Community & Partners Days (wish I could have been there!) and there discovered a pad from a disucssion on the new web toucschreen POS - http://pad.openerp.com/touchscreen-pos
Right at the beginning of the etherpad document, I see the magical branch name:
So, if you are interested in branching and playing around, just install it like you would the web client - and experience the magic! Also, that etherpad will come into play further on in this post, so keep it open!
OpenERP web pos using.... PHP & JSON?!
Yes - gasp - thats right! From what I can tell it seems that this new web addon is using PHP to talk to openerp-server via JSON-RPC . This is an unexpected, but very keen move by the development team. They are using a jquery project - Mottie Keyboard for the on-screen keyboard, as well as jquery 1.4.4 and jquery-ui 1.8.10 on the backend. That little toolset right there is going to prove for loads of fun in building a really engaging user experience. It even seems that they are using a project called Dhtmlx Grid for a highly enabled in-line grid editing experience.
Then we have one of the workhorses behind it all, main.py (the controller for this, the openerp-web addon module called point_of_sale) that is handling the json-rpc requests and iterfacing with openerp-server.
Lastly, another file of note is the static/openerp/js/pos.js file that is handling a lot of the form validation, inline editing and many many of the other UI and direct functionality elements of this new system. The work that went into this is quite impressive, and will likely go a long way in helping OpenERP to offer not only an amazing POS system, but quite possibly one of the best open source POS systems available (considering the powerful backend).