Thursday, November 20, 2025

Orisha Commerce / Openbravo Retail - Recent Works

We worked on these modules for different clients worldwide. 

Tamara Payment Integration in Webpos https://tamara.co/en-sa 
Tamara is a “Buy Now, Pay Later” (BNPL) payment service operating in the Middle East (Saudi Arabia, UAE, Kuwait, Bahrain) that allows shoppers to split purchases into multiple payments rather than paying the full amount upfront. 

AppleCare+ Integration https://www.apple.com/in/applecare 
AppleCare+ is Apple’s extended coverage plan for its hardware devices (iPhone, iPad, Mac, Apple Watch, etc). It adds to the standard warranty and support.

Klarna Payment Integration https://www.klarna.com/us/ 
Klarna is a Buy Now, Pay Later service that lets you split or delay payments when shopping online. It offers flexible, interest-free payments and easy management via its app.

VIVA Payment Integration https://www.viva.com/en-eu Viva is a digital payment platform that lets businesses accept online and in-store payments. It supports credit/debit cards, Apple Pay, Google Pay, and local methods through its Smart Checkout system. Merchants can integrate Viva via APIs, plugins, or POS systems for web and mobile apps. This provides real-time transaction tracking analytics and secure payment processing. Viva is widely used across Europe for fast, safe, and flexible payment solutions.
  
Implementation of Complex Asian Fonts in Invoice PDFs. We integrated support for complex Asian fonts (i.e Khmer) in invoice PDFs. This was achieved using open-source libraries that support Unicode and CID-based font embedding. The implementation ensures accurate rendering and layout of multilingual characters. It allows invoices to display diverse scripts without font distortion or encoding issues. As a result, the PDF invoices are now globally compatible and visually consistent.

Wednesday, July 30, 2025

Qualian Android POSHardwareManager: The Trusted Hardware Bridge for Orisha Commerce (formerly Openbravo WebPOS)

๐Ÿงพ Qualian Android POSHardwareManager: The Trusted Hardware Bridge for Orisha Commerce (formerly Openbravo WebPOS)

Qualian Android POSHardwareManager is a secure, Android-based hardware controller developed by Qualian Technologies. It serves as a lightweight yet powerful bridge between Orisha Commerce WebPOS (previously Openbravo WebPOS) and physical POS peripherals such as printers, barcode scanners, and HTTP endpoints.

Designed for field-ready deployment, it is ideal for retail terminals, mobile billing devices, and warehouse operations requiring direct hardware control from Android.


๐Ÿ”ง Core Features

✅ Embedded HTTP(S) Web Server

  • Launches automatically at device boot
  • Accepts REST-style commands from local or cloud systems
  • Enables external triggers for actions like printing

✅ Seamless Bluetooth Printing

  • Connects directly to ESC/POS-compatible thermal printers
  • Designed for speed, clarity, and compact report formats
  • Fully tested in mobile and fixed retail environments

✅ Flexible Report Generation

  • Converts structured XML input into clean, formatted text
  • Uses efficient SAX-based XML parsing for performance
  • Supports receipt layout customization via ReportVO files

✅ Built-in Log Viewer & Share Feature

  • Includes a “Show Logs” menu to view and share logs easily
  • Automatically handles storage permissions and URI restrictions
  • Supports logs in both external-files and cache using Android FileProvider

✅ Auto-Start on Boot

  • Designed for unattended kiosks or mission-critical tablets
  • Starts essential services like the web server automatically after boot

๐Ÿ”’ Private Access & Customization

๐Ÿšซ Qualian Android POSHardwareManager is not an open APK.

If you're interested in:

  • A hands-on demo
  • A custom integration for your hardware
  • Extending it for Android-based Orisha Commerce terminals

๐Ÿ‘‰ Please contact: android@qualiantech.com


๐ŸŽฏ Ideal Use Cases

  • POS tablets running Orisha Commerce
  • Retail and logistics companies using custom Android terminals
  • Embedded printers, scanners, and local device communication
  • Mobile receipt printing for delivery & warehouse management

๐Ÿ”ง Recent Updates

  • Fixed NullPointerException in XML report generator
  • Improved Bluetooth print timing and logging
  • Secure log sharing enabled via FileProvider
  • Support for both cache and external file storage

๐Ÿ“Œ Note on Evolution

This solution was originally built for Openbravo WebPOS, which is now known as Orisha Commerce.

Qualian Android POSHardwareManager continues to offer full compatibility and can be tailored to suit modern Orisha Commerce deployments.

Tuesday, October 13, 2015

Openbravo Live instance - Known issues and solutions


Account Tree got mixed up



