@@ -10,6 +10,40 @@ month_change: true
1010
1111<div class =" release-notes " markdown =" 1 " >
1212
13+ [[ % set version = 'v4.6.21' %]]
14+
15+ [[ = release_note_entry_begin("Discounts " + version, '2025-06-11', [ 'LTS Update', 'Commerce'] ) =]]
16+
17+ #### REST API
18+
19+ - Discounts can now be managed through the REST API
20+
21+ #### PHP API
22+
23+ The PHP API has been enhanced with the following new classes:
24+
25+ - [ ` Ibexa\Contracts\Discounts\Exception\DiscountValueResolutionException ` ] ( https://doc.ibexa.co/en/4.6/api/php_api/php_api_reference/classes/Ibexa-Contracts-Discounts-Exception-DiscountValueResolutionException.html )
26+
27+ [[ = release_note_entry_end() =]]
28+ [[ = release_note_entry_begin("Ibexa DXP " + version, '2025-05-27', [ 'Headless', 'Experience', 'Commerce'] ) =]]
29+
30+ #### Security
31+
32+ - This release includes security fixes.
33+ To learn more, see the [ security advisory IBEXA-SA-2025-003] ( https://developers.ibexa.co/security-advisories/ibexa-sa-2025-003-xss-vulnerabilities-in-back-office )
34+
35+ #### PHP API
36+
37+ The PHP API has been enhanced with the following new classes:
38+
39+ - [ ` Ibexa\Contracts\Checkout\Exception\CheckoutException ` ] ( https://doc.ibexa.co/en/4.6/api/php_api/php_api_reference/classes/Ibexa-Contracts-Checkout-Exception-CheckoutException.html )
40+ - [ ` Ibexa\Contracts\Checkout\Discounts\DiscountsValidationFailedException ` ] ( https://doc.ibexa.co/en/4.6/api/php_api/php_api_reference/classes/Ibexa-Contracts-Checkout-Discounts-DiscountsValidationFailedException.html )
41+
42+ #### Full changelog
43+ [[ % include 'snippets/release_46.md' %]]
44+
45+ [[ = release_note_entry_end() =]]
46+
1347[[ % set version = 'v4.6.20' %]]
1448[[ = release_note_entry_begin("Ibexa DXP " + version, '2025-05-27', [ 'Headless', 'Experience', 'Commerce'] ) =]]
1549
@@ -29,13 +63,13 @@ month_change: true
2963
3064The PHP API has been enhanced with the following new classes:
3165
32- - [ ` Ibexa\Contracts\AdminUi\Menu\AbstractActionBuilder ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-AdminUi-Menu-AbstractActionBuilder.html )
33- - [ ` Ibexa\Contracts\TwigComponents\ComponentInterface ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-ComponentInterface.html )
34- - [ ` Ibexa\Contracts\TwigComponents\ComponentRegistryInterface ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-ComponentRegistryInterface.html )
35- - [ ` Ibexa\Contracts\TwigComponents\Event\RenderGroupEvent ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-Event-RenderGroupEvent.html )
36- - [ ` Ibexa\Contracts\TwigComponents\Event\RenderSingleEvent ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-Event-RenderSingleEvent.html )
37- - [ ` Ibexa\Contracts\TwigComponents\Exception\InvalidArgumentException ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-Exception-InvalidArgumentException.html )
38- - [ ` Ibexa\Contracts\TwigComponents\Renderer\RendererInterface ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-Renderer-RendererInterface.html )
66+ - [ ` Ibexa\Contracts\AdminUi\Menu\AbstractActionBuilder ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-AdminUi-Menu-AbstractActionBuilder.html )
67+ - [ ` Ibexa\Contracts\TwigComponents\ComponentInterface ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-ComponentInterface.html )
68+ - [ ` Ibexa\Contracts\TwigComponents\ComponentRegistryInterface ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-ComponentRegistryInterface.html )
69+ - [ ` Ibexa\Contracts\TwigComponents\Event\RenderGroupEvent ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-Event-RenderGroupEvent.html )
70+ - [ ` Ibexa\Contracts\TwigComponents\Event\RenderSingleEvent ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-Event-RenderSingleEvent.html )
71+ - [ ` Ibexa\Contracts\TwigComponents\Exception\InvalidArgumentException ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-Exception-InvalidArgumentException.html )
72+ - [ ` Ibexa\Contracts\TwigComponents\Renderer\RendererInterface ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-TwigComponents-Renderer-RendererInterface.html )
3973
4074
4175#### Full changelog
@@ -76,27 +110,27 @@ To learn how to use it, see the [update instructions](https://doc.ibexa.co/en/la
76110
77111The PHP API has been enhanced with the following new classes:
78112
79- - [ ` Ibexa\Contracts\Connect\Ai\ActionHandlerDataStructureAwareInterface ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Ai-ActionHandlerDataStructureAwareInterface.html )
80- - [ ` Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureCreateStruct ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-CustomPropertyStructure-CustomPropertyStructureCreateStruct.html )
81- - [ ` Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureFilter ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-CustomPropertyStructure-CustomPropertyStructureFilter.html )
82- - [ ` Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureItemCreateStruct ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-CustomPropertyStructure-CustomPropertyStructureItemCreateStruct.html )
83- - [ ` Ibexa\Contracts\Connect\Resource\CustomPropertyStructureInterface ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-CustomPropertyStructureInterface.html )
84- - [ ` Ibexa\Contracts\Connect\Resource\Scenario\CustomPropertiesDataFillInStruct ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-Scenario-CustomPropertiesDataFillInStruct.html )
85- - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\CreateItemResponse ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-CreateItemResponse.html )
86- - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\CreateResponse ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-CreateResponse.html )
87- - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\DeleteItemResponse ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-DeleteItemResponse.html )
88- - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\ListItemResponse ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-ListItemResponse.html )
89- - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\ListResponse ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-ListResponse.html )
90- - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\RetrieveItemResponse ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-RetrieveItemResponse.html )
91- - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\RetrieveResponse ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-RetrieveResponse.html )
92- - [ ` Ibexa\Contracts\Connect\Response\Scenario\RetrieveCustomPropertiesDataResponse ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-Scenario-RetrieveCustomPropertiesDataResponse.html )
93- - [ ` Ibexa\Contracts\Core\Repository\Events\Notification\BeforeMarkNotificationAsUnreadEvent ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-Events-Notification-BeforeMarkNotificationAsUnreadEvent.html )
94- - [ ` Ibexa\Contracts\Core\Repository\Events\Notification\MarkNotificationAsUnreadEvent ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-Events-Notification-MarkNotificationAsUnreadEvent.html )
95- - [ ` Ibexa\Contracts\ProductCatalog\CustomerGroupAssignedItemsServiceDecorator ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-CustomerGroupAssignedItemsServiceDecorator.html )
96- - [ ` Ibexa\Contracts\ProductCatalog\CustomerGroupAssignedItemsServiceInterface ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-CustomerGroupAssignedItemsServiceInterface.html )
97- - [ ` Ibexa\Contracts\ProductCatalog\Events\CustomerGroupCanBeDeletedEvent ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Events-CustomerGroupCanBeDeletedEvent.html )
98- - [ ` Ibexa\Contracts\ProductCatalog\Values\CustomerGroup\AssignedItem ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-CustomerGroup-AssignedItem.html )
99- - [ ` Ibexa\Contracts\ProductCatalog\Values\CustomerGroup\AssignedItemInterface ` ] ( https://doc.ibexa.co/en/latest /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-CustomerGroup-AssignedItemInterface.html )
113+ - [ ` Ibexa\Contracts\Connect\Ai\ActionHandlerDataStructureAwareInterface ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Ai-ActionHandlerDataStructureAwareInterface.html )
114+ - [ ` Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureCreateStruct ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-CustomPropertyStructure-CustomPropertyStructureCreateStruct.html )
115+ - [ ` Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureFilter ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-CustomPropertyStructure-CustomPropertyStructureFilter.html )
116+ - [ ` Ibexa\Contracts\Connect\Resource\CustomPropertyStructure\CustomPropertyStructureItemCreateStruct ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-CustomPropertyStructure-CustomPropertyStructureItemCreateStruct.html )
117+ - [ ` Ibexa\Contracts\Connect\Resource\CustomPropertyStructureInterface ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-CustomPropertyStructureInterface.html )
118+ - [ ` Ibexa\Contracts\Connect\Resource\Scenario\CustomPropertiesDataFillInStruct ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Resource-Scenario-CustomPropertiesDataFillInStruct.html )
119+ - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\CreateItemResponse ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-CreateItemResponse.html )
120+ - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\CreateResponse ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-CreateResponse.html )
121+ - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\DeleteItemResponse ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-DeleteItemResponse.html )
122+ - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\ListItemResponse ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-ListItemResponse.html )
123+ - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\ListResponse ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-ListResponse.html )
124+ - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\RetrieveItemResponse ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-RetrieveItemResponse.html )
125+ - [ ` Ibexa\Contracts\Connect\Response\CustomPropertyStructure\RetrieveResponse ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-CustomPropertyStructure-RetrieveResponse.html )
126+ - [ ` Ibexa\Contracts\Connect\Response\Scenario\RetrieveCustomPropertiesDataResponse ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Connect-Response-Scenario-RetrieveCustomPropertiesDataResponse.html )
127+ - [ ` Ibexa\Contracts\Core\Repository\Events\Notification\BeforeMarkNotificationAsUnreadEvent ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-Events-Notification-BeforeMarkNotificationAsUnreadEvent.html )
128+ - [ ` Ibexa\Contracts\Core\Repository\Events\Notification\MarkNotificationAsUnreadEvent ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-Core-Repository-Events-Notification-MarkNotificationAsUnreadEvent.html )
129+ - [ ` Ibexa\Contracts\ProductCatalog\CustomerGroupAssignedItemsServiceDecorator ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-CustomerGroupAssignedItemsServiceDecorator.html )
130+ - [ ` Ibexa\Contracts\ProductCatalog\CustomerGroupAssignedItemsServiceInterface ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-CustomerGroupAssignedItemsServiceInterface.html )
131+ - [ ` Ibexa\Contracts\ProductCatalog\Events\CustomerGroupCanBeDeletedEvent ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Events-CustomerGroupCanBeDeletedEvent.html )
132+ - [ ` Ibexa\Contracts\ProductCatalog\Values\CustomerGroup\AssignedItem ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-CustomerGroup-AssignedItem.html )
133+ - [ ` Ibexa\Contracts\ProductCatalog\Values\CustomerGroup\AssignedItemInterface ` ] ( https://doc.ibexa.co/en/4.6 /api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-CustomerGroup-AssignedItemInterface.html )
100134
101135#### Full changelog
102136[[ % include 'snippets/release_46.md' %]]
0 commit comments