View source | Discuss this page | Page history | Printable version   

Openbravo POS Direct Integration

Important: This integration architecture is not maintained in Openbravo POS 2.30 and Openbravo ERP 2.50 . This integration architecture needs Openbravo POS 2.20 and Openbravo ERP 2.40



In an organization, more than one software application often exists to support a particular aspect of operational requirements. The result is an heterogeneous set of software applications requiring data sharing and integration. An ERP system like Openbravo ERP tries to solve this problem by offering one solution for every operational requirement. Openbravo ERP maintains one shared database for all data, integrated processes among different departments, a consistent interface for every user, and homogeneous reports/score cards that display operational data of the whole organization.

However there are specific corners of an organization that an ERP system cannot solve. For example, POS systems like Openbravo POS where special user types and hardware devices support are required. The POS system user is a salesman who uses an ERP in a different manner. The interface has to be very easy to use and provide only the specific information the salesman needs. This salesman needs to operate the POS as fast as possible as his job is to sell, not to operate the POS. For example he does not want to deal with a mouse and a keyboard, rather he prefers a touch screen. In addition, the POS system needs to support a lot of POS hardware available for the real solution: receipt printers, barcode scanners, customer displays, cash drawers, scales, etc.

Openbravo POS is a point of sales application designed for touch screens. And can be downloaded from Openbravo POS Downloads.

This document describes the integration effort done between Openbravo ERP and Openbravo POS to integrate and work with the same set of data. This integration is based on web services and using the integration released in the Melinux Linux distribution and developed by Opentrends.

Integration overview

The focus of this integration is to create a system where Openbravo ERP is the central repository of data. Products, categories and orders are maintained and Openbravo POS has the ability to operate with the products catalog downloaded from Openbravo ERP and to upload orders created by the sales activity of Openbravo POS.

This integration has been developed with webservices. Openbravo ERP has two webservice endpoints called ExternalSales and WebService. The methods of these endpoints are called on by Openbravo POS whenever the integration is required.

The Synchronize POS process

In an integrated environment all the products information, warehouse information, product categories, taxes and customers information is maintained in Openbravo ERP. This process is executed when is required to synchronize Openbravo POS with the information that has changed in Openbravo ERP.

In the Synchronize POS process the following methods are invoked.

The Synchronize Orders process

Every Openbravo POS receipt created has to be uploaded to Openbravo ERP to allow this information be processed by the Openbravo ERP system.

The method invoked is the following:

Openbravo ERP configuration

Install Openbravo webservices

You need to install the Openbravo webservices that enable the integration functionality in Openbravo ERP. To do this open a terminal window, navigate to the directory AppsOpenbravo inside the Openbravo ERP base directory and execute the next command.

# ant installWebService

After installing the webservices you can see if it is properly installed opening in your web browser the page http://localhost:8000/openbravo/services/ExternalSales?wsdl and http://localhost:8000/openbravo/services/WebService?wsdl where localhost:8000 is the host you installed Openbravo ERP. You should see an XML file that describes the services Openbravo POS uses.

Edit the external point of sales

In Openbravo ERP edit the external point of sales to define the products that will be available for every point-of-sale. This way, when a point of sale tries to get the product catalog from Openbravo ERP, the products defined in this window for this point of sale are sent. And the options defined are used in the process of orders imported.

To edit the external point of sale you have to change the role to the Openbravo ERP entity administrator of the entity you are working with, and open the menu option Sales management / Setup / External Point of Sales.

In this window you define your point of sales and include/exclude products and product categories associated with your point of sale.

You can select the products set to synchronize by category or by product. To select the product by category choose All Selected in the Included Product Categories selector and add the category records wanted. To select the products list by product, choose All Selected in the the Included Products selector and add the product records wanted.

To achieve a successful synchronization is necessary to check:

Use Organization, Business Partner and Price List links in External Point of Sale window to check easier this points.

Openbravo External Point Of Sale Window

Add permissions to invoke the external point of sale web service

To invoke the external point of sale you need an Openbravo ERP user with authorization to invoke it.

To have authorization to invoke the external point of sale web service you need access to a task with class name Tasks are defined in the menu option General Setup > Application > Task. In the database provided with the default installation there is already a task External Point of Sales with class name

Once this task is created you need a user with a role that have access to this task. To edit users and roles associated go to the menu option General Setup > Security > User. And to edit roles and the task access go to the menu option General Setup > Security > Role.

Openbravo POS configuration

Configure the Openbravo webservices

Login as administrator and open the panel Maintenance > Resources. Create a new resource record called of type Text and copy the following example configuration text:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "">
    <comment>Openbravo Websevice configuration</comment>
    <entry key="url">
    <entry key="id">1000000</entry>
    <entry key="org">1000000</entry>
    <entry key="pos">1234</entry>
    <entry key="user">Openbravo</entry>
    <entry key="password">openbravo</entry>

The configuration values are as follows:

Find out the correct values of id and org in

Login to Openbravo ERP as System Administrator and go to Application Dictionary > Maintenance > SQL Query and execute (button with search icon):


Check in the query result the value of AD_CLIENT_ID and AD_ORG_ID for selected Client and Organization in External Point of Sale window and use them to configure

Openbravo POS Webservice Configuration

Execute the integration actions

Products synchronization and Orders synchronization in Openbravo POS

Login as administrator an go to the menu panel Maintenance. Here you have the two available options: Synchronize POS to download from Openbravo ERP the products list defined for this Point of Sale and the customers list, and Synchronize Orders to upload to Openbravo ERP the pending orders generated in this Point of Sale.

Import orders in Openbravo

Once orders are imported from Openbravo POS, these orders must be processed in Openbravo ERP to complete the importation.

To process the orders imported you have to change the role to the Openbravo ERP entity administrator of the entity you are working with, go to the menu option Master Data Management > Import Data > Import Orders and execute the process Import Orders. When the process ends a dialog with the result of the process is shown to the user.

Retrieved from ""

This page has been accessed 30,627 times. This page was last modified on 5 March 2010, at 23:27. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.