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