We are a UK based Pimcore Development Agency. We’d developed a number of ecommerce sites since the early days of our agency but we often realised that product data management & data migration was much of an afterthought which would lead to delays for our clients going live. We also realised that every company's data structure was different which meant that a flexible PIM platform would be required to tailor the clients' needs. This is why we decided to partner with Pimcore. Our mission is to maximise our clients growth by helping them simplify their data and experiences.
What we loved about Pimcore from the beginning was the open-source nature of the product. This meant that since the early days of the project thousands of developers have helped improve the product over time. To put this into numbers there have been around 27,000 commits that have been made to the platform. Secondly, we realised that though the demand for best of breed technologies was growing there was still a number of digital leaders which preferred an integrated suite approach. Pimcore didn’t only solve a company's data management needs they allowed you to manage content effectively. Whether you were looking to develop new websites or produce catalogues this could all be done with one platform.
Who Uses Pimcore?
Pimcore is used by a number of enterprise brands including many manufacturer’s, retailers and wholesalers. Pimcore is also used in a number of other industries including: travel & hospitality, Food & Beverage and technology sectors. Though the manufacturing sector currently has the highest number of case studies on the Pimcore website, including some well known car brands such as Audi, Seat, Suzuki and Peugeot.
What are the main features of Pimcore?
The core functionality of Pimcore can be broken up into 4 core modules. The master data management feature is called objects. The file, image and video management is powered by the ‘DAM’ which is short for digital asset management. Pimcore’s web content management feature is known as ‘Documents’.
This is where the PIM is set up on Pimcore. It is essentially where a company’s structured data is stored. Objects are based on the principles of object oriented programming and similarly you’re able to set up the structure of your data using class definitions and attributes via a UX friendly GUI. Apart from product information. Objects can be used for any sorts of data including: products, categories, customers, locations etc. Also, you have a whole range of attributes to choose from simple to more complex allowing you flexibility over your data.
Digital Asset Management
This is where files are managed on the Pimcore System. Again like Objects the aim of the DAM is to consolidate all common assets such as images, videos and pdf’s into a single repository. Apart from helping your organisation to escape data silos, it can help you achieve brand consistency by eliminating inaccuracies and inconsistencies.
Web Content Management
Pimcore’s content management system is known as ‘Documents’. Where other CMS like Wordpress, offer 2 content types; pages and posts. Pimcore shines as a flexible CMS which allows you to tailor your content around your business requirements, without having to add additional plugins etc. Pimcore allows for a number of content types including wysiwyg, scheduled block, areablock and a number of other editables to tailor your content.
Pimcore makes it easy and flexible to setup your data objects
Rather than having to custom code your PIM data model - Pimcore provides a graphical user interface which allows you to set up your data structure using similar object-oriented programming principles like classes and inheritance. Pimcore then translates these action into a custom PHP class with all the properties and behaviours that you’ve outlined.
Apart from classes Pimcore also has other data objects types including field collections, object bricks, quantity values and classification stores. If these object types don't fit your requirement Pimcore also allows you to develop a custom object data type using code.
If you’re developing a custom PIM often there will be a number of products that will require a predefined set of data and layout fields. It is similar to an object itself and also has a class which you can define to be made first. An example of this is that each car object will need an image associated with it. A field collection will allow you to be able to add a number of image collections to each car object.
An object brick allows you to extend an object without having to change the class definition. Usually a product catalogue will have a set of base attributes but some attributes will only be exclusive to certain products.
Imagine you’re a car parts distributor - the seats that you sell have very different properties than the steering wheel, navigation system and ventilations. If the product class supports all the different variations of products you sell the likelihood is that a number of fields would remain empty and it would be difficult to decipher the completeness of the data.
So for a car parts product object it would have a set of base attributes such as base data, sale information etc, but an object brick would also contain the relevant attributes of the seat such as material, colour, weight etc.
You may wonder what the difference is between an Objectbrick and a Fieldcollection as they both allow you to add a set of base attributes. You are able to add a number of different object bricks to one object, however it can be only one instance per object brick type.
This is an important data type as product properties often require a specific unit such as weight in kg or length in metres. The class editor allows you to set decimal places, and also restrict the list of valid units at the field level so only these units are available in the pim. Developers also have the flexibility to set these attributes programmatically.
The classification store is similar to the quantity value data type but a key-value object restricts you to only add a key once to that data type. A classification store on the other hand gives you the freedom to add multiple stores with different feature sets. This feature is great for localisation issues especially when it comes to storing imperial vs metric units of measure for different countries.
Importing and Exporting of Large Datasets
Pimcore allows you to easily export data in any given folder within your data objects and each row within a spreadsheet representing a child object. The objects folder contains a “search, edit and exports tab” which contains the grid objects you would like to export.
The “Grid Options” tab allows you to specify which data properties you are interested in exporting. Via grid options you have the ability to drag and drop the classes you require. One thing to note is that the ID and full path are important when exporting data as these are required when importing data back into Pimcore.
As a data steward once you have exported the data and made relevant updates, Pimcore uses a similar method for importing data. By specifying the parent object of where the data must be uploaded and using the column configurations you are able to quickly import your product data.
However, for importing Pimcore gives you extra flexibility via the resolver strategy. This allows you to specify if a data object needs to be created or updated. These are the following options for resolvers:
Language - which local are you importing into?
Resolver strategy - how to find the correct data object? Or creating a new one
Column - which column within the CSV should be used?
Create on demand - if the object doesn’t - create a new one
Create parent - create a new parent folder if a parent folder doesn’t exist
How do you consume and deliver data in Pimcore?
A PIM acts as a central source of truth for different data sources such as an ERP and should allow you to deliver the data across different channels such as a website, catalog, e-commerce etc.
Pimcore’s data delivery and consumption platform is known as the Pimcore Data Hub and allows you to integrate different channels with an easy to use interface. It enables access to data such as documents, assets and objects within the PIM using the graphQL query language. GraphQL allows you to ask for what you want in a single query, saving you bandwidth and reducing waterfall requests. Although Pimcore also allows you to create rest API with custom code, the graphQL makes data much more accessible from the GUI.
If you are looking to integrate with a third party system which requires a custom response from an API endpoint - you can retrieve data in your desired format via building a custom controller action.
Search Engine Optimization within Pimcore
Pimcore allows you to optimise your website for Google in a number of ways. The SEO document editor allows you to set your titles, descriptions and metadata. Title and descriptions are required though HTML tags are optional. Pimcore restricts you to a character length of 70 for your title and 170 for your descriptions though best practice recommendation for SEO is around 50-60 characters. Pimcore also allows you to create pretty URLs for your longer page titles which can occur where you have sub-pages. For example:
Before: https://www.domain.com /es/company/services/digital-agency/seo After: https://www.domain.com/we-do-seo Creating a readable and meaningful pretty URL can increase search visibility.
Pimcore also has support for optimising images for SEO via the ability to add asset metadata. Within the DAM once you’ve opened the asset, you open the ‘custom metadata tab’ you can see three entries - ‘title’, ‘alt’ and ‘copyright’. The title tag will showcase the title of the image when you hover over an image. The alt tag is the alternative text that can be specified to screen readers and is important for accessibility reasons as it can help readers with visual impairments.
Another important feature is the SEO document editor which allows you to view the entire document tree including the pretty URL’s you have set in documents in order for you to check the completeness of your sitemap. There is also a check for REDIRECT HTTP errors. The SEO section in Pimcore has a “HTTP ERROR” feature which allows you to view these errors and the redirect feature allows you to set redirects for any of these URLs.
Google recently announced that page speed and user experience would be a metric they would take into account within their algorithm update. Apart from slow servers there are a number of reasons why a page may be given a low score. A recurring issue slowing down a number of websites are large images especially for mobile. Pimcore addresses this with a thumb nailing feature within the DAM. This compresses the image into a webP format which is a recommendation given by Google.
Flexible Templating with Twig
Pimcore allows you to create a flexible content managed web pages with the fast and secure Twig templating system. Twig compiles down to plain optimized PHP code and is designed to keep a clean separation between your application’s logic and its content. Not only can Twig be used for generating web pages it can also be utilized to create web2print catalogs.
The current ecommerce landscape is filled with technology platforms such as Shopify and Adobe Commerce which have predefined templates and a way of doing things such as checkout and account management, pricing etc. Pimcore’s ecommerce capability takes more of a framework based approach and is suitable for businesses looking to develop a B2B offering with complex requirements. For example if you’re a workwear embroidery business and your pricing requires tiered pricing and a set up fee - the ecommerce pricing service will allow you to customise the pricing dependent on pricing matrices, individual pricing rules and integrations from independent third party sources such as your ERP.
Documents is also where you can manage content for web2print or in other words your pdf catalogues. You’re able to create your own templates using HTML/CSS with the ability of accessing all your product information. Then with the help of https://wkhtmltopdf.org/ or https://www.pdfreactor.com/ you’re able to convert them into PDF’s. For more information about our Web2Print offering please see https://hamari.agency/service/web2print.
Once a PIM is set up, it is important for an organisation to set which users have access to certain elements of the system and what permissions they have to make changes. This is important from a data governance perspective. Pimcore permissions are based on users as well as roles. Each individual user can be granted granular access, whereas roles will grant access to different parts of the system for a group of users.
Customer Management Framework
Pimcore offers a CDP (customer data platform) via the customer management framework. With new customer journeys across multiple channels are developed again new data silos are created. Your customer may purchase from your website but others purchase from online marketplaces such as Amazon and Google. A CDP allows you to unify first party customer data from multiple channels into a singular view of the customer. This data could include:
Transactional data - a customer’s previous orders and returns
Demographic data - customer’s DOB, address, ethnicity etc.
Behavioural data - the pages they’ve visited, how long they spent on that page etc.
The CMF also allows you to add functionalities around segmentation, personalization and marketing automation. This feature, like the e-commerce framework, is a framework which allows developers to create customer management solutions integrated into Pimcore's data objects.
Personalisation and Behavioural targeting Engine
Imagine visiting a website for a car dealership which you’ve visited before. You’re interested in buying a Mercedes. Once you land on the homepage the first block you see is a list of Mercedes cars. You’re less likely to bounce off the website and more likely spend time looking through the range of cars you like. By showing personalised and relevant content to your customer segments allows you to improve your conversion rates as well as the customer experience. Pimcore offers this functionality out of the box via the targeting and personalisation feature. This feature is tightly coupled with the customer management framework.