Digital Commerce Blog - Blackbit

Blackbit presents the Pimcore Data Director 3.4.0

Written by Stefano Viani | Jun 28, 2023 9:30:00 AM

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

  1. Save data object
  2. → Generate corresponding document
  3. → Convert document to PDF asset
  4. → 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.