Pimcore 6 - The new features
Last year, more exactly in June 2019, an important milestone of Pimcore history was written. Pimcore 6 was released, with a completely redesigned user interface, based on the latest technology stack Symfony 4. We are confident to say that it elevated our platform to a new level. Pimcore has become one of the most popular and widely used open-source applications for PIM, MDM, DAM, CMS, CDP, and eCommerce around the world. But this does not mean that we are planning to slow down. We are hungry for more! Since the release of Pimcore 6.0, hundreds of useful new features have been added to Pimcore. Our community of partners, developers, and customers have contributed so much, which is just awesome! This article provides a summary of the most-liked and smartest new Pimcore 6.0, 6.1, 6.2, 6.3, 6.4, and 6.5 features.
Tools & Platform
XLIFF Export for Translation Management - Include related data and content
We made the XML Localization Interchange File Format feature much more powerful. Not only XLIFF files of individual web pages and products can now be exported and imported for faster and automated translation, but also all related data such as categories and related entities can be included. This makes translation work faster and more comfortable. Thanks, dvesh3!
Notification tool makes it possible to share elements with other users
The new notification feature makes it possible to send notifications to users. Inside an opened element a share button enables users to share the opened element with another user. When there is a new notification for a user, a window is displayed with the possibility to open this shared element. This is a great tool for simple task management. Thanks, fszenborn!
Invitation link for new users
Forward sent emails to additional recipients
The central overview of all “Sent Emails” was enhanced. You can now not only see, but also search and filter in a complete list of all notifications and emails that have been sent out by the Pimcore platform. The new feature now makes it also possible to forward individual messages to predefined additional recipients of your choice. Thanks, dvesh3!
Notification tool integrates with workflow management
If you are using workflows you will most likely need notifications, which remind different users about their upcoming tasks or to share information about proposed changes. Until now these notifications were sent to users only by email. The integration of the workflow tool with the notification tool now makes it possible that notifications also appear inside the Pimcore admin backend, as part of the central notification system. Thanks, fashxp!
Admin style for showing workflow state of documents and assets
Depending on their workflow state, data objects in Pimcore can have different icons. We added this feature for documents and assets too. One use case is translation management. Depending on the translation status, the documents have different icons which indicate the workflow state. This allows the user to get a quick overview without having to open them. Thanks, mcuenez & elements-team!
Asset grid mass data editing view enables batch editing of metadata
The mass editing view was enhanced and is now nearly as powerful as the grid view of the data objects. Use the asset grid view to open a folder and select in “Grid Options” which metadata you would like to display. Directly edit this metadata in the grid view or download it in CSV/XLSX file format. Work with multilingual metadata and share your configuration with other users or groups. You can now also filter by tags directly inside this grid view + there is a column configuration & export. Thanks, dvesh3!
Grid editing for Many To Many Object Relations
This new feature enables the user to directly add, edit, or remove relations to other data objects in the mass data record editing interface. Thanks to markus-moser!
Icon library integration in class definition editor
A select field in the class definition tab displays a set of icons. They are all different color variants of the default data object icon. Also, an event is dispatched in the getIconsAction() to customize the icons available in the select. This makes the configuration of custom icons for data objects such as as products, attributes, and related data, easier, faster and more comfortable. Thanks, jremmurd!
Until recently Pimcore supported only exporting data objects in CSV file format. Now we added support for XLSX (Microsoft Excel) files as well. Thanks, kubaplas!
New input field type Geopolyline
This new input element enables us to draw a line and automatically calculates its length. The user can select the points for the line on the map. Thanks, blankse!
'Search and Move' for empty folders
The ‘Search and Move’ functionality only worked if there already were objects in the folder. But what if a user wants to move objects to an empty folder? The functionality is now also provided on the folder even if it does not have any objects inside already. Thanks to neha04 (reported) and dvesh3 (solved)!
Full support for advanced many-to-many data-types in grid view
The data types “advanced many to many object relations” and “advanced many to many relations” can now display their meta-data in the mass editing grid view. Also, they now provide the possibility to edit data via a popup window. Thanks to brusch (reported) and weisswurstkanone (solved)!
Table input data type allows pasting data from Microsoft Excel
The table input data type now supports inserting data directly from Microsoft Excel with a “Paste from Clipboard” features. This allows us to quickly insert data from spreadsheets into Pimcore. Thanks to brusch (reported) and weisswurstkanone (solved)!
Structured table user interface improvements
Batch remove for relations
This pull request adds a “batch remove” option to all MultiRelation types and the MultiSelect type. It is now possible to quickly remove relations in the mass editing grid view. Thanks to markus-moser!
Localized calculated fields in object bricks
Added user information for redirects (Owner & Modification)
Redirection is the process of forwarding one URL to a different URL. One of the main use cases is SEO (search engine optimization). We made redirects a lot better by adding a few handy features. The first one is about the user information. We now store who created redirect and who modified it. This makes many new features possible. Thanks dvesh3!
Performance & usability improvements for redirects
So far Pimcore checked the redirects one by one, depending on their priority. So the more redirects you had, the longer it took to check them, which could be reflected in the TTFB (Time to first byte, an important indicator for page speed loading time). All redirects which were created without using regular expressions can now be retrieved directly via an index from the database. This is where the optimization comes in because even if there is a number of hundreds of thousands redirects (and even more), it does not affect performance anymore. Thanks brusch!
Tool for testing URLs of redirects
Enter a URL in the top right search/test bar (“Test URL”) to check if there is already a redirect rule available for it. Works with sites as well, of course, this is done by the routing service. Thanks brusch!
Improvements for auto-created redirect when a document is moved
Whenever a document is moved or renamed in Pimcore, the URL of the page changes. Until now all redirects were created by Pimcore in the background, via global yes/no setting. Now we let the user decide case by case if redirects should be created or not. If the user selects so, we create redirects for all children's documents well. Thanks, brusch!
Add default value option for documents select editable
It is now possible to define a default value for this editable. Thanks, dvesh3!
Add option to maintain a manual edited plain-text version of a newsletter
Spam filters like SpamAssassin rate multi-part emails higher than just html-email. Having the text part is worth one score point. The existing newsletter tool just sent html-emails. Now it is possible to also maintain a plain-text version of a newsletter. Thanks, Lexipowder!
Mandatory fields for the possibility to set some editables to `required`
It is now possible to set some editables, which are used to compose the Pimcore documents, to required, so they must be filled out. It prompts for missing values on "Save & Publish" of Documents. Supported editable types include Input, WYSIWYG, Textarea, and Numeric. Thank you Gerhard-Kanzler (idea) and dvesh3 (implementation)! Learn more
Objects can now have any number of custom URLs
Using the new data-type URL Slugs a user can define custom URLs for an object. You can add as many fields of this type to a class as you want. Pimcore then automatically takes care of the routing and calls the configured controller/action if a slug matches. Learn more
heidelpay payment provider implementation
The Heidelpay Group is a group of companies based in Heidelberg. It offers electronic payment solutions for online shops, retailers and online marketplaces worldwide. Pimcore now supports this payment provider. Thanks to markus-moser! Learn more
PayPal Smart Checkout Button
PayPal Checkout with Smart Payment Buttons gives your buyers a simplified and secure checkout experience. PayPal intelligently presents the most relevant payment types to your shoppers, automatically, making it easier for them to complete their purchase using methods like Pay with Venmo, PayPal Credit, credit card payments, iDEAL, Bancontact, Sofort, and other payment types. Thanks to fashxp!
Checkout service refactoring
Basic goals of the new architecture
Make payment integration easier and more transparent.
Tackle the 'cart is read-only deadlock' problem.
Introduce events for easier customization of the checkout process.
Changes in a nutshell
Cart can be configured that it is not read-only any more as soon as an active payment exists.
Checkout manager can be configured with different strategies for handling active payments and restart of payments like
RecreateOrder: Create new order every time a payment is started and leave old orders untouched.
CancelPaymentOrRecreateOrder (default value): Cancel payments if possible and cart has not changed, create new order when cart has changed.
ThrowException: Throw exceptions to make handling of these cases in controller possible.
Payment provider have now typed responses (e.g. form, url, json, etc.) to make integration into controllers/templates more transparent
Thanks to fashxp!
Add Google Tag Manager (GTM) tracking
Elasticsearch nested aggregations
The nested type is a specialized version of the object datatype that allows arrays of objects to be indexed in a way that they can be queried independently of each other. This pull request enables support for aggregating by nested documents and adds an exemplary filter implementation to the docs. Thanks, jremmurd! Learn more