Due to the expansion and growth, our customer asked for integration of the online store database with the warehouse and a mobile application that allows for managing the warehouse by scanning the product’s QR code.

Challenge

The primary objective of our cooperation was the integration of the warehouse system with the database created by the Prestashop in order to enable adding, reading, modifying, and removing products (CRUD) and managing their categories. During the implementation, additional CRUD was added to manage product combinations (if the product is a T-shirt, then the combination for it in the Prestashop store can be, for example, a black M-size T-shirt).

Finally, we also developed a mobile app for IOS to generate and scan QR codes of products and their combinations and provided further integration with Zebra ZD 420 QR Code printer and a sales module.  

Solution

In the first phase, we started a detailed analysis of the Prestashop store database in order to select the attributes corresponding to the product properties that would be modified as required.
The task wasn’t that easy due to the database complexity and lack of descriptive documentation. At that time, we also noticed the lack of foreign keys in the database, which was an additional difficulty.

Once done, we chose the technologies for implementation. Considering customer hosting, we decided that the system would be created using PHP (back-end) as well as HTML, CSS, and JavaScript (front-end).

The API of the storage system was created on the basis of the Slim micro-framework due to its simplicity and the fact that the project did not require such extensive tools as Symfony. Due to the structure of the database (a large number of liaison tables) and selectivity in the use of attributes (dictated by customer requirements), we decided not to use ORM, offered e.g. by Doctrine. On the other hand, the application skeleton supplied with the Slim micro-frame engine was useful, which was used to implement the system in the ADR (Action-Domain-Responder) architecture. Database support has been manually implemented using SQL queries processed using PDO (PHP Data Object).

Approaches to system integration with a Zebra printer included attempts to use the manufacturer’s tools, ultimately it was possible to achieve the desired effect only by using the system printing option available in web browsers after preparing the pdf file in pdf maker tool. The print page has a QR code and a short text description of the product.
The sales module required additional views of sales history and modification of records so an extra table for sales data was created in the Prestashop database. Furthermore, an API has been created that allows you to download simplified data for the needs of the mobile application and to modify the number of products and their combinations.

The mobile application supports the created API module in managing the state of the customer’s warehouse by scanning the product’s QR code. The application was originally released for iOS, but thanks to the use of the Xamarin framework for the .Net platform, a version for Android is also available. To cover all required features and keep it simple and clean, the application consists of four different views: login panel, scanning history, scanner, and product modification screen.

The application requires permission to use the camera on scanning needs. Product scanning is done by pointing the camera on the product’s QR code. In addition to QR codes, the scanner supports the following code formats: ztec, Code128, Code39, Code93, EAN13, EAN8, PDF417, UPC-E. The application informs about the scanned code by sound notifications and alerts. Users can increase the amount of product through its rescanning or by pressing corresponding buttons. Before applying changes, the User is asked to confirm them. After receiving a response from the server, the application returns to the screen main by displaying a notification confirming sending changes in the number of products in the warehouse.

The mobile application for the warehouse system was created based on the framework Xamarin for the .NET platform due to its versatility and quick possibility project implementation, thanks to which the solution is available for iOS and Android. For the needs of scanning and fast and secure implementation it was used ZXing plugin which is responsible for recognizing the product code. The application has been written on the basis of MVVM pattern, thanks to which it is possible to develop it efficiently
for additional functionalities. The solutions used in the project are based on
preparing appropriate queries and displaying responses from the API microservice connected to the storage system.

Effect

The feedback we received from our partner was very positive. Thanks to that, we strengthened the collaboration and we are still working together on the new features and further development.