broadleaf:
catalog:
metadata:
drag-and-drop-assets-enabled: true
Tip
|
The 2.x versions are Spring Boot 3 compatible. |
JDK 17 is required for Broadleaf release trains 2.0.0-GA, and beyond.
This version now requires DataTracking 2.0.3+
This version requires SearchService 2.1.4+
Added a new readAllDataDrivenEnumTypes
endpoint to retrieve distinct DataDrivenEnum
types with additional service and repository implementations.
Added support for fetching parent Category hierarchies.
Added caching configuration for the DefaultCategoryService#readCategoryParentHierarchy
method, which defaults to 30 minutes.
Added a categoryIdsWithParents
field to ProductDetails
and ProductDetailsContext
to support Offer and Pricing flows with Category restriction targeting a parent Category.
Added native SQL queries to build the Category hierarchy.
Enhanced the Add Product/s feature in the Products tab for a Category to be able to add Category Products via the configured Product Membership Rule.
Updated the Attribute Choice Allowed Values grid entries to be orderable and hid the Display Order field from the Allowed Values grid.
Added caches for efficiency during marketing message retrieval.
Expose the individually sold flag for BUNDLE typed products.
This is to support a more dynamic setup for Free Gift offers, e.g. a bundle product that consists of 2 itemA and 3 itemB can be created solely for the purpose of being free gifts, and the bundle product itself should not be individually sold nor searchable.
Added the persistence and visibility of displayOrder
on the Product Options grid for Products.
Usages of forceCatalogForFetch
were updated to use forceFilterByCatalogIncludeInheritance
.
Introduced support for bulk operations for the new Category membership type of AUTO_INCLUDE
which will add CategoryProducts
automatically when a Product
qualifies according the Product
membership rules.
Updated the Import of Products with assets so that a sorting value is added onto assets upon import.
Introduced support for a new drag-and-drop component for Product Assets.
Introduced a listener and job that will update the sorting on all product assets, as this is required for the drag-and-drop functionality to work as you cannot sort an unsorted asset.
The drag-and-drop functionality is disabled by default, and can be enabled via configuration:
broadleaf:
catalog:
metadata:
drag-and-drop-assets-enabled: true
Introduced three new Bulk Operations:
Set Product(s) as Searchable
Add Product(s) to Category(s)
Remove Product(s) from a Category
Allow for Facet translations to take affect when viewing product list grid by adding the localeOverrideForFacetAndSortLabels
parameter to the Products grid, whose value is expected to be the locale desired to override the default locale.
Updated the BusinessType
domain to contain a new attributes
map to hold custom additional attributes.
Admin metadata has also been updated to introduce this field.
Note
|
See the Schema Changes section below for more information on migration. |
broadleaf.catalog.cache.byCategoryParentHierarchyTtl
Description: Time-to-live for reading categories' parent hierarchy for product-details requests
Default Value: 30 minutes
CatalogEntityDeletedEventHandler
Failures with Deactivated ApplicationsCatalogEntityDeletedEventHandler
implementations would fail on a security validation when run against data from a deactivated application (see Application.deactivated
).
To address this, each of the out of box implementations have been updated to disable security policy validation before invoking any CRUD methods to find/remove data.
This is a safe change, as the cleanup handlers are always run internally by the system (rather than by any user/client).
Almost all policy validations are skipped in such an environment already, but the Application.deactivated
check is an exception, and the CatalogEntityDeletedEventHandlers
are a rare case which actually attempt to deal with deactivated applications.
Thus, explicitly bypassing security validation in this flow is necessary.
The changes:
Introduce a new doWithoutPolicyValidation()
method in AbstractCatalogEntityDeletedEventHandler
Update all out of box implementations of CatalogEntityDeletedEventHandler
to wrap their CRUD service invocations with the new doWithoutPolicyValidation()
method
Note
|
If you have introduced your own CatalogEntityDeletedEventHandler or customized one of the out of box implementations, you may want to check that your custom code flows also bypass security validation.
|
Show a correct change type for bulk operations in the My Changes
view.
Fixed an issue where Products from Catalogs with a PENDING
status could not be exported.
Fix visibility of products from marketplace catalogs with pending status in storefront and admin
Added a PostMapperMember to fix or adjust the currencies on Variants to ensure that they use their parent product’s currency by default, rather than some other currency.
Fixed an issue where some products would be unable to correctly be added to a category.
Fixed issue where custom fields for Business Types were not showing up in Query Builders due to the showInQueryBuilder
field value for custom fields not being persisted.
Fixed issue with Option Template by adding default filtering by selected type for product or variant when configuring Item Choices.
Additionally added a similar fix for Product Options.
Fixed issue where archived Categories were being included when hydrating Category onto a Product being fetched.
Fixed issue where exporting Products with filters applied were not processing correctly — updated the labels and help text of the Product Export grid to explain the Export modal sections and updated the processing to utilize the new information so filtering can be correctly applied.
Fixed issue where cloning a Product causes a validation error due to its minimum and maximum cardinalities to both having default values of 1, because its characteristics are not hydrated prior to the cloning.
Fixed issue where duplicate skus were being displayed for Products with only one variation when creating price data.
Fixed issue where not returning a default SKU for a non-Variant Product leads to the Price Data grid being disabled.
Fixed issue where fetching Data Driven Enums would return archived entries.
Fixed issue where propagating the deletion of a Product through child catalogs includes the implicit catalog of deactivated applications, which causes deployment and indexing failures — updated CatalogEntityDeletedEventHandlers
to skip policy validation in specific cases.
Fixed issue where adding a Single Variation Product Choice to a Standard Product results in an error — added single specific Variant check onto the Variant contributor.
The database schema has changed as part of this version.
Create/update changes (new tables, new columns, etc) are automatically included in the updated *changelog-master.xml
after you upgrade to the new Catalog Services JAR.
The new changesets inside will run automatically to migrate existing data.
Database Platform | Create/Update Changelog File Name |
---|---|
PostgreSQL |
|
MariaDB |
|
MySQL |
|
Oracle |
|
YugabyteDB |
|