Impact - Wrong value in Balance sheet and P&l structure report
Reason - Manual error(drag and drop), wrong account type, improper "IsSummary" (folder structure)

Solution:

--All accounts,breakdown,header should have SUMMARY LEVEL yes

select c_elementvalue_id,value,name,elementlevel from c_elementvalue  where elementlevel<>'S' and issummary='N'



--check any sub account in summary, if so fix it
select c_elementvalue_id,value,name,elementlevel from c_elementvalue  where
elementlevel='S' and issummary='Y'



--subaccount as parent, if so fix it
select node_id,parent_id from ad_treenode where ad_tree_id  ='PASS-TREEID-HERE' and parent_id in 
(select c_elementvalue_id from c_elementvalue  where  elementlevel='S')

find tree id using following query
select ad_tree_id,name,treetype from ad_tree where name ilike '%element%';

Product type mixed up

Example : Air ticket. User wrongly created this product as product type "Item" instead of "Expense" and placed Purchase Order. Now user identified error and try to update product as "Expense" .
System won't allow because stock proposal is registered .


Solution:


create or replace function fix_producttype(product_id varchar) returns void as $$
begin

update m_storage_pending set qtyreserved=0.00,qtyordered=0.00 where m_product_id= product_id;
update m_storage_detail set qtyonhand=0.00 where m_product_id= product_id;
update m_product set producttype='E',isstocked='N' where m_product_id= product_id;
end;
$$ LANGUAGE plpgsql;


select m_product_id,value,name from m_product where name ilike '%ticket%' and producttype<>'E'

select producttype(m_product_id) from m_product where name ilike '%ticket%' and producttype<>'E'



Tuesday, March 24, 2015

Openbravo - Finance Management - Payment OUT Approval feature




