Building a Product Advisor with Pimcore and Perspectives

Building a Product Advisor with Pimcore and Perspectives - Impression #1

Andreas Grünwald is a software engineer, consultant and technical project lead at Elements Multimedia GmbH in Salzburg / Austria.  He studied business informatics and innovation at Vienna Technical University, where he also researched in the fields of data modeling and integration and published several scientific papers. He has 10+ years of experience in the field of web development and engineering.  He has also worked with companies in various industries including banking, communications, marketing, transportation, and automation.  As a result, he has gained insights and knowledge in organizational needs and architectural challenges of companies with different scale.

This article demonstrates the successful application of Pimcore, for the development of an intelligent online product advisor, based on the integration, enrichment and configuration of complex product data. The focus is on the efficiency and intuitiveness ("learnability") of the framework. 

At Elements, the development team is using Pimcore as THE framework for the efficient and flexible integration of complex customer data and content. Personally, I find Pimcore to be the best solution I’ve worked with thus far in my career.  In particular, two key feature make Pimcore so popular in our team: learnability and its efficiency.

Learnability: New team members and newcomers build upon a set of state-of-the-art tools (PHP, MySQL, CMS) and practices (Zend-Framework, model-driven engineering, model-view-controller pattern, ...) that make the first-time use of Pimcore motivating and rewarding.

Efficiency:  The Pimcore framework is highly scalable. When it comes down to the implementation of more sophisticated use cases, the thoroughly object-oriented Pimcore framework already copes with well-known integration issues that typically require severe customization, such as the provision of multimedia files in various qualities and sizes (images, videos), or the automated management of SEO routes. In this respect, it is extra-pleasant and often surprising to find out, when dealing with challenging situations, that the Pimcore engineers already coped with a similar issue and already provide an intuitive solution to tackle the problem.

The Challenges of Building an (Intelligent) Product Advisor

I would like to demonstrate the efficiency and the intuitiveness of Pimcore based on the use case of a product advisor, which we recently had to build for a big market leader within the sports industry.  We utilized and combined several Pimcore features for the integration of complex product data. Learnability, i.e., discoverability of features and intuitiveness, become vivid with the application of a quite new Pimcore feature, viz. perspectives

The requirements for building the product advisor were as follows:

Act like a real-world shop assistant: The product advisor has to operate like a real-world shop assistant: it would ask the customer a number of questions, and provide a predefined
set of answers and recommendations for each choice. Like a real-world assistant, the advisor should consider the user needs and avoid irrelevant or redundant questions.  For instance, if a potential customer wants to order a tent for her family, the product advisor might automatically exclude tents for only one or two people, and trying to ask more specific questions about the environment in which the family wants to camp, or about the size of the family.

Integration with eCommerce and cross-selling: At the end of the advisor, the best-suited products have to be displayed, and a set of cross-selling products will be recommended. For instance, for a family guy, a fire cooker and a head torch may be recommended, while for an alpinist lightweight sleeping mat and a low-temperature resistant sleeping bag may be offered. At this point, a high conversion rate (purchasing of products) is expected. 

Low amount of manual integration work: The manual effort for the configuration of the product advisor should be at a minimum. Already existing product data and product attributes should be reasonably reused.  Other requirements were intuitive use, support of multi-media assets (images, videos) for visualization, responsive design and SEO.

The Solution Approach

We use Pimcore for the design of the data model, the maintenance of the data structure (e.g., creation and linking of product advisor steps and options), and the administration of content (creation of text, assets, object relations). As the maintenance of the data structure includes various concepts and data types (product advisor steps, products, product attributes, images) that are partly imported from the customer’s product information system (PIM) daily, Pimcore perspectives are leveraged to make the maintenance of the data structure manageable. 

The solution approach is summarized in figure 2, the product advisor perspective.

1) A product advisor consists of steps, whereby several sequential steps lead to a result page, in which the recommended products and cross-selling products are visualized. 

For each step options, which will be either product categories (e.g., tents, backpacks, jackets), or product attributes (e.g. number of doors) can be assigned. 

To avoid that the customer has to maintain redundant branches (leading to an exponentially growing tree), only the minimum set of branching possibilities need to be defined. The selection of the "optimal next step" is left to the Pimcore eCommerce framework, which filters the available options (cf. figure 1), and the "available next steps" based on the choice of the user, and whether there are recommendable products available left for the customer's combination. 

2) Because the client already provides various product attributes (e.g., size of tent, number of entries, number of people suitable) via an external interface, these attributes, that are already assigned to specific products, are extendable and reusable as options within the product advisor steps. Typically, the client adds a specific attribute image, a short description, and expert knowledge about a specific choice.

3) Because some required product advisor options (e.g., camping type: family, alpinist, beach type, traveller) are not available in the client's interface, the client can define additional options directly in Pimcore. These are stored as product attribute objects within the Pimcore structure and must be assigned to the relevant products (4). 

4) Assets are imported via the client's interface, but to show optimized products the client can add product advisor images for options in a single place (5).


As one can see, by leveraging an integrated perspective, the configuration of the product advisor has become much more manageable for the client.   For instance, manually created attributes can be directly assigned to products (4) and product advisor steps (1), via drag-and-drop. The entire configuration process becomes much more transparent and the client saves essential time.

From the developer’s view of point, most important thing is that custom views are configurable within minutes. A perspective can be activated by only adding two configuration files in the Pimcore configuration directory (customviews.php and perspectives.php). Each subtree is represented by a single configuration block in the configuration file. Titles and icons are customizable and perspectives are applicable Pimcore user-specific.


With its strongly object-oriented and scalable approach, Pimcore easily tackles complex problems and never fails to produce practical solutions.  The process of data structure definition, integration, enrichment and visualization is very efficient, intuitive and thus pleasurable. 
With Pimcore, developers have the right tools to build a solid data (access) layer and backend with minimal effort, but also provide clients with advanced logical components and vigor frontend services. I could not imagine using any other solution than Pimcore, and I would highly recommend this product to all developers around the world.


Want to submit a guest post to Pimcore's Blog?

Submit a guest post and benefit from our network! With our newsletter, we reach more than 5 000 subscribers and attract more than 50 000 monthly visitors to our website, and we're always looking for more brilliant contributors to join our ranks. Contact us.

Do you want to become part of the next generation of Pimcore partners?  Please visit our partner application page.

Author:Andreas Grünwald
Andreas Grünwald
  • CTO
2 articles by this author

Read more Pimcore news

110 000+ businesses trust Pimcore. Discover our 550+ favorite success stories.