We have enhanced our recommendation engine to provide two new recommendation algorithms: one focused on recommending content based on the user's browsing history on the website, and the other one providing recommendations based on most popular content. These recommendation strategies can be used by adding the matching content collections to any page. Experimentation and attribution is also possible by comparing them through an AB test that determines the best strategy to increase CRO.
Release Notes
To help content creators raise the quality of their content, now they have integrated in our rich-text editors a spell checker that will help them solve spelling and grammar errors. It supports multiple languages, including: Spanish, English, French, and German.
The Analytics mobile app allows users to access the main reports and dashboards on-the-go to stay on top of the most relevant metrics for the business.
A new application, named Data Set Manager (Data Sets in the Control Panel) allows admins to define through a UI data set views for the different headless resources available. Admins will be able to choose the data source, as well as configure the columns to be available and the pagination options for the different views.
To enable this feature:
- Add feature.flag.LPS-167253=true to your
portal-ext.properties
- Go to Instance settings > Feature Flags and enable “Data set manager” in the Beta tab.
In addition to the data set manager, two additional components have been added to provide the full value to the users:
- A new fragment, so these views can be integrated in any content page. Content managers will select the data set view to display on each fragment.
- A new frontend client extension, Frontend Data Set Cell Renderer, that allows developers to customize how any field of the data set view is rendered, providing total control of the look and feel of any column.
In order to make it easier for users to configure certain accessibility properties to their liking or needs, we have created our Accessibility Menu.
The Accessibility Menu allows each user to customize certain accessibility settings in a specific way, so that DXP has a custom accessibility setup based on the needs of that user. It can be accessed via keyboard navigation using Tabulation, right after the “Skip to Content” option.
We have enabled the integration with ChatGPT so texts can be generated from the Web Content editor.
There is a new button on the CKEditor (web content editor) that triggers a modal where users can write a prompt (instructions for the bot) and add additional parameters such as tone and length.
Make it easier for suppliers to manage products and orders with an OTB account type supplier, and a Generic Supplier role, that grants them the ability to manage their own product catalog(s) and channel. With this, they will have the ability to create product bundles with SKUs from Supplier Catalogs.
New Account Type of Supplier. A Supplier can be linked to a catalog and to a channel to allow the supplier to manage their own products, price lists, promotions, catalogs, discounts, inventory and channel in order to be able to fulfill orders for their own products.
OTB workflow that will split a mixed basket of goods a customer places from different suppliers, into individual supplier orders to support marketplaces and webshops where partners are also present.
Used in Conjunction with Supplier Accounts, this object's rule, once configured, splits Commerce Orders automatically by the Catalog that each Product belongs to. The Channel on the Order is updated to be the channel linked to the same supplier that the Catalog is linked to. The order splitting rule effectively allows the supplier to manage orders for their own specific products.
OTB Support for Customers to request quotes for catalog products or baskets and to restrict pricing to be only available on request:
- Enable Product Catalog managers to initiate contact with a Sales Agent to process a quote.
- Allow customers to request a quote for a catalog product.
- Submitted Quote requests will be assigned to the sales agents to review and process.
- Allow clients to request a quote for individual products instead of setting a price.
- Includes the option to use a Price List or a Promotion to price the Product as "Price on Application".
- There is also the ability to activate the "Request a quote" option on a fully priced cart for a particular channel.
This feature allows users to enable the basic encryption support for object fields.
This feature allows users to delete fields from published objects that were added before the object got published, giving more flexibility to admin users.
This feature shows the Organization application as a System Object in Objects Admin, allowing users to extend it and related with other objects available.
With this feature it is possible to differentiate the login failures in the audit messages, which one is caused by incorrect password and which one is caused by incorrect login.
Before this change, audit messages were only returned for cases when the authentication failed with FAILURE
status, which happens when the user provides an incorrect password. The event type is LOGIN_FAILURE
in this case.
With the new changes, it is provided audit information for cases when the authentication fails with DNE
status by adding a LOGIN_DNE
event type. DNE
stands for user "does not exist", it always means that the login (email
/ screenName
/ userID
) is incorrect.
So with the newly added LOGIN_DNE
event type we cover authentication DNE
scenarios when the login fails due to incorrect login (email
/ screenName
/ userID
) .
The batch engine API allows developers to export/import data, but it requires developers to provide a configuration with multiple parameters. With the new auto-generated endpoints, it is easier to perform export operations in the portal. The export endpoints are asynchronous, so it will provide a taskId
in order to retrieve/download the records requested.
The endpoints follow this format:
We display some additional messages to Site and Site template Administrators when there is a Friendly URL collision between Site page and Site template page.
The instance administrator can create email templates including the first name.
When the users are authenticated through SSO and IdP, it is possible to remove the ability of the end users to add or edit their passwords.
As an Instance Administrator, you are able to configure if the users have the option to give their password at registration and you can remove the whole password block from editing user data, if the password is not changeable by the password policy of the user.
Now users can manage the tags and categories associated with the Objects entries from the REST APIs. When an Object has Categorization enabled, properties for tags and categories will be exposed in the Object entries schemas. Users can retrieve the information, set or update the tags and categories associated with the Object entries as well as use the information of these fields to filter information
Now it is possible to manage and check the permissions of the object entries directly from the headless APIs.
For each object definition, two new endpoints are available. One to retrieve the permissions that apply to that individual Object entry and another one that allows users to set/update the permissions that apply to that entry.
Now it is possible to use all query parameters available from the API explorer. Parameters such as fields
, nestedFields
or flatten
are accessible and ready to use in your test queries.
With this new feature, Instance Administrator can export audit data filtered by user as well as filtered by site. They can also store site data for audit events.
ユーザーは、コンテンツエディター内で、すでに翻訳されたフィールドとまだ翻訳が必要なフィールドを簡単に識別してフィルタリングできます。さらに、一部のフィールドがまだ翻訳されていない場合でも、言語を翻訳済みとしてマークすることを選択できます。ユーザーには、翻訳をデフォルト値に簡単にリセットするオプションもあります。これらの機能により、翻訳プロセスが合理化され、効率が向上します。
ユーザーは、コンテンツダッシュボードの新しいフィルター機能を使用して、特定のサイズのカテゴリ (小、中、または大) ごとに画像やビデオを効率的に見つけることができるようになりました。さらに、作成、表示、有効期限、変更、公開、レビューなどのさまざまなライフサイクルイベントの日付の範囲に基づいてコンテンツやドキュメントを簡単にフィルタリングできます。この機能強化により、コンテンツ管理が合理化され、関連ドキュメントへのユーザーのアクセシビリティが向上します。
ユーザーは、ゲストユーザーに表示されていないドキュメント&メディアを、リスト、カード、テーブルビュー、またはドキュメントエディター内でアイコンを通じて簡単に見つけることができます。さらに、この機能はアイテムセレクターからアクセスできるため、ゲストユーザーが表示できないドキュメントをユーザーが識別できるようになります。
ユーザーはドキュメントに表示日を設定できるようになり、1つのドキュメントだけ、または複数のドキュメントをアップロードする際に、将来の公開をスケジュールできるようになりました。 |
With a JavaScript (JS) client extension, you can run your own JavaScript on any page in Liferay without worrying about dependencies on Liferay code or developing a theme. This translates to noticeably faster loading times for your Liferay applications, keeping users engaged and happy. Give your applications a performance uplift with smarter script loading.
A common problem we have heard from our customers revolves around the time required to complete an AB Test. If a customer’s page receives limited traffic, the time to completion could be many weeks if not months. Amidst the rapid changes in today's business landscape, this delay potentially negates the usefulness of test results. On top of this, if a user were to terminate the test prematurely, the insights they gathered from the test and the variant they created were lost.
In order to remedy this issue, we are now providing test results and the ability to publish a variant when an AB Test is terminated. Although these results cannot determine a winning variant with 100% confidence, they will give marketers a sense of how their variant was performing. Using this information, Marketers can now make educated decisions according to their specific time constraints.
It is important to remark that this feature is DXP-only, as it belongs to Analytics Cloud.
The ability for a buyer or sales agent to edit a product bundle directly from the mini-cart has now been added. Previously, if a change had to be made the bundle had to be deleted from the cart and added again. This allows for more speedy alterations to be made before proceeding with check out.
New extension point allows for external custom rules to be written to determine what SKU's can be linked to a product as Options. This is limited to dynamic pricing scenarios. Discounts can still be created to discount specific product combinations.
The goal here is to make the users able to move changes between publications. This is needed because sometimes users do not want to publish an entire publication, but also do not want to revert the changes which will not be published actually. With this feature users can move changes from one publication to another, creating subsets of changes, and publish them separately. For readers with technical knowledge: this is similar to cherry-pick-ing a commit in git from one branch to another.
Sometimes the changes added to a publication needs to be reviewed by someone who is not a member of the site. The goal here was to make unauthenticated users able to review changes within a publication. For this we implemented a mechanism to generate a code, which can be used to access the Review Changes screen of a certain publication. Also this link could be easily invalidated/generated anytime by authenticated Publication Reviewers.
Now, users are able to visually understand the structure of their objects and how they connect with each other to result in the platform model.
Sell and manage SKUs by adding different Units of Measure to the SKU. Configure the Unit of Measure to optionally allow for sales in decimal quantities. Units of Measure have their own pricing and inventory. Once configured, they add to the shopping experience of the buyer who can now purchase SKUs in different Units of measure.
This feature addresses the inconvenience of not being able to remove specific entries from user invitation forms, enhancing the user experience for admin users who create these forms. It solves the problem of inefficient form management, allowing users to remove entries without starting over.
The feature enables users to remove entries from the invitation form by clicking a designated removal button, with a confirmation modal to prevent accidental removal.
This feature allows admin users to configure whether to send one email with everyone in copy or many emails individually to each email address.
Traditionally in Liferay, it has been hard to manage features deprecation because customers kept using the old features even if we announced deprecation and eventual replacements.
Now, we are able to better manage deprecation processes with the following changes:
- Features deprecation notice is increased from 6 months to 12 months. It applies to the Intended Functionality, as described in our Support Policy.
- Now, deprecated features might be kept inside a Deprecation Feature Flag during the deprecation period. These feature flags work as follows:
- For upgrades, Deprecation Flags are active by default, therefore customers still see the deprecated feature. No disruption is perceived.
- For new instances created, Deprecation Flag is inactive by default, therefore, the deprecated feature is hidden and it requires activation to be used. It prevents users from unconsciously using a deprecated feature.
Deprecated features are identified in DXP with a new deprecation badge.
Now, users are able to fill out object entries in parts, allowing them to save data as draft and return at their convenience to complete.
Before this feature when somebody wanted to activate/deactivate a User they needed to have “Delete” permission. We created two new permissions called “Activate” and “Deactivate”. Users with “Delete” permission still able to activate/deactivate users.
We also created two new Headless-API endpoint:
/headless-admin-user/v1.0/user-accounts/by-status/${status}
Status can be either "active" or "inactive," allowing you to fetch users by their status.
/headless-admin-user/v1.0/user-accounts/by-email-address/${emailAddress}
This endpoint lets you retrieve a user by their email address, regardless of their current status.
When “Manage Users” permission is added to an Account Admin, the Admin can invite, assign and create Users. We separated the “Invite User” permission so it can be used without providing the other permissions to the User.
This feature allows customers, who need more capabilities than what the out of the box Expression Builder provides, to add their custom validations in Objects framework without running their data through an external microservice.
Evolving the user experience when object validations fail specifying which information field end-users need to update.
Enabling this feature will allow users to dynamically populate fields using expressions with information created from data filled and provided by other fields.
Now, when creating pages and display pages to visualize object entries, users can easily display related object entries. To enable this, we have added:
- In a one-to-many or many-to-many object relationships scenario, new related item collection providers access information of the “many” side of a one-to-many and many-to-many relationships. For example: a Countries object, and a related “cities” object for cities in those countries. This new capability allows users to easily list the cities that belong to a country, and other data from each city, via a related item collection provider.
- In a one-to-many object relationship, if we are listing or displaying the items of the “many” side, information of the “one” side is available for direct mapping as well. For example: a “Countries” object, and a related object for cities in those countries. When listing the cities, this new capability allows to easily display the country which each city belongs to.
- Attachment field attributes (such as download URL and file size) are now available for direct mapping.
Traditionally, it has been complex and tedious to configure the necessary permissions that would make the Control Menu not visible for logged-in users. As soon as one permission was not configured properly, the Control Menu would be visible for these users.
This was previously managed by a specific logic inside the Theme, but now, we have made it easier to control and configure with a new setting.
Now, customers can easily control visibility of the Control Menu per role, within Site Settings >> Site Configuration >> Menu Access.
In order to improve the information we display at the Content Dashboard, we have added a new column with the Review Date value. With this new column, users have an easy way to view all contents where the review is needed. In addition, we have developed a new Filter to give the capability to show only the contents to be reviewed.
Note: This change will require a full reindex to work, so the new field can be propagated.
Filter by Review Date:
- All
- To be reviewed
Now users can create richer web content with the new Date-Time field available in Web Content Structures. To make it add more value, it is also enabled the possibility to map this new field to the editable of type Date-Time from any fragment, allowing users to customize the date & time values in content pages.
- New Date and Time field.
- Date-time values can be added to Web Content.
- Custom format in Fragment config.
- Custom date time display.
This feature adds a HTML template that provides more context for the email notifications users get when Message Added Email and Message Updated Email are triggered on Message Boards.
For this, three new terms were added:
- Message siblings: message thread of messages at the same level.
- Message parents: the message body of the parent message.
- Root message body: the message body of the original message.
We have refactored the Page Configuration and Page Design Options to make them homogeneous and consistent. Now, users can access Page Design Options as a section of the Page Configuration (they were two separate views before).
In addition to that, we have made the UX homogeneous and more consistent with new Clay component styles. We have also regrouped items according to what users intend to do, making it more logical and user friendly to configure.
Users can set different permissions for download and for viewing documents.
Ability to filter the user agent (all, human, bot) for each redirection pattern, in Configuration.
Option of rating added to Folders and the endpoints for Documents rated by me, Folders rated by me have been created.
Before the Import process starts, users are now asked via a confirmation dialog if the user is sure about deleting application data . Also, we have improved the error message for Staging related references.
On LPS-136108: URLs using a virtual host are always reformatted on export and import, even in cases where they don't need to be the validation of the Web Content was added for Liferay layout URLs. Before this, there was no validation, so users could create their customizations where they could add different URLs to the Web Content's content. After the validation was added, some custom URLs became unable to be added to the Web Content. From user perspective this was a feature loss, so we decided to deliver a feature to make customers able to add their custom URLs to Web Content's content field. This feature is about adding a configuration for storing the user’s relative URL patterns. So custom URLs containing this pattern would bypass validation.
- Deletion of property
upgrade.log.context.name
. Now all upgrade related log lines are automatically tagged with the keyupgrade.component
, which provides more meaningful information. - Upgrade Report is now compatible also with upgrade on startup, and it can be printed as Log Thread Context information.
- Upgrades log the result and the type of upgrade that has taken place after all the upgrade processes finish.
- New mBean available with upgrade on startup to obtain real time information about the status and the result of the upgrade.
As a Site Template Administrator: template propagations are run completely in the background and background tasks are executed in a sequence. The LAR from the Site Template export is cached, so different Sites can reuse it.
LayoutSetPrototypeMergeBackgroundTaskExecutor
always uses the latest Template version for the propagation.- If there is already a queued background task for the Site, we don’t create a new one.
- If there is a background task in progress, we only create a new background task if the Template was modified.
Using LAR files for export/import in the portal are stored in DM. These LAR files can increase the size of the DM significantly. We have changed this, so the LARs are not kept in the DM after the export/import process.
This is the Staging related implementation of a bigger change. On the Staging side, the LXC Client extensions (Remote apps) could be handled. To make this feature completely working, LPS-182183: Export/Import of FrontEnd Client Extensions is also needed.
Two new configuration options were added:
- The first one gives the users the chance to automate an existing feature, which improves performance.
- The other one is about displaying the Advanced Staging configuration screen to the users, improving usability.
Creation of a new property called upgrade.report.dl.storage.size.timeout
that specifies the number of seconds that the upgrade report generation will wait for calculating the DL size before timing out. This property is set to 10 by default but it can be modified in the portal-ext.properties
file.
From now on, users can view the summary of failed staging processes, which can help them to solve the issue(s) which caused the staging process to fail.