6 min read

5 Pimcore extensions to accelerate your project

Care to share?

Even though Pimcore, even in its Community Edition, is a quite capable PIM system most of the time, it needs some customizations to fit business requirements. Implementing such customizations can be an expensive and time-consuming process, but in many cases, it can be greatly reduced by using existing Pimcore extensions.

In this article, you’ll find five Pimcore extensions that address common business requirements that can accelerate your project’s time to market. I’ll omit the most popular ones, like Datahub or Process Manager, which are most likely familiar to anyone who has ever used Pimcore. However, I’ll include some extensions that are built on top of Datahub.

Before we begin, I’d like to note that the selection is subjective. It shouldn’t be treated as a list of the best Pimcore extensions nor should you expect that any of the extensions presented below will be helpful in your project. Additionally, the order that the extensions are presented in isn’t meaningful.

Data Importer

Pimcore needs data, and the sad reality is that in the 21st century, businesses still consider spreadsheets as the holy grail of data exchange. Because of this, almost every Pimcore project has to deal with importing CSV and XLSX files. Luckily, Pimcore Data Importer can greatly simplify the implementation of data imports. Sometimes, just a few clicks in the interface are enough.

Pimcore data importer view

Data Importer is versatile. Apart from CSV and XLSX files, it can also work with XML and JSON files. The file’s source can be a Pimcore asset, SFTP location, HTTP(S) location, or a POST endpoint.

Data from the source file is mapped to a Pimcore data object using a convenient interface. The mapping doesn’t have to be a one-to-one ratio. It’s possible to map multiple source fields to a single Pimcore object property or classification store key. Naturally, it’s possible to select only a subset of data from the source file. Source data can undergo a “transformation pipeline,” which is a series of operations, like trimming leading and trailing spaces, decoding HTML entities, converting value to an array, etc. There are more than 20 available operators. Thanks to three different loading strategies, Data Importer is able to locate existing objects and update them instead of creating new ones.

data importer 2

The import can be started manually from the admin interface. It can be configured as a cron job, and it can be triggered using a CLI command or, in the case of POST endpoints, it can be triggered by an HTTP request. The actual import process consists of two phases:

  1. Preparation: the source file is split into single data items, which are queued.
  2. Processing: each queued item is processed. In other words, the existing object is located, source data is processed, and finally, the object is saved. The items can be processed sequentially, which is required if data items depend on each other, or in parallel, which allows for speeding up processing.

Of course, this extension isn’t a silver bullet for all imports. For example, it’s able to parse multiple sheets in an XLSX file. Not all business requirements can be covered using Data Importer’s configuration options. Also, if performance is of the essence, it may be better to implement a custom, optimized data importer.

Name

Data Importer

Developer

Pimcore Core Team

Pimcore compatibility

10, 11

Cost

free

Single Sign-on

Usually, Pimcore is just a puzzle in organizations’ IT landscape, and the ability to log into Pimcore using an external identity provider is a popular business requirement. That’s exactly what the Single Sign-on extension can do.

Pimcore single sign on

This extension adds OpenID and LDAP authentication providers to Pimcore. The former can use Microsoft Azure Active Directory, Google, Auth0, and Okta as identity providers, to name just the best-known services. The latter allows integration with any service supporting LDAP protocol, the most common in the business context being Microsoft Active Directory. These services dominate in business environments, so this extension should be enough to implement SSO in the majority of cases. The developer promises to add support for SAML and OAuth2 in the near future.

Upon successful authentication in the external identity provider, the extension creates a corresponding user in Pimcore. The extension dispatches an event that can be used to modify a user object, such as changing its path. It’s possible to assign a default role to users.

One more thing: if you only need LDAP authentication, you can consider the Pimcore LDAP Bundle from the same vendor, which is free.

Name

Single Sign-on

Developer

Blackbit

Pimcore compatibility

6, 10, 11

Cost

€599

Members