Document Rule 
    Document Rule window is used to define a rule for providing multilevel approvals for each Document Type.




    Payment Out Approval

    • Payment Out Approval window is used to review and approve Payment Out processed in the system. It will list all the Payment Out which is waiting for user’s approval.




    • Select the document which need to be approved . On selecting the corresponding line it will open a pop-up as below.




    Show History

    • Clicking on Show History link it will display the approval process and comments.


    • On clicking the Approve button it will check for the next level approval based on the document rule and it will be available for the next role that need to be approved.
    • If there is no next level approval then the document will be approved.
    • On clicking the Rework button it will send back the document to the requester with initial status as “Awaiting Payment” .



    Friday, January 9, 2015

    Openbravo Platform - Latest features


    Combined Selector+Record creator:

    Release : 3.0 PR14Q4

    New selector definition that allows to create new records. Record creation is based on a Process Definition window.


    http://wiki.openbravo.com/wiki/How_to_implement_Create_New_In_Selectors


    Landed Cost

    Release : 3.0 PR14Q4

     Landed costs implementation supports allocating additional costs to product receipts and related accounting


    http://wiki.openbravo.com/wiki/Landed_Cost


    Tree Selector

    Release : 3.0 PR14Q2

    The Tree Selector described in this manual is a variant of the Openbravo Selector. It can only be applied on tables with trees defined.
    Both the implementation of the tree selector and its use is similar to the standard selector. The main difference is that instead of using a grid for the form item drop down and the popup, the Tree Selector uses a tree grid:
    Drop down tree:

    TreeDropDown.png
    Popup tree:

    TreePopup.png

    http://wiki.openbravo.com/wiki/How_to_Create_a_Tree_Selector


    Process Group:

     Improve the Process Scheduler to be able to schedule and execute a group of processes as a single unit.

    Process Group List

    Create a Process inside a Process Group with a sequence number
    Process Group List contains the list of processes that are part of the group sorted in a certain order.
    ProcessGroup.png


    http://wiki.openbravo.com/wiki/Process_Group

    Code : https://code.openbravo.com/erp/mods/org.openbravo.platform.features/summary


    Thursday, July 24, 2014

    Openbravo - metR - Web based construction ERP




    Designed for today’s challenging environment, metR helps Construction businesses operate more efficiently and improve profitability.

    metR ERP is specifically designed to optimize the way a construction company operates in order to ensure continued success even as the company changes and grows. Using metR ERP, your organization can combine several functions into a logical, integrated system that facilitates the flow of information across your organization. metR ERP is designed using a centralized database that facilitates the modelling and automation of basic processes across your organization, eliminating the need for disparate systems maintained by
    various units of the organization. metR allows you to control and access data in real time,helping you maximize your profits through better budget and schedule management while reducing the risks of duplicating or losing data entries. We streamline the management processes to provide you with the accurate information you need to assume full control of your day-to-day operations.









    Key Features
    • Tender Management
    • Role based Workflow Approval support
    • Project Estimation
    • Contract Management
    • Project Planning & Budgeting
    • Project Execution & Monitoring
    • Progress Billing Management
    • Construction Payroll
    • Labour Management
    • Inventory Management
    • Procurement Management
    • Tools & Equipment Management
    • Breakdown/Preventive Equipment
    • Maintenance
    • Accounting
    • Executive Dashboard, Widgets
    • Business intelligence / Reports
    • Document Management / Attachments
    • Sub-Contractor portal
    • Vendor portal

    metR key Components and their Features

    Construction Master Setup
    • Multilevel Material Categories and Material management. Virtually it supports 
      unlimited levels.
    • Multilevel Equipment Categories, Equipment Type, Equipment and Attachment 
      management.
    • Tools Categories and Tool management.
    • Bill of Quantities (BoQ) template management which will be used for project estimation,
      planning and budgeting. Each BoQ will have any one or more of the 5 components 
      below in its definition.
      1. Labour
      2. Material
      3. Equipment
      4. Tools
      5. BoQ
    • Expense Type Management for effective Petty Cash Management for the Projects.
    • Holiday Calendar definition for organization’s public and private holidays.
    • Indirect Cost Category and Indirect Cost Element Management






    Monday, July 21, 2014

    Openbravo - Human Resource Management - Qualian HRM User Manual

    Contents

    1.0 General Setup
    • 1.1 Holiday Calendar
    • 1.2 HR Calendar


    2.0 Company Setup
    • 2.1 Company
    • 2.2 Company Holiday Calendar


    3.0 Employee Setup
    • 3.1 Designation
    • 3.2 Working Hour
    • 3.3 Department
    • 3.4 Employee Contract
    • 3.5 Employee
    • 3.5.1 Employee Tab
    • 3.5.2 Employee Identity
    • 3.5.3 Qualification
    • 3.5.4 Certifications
    • 3.5.5 Skills
    • 3.5.6 ID Card
    • 3.5.7 Experience
    • 3.5.8 Dependents
    • 3.6 Employment
    • 3.6.1 Employee
    • 3.6.2 Department
    • 3.6.3 Designation
    • 3.6.3 Asset
    • 3.6.5 Memo
    • 3.6.6 Benefits
    • 3.6.7 IT Declaration
    • 3.6.8 Payroll


    4.0 Leave Management
    • 4.1 Leave Type
    • 4.2 Designation-Leave Type
    • 4.3 Leave Request
    • 4.4 Approval Delegation
    • 4.5 Leave Request Approval
    • 4.6 Close Leave Year


    5.0 Shift Management
    • 5.1 Shift Definition
    • 5.2 Designation - Shift Assignment
    • 5.3 Shift Roster


    6.0 Memo Management
    • 6.1 Memo Setup
    • 6.2 Issue Memo


    7.0 Benefits Management
    • 7.1 Medical Insurance Upload


    8.0 IT Declaration







    Wednesday, July 16, 2014

    Openbravo Singapore Localization - GST

    Qualian - Singapore Localization module - User Manual for GST


    We have 2 reports related to GST .


    1) GST FORM





    2)  GST Grouping Details



    Let's see how to generate these reports.


    We have 3 windows related to GST

    1)     GST Form Setup

    2)     GST Form

    3)     GST Form History


    1)  Initially configure the GST Form Setup


    Navigate to Financial Management >> GST FORM >> GST Form Setup


    GST Form Settings – Required for generating GST Form

    Standard Tax : Business Partner Tax Category for Standard rate supplies Zero Tax : Business Partner Tax Category for Zero rate supplies
    Exempt Tax : Business Partner Tax Category for Exempt rate supplies


    Tax Payment Settings – Required for integrating GST form with Openbravo's Tax Payment

    Business Partner : Business Partner record for IRAS Currency : Currency of the Client

    General Ledger : General Ledger of the Client .

    Sales Tax Register : Sales Tax register for recording sales related taxes in Tax Payment. Purchase tax Register : Purchase Tax register for recording sales related taxes in Tax Payment.


    Note :

    1) Only one record should be available in GST FROM Setup .

    2)     Business Partners will be considered only if they are associated with any one of the tax selected in the Setup window . (Standard Tax , Zero Tax , Exempt tax )




    2) Generate GST Form

    Navigate to Financial Management >> GST FORM >> GST Form


    Organization : select Organization to which GST Form should generate . (Invoice Organization) From Date : From Date of the GST Form (Invoice Date)

    To Date : To Date of the GST Form (Invoice Date)


    Click “Pdf Report” button to generate the report .



    3) GST Form print will create a record in GST Form history .

    GST Grouping Details report will be printed from the GST Form History window .


    Navigate to Financial Management >> GST FORM >> GST Form History




    Click the print icon to generate Grouping Details Report .


    You can see all the invoice,tax details which are used to generate above reports in Tax Payment window.





    Download:

    Monday, May 26, 2014

    Openbravo Challenges - Define Sales price in a volatile market


    Challenge(s):
    • In Wholesale Fresh and Frozen meat business,market is volatile and product price will fluctuate everyday from -25% to +25% based on supply/demand.
    •  It's difficult or practically impossible for a manager to revise price/price-list every-time based on purchase. Why don't we let system to derive prices automatically? Is it possible?
    •  Sales man should know price limit,sales price,market price to tackle bargain.
    • System should throw alert if any product sales price is less than product cost and system should notify the same to manager.
    • In some cases,manager need permission to overwrite sales prices defined by system.
    • Don't show product if it's not active in sales.(Stock not available,Inactive Brand,etc..)
    Solution(s):

    •   Used price-list schema and derived profit margin(list price,unit price)(user configurable) (i.e 2% - 4%)
    • Mapped pricelist schema with pricelist and applied check boxes "Enforce Price Limit","Price List based on Cost"
    • Wrote a new scheduler to create product prices based on pricelist schema.
    • Created a new tab "Warehouse" under pricelist to know about stocked products.
    • Enabled existing feature "Enforced Price Limit" and updated.
    • Created an alert and scheduled email to notify manager ( every 5 minutes).
    •  Added check box "Is Manual" to override product price
    SCHEDULER RULE:
    • Remove all not stocked products from pricelist - product price.
    • Confirmed/added all stocked products from price list - product price.
    • Use Product cost "COSTING" and update all products price limit,price list and Sales price
    • If product cost not found(i.e new product,cost not calculated),scheduler will use last purchase price as COST.
    • Throw an alert if product list price,sales price is zero.
    • Scheduler will ignore product types "Service","Expense" and "Resource"
    • Scheduler will ignore products,if "Is Manual" is checked.





    Thursday, April 10, 2014

    Openbravo WebPOS - Customer address management

    Contributed by Qualian Technologies (P) Ltd.

    Customer address management and assigning to a ticket



    Once customer is selected, system will automatically fetch default address and assigning it to ticket. If customer have multiple address, this can be changed by tapping the customer address button at the top of the ticket (next to customer name) which launches a address picker dialogue where a required address can be selected.
    In this modal window, customer address are loaded automatically, which is read only at first. Tapping a address will get assigned to actual ticket. If customer have too many address, we can able to search customer address by name, filling the input text and pressing the magnifying glass button. Choosing New Address, new address can be added. Using the Edit Address, the address can be modified. The Assign to receipt button in New AddressEdit Addresswhich helps us to assign customer and address automatically to receipt after add new or edit address, without returning back to address menu.
    To create a new customer address from menu:
    • Select Customers option in the menu.
    • Search and select customer which requires new address.
    • Tap Edit/New Address button in Customer Details popup.
    • Tap the NEW in the top left corner to add new address.



    Thursday, August 15, 2013

    Openbravo Retail : WebPOS Credit sales and collection

    Credit sales functionality allows Openbravo WebPOS sales user to complete orders without paying and left it as credit based on customer credit limit/credit used.


    To enable it, the POS Terminal Type must be configured.
    Also, the Credit Line Limit of the Business Partner must be greater than zero.


    If these two conditions are satisfied, a button with label Use Credit will appear in payments section.


    Tap the button if the pending amount is wanted to leave as a credit. This process will check against the backend the available credit of the business partner. This quantity would be the difference between Credit Limit and Credit Used. If this amount is greater than the pending quantity of the sales order a confirmation popup will be shown. Pressing "Yes, use credit", the order will be processed. Pressing "Cancel", this action will be canceled.


    On the other hand, if the outstanding amount exceeds the available credit, an information popup will be shown giving the information of available credit of the business partner, and it will not allow completing the order.

    Source -http://wiki.openbravo.com/wiki/Retail:Web_POS_User_Guide#Credit_Sales

    Credit Collection

    Once Credit sales is done,customer used balance will be updated and system will ensure,customer is not exceeding his credit limit.Credit sales formula is  Credit Value <= Credit Limit - Credit Used.So customer need to pay outstanding amount(credit sales) in time(due date) to reduce credit used value.Currently Openbravo is allowing credit sales via WebPOS but we need to do credit collections via Back Office(limitation in WebPOS). So we faced following issues in implementation,

    1.We need more Back Office licenses to do credit collection.
    2.Retails user feels difficult to learn,access Back Office UI .End user feels,he need to do some additional work.
    3.Time Delay.
    4.In Truck sales,sales person is responsible for credit collection.So he need a option to do credit collection via WebPOS and the same need to be reflected in Cash Up process.

    To overcome all ,we developed "Credit Collection" functionality in WebPOS. This functionality will allow user to do following operations in WebPOS.

    1.Allow payment for credit sales.
    2.Able to check receipt wise outstanding amount(credit sales) via separate menu.
    3.Allow partial payment and leave remain as credit on existing credit sales receipts.
    4.Credit payment amount update in Credit used value.
    5.All payment methods are allowed to do payment for credit sales.
    6.Allow Over payment(considered as tip and it won't be reflected in Credit Used)

    Credit collection pop-up showing all outstanding receipt's(credit sales)



    Partial Payment:
    Selected Receipt VBS1/0000078 - 169.4 and doing a payment of 160 and leave remain 9.4 as credit.



    After payment of 160,Outstanding amount updated as 9.4 for Receipt VBS1/0000078.


    Over-Payment:
    Allow user to pay 10 Euro against 9.4 Euro  and considered remain 0.6 Euro as TIP.


    Credit collection menu and paid receipt is not showing now.(ensured)



    If anyone interested in Openbravo Retail implementation or Openbravo Construction module MetR,please contact me via thirumalai@qualiantech.com

    Qualian Technologies Pvt Ltd - Openbravo Certified Partnerhttp://www.qualiantech.com/qualian_openbravoindia_ERP_contact.php  


    Sunday, August 4, 2013

    Openbravo Retail : WebPOS Price Limit Validation

    Openbravo for Retail offers a complete functionality for multichannel retailers, from Sales and Customer Relations to Finance and Operations. Its HTML5 web POS can be run on modern tablet devices, helping to improve dramatically the employees productivity and customer buying experience.

    However, Openbravo for Retail is not only intended for pure retailers. Are you a distributor who is struggling with your mobilized sales force? Do you have trucks, and lack of complete control over their inventory levels in order to ensure they can fullfill all orders? Do you want to provide your drivers with a powerful tool that helps them to avoid data entry errors, improve your data quality and therefore provide support for a better decision making process?
    If you have answered positively to some of these questions, Openbravo for Retail is also a solution for you !.
    More Info @ http://planet.openbravo.com/?p=52313

    We deployed Openbravo WebPOS in Truck sales for Wholesale & Retail distribution.So truck sales man face bargain and require option to change price. Normally Sales man will reduce price based on number of quantities,Customer relationship.This is fine but company want to ensure,sales man should have a limit for every product and system shouldn't allow any sales beyond that.So we utilized "Price Limit"  in pricelist and created a new module "WebPOS Price Limit Validations".
     
    Case - 1:
    Sales man requires price edit option and the system shouldn't allow any sales,less than product price limit.  
    i)Add preference "Web POS action Change price" to "Y"
    ii)Add preference(new) "Web POS Enforce Price Limit" to "Y"

    Case - 2
    Sales manager requires price edit option and the system shouldn't restrict sales based on price limit.
    i)Add preference "Web POS action Change price" to "Y"
    ii)Add preference(new) "Web POS Enforce Price Limit" to "N"

    It's possible to set preference based on role,user.
    http://wiki.openbravo.com/wiki/Preference 

     Example(case - 1): 1)Avalanche  Transceiver ,selling price is "150.5"  & Price Limit is "135.45"




    2) Sales man selected  "Avalanche Transceiver" for sales.



    3) Sales man changed price to "125" and got warning from system with detailed information.


    4) Once user clicked okay or closed popup,selling price updated back to last value.


    What's Next:

    Price Limit validation override for certain products.Allow user to sell some products without any price limit(products going to expiry soon) and remain products with Enforce Price Limit(with Validation).New rule logic is product+role, product+user.

    We released this module in Openbravo forge as Free Commercial Module(can only be used by Retail - Professional instances)

    http://centralrepository.openbravo.com/heartbeat-server/org.openbravo.forge.ui/sso/ForgeModuleDetail?moduleId=041E19607D5B42A7901E26115948A2E9






    If anyone interested in Openbravo retail implementation or Openbravo Construction module MetR,please contact me via thirumalai@qualiantech.com

    Qualian Technologies Pvt Ltd - Openbravo Certified Partner
    http://www.qualiantech.com/qualian_openbravoindia_ERP_contact.php