The php marketplace software ebiz trader in test

The Ebiz Trader

For a customer I implemented a larger project based on the PHP software Ebiz Trader from Ebiz Consult. With this post I would like to share my collected experiences.

In a direct price comparison with other software solutions, the Trader could clearly score points, which is why my customer chose this solution. Ebiz Trader by Ebiz Consult promises "modern technologies" and "continuous development" on its website. The used version 6.5 convinced with many features and refinements. The customer can manage the marketplace independently and make simple template adjustments directly in the backend. In an initial conversation with Ebiz Consult we tried to roughly highlight the technical details of the trader. According to Ebiz Consult, the software is based on a PHP framework developed in-house and also implements its own templating language. Adaptations of the template should therefore not be a problem.

Templating with the Trader

The original task for me was the adaptation of the design, which after the installation of the Trader also caused no significant problems. Existing template files can be easily overwritten with your own files. Of course, this is done in a separate directory, so that the whole software remains relatively update-safe. New pages can be created in the backend. These then access PHP files with the same name. In turn, your own content can then be output directly or you can refer to a template file you have created yourself from your own design.

The templating language looks like Smarty at first sight, but it has nothing to do with it. Helper functions can be called in the template. These in turn are written hard in a template class and can therefore not be easily extended. But basics like a URL generation are possible.

Variables can be passed to the template. So they can be output at certain places. Even if-queries are possible within templates. What is sadly missing entirely is the ability to iterate within templates. While, For or Foreach are not available. This leads to the fact that lists must already be rendered in the controller and the complete HTML is then passed to the template.

Functional extension of the marketplace

In the course of the design development the requirements of my customer changed, so it was necessary to change the functionality of Ebiz Traders and to extend it in some parts. The changes to the software could not be made by Ebiz Consult itself. The reasons for this are not known to me. Unfortunately, there was no possibility to examine single parts of the source code in advance, which turned out to be very fatal at this point.

The complete software architecture can be described as largely procedural and unstructured, which made it much more difficult to extend the functionality. Also a detailed developer documentation was not available. The software unfortunately does not implement any plugin or extension system. Therefore, for each function extension or function changes, the core of the software must be modified directly. This, in turn, has a very negative impact on the update security of the entire system.

The core of the software consists of numerous PHP files. Some contain plain functions, others contain classes or just procedural code snippets. A clear design pattern is not consistently recognizable. In numerous places PHP files are hard included and variables are often provided with global instead of injecting them. The source code has probably grown over a long period of time and has been modified by many developers without uniform agreements and guidelines.

Even with the help of a version control like Git, updates can't be applied without an enormous amount of time, if the core of the trader has been modified by Ebiz. Because then it can be assumed that logics within the procedures have changed and need to be re-explored and tested first.

For the implementation of a new shipping system I therefore decided to write a plugin system for the trader first. This allows me to set single-line and short hooks at arbitrary places in the Trader code and thus manipulate variables and push them back into the Trader. This way, very complex changes to the software core are possible without having to change it heavily.

The following modifications have been implemented by me using this technique: A complex shipping cost system, the connection of a large payment provider, an individual connector for import and export with a merchandise management and various SEO optimizations.

Conclusion

From a developer's point of view I can't recommend Ebiz Trader. The code is relatively complex and not very modern. This is not really to be expected, because Ebiz is also the php-resource platform.de operates. Whoever plans to extend this software should bring along some experience and training time. Pure design adjustments are however quite well feasible.

The software is quite suitable for beginners who first want to explore a certain market segment. If the requirements change often (which is the case for most projects) or the marketplace needs to be extended, it is better to use a different software.

By the way: If you are planning your own marketplace you should read on here: Your own online marketplace: what you need to consider when planning and implementing it