Broadleaf Microservices
  • v1.0.0-latest-prod

Release Notes for 1.8.10-GA

Requirements

  • 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

  • Added overload of PricingProvider#retrievePrices that takes the entire cart instead of just the cart items to ease extension use cases that may want to use attributes on the cart when constructing the X-Price-Context header.

    • Such use cases could include a Price List targeting a campaign code added to the cart.

  • Similarly, allow extensions of ExternalOfferProvider#createCustomerContext to look at the entire cart to build out the X-Customer-Context header.

  • Ensured that IncludedProducts are always marked as not-discountable by default.

    • IncludedProducts represent Bundle Items and cannot be discounted normally in Broadleaf. Instead, the parent bundle can be discounted.

    • Controlled by: broadleaf.cartoperation.service.item.configuration.included-product-never-discountable.

  • Added a specific response message to distinguish between offer codes that qualify a cart for a voucher and offer codes that perform adjustments on the cart when applied.

  • Removed overly noisy logging around PaymentTransactionFailureException & update debug logging to include the PaymentTransactionFailureException stacktraces.

Add Option to Support Externally Executed Transactions in Checkout Workflow

  • Exposed new provider method PaymentTransactionExecutionProvider#lookupExternalTransactionResult to retrieve externally executed transactions from the gateway.

  • Added method to the checkout workflow to support externally executed transactions.

  • Created NextAction to describe the next action for the payment transaction process.

Refresh Fulfillment Pricing on Cart Currency Change

  • Exposed new service method FulfillmentOptionRequestService#refreshOptions to facilitate refreshing the selected options on a cart as needed.

  • Refreshed fulfillment options if the cart currency changes.

  • Refreshed options based on matching service level and fulfillment type.

    • Provider ID is not checked anymore during refresh.

Bugs Fixed

  • The fulfillment service level is now populated correctly on the FulfillmentPricingGroup when preparing for fulfillment pricing.

  • Fixed NPE from adding second item with ADD_TO_CART reservation strategy.

  • Fixed dependent items not have their parentLineItemId field set when sent to the Offer Engine.

  • Fixed attribute itemType not being set to addOn on FulfillmentLineItemDtos representing dependent cart items sent to Offer Engine indicating they are dependents.

    • This is needed since they don’t have a parent line item field.

Deprecations

DefaultFulfillmentOptionRequestService

  • DefaultFulfillmentOptionRequestService#buildFulfillmentOptionRequest(Cart, FulfillmentPricingConfig, ContextInfo) has been deprecated in favor of an overloaded method that takes an additional boolean onlySelectedOptions.

  • DefaultFulfillmentOptionRequestService#createRequest(Cart, Collection<FulfillmentPricingGroup>, FulfillmentPricingConfig, ContextInfo) has been deprecated in favor of an overloaded method that takes an additional boolean onlySelectedOptions.

  • DefaultFulfillmentOptionRequestService#refreshSelectedOptionsAndGrouping(Cart, FulfillmentPricingConfig, ContextInfo) has been deprecated in favor of the refreshOptionsAndSyncGroups method that takes an additional boolean onlySelectedOptions.

  • String PaymentTransactionFailureDetail#threeDSecureVerificationUrl field has been deprecated in favor of NextAction nextAction and the getThreeDSecureVerificationUrl() method.

  • CartPaymentMethodValidationActivity#getCheckoutTransactionType(String, ContextInfo) has been deprecated in favor of an overloaded method that replaces the String parameter with PaymentSummary paymentSummary.

  • CartOperationCheckoutProperties#getCheckoutTransactionType(String, String, String) has been deprecated in favor of an overloaded method that takes an additional String paymentType.