Ibexa DXP v4.6 LTS
Discounts v4.6.21¶
REST API¶
- Discounts can now be managed through the REST API
PHP API¶
The PHP API has been enhanced with the following new classes:
Ibexa DXP v4.6.21¶
Security¶
- This release includes security fixes. To learn more, see the security advisory IBEXA-SA-2025-003
PHP API¶
The PHP API has been enhanced with the following new classes:
Ibexa\Contracts\Checkout\Exception\CheckoutException
Ibexa\Contracts\Checkout\Discounts\DiscountsValidationFailedException
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Discounts v4.6.20¶
Features¶
- With the introduction of discount code usage limits, you can now limit the number of times a customer can use a discount code before it becomes invalid
- You can now provide your own form themes for the discounts form by using the extension point in
ibexa_discounts_form_themes
Twig function
PHP API¶
The PHP API has been enhanced with the following new classes:
Ibexa\Contracts\Discounts\Admin\Form\DiscountValueFormTypeMapperInterface
Ibexa\Contracts\Discounts\Admin\Form\FormThemeProviderInterface
Ibexa\Contracts\DiscountsCodes\Exception\DiscountCodeUnusableException
Ibexa\Contracts\DiscountsCodes\Exception\DiscountCodeUserInvalidArgumentException
Ibexa\Contracts\DiscountsCodes\Value\DiscountCodeUsageInterface
Ibexa\Contracts\DiscountsCodes\Value\DiscountCodeUser
Ibexa\Contracts\DiscountsCodes\Value\Query\DiscountCodeUsageQuery
To update to the latest version, see the update instructions.
Ibexa DXP v4.6.20¶
Twig Components¶
- The new Twig Components feature allow you to effortlessly build customizable and reusable Twig templates in Ibexa DXP
Extending Sub-items view¶
- Thanks to the new extension point, you can now add new views or overwrite existing ones in the Sub-items list
Infrastructure¶
- MySQL 8.4, Node 20 and Node 22 are now officially supported
PHP API¶
The PHP API has been enhanced with the following new classes:
Ibexa\Contracts\AdminUi\Menu\AbstractActionBuilder
Ibexa\Contracts\TwigComponents\ComponentInterface
Ibexa\Contracts\TwigComponents\ComponentRegistryInterface
Ibexa\Contracts\TwigComponents\Event\RenderGroupEvent
Ibexa\Contracts\TwigComponents\Event\RenderSingleEvent
Ibexa\Contracts\TwigComponents\Exception\InvalidArgumentException
Ibexa\Contracts\TwigComponents\Renderer\RendererInterface
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Discounts¶
With the Discounts LTS Update, you can temporarily or permanently reduce prices on specific products or categories, making deals more attractive to potential buyers.
Use them to encourage first-time purchases, reward loyal customers, promote new or slow-moving items, or drive sales during seasonal events.
By displaying discounted prices clearly in the catalog or cart, businesses can create a sense of urgency, increase customer satisfaction, and ultimately boost revenue.
For more information, see Discounts product guide.
AI Actions v4.6.19¶
Features¶
AI Actions can now integrate with Ibexa Connect, giving you an opportunity to build complex data transformation workflows without having to rely on custom code. To learn more, see the setup instructions for this integration.
Ibexa DXP v4.6.19¶
Security¶
- This release includes security fixes. To learn more, see the published security advisory IBEXA-SA-2025-002
Features¶
- The CartSummary endpoint now supports a new
Accept
header:application/vnd.ibexa.api.ShortCartSummary
, returning only the essential data about products in the cart - Added a new repository setting: grace period for archived versions
- Added a new
group_remote_id
setting for controlling the user group in which registering users are created
Ibexa Rector¶
- The Ibexa Rector package has been released, allowing you to automatically refactor your code and remove deprecations. To learn how to use it, see the update instructions
PHP API¶
The PHP API has been enhanced with the following new classes:
Ibexa\Contracts\Connect\Ai\ActionHandlerDataStructureAwareInterface
Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureCreateStruct
Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureFilter
Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureItemCreateStruct
Ibexa\Contracts\Connect\Resource\CustomPropertyStructureInterface
Ibexa\Contracts\Connect\Resource\Scenario\CustomPropertiesDataFillInStruct
Ibexa\Contracts\Connect\Response\CustomPropertyStructure\CreateItemResponse
Ibexa\Contracts\Connect\Response\CustomPropertyStructure\CreateResponse
Ibexa\Contracts\Connect\Response\CustomPropertyStructure\DeleteItemResponse
Ibexa\Contracts\Connect\Response\CustomPropertyStructure\ListItemResponse
Ibexa\Contracts\Connect\Response\CustomPropertyStructure\ListResponse
Ibexa\Contracts\Connect\Response\CustomPropertyStructure\RetrieveItemResponse
Ibexa\Contracts\Connect\Response\CustomPropertyStructure\RetrieveResponse
Ibexa\Contracts\Connect\Response\Scenario\RetrieveCustomPropertiesDataResponse
Ibexa\Contracts\Core\Repository\Events\Notification\BeforeMarkNotificationAsUnreadEvent
Ibexa\Contracts\Core\Repository\Events\Notification\MarkNotificationAsUnreadEvent
Ibexa\Contracts\ProductCatalog\CustomerGroupAssignedItemsServiceDecorator
Ibexa\Contracts\ProductCatalog\CustomerGroupAssignedItemsServiceInterface
Ibexa\Contracts\ProductCatalog\Events\CustomerGroupCanBeDeletedEvent
Ibexa\Contracts\ProductCatalog\Values\CustomerGroup\AssignedItem
Ibexa\Contracts\ProductCatalog\Values\CustomerGroup\AssignedItemInterface
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.18¶
PHP API¶
The PHP API has been enhanced with the following new classes:
Ibexa\Contracts\ProductCatalog\Form\Data\ProductSelectorData
Ibexa\Contracts\ProductCatalog\Form\Data\ProductsSelectorData
Ibexa\Contracts\ProductCatalog\Form\Type\ProductSelectorType
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Date and time attribute¶
The Date and time attributes allow you to represent date and time values as part of the product specification in the Product Information Management system.
For more information, see Date and time attributes.
AI Actions v4.6.17¶
Features¶
You can now duplicate AI actions in the AI actions list.
PHP API¶
The PHP API has been expanded with the following classes and interfaces:
Ibexa DXP v4.6.17¶
Security¶
This release includes security fixes. To learn more, see the corresponding security advisory.
Features¶
- New REST API endpoints for Segments and Segment Groups
- PHP API Client (
Ibexa\Contracts\Connect\ConnectClientInterface
) for Ibexa Connect - The following Twig functions now additionally support objects implementing the
ContentAwareInterface
as arguments: - Added new Twig filter for product attributes grouping:
ibexa_product_catalog_group_attributes
PHP API¶
The PHP API has been enhanced with the following new classes and interfaces:
Ibexa\Contracts\Cart
:Ibexa\Contracts\Segmentation
:Ibexa\Contracts\ProductCatalog
:Ibexa\Contracts\Connect
:ConnectClientInterface
Exception\BadResponseException
Exception\UnserializablePayload
Exception\UnserializableResponse
PaginationInterface
Resource\DataStructure\DataStructureBuilder
Resource\DataStructure\DataStructureCreateStruct
Resource\DataStructure\DataStructureFilter
Resource\DataStructure\DataStructureProperty
Resource\DataStructure\DataStructurePropertyType
Resource\DataStructureInterface
Resource\Hook\HookCreateStruct
Resource\Hook\HookFilter
Resource\Hook\HookSetDetailsStruct
Resource\HookInterface
Resource\Scenario\ScenarioCreateStruct
Resource\Scenario\ScenarioFilter
Resource\ScenarioInterface
Resource\Team\TeamVariableCreateStruct
Resource\Team\TeamVariableFilter
Resource\Team\TeamVariableUpdateStruct
Resource\TeamInterface
Resource\Template\TemplateCreateStruct
Resource\Template\TemplateFilter
Resource\TemplateInterface
Response\DataStructure\CreateResponse
Response\DataStructure\ListResponse
Response\DataStructure\RetrieveResponse
Response\Hook\CreateResponse
Response\Hook\ListResponse
Response\Hook\RetrieveResponse
Response\Hook\SetDetailsResponse
Response\Scenario\CreateResponse
Response\Scenario\ListResponse
Response\Scenario\RetrieveResponse
Response\Team\TeamVariableCreateResponse
Response\Team\TeamVariableListResponse
Response\Team\TeamVariableRetrieveResponse
Response\Team\TeamVariableUpdateResponse
Response\Template\BlueprintResponse
Response\Template\CreateResponse
Response\Template\ListResponse
Response\Template\RetrieveResponse
ResponseInterface
TransportInterface
Value\Blueprint\Flow
Value\Blueprint\Metadata\Scenario
Value\Blueprint\Metadata
Value\Blueprint\Module\CustomWebhook
Value\Blueprint\Module\JsonCreate
Value\Blueprint\Module\ModuleDesigner
Value\Blueprint\Module\WebhookRespond
Value\Blueprint
Value\Controller
Value\Scheduling
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
AI Actions v4.6.16¶
Features¶
The new AI Assistant allows you to use the AI capabilities in additional places, including RichText, Text line, Text Block fields, and certain Page Builder blocks.
Ibexa DXP v4.6.16¶
PHP API¶
The PHP API has been enhanced with the following new classes:
Ibexa\Contracts\AdminUi\Permission\PermissionCheckContextProviderInterface
Ibexa\Contracts\AdminUi\Values\PermissionCheckContext
Ibexa\Contracts\Checkout\Discounts\DataMapper\DiscountsDataMapperInterface
Ibexa\Contracts\Seo\Resolver\FieldValueResolverInterface
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.15¶
Features¶
You can now reuse Page Builder blocks between landing pages using the "Copy block" action.
PHP API¶
The PHP API has been enhanced with the following new classes and interfaces:
Ibexa\Contracts\ProductCatalog\Values\Price\PriceEnvelopeInterface
Ibexa\Contracts\ProductCatalog\Values\Price\PriceStampInterface
Ibexa\Contracts\ProductCatalog\Values\StampInterface
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.14¶
Security¶
This release includes security fixes. To learn more, see the corresponding security advisory.
UX Improvements¶
- The identifiers for content types and field definitions are now autogenerated based on the provided name
- You can now search in Trash by content's name
Search¶
- New search criterion: IsUserEnabled
PHP API¶
The PHP API has been enhanced with the following new classes and interfaces:
Ibexa\Contracts\Core\Validation\AbstractValidationStructWrapper
Ibexa\Contracts\Core\Validation\StructValidator
Ibexa\Contracts\Core\Validation\StructWrapperValidator
Ibexa\Contracts\Core\Validation\ValidationFailedException
Ibexa\Contracts\Core\Validation\ValidationStructWrapperInterface
Ibexa\Contracts\Notifications\SystemNotification\SystemMessage
Ibexa\Contracts\Notifications\SystemNotification\SystemNotification
Ibexa\Contracts\Notifications\SystemNotification\SystemNotificationInterface
Ibexa\Contracts\Notifications\Value\Recipent\UserRecipientInterface
Ibexa\Contracts\ProductCatalog\ProductReferencesResolverStrategy
Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\UpdatedAt
Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\UpdatedAtRange
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.13¶
PHP API¶
The PHP API has been enhanced with the following new classes and interfaces:
- Ibexa\Contracts\CoreSearch\Persistence\CriterionMapper\AbstractCompositeCriterionMapper
- Ibexa\Contracts\CoreSearch\Persistence\CriterionMapper\AbstractFieldCriterionMapper
- Ibexa\Contracts\Rest\Output\Exceptions\AbstractExceptionVisitor
- Ibexa\Contracts\CoreSearch\Values\Query\CriterionMapper
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
AI Actions¶
The AI Actions LTS update enhances the usability and flexibility of Ibexa DXP v4.6 LTS by harnessing the potential of artificial intelligence to automate time-consuming editorial tasks. By default, the AI Actions feature can help users with their work in following scenarios:
- Refining text: when editing a content item, users can request that a passage selected in online editor is modified, for example, by adjusting the length of the text, changing its tone, or correcting linguistic errors.
- Generating alternative text: when working with images, users can ask AI to generate alternative text for them, which helps improve accessibility and SEO.
For more information, see AI Actions product guide.
Ibexa DXP v4.6.12¶
PHP API¶
The PHP API has been enhanced with the following new classes and interfaces:
- Ibexa\Contracts\AdminUi\Menu\AbstractFormContextMenuBuilder
- Ibexa\Contracts\AdminUi\Menu\CopyFormContextMenuBuilder
- Ibexa\Contracts\AdminUi\Menu\CreateFormContextMenuBuilder
- Ibexa\Contracts\AdminUi\Menu\MenuItemFactoryInterface
- Ibexa\Contracts\AdminUi\Menu\UpdateFormContextMenuBuilder
- Ibexa\Contracts\Core\Pool\Pool
- Ibexa\Contracts\Core\Pool\PoolInterface
- Ibexa\Contracts\CoreSearch\Values\Query\AbstractCriterionQuery
- Ibexa\Contracts\CoreSearch\Values\Query\AbstractSortClause
- Ibexa\Contracts\CoreSearch\Values\Query\Criterion\AbstractCompositeCriterion
- Ibexa\Contracts\CoreSearch\Values\Query\Criterion\CriterionInterface
- Ibexa\Contracts\CoreSearch\Values\Query\Criterion\FieldValueCriterion
- Ibexa\Contracts\CoreSearch\Values\Query\Criterion\LogicalAnd
- Ibexa\Contracts\CoreSearch\Values\Query\Criterion\LogicalOr
- Ibexa\Contracts\CoreSearch\Values\Query\CriterionMapper
- Ibexa\Contracts\CoreSearch\Values\Query\CriterionMapperInterface
- Ibexa\Contracts\CoreSearch\Values\Query\SortClause\FieldValueSortClause
- Ibexa\Contracts\CoreSearch\Values\Query\SortDirection
- Ibexa\Contracts\ProductCatalog\Local\Attribute\ContextAwareValueValidatorInterface
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.11¶
Search¶
- New search criterion: IsBookmarked
PHP API¶
The PHP API has been enhanced with the following new classes and interfaces:
And the new methods are:
Ibexa\Contracts\Core\Persistence\Bookmark\Handler::loadUserIdsByLocation()
Ibexa\Contracts\ProductCatalog\Local\LocalProductTypeServiceDecorator::addContentTypeFieldDefinition()
Ibexa\Contracts\ProductCatalog\Local\LocalProductTypeServiceDecorator::removeContentTypeFieldDefinition()
Ibexa\Contracts\ProductCatalog\Local\LocalProductTypeServiceInterface::addContentTypeFieldDefinition()
Ibexa\Contracts\ProductCatalog\Local\LocalProductTypeServiceInterface::removeContentTypeFieldDefinition()
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.10¶
Security¶
This release includes security fixes. To learn more, see the corresponding security advisory.
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.9¶
Security¶
This release includes security fixes. To learn more, see the corresponding security advisory.
PHP API¶
The PHP API has been enhanced with the following new classes and interfaces:
Ibexa\Contracts\ConnectorQualifio\Exception\QualifioException
Ibexa\Contracts\ConnectorQualifio\Exception\CampaignFeedNotFoundException
Ibexa\Contracts\ConnectorQualifio\Exception\CommunicationException
Ibexa\Contracts\ConnectorQualifio\Exception\NotConfiguredException
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.8¶
PHP API¶
The PHP API has been enhanced with the following new class:
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.7¶
PHP API¶
The PHP API has been enhanced with the following new classes:
Ibexa\Contracts\Calendar\EventAction\EventActionCollection
Ibexa\Contracts\Calendar\EventSource\InMemoryEventSource
Ibexa\Contracts\Core\Event\Mapper\ResolveMissingFieldEvent
Ibexa\Contracts\Core\FieldType\DefaultDataFieldStorage
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.6¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.5¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.4¶
Security¶
This release includes security fixes. To learn more, see the corresponding security advisory.
Ibexa Engage¶
Ibexa Engage is a data collection tool you can use to engage your audiences.
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.3¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.2¶
Security¶
This release includes security fixes. To learn more, see the corresponding security advisory.
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.1¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.
Ibexa DXP v4.6.0¶
Notable changes¶
Ibexa Headless¶
Ibexa Content changes name to Ibexa Headless to emphasize Ibexa's capacity for headless architecture.
The feature set and capabilities of the product remain the same.
Customizable dashboard ¶
Users can now customize the dashboard depending on their needs and preferences, select required blocks, and easily access important information. This solution uses an online editor - Dashboard Builder. It improves productivity, allows to enhance the default dashboard with additional widgets, and helps to make better business decisions based on data.
For more information, see Customizable dashboard.
UX and UI improvements¶
Several improvements to the back office interface enhance the user experience.
Page Builder improvements ¶
Page Builder user interface has new functionalities and improvements.
Here are the most important changes:
- new design of Page Builder interface, including block settings window,
- two main toolboxes: Elements and Structure view,
- quick preview of a structure of the page with the possibility of reorganizing the blocks,
- new visual feedback indicates the correct drop locations,
- intuitive dragging makes it easier for users to interact with the Page Builder,
- new actions added in the block settings toolbox,
- user can now adjust the size of the block settings window,
- Undo and Redo buttons.
For more information, see Page Builder interface.
Editing embedded content items¶
User can now edit embedded content items without leaving current window. This function is available in the Rich Text Field when creating content items, for selected blocks in the Page Builder, and while adding or modifying a Content relation.
For more information, see Edit embedded content items.
Focus mode¶
With multiple changes to the back office UI intended to expose the most important information and actions, editors can now better focus on their work. The UI is now more friendly and appealing for marketers and editors, with simplified Content structure, designed with new and non-advanced users in mind.
For more information, see Focus mode.
As part of this effort, some other changes were introduced that apply to both regular and Focus mode:
- In content item details view, tabs have been reordered by their relevance
- Authors and Sub-items are now separate tabs in content item details view
- Former Details tab is now called Technical details and changed its position
- Preview is available in many new places, such as the View tab in content item details view, or as miniatures when you hover over the content tree
ibexa_is_focus_mode_on
andibexa_is_focus_mode_off
Twig helpers have been introduced, which check whether focus mode is enabled or not.
Ability to change site context¶
With a drop-down list added to the top bar, which changes the site context, editors can choose that the content tree shows only those content items that belong to the selected website. And if content items belong to multiple websites but use different designs or languages depending on the SiteAccess settings, their previews also change.
As part of this effort, the name of the "Sites" area of the main menu has changed to "Site management".
Distraction free mode¶
While editing Rich Text Fields, user can switch to distraction free mode. It expands the workspace to full screen and shows only editor toolbar.
For more information, see Distraction free mode.
Simplified user actions¶
Button text now precisely describes actions, so that users who create or edit content understand the purpose of each button.
Draft section added to Content¶
For streamlining purpose, the Draft section is now situated under Content. Users can now easily find and manage their drafts and published content from one area.
User profile and new options in user settings¶
With personal touch in mind, editors can now upload their photos (avatar), and provide the following information in their user profiles:
- Department
- Position
- Location
- Signature
- Roles the user is assigned to
- Recent activity
Also, editors and other users can customize their experience even better, with new preferences that have been added to user settings.
For more information, see user profile and settings documentation.
Recent activity log¶
Several actions on the repository or the application are logged. In the back office, last activity logs can be listed on a dedicated interface (Admin -> Activity list), on the dashboard within Recent activity block, or on the user profile.
For more information, see feature's User Documentation, and Developer Documentation.
Back office search¶
Search bar, suggestions, autocompletion, and spellcheck¶
The search bar can be focused with the shortcut Ctrl+/ (Windows, Linux) or Command+/ (Mac).
While typing text in the bar, autocompletion suggestions is made under the bar itself. If a relevant suggestion occurs, it can be clicked, or navigated too with up/down keys then selected with Enter, and the content is be directly opened.
In the search result page, a spellcheck suggestion can be made. For example, if the searched text is "Comany", the result page may ask "Did you mean company?", which is clickable to relaunch the search with this word.
For more information, see User Documentation, and how to customize autocompletion suggestions.
Filtering and sorting¶
The search result page can be sorted in other orders than relevance. Name, publication of modification dates, this can be extended.
Filters can be applied to the search page to narrow down the results.
For more information, see User Documentation, and how to customize search sorting.
New and updated content type icons¶
To help users quickly identify different content types in the back office, all content type references are now accompanied with icons. Also, content type icons have changed slightly.
Ibexa Image picker¶
Editors can now use a Digital Asset Management platform that enables storing media assets in a central location, organizing, distributing, and sharing them across many channels.
For more information, see Ibexa DAM.
New features and improvements in PIM¶
Remote PIM support¶
This release introduces a foundation for connecting Ibexa DXP to other sources of product data. You can use it to implement a custom solution and connect to external PIM or ERP systems, import product data, and present it side-by-side with your organization's existing content, while managing product data in a remote system of your choice.
Here are the most important benefits of Remote PIM support:
- Integration with external data sources: your organization can utilize Ibexa DXP's features, without having to migrate data to a new environment.
- Increased accessibility of product information: customers and users can access product data through different channels, including Ibexa DXP.
- Centralized product data management: product information can be maintained and edited in one place, which then serves as a single source of truth for different applications.
Among other things, the Remote PIM support feature allows Ibexa DXP customers to:
- let their users purchase products by following a regular or quick order path,
- manage certain aspects of product data,
- define and use product types,
- use product attributes for filtering,
- build product catalogs based on certain criteria, such as type, availability, or product attributes,
- use Customer Groups to apply different prices to products,
- define and use currencies.
For more information about Remote PIM support and the solution's limitations, see PIM product guide.
Virtual products¶
With this feature, you can create virtual products - non-tangible items such as memberships, services, warranties. Default Checkout and Order workflows have been adjusted to allow purchase of virtual products.
For more information, see Create virtual products.
Product page URLs¶
When you're creating a new product type, you can set up a product URL alias name pattern. With this feature, you can also create custom URL and URL alias name pattern field based on product attributes. Customized URLs are easier to remember, help with SEO optimization and reduce bounce rates on the website.
For more information, see Product page URLs.
Improved UX of VAT rate assignment¶
Users who are creating or editing a product type are less likely to forget about setting VAT rates, because they now have a more prominent place.
For more information, see Create product types.
Updated VAT configuration¶
VAT rates configuration has been extended to accept additional flags under the extras
key.
Developers can use them, for example, to pass additional information to the UI, or define special exclusion rules.
For more information, see VAT rates.
Ability to search through products in a catalog¶
When you're reviewing catalog details, on the Products tab, you can now see what criteria are used to include products in the catalog, and search for a specific product in the catalog.
New Twig functions¶
The ibexa_is_pim_local
Twig helper has been introduced, which can be used in templates to check whether product data comes from a local or remote data source, and adjust their behavior accordingly.
Also, several new Twig functions have been implemented that help get product availability information.
New and modified query types¶
The ProductContentAwareListQueryType
has been created to allow finding products that come from a local database, while ProductListQueryType
has been modified to find products from an external source of truth.
New Search Criterion¶
With IsVirtual
criterion that searches for virtual or physical products, product search now supports products of virtual and physical type.
Product migration¶
Product variants and product assets can now be created through data migration.
New features and improvements in Commerce ¶
Reorder¶
With the new Reorder feature, customers can effortlessly repurchase previously bought items directly from their order history with a single click, eliminating the need for manual item selection. The system streamlines the process by recreating the cart, retrieving shipping information, and pre-filling payment details from past orders. This feature is exclusively accessible to logged-in users, ensuring a secure and personalized shopping experience.
For more information, see reorder documentation.
Orders block¶
Orders block displays a list of orders associated with a specific company or an individual customer. This block allows users to configure orders statuses, columns, number of orders, and sorting order.
For more information, see Orders block documentation.
Quick order¶
The quick order form allows users to streamline the process of placing orders with multiple items in bulk directly from the storefront. Customers don't need to browse through products in the catalog. They can fill in a provided form with products' code and quantity, or upload their own list directly into the system. Quick order form is available to both registered and guest users.
For more information, see Quick order documentation.
Cancel order¶
This version allows you to customize order cancellations by defining a specific order status and related transition.
For more information, see Define cancel order.
Integrate with payment gateways¶
Ibexa DXP can now be configured to integrate with various payment gateways, like Stripe and PayPal, by using the solution provided by Payum.
Shipments¶
Users can now work with the shipments: view and modify their status, filter shipments in shipment lists and check all the details. You can access shipments for your own orders or all the shipments that exist in the system, depending on your permissions.
For more information, see Work with shipments.
Owner criterion¶
Orders and shipments search now supports user reference:
OwnerCriterion
Criterion searches for orders based on the user reference.Owner
Criterion searches for shipments based on the user reference.
Customize checkout workflow¶
You can create a PHP definition of the new strategy that allows for workflow manipulation. Defining strategy allows to add conditional steps for workflow if needed. When a conditional step is added, the checkout process uses the specified workflow and proceeds to the defined step.
For more information, see Create custom strategy.
Manage multiple checkout workflows¶
When working with multiple checkout workflows, you can now specify the desired workflow by passing its name as an argument to the checkout initiation button or link.
For more information, see Manage multiple workflows.
Adding context data to cart¶
Attach context data to both the Cart and its individual Cart Entries. This feature enhances the flexibility and customization of your e-commerce application, enabling you to associate additional information with your cart and its contents. By leveraging context data, such as promo codes or custom texts, you can tailor the shopping experience for your customers and enhance the capabilities of your application.
For more information, see Adding context data.
New features and improvements in Personalization¶
Triggers¶
Triggers are push messages delivered to end users. With triggers, store managers can increase the engagement of their visitors and customers by delivering recommendations straight to their devices or mailboxes. While they experience improved fulfillment of their needs, more engaged customers mean bigger income for the store. The feature requires that your organization exposes an endpoint that passes data to an internal message delivery system and supports the following use cases:
-
Inducing a purchase by pushing a message with cart contents or equivalents, when the customer's cart status remains unchanged for a set time.
-
Inviting a customer to come back to the site by pushing a message with recommendations, when they haven't returned to the site for a set time.
-
Reviving the customer's interest by pushing a message with products that are similar to the ones the customer has already seen.
-
Inducing a purchase by pushing a message when a price of the product from the customer's wishlist decreases.
For more information, see Email triggers.
Multiple attributes in recommendation computation¶
With this feature, you get an option to combine several attribute types when computing recommendations. As a result, users can be presented with recommendations from an intersection of submodel results.
For more information, see Submodel parameters and Submodels.
New scenario filter¶
Depending on a setting that you make when defining a scenario, the recommendation response can now include either product variants or base products only. This way you can deliver more accurate recommendations and avoid showing multiple variants of the same product to the client.
For more information, see Commerce-specific filters.
Other changes¶
Expression Language¶
New project_dir()
expression language function that allows you to reference current project directory in YAML migration files.
Site Factory events¶
Site Factory events have been moved from the Ibexa\SiteFactory\ServiceEvent\Events
namespace to the Ibexa\Contracts\SiteFactory\Events
namespace, keeping the backward compatibility.
For a full list of events, see Site events.
Event handling system was improved with the addition of listeners based on CreateSiteEvent
, DeleteSiteEvent
, and UpdateSiteEvent
.
New listeners automatically grant permissions to log in to a site, providing a more seamless site management experience.
Integration with Actito¶
By using the Actito gateway you can send emails to the end-users about changes in the status of various operations in your commerce presence.
Integration with Qualifio Engage¶
Use Qualifio Engage integration to create engaging marketing experiences to your customers.
Integration with SeenThis!¶
Unlike conventional streaming services, integration with SeenThis! service provides an adaptive streaming technology with no limitations. It allows you to preserve the best video quality with a minimum amount of data transfer.
For more information, see SeenThis! block.
API improvements¶
REST API¶
REST API for shipping ¶
Endpoints that allow you to manage shipping methods and shipments by using REST API:
- GET
/shipments
- loads a list of shipments - GET
/shipments/{identifier}
- loads a single shipment based on its identifier - PATCH
/shipments/{identifier}
- updates a shipment - GET
/shipping/methods
- loads shipping methods - GET
/shipping/methods/{identifier}
- loads shipping methods based on their identifiers - GET
/shipping/method-types
- loads shipping methods types - GET
/shipping/method-types/{identifier}
- loads shipping methods type based on their identifiers - GET
/orders/order/{identifier}/shipments
- loads a list of shipments
REST API for company accounts ¶
Endpoints that allow you to manage companies in your platform with REST API:
- GET
/sales-representatives
- returns paginated list of available sales representatives
REST API for prices¶
Endpoints that allow you to manage prices in your platform with REST API:
- GET
/product/catalog/products/{code}/prices
- loads a list of product prices - GET
/product/catalog/products/{code}/prices/{currencyCode}
- loads a list of product prices for a given currency - GET
/product/catalog/products/{code}/prices/{currencyCode}/customer-group/{identifier}
- loads a list of product prices for a given currency and customer group - POST
/product/catalog/products/{code}/prices
- creates price or custom price for a given product - PATCH
/product/catalog/products/{code}/prices/{id}
- updates price or custom price for a given product - DELETE
/product/catalog/products/{code}/prices/{id}
- deletes price for a given product
New method signature¶
A signature for the \Ibexa\Contracts\Rest\Output\Generator::startValueElement
method has been updated to the following:
1 2 3 4 5 |
|
Any third party code that extends \Ibexa\Contracts\Rest\Output\Generator
needs to update the method signature accordingly.
Helpers¶
A new helper method ibexa.helpers.contentType.getContentTypeDataByHref
has been introduced to help you get content type data in JavaScript.
Ibexa Connect¶
For a list of changes in Ibexa Connect, see Ibexa app release notes.
Scenario block¶
New Ibexa Connect scenario block retrieves and displays data from an Ibexa Connect webhook. Scenario block is a regular Page block and can be configured on field definition level as any other block. You also need to configure scenario block in the Page Builder. To do it, you need to provide name for the block, enter webhook link for the Ibexa Connect webhook and select the template to be used to present the webhook.
For more information, see Ibexa Connect scenario block.
DDEV¶
Ibexa DXP can officially be run on DDEV.
For more information, see the DDEV guide, which offers a step-by-step walkthrough for installing Ibexa DXP.
Customer Data Platform (CDP)¶
In this release, the CDP configuration allows you to automate the process of exporting data. Users can now export not only Content, but also Users and Products data.
For more information, see CDP Activation.
Developer experience¶
New packages¶
The following packages has been introduced in Ibexa DXP v4.6.0:
- ibexa/oauth2-server (optional)
- ibexa/site-context
- ibexa/activity-log
- ibexa/notifications
- ibexa/dashboard
- ibexa/connector-seenthis (optional)
- ibexa/connector-actito (optional)
- ibexa/connector-qualifio (optional)
- ibexa/connector-payum
- ibexa/image-picker
- ibexa/core-persistence
- ibexa/corporate-account-commerce-bridge
Note
The ibexa/content package has been renamed to ibexa/headless.
REST APIs¶
Ibexa DXP v4.6.0 adds REST API coverage for the following features:
- Price engine
- Shipping
- Corporate accounts
- Activity Log
- UDW configuration (internal)
Endpoints list¶
The following endpoints have been added in 4.6.0 release (27 endpoints in total):
Endpoint | Functions | Parameters | ||
---|---|---|---|---|
ibexa.activity_log.rest.activity_log.list |
GET/POST | ANY | ANY | /api/ibexa/v2/activity-log/list |
ibexa.udw.location.data |
GET | ANY | ANY | /api/ibexa/v2/module/universal-discovery/location/{locationId} |
ibexa.udw.location.gridview.data |
GET | ANY | ANY | /api/ibexa/v2/module/universal-discovery/location/{locationId}/gridview |
ibexa.udw.locations.data |
GET | ANY | ANY | /api/ibexa/v2/module/universal-discovery/locations |
ibexa.udw.accordion.data |
GET | ANY | ANY | /api/ibexa/v2/module/universal-discovery/accordion/{locationId} |
ibexa.udw.accordion.gridview.data |
GET | ANY | ANY | /api/ibexa/v2/module/universal-discovery/accordion/{locationId}/gridview |
ibexa.rest.application_config |
GET | ANY | ANY | /api/ibexa/v2/application-config |
ibexa.cart.authorize |
POST | ANY | ANY | /api/ibexa/v2/cart/authorize |
ibexa.rest.corporate_account.sales_representatives.get |
GET | ANY | ANY | /api/ibexa/v2/corporate/sales-representatives |
ibexa.product_catalog.rest.prices.create |
POST | ANY | ANY | /api/ibexa/v2/product/catalog/products/{productCode}/prices |
ibexa.product_catalog.rest.prices.list |
GET | ANY | ANY | /api/ibexa/v2/product/catalog/products/{productCode}/prices |
ibexa.product_catalog.rest.prices.get.custom_price |
GET | ANY | ANY | /api/ibexa/v2/product/catalog/products/{productCode}/prices/{currencyCode}/customer-group/{customerGroupIdentifier} |
ibexa.product_catalog.rest.prices.get.base_price |
GET | ANY | ANY | /api/ibexa/v2/product/catalog/products/{productCode}/prices/{currencyCode} |
ibexa.product_catalog.rest.prices.update |
PATCH | ANY | ANY | /api/ibexa/v2/product/catalog/products/{productCode}/prices/{id} |
ibexa.product_catalog.rest.prices.delete |
DELETE | ANY | ANY | /api/ibexa/v2/product/catalog/products/{productCode}/prices/{id} |
ibexa.product_catalog.personalization.rest.product_variant.get_by_code |
GET | ANY | ANY | /api/ibexa/v2/personalization/v1/product_variant/code/{code} |
ibexa.product_catalog.personalization.rest.product_variant_list |
GET | ANY | ANY | /api/ibexa/v2/personalization/v1/product_variant/list/{codes} |
ibexa.shipping.rest.shipping_method.type.list |
GET | ANY | ANY | /api/ibexa/v2/shipping/method-types |
ibexa.shipping.rest.shipping_method.type.get |
GET | ANY | ANY | /api/ibexa/v2/shipping/method-types/{identifier} |
ibexa.shipping.rest.shipping_method.get |
GET | ANY | ANY | /api/ibexa/v2/shipping/methods/{identifier} |
ibexa.shipping.rest.shipping_method.find |
GET | ANY | ANY | /api/ibexa/v2/shipping/methods |
ibexa.shipping.rest.shipment.get |
GET | ANY | ANY | /api/ibexa/v2/shipments/{shipmentIdentifier} |
ibexa.shipping.rest.shipment.delete |
DELETE | ANY | ANY | /api/ibexa/v2/shipments/{shipmentIdentifier} |
ibexa.shipping.rest.shipment.all.find |
GET | ANY | ANY | /api/ibexa/v2/shipments |
ibexa.shipping.rest.shipment.order.find |
GET | ANY | ANY | /api/ibexa/v2/orders/order/{orderIdentifier}/shipments |
ibexa.shipping.rest.shipment.create |
POST | ANY | ANY | /api/ibexa/v2/orders/order/{orderIdentifier}/shipments |
ibexa.shipping.rest.shipment.update |
PATCH | ANY | ANY | /api/ibexa/v2/shipments/{shipmentIdentifier} |
PHP API¶
- Autosave API (
\Ibexa\Contracts\AdminUi\Autosave\AutosaveServiceInterface
) - Activity Log API
- Spellchecking API
- Site Context API (
\Ibexa\Contracts\SiteContext\SiteContextServiceInterface
) - Dashboard API (
\Ibexa\Contracts\Dashboard\DashboardServiceInterface
) - Price resolver API (
\Ibexa\Contracts\ProductCatalog\PriceResolverInterface
) - Location Preview URL resolver (
\Ibexa\Contracts\SiteContext\PreviewUrlResolver\LocationPreviewUrlResolverInterface
, see GitHub) - ContentAware API (
\Ibexa\Contracts\Core\Repository\Values\Content\ContentAwareInterface
) - Sorting Definition API (
\Ibexa\Contracts\Search\SortingDefinition
)
Search Criteria¶
Content
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\ContentName
- Image criteria:
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Dimensions
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\FileSize
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Height
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\MimeType
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Orientation
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Criterion\Image\Width
Product
\Ibexa\Contracts\ProductCatalog\Values\Product\Query\Criterion\IsVirtual
ProductStock
andProductStockRange
Sort Clauses¶
\Ibexa\Contracts\ProductCatalog\Values\Product\Query\SortClause\ProductStock
Aggregations¶
- Aggregation API for product catalog
- Labeled ranges
- Range::INF to improve readability of unbounded ranges
- Added support for creating range aggregations from generator (see
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Ranges\RangesGeneratorInterface
) and built-in step generators:\Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Ranges\DateTimeStepRangesGenerator
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Ranges\FloatStepRangesGenerator
\Ibexa\Contracts\Core\Repository\Values\Content\Query\Aggregation\Ranges\IntegerStepRangesGenerator
- Allowed direct access to aggregation keys from results
\Ibexa\Contracts\Core\Repository\Values\Content\Search\AggregationResult\TermAggregationResult::getKeys
\Ibexa\Contracts\Core\Repository\Values\Content\Search\AggregationResult\RangeAggregationResult::getKeys
Events¶
The following events have been added in the v4.6.0 release (39 events in total):
- ibexa/activity-log
\Ibexa\Contracts\ActivityLog\Event\PostActivityListLoadEvent
- ibexa/admin-ui
\Ibexa\Contracts\AdminUi\Event\FocusModeChangedEvent
- ibexa/cart
\Ibexa\Contracts\AdminUi\Event\FocusModeChangedEvent
\Ibexa\Contracts\Cart\Event\BeforeMergeCartsEvent
- ibexa/core
- URL and name schema resolving events:
\Ibexa\Contracts\Core\Event\NameSchema\ResolveUrlAliasSchemaEvent
\Ibexa\Contracts\Core\Event\NameSchema\ResolveNameSchemaEvent
\Ibexa\Contracts\Core\Event\NameSchema\ResolveContentNameSchemaEvent
- Tokens
\Ibexa\Contracts\Core\Repository\Events\Token\BeforeRevokeTokenByIdentifierEvent
\Ibexa\Contracts\Core\Repository\Events\Token\BeforeRevokeTokenEvent
\Ibexa\Contracts\Core\Repository\Events\Token\RevokeTokenByIdentifierEvent
\Ibexa\Contracts\Core\Repository\Events\Token\RevokeTokenEvent
- URL and name schema resolving events:
- ibexa/migration
\Ibexa\Contracts\Migration\Event\BeforeMigrationEvent
\Ibexa\Contracts\Migration\Event\MigrationEvent
- ibexa/page-builder
\Ibexa\Contracts\PageBuilder\Event\GenerateContentPreviewUrlEvent
- ibexa/search:
\Ibexa\Contracts\Search\Event\Service\BeforeSuggestEvent
\Ibexa\Contracts\Search\Event\Service\SuggestEvent
- ibexa/segmentation
\Ibexa\Contracts\Segmentation\Event\AssignUserToSegmentEvent
\Ibexa\Contracts\Segmentation\Event\BeforeAssignUserToSegmentEvent
\Ibexa\Contracts\Segmentation\Event\BeforeCreateSegmentEvent
\Ibexa\Contracts\Segmentation\Event\BeforeCreateSegmentGroupEvent
\Ibexa\Contracts\Segmentation\Event\BeforeRemoveSegmentEvent
\Ibexa\Contracts\Segmentation\Event\BeforeRemoveSegmentGroupEvent
\Ibexa\Contracts\Segmentation\Event\BeforeUnassignUserFromSegmentEvent
\Ibexa\Contracts\Segmentation\Event\BeforeUpdateSegmentEvent
\Ibexa\Contracts\Segmentation\Event\BeforeUpdateSegmentGroupEvent
\Ibexa\Contracts\Segmentation\Event\CreateSegmentEvent
\Ibexa\Contracts\Segmentation\Event\CreateSegmentGroupEvent
\Ibexa\Contracts\Segmentation\Event\RemoveSegmentEvent
\Ibexa\Contracts\Segmentation\Event\RemoveSegmentGroupEvent
\Ibexa\Contracts\Segmentation\Event\UnassignUserFromSegmentEvent
\Ibexa\Contracts\Segmentation\Event\UpdateSegmentEvent
\Ibexa\Contracts\Segmentation\Event\UpdateSegmentGroupEvent
- ibexa/site-context
\Ibexa\Contracts\SiteContext\Event\ResolveLocationPreviewUrlEvent
- ibexa/site-factory
\Ibexa\Contracts\SiteFactory\Events\BeforeCreateSiteEvent
\Ibexa\Contracts\SiteFactory\Events\BeforeDeleteSiteEvent
\Ibexa\Contracts\SiteFactory\Events\BeforeUpdateSiteEvent
\Ibexa\Contracts\SiteFactory\Events\CreateSiteEvent
\Ibexa\Contracts\SiteFactory\Events\DeleteSiteEvent
\Ibexa\Contracts\SiteFactory\Events\UpdateSiteEvent
Twig functions¶
ibexa_is_user_profile_available
ibexa_is_focus_mode_on
ibexa_is_focus_mode_off
ibexa_is_pim_local
ibexa_current_user
ibexa_is_current_user
ibexa_get_user_preference_value
ibexa_has_user_preference
ibexa_has_field
ibexa_field_group_name
ibexa_render_activity_log
ibexa_render_activity_log_group
ibexa_choices_as_facets
ibexa_taxonomy_entries_for_content
ibexa_url
/ibexa_path
(support for content wrappers)
View matchers¶
The following view matchers have been introduced in Ibexa DXP v4.6.0:
\Ibexa\Core\MVC\Symfony\Matcher\ContentBased\IsPreview
\Ibexa\Taxonomy\View\Matcher\TaxonomyEntryBased\Id
\Ibexa\Taxonomy\View\Matcher\TaxonomyEntryBased\Identifier
\Ibexa\Taxonomy\View\Matcher\TaxonomyEntryBased\Level
\Ibexa\Taxonomy\View\Matcher\TaxonomyEntryBased\Taxonomy
Full changelog¶
To learn more about all the included changes, see the full release change logs:
To update your application, see the update instructions.