The new version of the Pimcore Data Director offers completely new functions that make your daily work with data a little more efficient. The highlight of version 3.4.0: the integration of ChatGPT.
ChatGPT integration
Thanks to the integration of ChatGPT, it is now possible to derive technical attributes from a text, e.g. to automatically derive the object Brick Multiselect Attributes Color with blue and orange via the input "Long-sleeved cotton shirt with blue and orange stripes".
On the other hand, it is of course also possible to generate texts for product descriptions from technical data. Via the input
- Name: Cool casual shirt
- Material: Cotton
- Colors: Blue, Orange
- Gender: Male
You can easily create a product description like this via ChatGPT integration:
The Cool Casual Shirt is a comfortable and stylish choice for any man. It's made from high quality cotton and offers breathable comfort to keep you feeling great all day long. Available in two vibrant colors - blue and orange - this shirt is perfect for casual wear or dressier occasions. Designed with the male physique in mind, it offers a flattering fit that looks great on any body type. Whether you're going to work or meeting up with friends, the Cool Casual Shirt is for you!
The input parameters can be assigned as usual via the attribute assignment of the Data Director. It is also possible to customize the prompt sent to ChatGPT.
Performance
Lower memory requirements
By removing the timestamp and context from each log message, less memory is consumed. In addition, memory consumption has been reduced by a number of smaller refactorings, especially when importing large amounts of data.
Faster raw data import
More efficient pagination for the retrieval of raw data: Instead of LIMIT 100000, 100 is now paginated more effectively between the raw data record blocks, see https://ramzialqrainy.medium.com/faster-pagination-in-mysql-you-are-probably-doing-it-wrong-d9c9202bbfd8
More intelligent check for the execution of automatic dataports
Automatic dataports are saved when an object of the configured source data class or a dependent object of such an object has been saved. In the past, this led to a large number of queue processes that were actually pointless, as the raw data fields did not access data from the saved object. Now there is a smarter way to check whether it is necessary to execute automatic data ports for dependent objects by analyzing the target classes of the data query selector. The dataport is only executed for objects whose raw data could potentially be modified by the stored object.
Pimcore 10.6 compatibility
Version 3.4 is now compatible with Pimcore 10.6. We are currently working on compatibility with Pimcore 11.
Web2Print
Version 3.4.0 introduces a callback function template to generate PDF asset files from Pimcore documents. This makes it easy to set up an automatic PDF generation pipeline such as
- Save data object
- → Generate corresponding document
- → Convert document to PDF asset
- → Automatically assign the generated PDF asset to the saved data object
before data query selector
You can use the "before" data query selector to access data from previous versions of an object. Possible use case: "before:published" indicates whether the object was published in the version before the currently published version. This can be used to trigger actions when certain fields change, e.g. you could set up an automatic data port with the condition o_published=1 and the raw data field before:published. As soon as someone publishes an object (so that the SQL condition o_published=1 is true) that was not previously published (if this is the case, you will see the entry before:published in the raw data field with the data query selector), you can now trigger an action. This allows you to set up workflows (e.g. notifying validators when certain fields are changed).
Dataport settings
- Support for FTP, SFTP, FTPS for the import type "File system" to retrieve files from a remote storage as import resource
- Support for selecting raw data fields for Pimcore-based dataports via tree selection (as in the class definition)
- Support for loading environment variables/website settings via data query selectors
Attribute mapping
- Support for configuring API keys for DeepL/OpenAI via website settings and attribute mapping
- Write protection (also known as "Do not overwrite if already filled") for mapped object brick container/classification store container fields at field level instead of generally for the entire container → empty fields are filled, while currently filled fields remain the same
- Added option to automatically create referenced related objects for many-to-many object relation fields: If an attempt is made to assign Keyword:name#en:Test to a many-to-many object relation, an object of class "Keyword" with the English name "Test" is created (if it does not already exist)
- Support for the dynamic creation of object modules and object module fields (when "Automatically create non-existent fields" is activated for object module containers)
- Support for deleting elements
- Easier attribute mapping for field collections (previously many arrays were necessary in the callback function)
- If import text for Wysiwyg fields does not contain HTML tags, nl2br() is used to preserve line breaks
- Support for accessing website settings in "" placeholders
- Support for drag & drop to copy the mapping of a field to another field
- Support for importing localized block fields
- Support for retrieving the "tags" of an element via the "tags" data query selector
- History callback function: "Restore" and "Copy" buttons added to restore/copy the previous version
Further changes
- Dataport configuration: Added right-click context menu for Dataport tab panel to close all/other Dataport tabs
- Added dependency diagram in default object preview
- Serialization of classification store/object brick container now only returns current language data for localized fields
- Bugfix: If the raw data field for the key field contained an array, it was passed as individual elements to $params['value'] → $params['value'] should always contain the real raw data
- If an automatic dataport is cloned, deactivate the "Execute automatically" checkbox.
- Dataport settings: Check for settings conflicts (if another user has saved in the meantime)
- Provide $params['translator'] object for callback functions to access Pimcore translations
- Send error notification emails even if neither the website domain nor the debug email address have been set (in this case with sender=no-reply@Pimcore)
- Attribute mapping panel: copy variable by click, open in new window by double-click (as it was a few months ago)
- withoutInheritance now also disables fallback languages (previously only parent-child inheritance disabled)
- Provide a universal path formatter that shows the fields that are configured to be displayed in the grid view also in the relationship field (instead of Pimcore's default path)
- Providing a data option provider that can be used with a data query selector to define dynamic options → allows dynamic selection fields and even dependent selection fields within the same object
- Add an "HTML container" layout component → Add pure HTML to the object editing panel (which also supports placeholders for data query selectors as a side effect)
- Support for the "deeplink" data query selector (e.g. for workflows)
- Adding user information to $params['context']
- Support for placeholders such as (PHP function with parameters)
- Disable smart logging if the executing user is an administrator (otherwise it is difficult to debug automatic imports)
- Sending HTTP 500 for REST API calls when the dataport run was canceled (previously it was 200)
- Support for calling a dependent dataport by name
Our Pimcore Data Director tutorials
Many more helpful tips and detailed instructions for using the Pimcore Data Director, including the new ChatGPT integration, can be found in the video tutorials in the Blackbit Academy and on the Blackbit YouTube channel.
Not yet familiar with the Data Director?
Are you curious about our powerful import and export bundle? Then visit our store now and get to know the Data Director.
Contact us now and we will show you in an individual demo what possibilities the Data Director offers you.
Stefano Viani is the managing director of Blackbit digital Commerce GmbH He is always up to date with the latest developments and trends in e-commerce and digital marketing. For decades he has been a consultant for large and medium-sized companies for the technical, visual and advertising optimisation of websites. In particular, he develops concepts and measures for successful sales marketing.
Do you have any questions or would you like a personal consultation?
Server-Side Tracking: Your Database for Successful Online Marketing
Better call Bent: Welcome to Team Blackbit!
Free Webinar: Next Level Personalization
Barrierefreiheitsstärkungsgesetz (BFSG): Does Your Website Meet The New Requirements?
Leave us feedback