@@ -10,6 +10,40 @@ month_change: true
10
10
11
11
<div class =" release-notes " markdown =" 1 " >
12
12
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
+
13
47
[[ % set version = 'v4.6.20' %]]
14
48
[[ = release_note_entry_begin("Ibexa DXP " + version, '2025-05-27', [ 'Headless', 'Experience', 'Commerce'] ) =]]
15
49
@@ -29,13 +63,13 @@ month_change: true
29
63
30
64
The PHP API has been enhanced with the following new classes:
31
65
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 )
39
73
40
74
41
75
#### Full changelog
@@ -76,27 +110,27 @@ To learn how to use it, see the [update instructions](https://doc.ibexa.co/en/la
76
110
77
111
The PHP API has been enhanced with the following new classes:
78
112
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 )
100
134
101
135
#### Full changelog
102
136
[[ % include 'snippets/release_46.md' %]]
0 commit comments