Akeneo PIM vs. Pimcore: A comparison of PIM systems
The development of agency projects has changed over the last few years from simple applications with support and implementation of new features to more complex entities. Previously, it was more the large B2B customers who needed more than "just" a sales channel. With the ever-increasing digitization and the need for easier product and customer maintenance, current projects often still require systems to maintain product master data and middleware to transfer that data to or from other services. This is why the popularity of product management systems continues to grow, and why the market offers more and more options to choose from.
At Netresearch, we have been partners and users of Akeneo since its beginnings, and have been able to follow the progress of this application and help shape it through the public accessibility. Nevertheless, one should always check what alternatives are available and if there are cases where the alternative is simply better than what has been used so far. That's why, within this post, we have reviewed another product that is often searched for and could possibly be used as an alternative. And that system is Pimcore.
Within this blog post, we only had the freely available CE version of Pimcore to base our observations on. Thus, it is quite possible that we overlooked or did not correctly assign features due to lack of experience or access. In addition, Pimcore can do more than just PIM, which is why we only focused on the aspects related to the PIM part of the comparison.
Introducing the systems
Akeneo is a pure PIM application. On Github, the first release of version 1.0.0-Alpha-1 was in March 2013. Since January 2020, it is on the current major version 4, where the latest version is 4.0.96. Akeneo is based on Symfony and Oro and has been using the Symfony Flex extension since version 4. It offers functionalities for maintaining products, categories and associations and allows importing and exporting via various data formats.
The Enterprise Edition additionally offers an integrated DAM solution, extended rights management and the possibility to create reference data of different types as an editor, which can then be used by products.
Pimcore is a platform with several sections. It offers the possibility of use as a PIM, DAM, store, CMS, catalog and also offers, through its own Datahub solution, an interface for transporting product data. By having all the technologies in one place, it is also easy to access the data within the sections. On Github, the first release was in February 2014 with version 2.2.0. Since June 2019, the current major version 6 is available, of which the latest version is 6.8.10.
When purchasing an Enterprise license, it also offers a customer portal by which the product data can be viewed and downloaded. There are also further integrations with marketing tools, statistics and cloud solutions. In addition, existing solutions such as the DAM and the Datahub are enriched with further functionalities.
Comparison of the core features
We compared the features of the two systems and visualized the summary of our findings in the following table.
Dashboard and system information
You can see the current data quality of the channels, the last mass actions and the connected systems, if they were created as a connection. You can see the current data variety with categories, products, channels etc. in a summary.
It is possible to create reports, which are also displayed visually. However, some configurations are done on database level. There is a logger for all user actions. You can check the system environment, but you don't have a view of the current data variety, i.e. the number of products, channels etc.
Import and Export
The CSV, XML (instruction), XLSX and REST export formats are possible. There are incremental exports. In the EE there is also a possibility of controlling the export of products bound to product versions.
The formats JSON and REST are possible. Already in the CE there is the schedule feature, whereby the release of certain versions is possible. It is possible to print each data set as a PDF.
Structuring of product data
Mandatory fields, cross selling and attribute sets can be defined by families, attribute groups and associations. By using "referenced entities", data can be maintained outside of a product and then linked to it.
Pimcore has a different approach here. All data, be it reference data, products or categories are pure objects that can be used arbitrarily. Due to this agnostic approach, however, there are hardly any product-specific functionalities for more individual processing.
User and role distribution
Users have roles and groups, which can be used to control their permissions and views. In EE, groups are increasingly used for editing rules.
Users have roles, whereby permissions for data objects, languages, etc. can be set.
You have a product overview, where filters and search settings can be defined and saved as a view. You can define multilingual attributes individually and also store images. Only galleries are provided via a Marketplace Bundle. A DAM for processing the image data is included in the EE.
There is a product list per selected data group. Within this you can also filter and search. Multilingual attributes can be maintained and through the integrated DAM not only images and galleries are possible, but you also get images tailored to the output channel. At least in the demo, the attributes are not changeable via the backend, but directly embedded in the code.
Akeneo tests its code and provides developers with the following tools: PHPSpec, PHPUnit and Behat.
Pimcore tests its code and provides Codeception as a tool for the developers.
Impression gained after the analysis
Both systems allow products to be maintained and forwarded to other channels. However, they differ greatly in their approach. Pimcore seems very developer-driven. Reports are defined using SQL queries, the display of many dependencies is reminiscent of class references, and the handling also requires background knowledge of where things can be defined and changed. The demo, if it can be used as a reference for some kind of "theme", is quite "static". Many values can only be found in the code and also the templates represent exactly what can be seen in the frontend. If I would implement a project with it, a lot of things would have to be rethought.
The table structure seems a bit old-fashioned to me personally, but probably that and the tab navigation is the price for the variety of functions. The amount of navigation reminds me of TYPO3 and increases the initial effort. The fact that all functional areas are packed within 8 Composer packages makes it difficult to start your own developments and may lead to problems with large projects. Akeneo has only the product management as a goal and has accordingly fewer navigations and could therefore concentrate more on the presentation of these few pages. Furthermore, refactoring from versions 3 and 4 has improved the code structure and by using Symfony Flex is the hurdle of own developments, for Symfony affine people lower.
As a developer, I look more at how it works or the ability to add my own logic to the existing one. Secondly, I try to see how much consulting effort it would take to get the system into the hands of potential clients.
From this perspective, I would prefer Akeneo as a PIM. Pimcore seems like you have to do a lot of clarifying and consulting with the client on how to operate something, and you probably won't get to "enable" the client to operate the system on their own one day. Where Pimcore scores, however, is the ability to manage all online traffic within one tool. By integrating a DAM and datahub, one has all the tools in hand to go to market quickly. However, one will probably not get around the EE license and may it be for the training and support for the editors.
In conclusion, it is always important to pay attention to what the core goals of customer projects are and how you could best solve them in a sustainable way. I hope that this insight helps a bit in the decision making process.