Broadleaf Microservices
  • v1.0.0-latest-prod

Release Notes for 1.8.9-GA

Release Train 1.8.2-GA includes changes from 1.8.4-1.8.9. These have been consolidated here for convenience. In the future, services like Catalog will see release candidates (RCs) created instead of GAs so that they align with Release Train RCs and GAs.


  • JDK 11 is required for Broadleaf release trains 1.7.0-GA, and beyond.

  • JDK 17 is supported for Broadleaf release trains 1.8.1-GA, and beyond.

New Features & Notable Changes

  • For Product import, separated AttributeChoice name from ProductOption label.

    • Adds an attributeName product option property that sets the name of imported attribute choices when specified. When not specified, defaults to the product option’s label.

Bug Fixes

  • Fixed possible NPE when a ProductAsset Tags are deleted via DB script rather than through the Admin.

    • This can happen because the EAGER fetching strategy loads all of the elements in the list when the parent entity is loaded. However, the JPA specification does not define how the PersistentList behaves when the underlying data in the database is modified outside of the JPA context. In this case, the "PersistentList" may not be aware that the element has been deleted from the database, and therefore it may still contain a reference to the deleted element

  • In the Product View, fixed Attribute Choice Allowed Values not being read-only when an Option Template is added by Reference.

  • Fixed bug where ProductDetailsList#productIdsForMissingEntities & ProductDetailsList#productUrisForMissingEntities were always empty coming out of the ProductDetailsEndpoint. Note: These details are used for cart interactions like add to cart.

  • In the Product View, fixed Item Choice Price Data not being read-only when an Option Template is added by Reference.

  • Removed Variant Tags from Variant create form since the Variant must exist first to associate a tag.

  • Fixed issues related to Item Choice Product Options during product details hydration

    • Fixed possible infinite recursion if Item Choice is type Category and the parent product is in the category selected.

    • Fixed possible NPE when ItemChoice#specificItemChoice is not initialized but the Item Choice type is not Specific Product or Specific Variant.

  • Addressed currency mismatch issues for Product import.

    • Currency in the import should be ignored for Products. Products should have the same currency as their Catalog’s default, and different currencies should not be mixed in the same Catalog outside of what the Pricing Service provides with Price Lists.

    • If the import file contains the currency column, it will be ignored by default. To change this behavior, extend ProductRowConverter#parseAndSetCurrency.

  • Addressed issue when importing into a sandbox where Variants or other child entities of a Product had the wrong ChangeContainer so their changes were not listed together with the Product’s.

    • Now, when an imported Product is promoted or deployed, its related child entities' changes will be included rather than be separate.

  • Prevent possible bug where a NoUniqueBeanDefinitionException is thrown at startup by annotating defaultJpaArgumentParser as the primary bean to be consumed.

    • This exception is thrown in cases where extension configuration changes the order in which beans are configured, leading beans to be discovered prior to the default.

    • For example, beans declared in a package name with a higher alphabetical order will be registered before those defined in any com.broadleafcommerce package.

  • For search indexing, tixed incorrect currency on Variants when the Product currency is different from the default currency.

  • Fixed NPE when indexing Variant-Based Products with required add-ons (Item Choice Product Options).

    • This occurs when other options are also present that don’t have a min quantity populated and aren’t even item choice type options because the item choice field is initialized anyway (i.e., when Variant Distinguishing Options are also present).