If your Pimcore project has a front-end part, like an internal product catalog for employees, then you most likely need means to authorize access. For most typical scenarios, the Members bundle can help you to implement it effortlessly.

Pimcore members view

The extension provides a complete solution for storing and managing user credentials, including:

  • Member registration on the front end.
  • Member management on the back end.
  • Member self-service, such as editing profile, changing password, resetting password, deleting account, etc.
  • Access authorization for objects, documents, and assets.
  • Support for user roles and groups.

There are three registration modes:

  1. User needs to confirm their email address by clicking on a link in a confirmation email.
  2. Registration needs to be confirmed by the administrator.
  3. Instant confirmation without any further actions.

The extension handles sending the necessary emails, and of course, these emails can be customized.

All the forms used by the extension can be customized. For example, you can add additional fields to the registration form. Pimcore classes for user and group are also highly customizable. They can have any name you want, and the object key can be also configured. Further customization can be done using events: there are more than 30 events you can subscribe to.

Pimcore members

The Members extension can be used alongside Pimcore Customer Data Framework. To make it work, CMF user class has to extend Members’ AbstractCustomerUser class.

The extension also provides a simple way to implement single sign-on with OAuth2 providers, like Auth0, Google, Microsoft, and many others. Under the hood, the Members extension uses KnpUOAuth2ClientBundle that supports nearly 60 OAuth2 providers.

Name

Members

Developer

DACHCOM

Pimcore compatibility

5, 6, 10

Cost

free

Perspective Editor

Creating and modifying perspectives in Pimcore is a simple task that even a junior developer can handle. Sometimes, for example, if perspectives need to be modified frequently, having to run each modification through a developer may be impractical. That’s where the Perspective Editor extension may come in handy. It provides an editor to manage perspectives and views directly in Pimcore’s user interface. It may also be useful for quick prototyping of perspectives and views.

Pimcore perspective editor

The Perspective Editor doesn’t eliminate the necessity for writing code entirely. Customizing the context menu and toolbar menu requires adding JavaScript event listeners that bind to them.

Access to the extension should be granted with care because it allows editing WHERE and HAVING conditions of SQL queries used in views. If used improperly, it can be a major security vulnerability.

perspective editor 2

Given that this extension works on YAML files inside Pimcore’s var/config directory, there are two things that need to be taken into account:

  1. If Pimcore is deployed in a load-balanced and replicated environment, like in Kubernetes pods, the var/config/perspectives directory has to be shared between replicas. If that’s not done, changes made in the editor will be visible only sometimes.
  2. Developers need to make sure that deployments will not overwrite changes made in the user interface.

Name

Perspective Editor

Developer

Kurzor

Pimcore compatibility

10, 11

Cost

free

Number Sequence Generator

Number Sequence Generator extension does one thing: it provides a generator of continuous numbers. It sounds simple, but it’s very useful nonetheless. The majority of Pimcore projects I’ve worked with needed sequences for numbering orders, products, etc.

The generator allows you to choose a starting number. For example, you can start from 100000. A sequence can be manually set, for example, if you need to reset all product identifiers. Of course, the extension also allows you to use many independent sequences, like one for products and another one for product numbers. The only thing missing is the ability to choose increment value, which may be useful. if you need, for example, identifiers that are multiples of 100.

The extension also provides a random code generator that can be used for generating voucher codes, for example. You can specify character range, numeric or alphanumeric, character set so you can eliminate similar looking characters like “0” and “O”, and desired code length. The codes are guaranteed to be unique.

Name

Number Sequence Generator

Developer

Pimcore Core Team

Pimcore compatibility

10, 11

Cost

free

Final thoughts

The extensions listed above can save you hours or even days of development time in your Pimcore projects. Time is money and developers’ time is expensive, so using existing extensions is often cheaper than developing something from scratch.

On top of that, I strongly believe that in each project, most of the effort should be invested in the core domain that provides competitive advantage. Generic domains, like user authentication or data imports, should preferably be addressed by generic solutions

Published August 2, 2023