|
Tip
|
The 2.x versions are Spring Boot 3 compatible. |
Fixed various bugs with placeholder characteristics
Fixed a bug where CharacteristicValidator was not allowing empty values for placeholder characteristics
Removed the synchronizePlaceholderCharacteristics method and a variety of related specialized behavior for placeholder characteristics from DefaultProductHydrationService.
Fix property paths for ProductCharacteristic validations to ensure we are always targeting valid paths instead of relying on auto-grow-nested path behavior from Spring
Originally this behavior was intended to work around limitations of the admin frontend application, but had the consequence of corrupting certain fields.
The admin frontend has been updated to properly interpret and send placeholder characteristic values, so the incorrect backend workarounds have been removed.
Fixed a bug where Characteristic.id was using @JsonView(ResponseView.class), preventing the Characteristic ID from coming through on Product update calls even in a nested context.
As part of this, the characteristic update endpoint now sets the id on the submitted body from the path variable, so the path is always authoritative for which characteristic is updated.
Fixed a bug where policy validation would reject product update attempts if the API caller only had the UPDATE_PRODUCT permission, but a new product characteristic was being created as part of that request
Fixed a bug where inactive and date-expired catalog records were skipped by processes that do not run in a storefront request. The active-flag and active-date filters are now disabled when handling catalog entity deletion events, when running product bulk updates, and when reading variants for variant-based product type validation, so each of those processes sees every record it is meant to act on. Previously an inactive product could survive a deletion event and an inactive variant could be missed by product type validation.
Fixed the property paths reported in product validation errors for product characteristics.
Errors were previously reported against nested paths such as characteristics['<key>'].characteristic and characteristics['<key>'].value[0], which relied on Spring’s auto-grow-nested-path behavior and could fail to resolve.
Reference errors and cardinality errors are now reported against characteristics['<key>'], and cardinality errors on business-type characteristics against characteristics.
Clients that map validation messages to form fields using the field value in the error response need to be updated to the new paths.