There are many commercial product information management (PIM) solutions available on the market. And there are 3 free open source solutions: Akeneo, Pimcore and OpenPIM that you can use to implement a PIM system in your company. I am going to compare these 3 solutions with each other.
1. Akeneo
Akeneo has a free version and a commercial enterprise version. You can see a comparison of these versions at https://www.akeneo.com/compare-editions/ .
In this review, we will only use the free version because we are only focusing on free PIM solutions.
1.1. Data model
Akeneo uses Product objects as entities to store information about products. Products have attribute values ββthat are associated with the corresponding attribute. Various types of attributes are supported. You can easily create a new attribute in the UI without writing any code. You can find details here .
It is very important for PIM systems to be able to maintain a different set of attributes depending on the type of product, for example, an MP3 player has a different set of attributes than a T-shirt.
Akeneo uses Families objects for this. Thus, each family defines a set of attributes required for that type of product, and each product has a reference to its own family. A product can only belong to one family.
Attributes in Akeneo can have different meanings for different languages ββand channels. Attribute support is quite well done and allows you to solve various business problems.
1.2. Hierarchies
The hierarchy to which a product can belong is called categories in Akeneo. You can have as many hierarchies as you like. But the categories in Akeneo are very simple. You cannot assign an attribute to a category, nor can you restrict whether a product can only be associated with one or more category nodes, etc.
All this functionality can be implemented by developing system extensions, but are not available from the user interface. And for that you need to do some pretty complex development in PHP, which will require additional costs.
1.3. Custom objects
Often in PIM it is required to store not only information about the product, but also some other objects, for example, Brand or Store (where this product is located), etc. These additional objects can have their own attributes.
Akeneo has no support for custom objects in the free version. This functionality is only supported in the commercial version . Again, you can create your own extension and get this functionality, but it comes at extra cost.
1.4. Dependencies
Relationships are used in PIM to indicate that the data has some dependencies. For example, that this product can be replaced with another, or that the product can be sold together with another, etc.
Akeneo only supports relationships between products (since custom objects are not supported). You can define an "Association Type" and use it to associate between products.
But again, these associations are very simple. For example, you cannot define an attribute for this association, although this can be very useful. For example, this is often used in kits (or similar functions) to indicate the order of products in it.
1.5. Options
Variants represent the same product, but with some different attributes (when all other attributes are the same). For example, you might have a T-shirt in different colors and sizes.
Akeneo supports variations, you can create a "Family Variant" that defines which attributes differ https://help.akeneo.com/pim/serenity/articles/manage-your-families.html#manage-family-variants . Akeneo also has good support for options in the user interface.
The limitation is that only 3 levels of variation can be controlled for different products.
1.6. Assets
Assets are images, videos or files associated with products. This is very important information that is usually stored in PIM systems.
The free version of Akeneo has very limited file support. You can only have a field where you can place an image or file. If you need more images, you need to create more fields. You cannot attach attributes to them, and you cannot have any structure for them.
1.7. Import Export
Akeneo has the ability to import and export data from CSV, Excel and XML files. But you cannot map columns of your file to Akeneo data model. Akeneo has a set of predefined import / export configurations, so you must provide the correct column names to load or export data. Also, you cannot transform data on the fly, which is often necessary when integrating with various sources.
Thus, Akeneo's import and export capabilities are very limited.
1.8. Product completeness and data quality
Akeneo has good support for determining product completeness (this is part of the quality of these products) . You can define which attributes are required for each product type (family) and for each channel. Also the UI has good support for displaying this information.
Akeneo supports some aspects of product data quality, for example, the attribute type prevents some user errors, the definition of product completeness is also good. But again, support for custom QC is very limited. You have to program at a low level if you want to define your own quality logic (and this happens very often in real business).
The commercial version has support for the rules engine, which is good, but the free version does not.
1.9. Custom logic and user interface extensions
Implementing custom logic can be very important in PIM systems because the business is very different and it is often necessary to execute additional logic when working with products.
Akeneo only supports this with low-level PHP code. You can define your own logic and forms, but this requires knowledge of the PHP framework and is time consuming.
1.10. Conclusion
The free version of Akeneo has quite large limitations that can prevent its use in real business. Limited file handling or lack of custom objects and the ability to easily define custom logic can prevent many companies from using the free version. The support for hierarchies and relationships is also too simple to meet all business needs.
The commercial version of Akeneo has solved most of these problems. In addition, Akeneo has a good community and network of support partners. So I would recommend using the commercial version of Akeneo if the business is willing to pay for it (it's not cheap). And if you're looking for a free PIM solution, I wouldn't recommend using Akeneo.
2. Pimcore
Pimcore is not only a PIM solution but also an MDM solution . It also has DAM (Asset Management) capabilities. Pimcore also markets itself as a digital commerce and customer data platform, so it has many features. In our review, we will only consider PIM.
Pimcore also has free and commercial versions - https://pimcore.com/en/platform/subscription . But the PIM and DAM functionality we are focusing on exists in all editions.
2.1. Data model
Pimcore has all the necessary capabilities to define attributes associated with products. To do this, they use object classes . Moreover, you define not only the attributes themselves, but also the structure of the user interface, how they will be displayed.
Pimcore even supports attribute inheritance, so if you have an attribute in the parent element, they can be inherited by the children. It has many different types of attributes, including language specific ones. All of this gives you powerful options for defining your domain model. Pimcore has more options than Akeneo in defining the data model.
The only potential problem I see here is that the system generates PHP classes for every object class you create, so we have the actual PHP code behind this whole UI and sometimes you need to use this information. in the user interface, for example set "PHP class name" or "Parent class". Therefore, if you are far from programming, then it may be difficult for you to define the data model.
2.2. Hierarchies
Since object classes are used everywhere by the system, you can also use them to build hierarchies. It is more flexible than Akeneo. You can define your structures as object classes however you want, and then use relationships to link them to other objects.
2.3. Custom objects
Again, object classes can be used to represent any data, not just products or hierarchies. You can define your own object classes for any type of data you want to store in PIM, such as brands, stores, etc. You can attach the required attributes to them and define the user interface to display them like regular products.
So in this area Pimcore has more opportunities than Akeneo.
2.4. Dependencies
You can define different types of relationships between any objects in the system https://pimcore.com/docs/pimcore/current/Development_Documentation/Objects/Object_Classes/Data_Types/Relation_Types.html .
This allows you to create the necessary logical connections between your data. The only drawback I see is the inability to create attributes for these dependencies.
2.5. Options
Pimcore has built-in support for variants. And a specialized interface for them. I have not found any problems with this functionality.
2.6. Assets
Pimcore positions itself as a fully featured DAM solution (apart from PIM and other solutions). So in this area it can even be more than needed for PIM.
2.7. Import Export
Pimcore's import / export capabilities are also limited. This support is better than Akeneo because you can map CSV or XSL column data to object classes, but the mapping is very simple. You cannot use transform and do any calculations on the fly.
XML or JSON formats are not directly supported, this is also a minus.
2.8. Product completeness and data quality
There is no built-in support for product completeness, but it is easy to implement using calculated fields. More complex logic can be implemented by writing your own PHP code, but this requires additional effort.
Overall, Pimcore has good data quality support. You have options for both defining field types, using calculated fields for additional validation, and using workflows to define your process. You also have reporting capabilities and dashboards to help you visualize this data.
2.9. Custom logic and user interface extensions
As I mentioned, calculated fields are the easiest way to add your own logic. All other cases of adding custom logic and user interface are done through PHP programming.
2.10. Conclusion
Pimcore is a great solution, and not just for PIM. It has more features than the free version of Akeneo, but you have to put in a lot more effort to implement the project, because the system is quite difficult to learn and configure.
I would not recommend Pimcore for small businesses due to its complexity and the use of a lot of PHP under the hood. Pimcore is your choice if you are a medium to large company looking for a complete solution for PIM, DAM, e-commerce, MDM and CDP. Also, you should remember that you need resources with a good knowledge of PHP to implement your project if you want to implement it yourself.
3. OpenPIM , English version
OpenPIM is completely free solution. It doesn't have a commercial version, but you can get commercial support if needed.
3.1. Data model
OpenPIM has extensive data model definition capabilities similar to Pimcore. You can define your type and bind the required attributes to it .
The system has many different types of attributes that you can use. Data inheritance is not directly supported, but can be easily implemented using Actions - https://openpim.ru/docs/admin/guide/03_Actions.html .
3.2. Hierarchies
OpenPIM takes the same approach as Pimcore. You can define your own types and use them as hierarchies (in addition to the types that are used for products). Then you can use relationships to associate the structure with the product or any other data.
When a user works with structures in Pimcore or Akeneo, he can create them as he pleases without any control. If you want to limit what levels and how will be created, you will have to use your own PHP code. OpenPIM has more options here, you can define constraints through configuration without any programming.
3.3. Custom objects
As with Pimcore, you can define types for any data. Then you can assign attributes to your types and use relationships for logical connections. As a result, you can store any objects in the system.
Storing additional information is an important aspect of all PIM systems and OpenPIM has all the necessary functionality for this.
3.4. Dependencies
Dependencies are used to logically link your data - see documentation for details . But here you can also assign attributes and dependencies, that's more than Akeneo or Pimcore can do.
You can also limit the number of such dependencies, which allows you to model one-to-one, one-to-many, and many-to-many relationships.
3.5. Options
OpenPIM does not have built-in support for variants. They can be easily modeled in the data model using types and relationships. This way you can easily save this information, but there is no dedicated user interface for the options, so you have to use the normal interface to work with them. It is less convenient than Akeneo or Pimcore.
3.6. Assets
The free version of Akeneo doesn't have good asset support, Pimcore is a full featured DAM, so it supports even more than necessary. OpenPIM stands in the middle. It has support for assets out of the box, so you can upload and link files and images to any object, you can create structures for your assets and add the required attributes for them. But you cannot generate files derived from existing ones (for example, images with a different resolution or format) as in DAM systems. This is usually sufficient for PIM systems, but Pimcore certainly has more options in this area.
3.7. Import Export
OpenPIM has excellent import and export support as it uses the full featured free ETL tool, Talend. For details, see https://openpim.ru/docs/admin/guide/02_ImportExport.html .
This way, you can import data from any source: CSV, Excel, XML, text files, databases, web services, etc. And you can export data to all of these sources as well.
3.8. Product completeness and data quality
Just like in Pimcore, OpenPIM does not have a complete product functionality out of the box, but it is easy to implement through Actions . This will require some programming skills, but not as much as is necessary for Pimcore, because here you can define a little javascript logic that will be executed on some events, and this will allow you to define the logic of the completeness of the product.
Other data quality features include attribute types and additional checks that you can set on an attribute. Actions can also be used to add your own logic. And the system has dashboards to visualize all this. So, OpenPIM is well placed to validate and visualize data quality.
It is the best import / export support of all three solutions.
3.9. Custom logic and user interface extensions
As I already wrote, the main ability to define custom logic is Actions . This is a small javascript code that can be executed when some events occur, such as creating or saving data and others. You still need programming knowledge, but it's much easier than writing your own PHP code. As a result, you can create your own logic with less time and effort.
The downside is that you cannot define your own user interface if you need to. You can only create a button that will perform some predefined actions. This may be sufficient for some cases, but certainly not for all.
3.10. Conclusion
I would recommend OpenPIM to small and medium-sized companies looking to implement a PIM solution on their own without paying extra money to partner companies to help with the process.
It's easy to learn and use. It has some limitations, such as the inability to define a custom user interface, but in most cases it covers all the needs for a PIM system implementation.
OpenPIM is not very suitable for large companies because it lacks some of the features that businesses like these require like workflows, vendor portals, etc., but it is good for small and medium businesses.