paint-brush
3 Open Source Product Information Management (PIM) Solutionsby@vpedak
7,891 reads
7,891 reads

3 Open Source Product Information Management (PIM) Solutions

by November 18th, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

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. PIM systems are often used to store information about the product, but also some other objects, for example Brand or Store (where this product is located) These additional objects can have their own attributes. Akeneos doesn’t have good support for custom entities in the community version of the commercial version.

Company Mentioned

Mention Thumbnail
featured image - 3 Open Source Product Information Management (PIM) Solutions
 HackerNoon profile picture

There are many commercial Product Information Management (PIM) solutions available on the market. And there are 3 free open source solutions: AkeneoPimcore 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 (https://www.akeneo.com/)

Akeneo has a free community version and a commercial enterprise version. You can see a comparison of these editions at https://www.akeneo.com/compare-editions/

For this review, we will only use the community version because we only focus on free PIM solutions.

1.1. Data Model

Akeneo maintains “Products” as an entity for storing product information. 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. Details you can find at https://docs.akeneo.com/latest/technical_overview/product_information/index.html.

It is very important for PIM systems 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” 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 values per locale and per channel. Akeneo’s support for attributes is good and covers most of the possible use cases.

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. There is no way to assign a category attribute, nor can you restrict whether a product can be associated with only one or more category nodes, etc.

All of this functionality can be implemented through custom development, but it is not available from the user interface. And for this you have to do some pretty complex PHP development.

1.3. Custom Entities

Often, you need to store in PIM not only information about the product, but also some other objects, for example Brand or Store (where this product is located). These additional objects can have their own attributes.

Akeneo doesn’t have good support for custom entities in the community version. Only the commercial version is supported — https://help.akeneo.com/pim/v3/articles/what-about-reference-entities.html. Again, you can create your own extension and get this functionality, but it does take a lot of coding. It is difficult and time-consuming.

1.4. Relations

Relationships are used in PIM to indicate that data has some dependencies. For example, that this product can be replaced by another, or the product can be sold together with another, etc.

Akeneo only supports relationships between products (since custom entities are not supported). You can define an “Association Type” and use it to link between products.

But again, these associations are very simple. For example, you cannot define an attribute for this association, and this can be very useful. For example, it is often used in kits (or the same functionality) to indicate the order of products in it.

1.5. Variants

Variants represent the same product, but with some different attributes (when all other attributes are the same). For example, we may have T-shirts in different colors and sizes.

Akeneo natively supports variations, you can create a “Family Variant” that determines which attributes differ https://help.akeneo.com/pim/serenity/articles/manage-your-families.html#manage-family-variants. Also Akeneo has good support for options in the user interface.

The limitation is that only 3 enrichment levels can be controlled for variant 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 community version of Akeneo has very limited asset support. You can only have a field where you can put the image or file. If you need more images, you need to create more fields. You cannot attach attributes to an asset and you cannot have any structure for it.

1.7. Import/Export

Akeneo has the ability to import/export data from CSV, Excel and XML files. But you cannot easily map columns from 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 convert data on the fly.

So Akeneo’s import and export opportunities are quite limited.

1.8. Product’s completeness & Data Quality

Akeneo has good support for indicating product completeness (this is part of product data quality) — https://help.akeneo.com/pim/v3/articles/what-is-the-completeness.html.

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 completeness of the product is also good. But again, support for custom quality logic is very limited. You have to program at a low level if you want to define your own quality logic (and this is very often the case in real business).

The commercial version has support for the rules engine, which is good, but there is no such support for the community version.

1.9. Custom Logic and Custom UI

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 while working with products.

Akeneo only supports this through low-level PHP coding. You can define your own logic and forms, but this requires deep knowledge of the PHP framework and is very time consuming.

1.10. Conclusion

The community version of Akeneo has quite large limitations that may prevent it from being used in real business. Working without assets or custom entities, the lack of the ability to easily define custom logic can prevent many companies from using the free version of Akeneo. Maintaining hierarchies and relationships is also too simple to meet all business needs.

In the Commensal version of Akeneo, most of these problems have been resolved. Plus, Akeneo has a good community and a network of partners to support the business. Therefore, 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 the community version of Akeneo.

2. Pimcore (https://pimcore.com/)

Pimcore is not only a PIM solution but also an MDM. It also has DAM (Asset Management) capabilities. Pimcore positioning itself as a digital commerce and customer data platform as well, so it has many features. In our review, we will only consider PIM.

Pimcore also has a free community 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 attached to products.

For this they use object classes — https://pimcore.com/docs/pimcore/current/Development_Documentation/Objects/Object_Classes/index.html. Moreover, you define not only the attributes themselves, but also the layout of the user interface, how they will be displayed.

Pimcore even supports attribute inheritance, so if you have an attribute in the parent, 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 is more powerful here than Akeneo.

The only potential problem I see here is that the system generates PHP classes for every object class you create, so we have the real PHP code behind this whole UI and sometimes you need to provide programming level information in the user interface, such as “PHP class name” or “Parent class”. Therefore, if you are not a programmer, it can be difficult for you to define the data model.

2.2. Hierarchies

Since object classes are the underlying model, you can use them to build hierarchies as well. This is a more flexible solution than Akeneo. You can define your object classes how you want to create structures, and then use relationships to link them to other objects.

2.3. Custom Entities

Again, an object class can be used to represent any data, not just a product or hierarchy. 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 a UI to display them just like regular products.

So Pimcore has more abilities here than Akeneo.

2.4. Relations

You can define several types of relations 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 impossibility of creating attributes in this relationship.

2.5. Variants

Pimcore has built-in support for variants. And a specialized interface for them. I did not see any problems here.

2.6. Assets

Pimcore positions itself as a full-featured DAM solution (in addition to PIM and other solutions). So we have even more here than we need for PIM.

2.7. Import/Export

Pimcore’s import/export capabilities are also limited. It is better than Akeneo because you can map CSV or XSL column data to object classes, but this mapping is very simple. You cannot use transform and do any calculations on the fly.

XML or JSON are not directly supported.

2.8. Product’s completeness & Data Quality

There is no built-in support for product completeness, but it can be easily implemented using calculated fields. More complex scripts can be implemented by writing your own PHP code, but this will require additional effort.

Overall, Pimcore has good data quality support. You have the capabilities and definition of field types, and the use of calculated fields for the necessary custom validation and use of workflows to complete your process. You also have reporting capabilities and dashboards to help you visualize this data.

2.9. Custom Logic and Custom UI

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 direct programming in PHP.

2.10. Conclusion

Pimcore is a big solution and not just for PIM. It has more features than the community version of Akeneo, but you will have to put a lot more effort into implementing the project because it is quite complex.

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 or enterprise company looking for an all-in-one solution for PIM, DAM, e-commerce, MDM and CDP. Also, you should remember that you need good PHP resources to implement this project if you want to implement it yourself.

3. OpenPIM (http://www.openpim.org/)

OpenPIM is a completely free solution. It doesn’t have a commercial version, but you can get commercial support if needed.

3.1. Data Model

The ability to define your products is good and similar to Pimcore. You can define your type and bind the required attributes to it — http://www.openpim.org/docs/admin/guide/01_DataModel.html

It has many different types of attributes that you can use. Data inheritance is not directly supported, but can be easily implemented with Actions — http://www.openpim.org/docs/admin/guide/03_Actions.html

3.2. Hierarchies

OpenPIM takes the same approach as Pimcode. 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 relations to associate the structure with the product or any other data.

When a user works with structures in Pimcore or OpenPIM, he can build them as he wants without any control. If you want to restrict what levels and how will be created, you will have to use native PHP code for Pimcore. OpenPIM has more options here, you can define it by configuration without any programming.

3.3. Custom Entities

As with Pimcore, you can define types for any data. Then you can assign attributes to your types and use relations for logical connections. As a result, you can store any objects in the system. These are powerful abilities.

Storing additional information is an important aspect of all PIM systems.

3.4. Relations

Relations are used to logically link your data http://www.openpim.org/docs/admin/guide/01_DataModel.html#relations. But here you can also assign attributes to the relationship, this is more than Akeneo or Pimcore can do.

You can also limit how many such kind of relations object can have, which allows you to model one-to-one, one-to-many, and many-to-many relationships.

3.5. Variants

OpenPIM does not have built-in variant support. They can be easily modeled in the data model using types and relationships. This way you can easily store this information, but there is no dedicated user interface for variants, so you will have to use the usual user interface to work with them. It is less convenient than Akeneo or Pimcore.

3.6. Assets

The Akeneo Community version doesn’t have good Assets supports , Pimcore is a full featured DAM so it supports even more than necessary. OpenPIM stands in between. It has Assets support out of the box, so you can load and link Assets to any object, you can create structures for your assets and add the required attributes for them.

Also, thumbnails are generated automatically, but you cannot create derivative assets like in DAM systems. This is not a problem, for PIM systems this is enough, but for sure Pimcore has more options here.

3.7. Import/Export

OpenPIM has perfect import/export support because it uses the full featured free ETL tool, Talend. See details at http://www.openpim.org/docs/admin/guide/02_ImportExport.html.

This way, you can import data from any sources: CSV, Excel, XML, text files, databases, web services, etc. And you can export data to all these destinations.

This is the best import/export support of the three solutions.

3.8. Product’s completeness & Data Quality

Just like the Pimcore OpenPIM does not have the completeness of the Product as a ready-made function, but it is easy to implement in actions. This will require some programming skills, but not as much as is necessary for Pimcore, because here you can register a little javascript logic that will be executed on some events and this will allow you to define the completeness logic.

Other data quality features include attribute types and additional checks that you can set on an attribute. Actions can also be used to add custom logic. And the system has dashboards to visualize all this. So, OpenPIM has good data quality capabilities.

3.9. Custom Logic and Custom UI

The main ability to define custom logic is Actions http://www.openpim.org/docs/admin/guide/03_Actions.html. This is a small javascript code that can be executed by some events. 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 efforts.

The downside is that you cannot define your own UI if you need to. You can only create a button and object details screen that will perform some predefined actions. This may cover some cases, but not all.

3.10. Conclusion

I would recommend OpenPIM to small and medium-sized companies that want to implement a PIM solution on their own without paying additional money to partner companies to help with the process.

It’s easy to learn and use. It has some limitations, such as not being able to define a custom user interface, but in most cases it covers all the needs to implement a PIM system.

Of course, OpenPIM is not suitable for large companies because it lacks some of the features that enterprises require such as workflows, supplier portals, etc., but it is good for small and medium businesses.