Best approach to build a PIMS(Product Information Management System)

Chetan Sharma asked on August 22, 2016 15:19

We are trying to build a PIM system using Kentico. I would like seek opinion of each one of you to approach this. Does Kentico's Product module can also be considered, though it's not an e-commerce application.

  1. The data is stored right now as relational tables in Oracle database.

  2. We will receive data in form multiple tables that we need to link in.

  3. Some of the product section can have one to many relationship. For example let's say we have a recipe so there could be multiple rows for ingredients in the Product and right now this data will be in a form of multiple rows in some table say ingridients linked with PK/FK relation using ProductID. There could be multiple 1-to-many features for a product.

I spent time analyzing multiple ways to achieve this. Page types, Custom tables or a Module?

Pros and Cons for Each

Page Types:-


  1. Can provide Workflow, Versioning and an easily editable interface to add products.


  1. Major drawback is it is not suitable for fields having dynamic no of rows. Like few products can have 10 ingredients and few might have only 2. So we can't comprehend up front.

Custom Tables


  1. Suitable for storing flat data and might help overcome the cons for Page types.


  1. Major downside is the lack of Versioning and Workflow to manage Product information with tracking.

Custom Modules

We are not even sure how it will overcome the individual problems that we face with above two approach. Seems like it is not a right fit for our problem.

Has anyone faced this?

I look forward to your suggestions.

Cheers, Chetan

Recent Answers

Development Support answered on August 22, 2016 15:29

Another option that we used in our PIM for a client is for relational items we want versioning on, we just used child elements, OR you can utilize the related Documents linking system.

For our application, we have products (family, variant, then sku) with children (Features, Measurements, accessories). Then we also have Assets (Documents, VIdeos, and Images) in a seperate folder that we link the products to.

This can help with a 1 to many with versioning. Anything you want versioned, should remain a Page Type, relationship data though can be done through either Kentico's existing systems (related documents, you could make a selector that allows you to select certain related items of a certain page type and modify the page to have those relationships).

I could be wrong, but i do think Custom Modules CAN have versioning though if you want to take that route, there is a "SupportsVersioning" Parameters in custom class info method.

0 votesVote for this answer Mark as a Correct answer

Trevor Fayas answered on August 22, 2016 15:30

Sorry the above was from me, i hate it when i'm logged into our support account instead of my own >.>

0 votesVote for this answer Mark as a Correct answer

Fahlgren Mortine answered on December 7, 2016 22:05

What route did you end up taking? I'm working on a similar issue and am considering the approach suggested by Trevor. I was original going to use a page type for basic product information and to select product attributes on a one-to-many basis from individual custom tables. This seems fairly clean to me, but it doesn't allow global editing of individual product attributes the way the child-node/linked page method would. I'm still looking for others options though.

0 votesVote for this answer Mark as a Correct answer

Chetan Sharma answered on December 8, 2016 18:55

Hi Fahlgren, We ended up building PIMS using custom modules and it went very smoothly. There is great series of articles wriiten by Kentico CTO Martin that helped us alongside taking support from Kentico Consulting. We didn't create publishing workflow for it however we were able to provide check-in/check out and object versioning for each item of a custom module class. Do you need list of articles for it? Cheers, Chetan

0 votesVote for this answer Mark as a Correct answer

   Please, sign in to be able to submit a new answer.