Welcome to the world of free and open source Drupal, Ubercart and Openbravo POS. If you didn’t already know, this blog is powered by Drupal. Gone are the days when you need a team of developers to create and maintain a website. Leveraging on Drupal, Ubercart delivers shopping cart functionalities that allow you to host an online storefront. On the other hand, Openbravo POS is a Point-of-Sales system that can sync-up with Openbravo ERP which is a full fledged ERP system. It’s amazing that software that used to cost millions now cost next to nothing.
Ubercart is great for capturing online orders. However, if orders also come through phone/fax/email, then it seems a little awkward to have to create login accounts on behalf of customers who do not actually access the website, just to capture their orders. In this case, a Point-of-Sales system is more natural for order entry, and this is where Openbravo POS fits the bill. However, if both Ubercart and Openbravo POS are used, you end up having the customer and order data stored in two different systems. For better manageability, a possible solution is to sync the data from Ubercart into Openbravo POS. The added advantages of doing so is that Openbravo POS can be used for printing receipt tickets to be handed to customers along with the goods delivered, as well as generating various sales reports.
Here’s the general idea of how to go about exporting orders from Ubercart and importing them into Openbravo POS:
- Install and configure the Ubercart EDI module (assuming you already have a site running Ubercart). Orders received in Ubercart can be automatically exported to an email address (manual HTTP/FTP download also possible). The advantage of using email is that housekeeping can be done more easily: after an order has been imported into Openbravo POS, it takes a simple line of code to mark the mail as deleted. There is probably more involved in having to delete a file if FTP is used instead.
- Code a program that checks the email for exported orders (doing so using the Javamail API is pretty easy), and insert them into the relevant Openbravo POS database tables: insert new customer data into the ‘customers’ table and new orders into the ‘sharedtickets’ table. The tricky part is in having to construct and serialize the TicketInfo object and storing it as a blob (all the necessary code can be found inside the Openbravo POS source, thanks to Openbravo POS being open source).
So there you have it, you could actually set up an online store that is coupled to a Point-of-Sales system for free (the software portion that is), and they are good enough for most small businesses!