How we created a tailor-made POS system for Oxyrion
In this case study, you'll find out
Since July 2019, businesses have been obliged to use an online cash register, i.e. eKasa, at their sites. Therefore, several ready-made software solutions are currently available on the market that enable the sale of services and goods in accordance with the law. The Financial Administration of the Slovak Republic itself even provides entrepreneurs with their own free software.
And although these solutions may be suitable for some entrepreneurs, they often only have the basic tools necessary to register and pay for goods or services. Personalizing the application environment or supplementing it with other functionalities is usually expensive or not available at all.
Our customer Dejmark, for whom we develop Oxyrion applications, encountered this limitation too. As they are also involved, for example, in the sale of paints, which often need to be tailor-blended to customer requirements, the basic functions of the cash register were simply not enough for them and their additional programming would require too much time and resources. Therefore, they decided to invest in their own solution and approached us with a request to create a tailor-made virtual cash register.
Their main requirement was to design and program a POS system that would be directly linked to other Oxyrion applications. At the same time, the solution should be as personalized as possible, with an extended possibility of editing. An additional requirement was to design a simple and intuitive approach and use.
The ultimate goal was therefore to create a product that suits the sector where Dejmark brick-and-mortar branches operate to the maximum possible extent.
As in every development, in this case too our intention was to create a product that would suit the customer in all senses. Therefore, before the solution was proposed, an extensive discussion with the client took place where their expectations and requirements were communicated to the team. Based on this, the developers were able to create a consistent specification of all the features that this solution should have. They were also able to define how the new cash register should communicate with other Oxyrion applications, such as the product catalogue or the database of existing customers.
The subsequent selection of technologies was fully within the competence of the development team - the only requirement was that the system would be fast, reliable and modern. After analyzing the available options, also taking into account the existing solutions, using the Android platform turned out to be the best choice. Node.js was chosen for the API because all other Oxyrion API applications are built on it. In addition, the identical selection of technologies will also ensure maximum compatibility and fast communication.
The implementation itself began with the preparation of a prototype, which was gradually redesigned to the smallest details in cooperation with the customer. After achieving this result, the development of the "sharp version" of the application continued. This was divided into three steps:
The payment terminal itself did not need to be provided because it is managed for the client by an external company. It also provides the communication protocol needed to connect it to the cash register.
We created the application in which the eKasa virtual cash register administration takes place with regard to the primary target user - store employees. We wanted to offer them a solution which they would learn to use quickly and which would make their work more efficient at the same time. However, when developing, we also had to keep in mind safety and management needs, such as tracking statistics or managing users. Therefore, the final solution has several functions:
To simplify the work of employees, an automated course of an accounting day is set up in the cash register - from the morning deposit through interim closures to the end of the day and daily closure. The steps for performing individual operations are very simple, which was appreciated by all store staff.
Registering products when selling takes place as standard - either with a scanner or by searching for a product from the database. In addition, the cash register is directly connected to the Oxyrion eshop, which is why it can also work with the online product catalogue. When scanning the product, it can show employees all the data that the salespeople need to provide the customer with when selling paints - what materials the coating is most suitable for, how it is mixed or diluted, etc. In addition, this data helps store staff to help shoppers choose goods and recommend the most suitable products according to their needs.
An extended system of discounts is an additional functionality. This includes custom discounts available only at a selected store, discounts directly attributable to a customer that can be activated after their login, as well as currently ongoing campaigns valid for all branches. Information about the discount is also transferred to the accounting system after charging, thanks to which the client has an overview of the use of discounts and is able to evaluate their effectiveness.
For security reasons, the system is treated with the so-called two-step login:
At the same time, the cash register has several useful functions, such as purchase history or the option to cancel transactions. Their use will be appreciated by employees, especially when it comes to necessary back checks of purchases, resolving errors or returning purchased goods.
Dejmark company uses the Microsoft Navision ERP system to manage its business, which also stores all accounting information. Therefore, it was necessary to ensure flawless communication between the virtual cash register eKasa and the ERP to make every purchase recorded accurately and as soon as possible. For this purpose, we have programmed an API that ensures virtually instant data transfer between the two systems.
Thanks to this, the client can monitor the flow of finances not only in eKasa, but also directly in the Navision environment. In addition, in order to not increase the data transfer unnecessarily, only the information that the cash register currently needs is sent through the system. To ensure the easiest possible maintenance, the API is programmed as a separate application.
During payment, in addition to the transfer of data between the VCR eKasa, ERP and Oxyrion applications, communication with the physical payment terminal must also take place. This communication takes place through the TCP/IP protocol provided by the terminal manager and through our own action library.
The task of the library is to convert data from the cash register into the form of orders that the payment terminal can correctly interpret. Basically, it is a translation of requests from the Java language used in eKasa into a simpler form that the terminal can easily process.
For example, in the SALE action, we request information from the terminal about what products were purchased, what their price was, what the discount amount was, what type of payment the customer used, who registered the purchase, etc. The library reads these requests and creates a string of commands that it sends to the terminal. The terminal then performs its basic functions (prints a receipt for the employee and customer, sends information about it to the Financial Administration, etc.), and at the same time sends the required information to eKasa. In this way, all functions used (deposit, withdrawal, daily closure, interim closure, cancellation, etc.) are created.
Thus, no information is lost and the customer has identical and correct data recorded in all places.
By introducing eKasa in our xFarby stores, we have simplified the document accounting process to a minimum. Our employees have liked the cash register from the very first moment, because it is simple, intuitive, clear and offers functionalities that the programmers have "tailored" for us. Since eKasa is connected to the API database server, we can offer the customer the necessary information about products, shades, price, stock and ongoing campaigns in a very short time, without the need to use other devices or catalogues. The solution is also praised by customers themselves, because they get the required information immediately. In addition, eKasa also offers them the possibility of easy registration, after which they immediately receive discounts on purchases and other benefits. However, we have not forgotten about entrepreneurs and craftsmen for whom we plan to implement in eKasa the possibility of issuing a delivery note or invoice or payment of eshop orders.
By adding all these functionalities, eKasa will become a comprehensive product that will make our work easier and replace several existing systems. We must also highlight the work and creativity of programmers in bart.sk, who have largely contributed to its efficient development.
I assess the cooperation with bart.sk very positively. Together, we managed to launch www.xfarby.sk and www.xfarby.cz eshops. Their team of developers is experienced, has dealt with many complicated challenges and brought their own and effective solutions to the project. I greatly appreciate the system of communication, clear management of requirements and adherence to deadlines. I believe that further cooperation will bring many other innovations and effective solutions that will make it easier for customers to buy from our eshop.