Development interfaces

Interface development symbol image with puzzle on Macbook

As a subcontract for a successful software company, we implemented a major project lasting several months. This involved the individualized creation of an interface for a proprietary merchandise management system for Joomla/Virtuemart. There were numerous technical hurdles to overcome: How is the data retrieved? How should the data ultimately be displayed? Here we provide a brief overview of the project and our approach.

Problem definition

The problem was as follows: The customer provides a proprietary merchandise management system that has an enormously large database in the background. The system is continuously maintained and modified. The data records stored there are used, for example, to generate catalogs or provide customers with information. The system has several interfaces, including standardized queries via MySQL. This was our starting point: the customer wanted the catalog to be dynamically loaded into a web-based catalog without further external intervention, to be searchable and to generate an always valid URL and a QR code for each item and to be able to narrow it down using many filter and search bar properties. The solution was to be designed modularly for use in Joomla as well as later for Typo3 and also as a complete integration into a store system.

Approach

First of all, we had the customer explain the problem in detail and defined milestones together with them. Based on these milestones, a cost estimate was drawn up and then incorporated into all the systems involved. A prototype was then created on the basis of this familiarization, which was intended to demonstrate and ensure the basic functionality of the system. This prototype was ready for use after just one working day.

After an interface conception and elaboration, the research for functional solutions for the content management system followed „Joomla“, on which we were able to base our solution. We quickly found „VirtueMart“ a popular and promising platform whose technology we have been able to utilize and gradually expand.

We had to create two direct connections and write a translator: On the one side, the proprietary structure of the customer's merchandise management system is read out, translated and standardized by our system and output again on the other side or read into VirtueMart. This module alone, with its several thousand lines of code distributed across a well-structured architecture in PHP, is absolutely unique.

In addition to this translator, several adjustments to the presentation were necessary. Here, we approximated the desired functionality as closely as possible with already available modules in order to minimize the customer's costs. These modules were further adapted by us, for example, the URLs of the front end were made „speaking“ - and it is now possible to address both products and any product structure levels, which was not possible without further ado. In particular, our adaptation means that any number of categories and structure levels can now be assigned, as the database is dynamically broken down into its components. The implementation was completely detached from Virtuemart and the design, i.e. in plain language: You can take any Joomla with Virtuemart and „let go“ of our extension and Virtuemart is then fed and modified with the data from the WWS. This makes the solution highly portable! An implementation in Typo3 has also already been planned and prepared accordingly.

Special features and Special functions

Where images for products are available in the database, the customer wanted the images to be imported automatically and assigned in the front end. Different sizes are generated for thumbnails as well as for the final view.

For each product, there is a function in the front end for generating a PDF, „Ask a question“, for emailing/sharing, etc. Furthermore, the customer and the user can now filter products dynamically and fine-tune which properties are displayed for filtering. The customer can also make separate settings in the backend for each item as to which properties they want to display, which information an item contains and which functions are available to a user in the item overview. This can already be flexibly determined on the database side in the merchandise management system! Titles and identifiers can also be changed dynamically on the database side without affecting QR code generation: Once set, links remain valid.

You can also specify whether you want to sort/filter with checkboxes, radio buttons, dropdowns etc.. Filtering works in real time without reloading the page. The filtering adapts dynamically. For this purpose, an extension was completely adapted and rewritten so that it works both with Ajax and without Ajax.

The entire solution is prepared as a store and can also be assigned prices if desired. Furthermore, the connection to the database has been designed so dynamically that the customer can reload the database at any time or even partially via a function in the backend, or this can also be done via an external command („Cronjob“) can be triggered. For this purpose, an additional interface to the outside world was created and the backend area of Virtuemart was expanded.