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.
DefaultPaymentTransactionExecutionService to avoid attempting to execute transactions if the
PaymentSummary#amount is less than or equal to 0.
Updated the cart resolution flow to optionally avoid executing the stale cart repricing logic. The method parameter flag
allowRepriceDueToStaleCartPrices controls whether or not to reprice and can be updated to change the default behavior.
By default, this value is set to
false for situations where the cart is resolved just so that it can be declared as a named cart. In these situations, there’s no need to reprice the cart. Instead, the repricing will occur when the cart once again becomes the user’s active cart.
DefaultCheckoutWorkflow methods' access modifiers from
Improved payment exceptions logging & tracking within
Added payment error messages to logging of
Updated errors in
PaymentTransactionExecutionActivity to provide the original exception when creating a
Introduced the ability to declare the serialization value with add-to-cart requests, so that serialized inventory availability check & reservation request are correctly made within CartOps.
Added support to check for existing reservations when checking inventory availability for the same item and user.
Added a field for a reference number for a previous reservation to
SkuInventoryAvailabilityRequest and updated
DefaultInventoryAvailabilityService to set it.
Added an attributes map for extensibility to
|For example, if a SKU has total of 2 available and 1 is reserved for userA, and userA checks inventory availability for a quantity of 2 for the same SKU. The existing soft reservation is excluded from the check in this case, effectively making this request to check for an additional quantity of 1 to be available. However, if userB sends the same request to check availability for a quantity of 2 for the same SKU, it would return unavailable since only 1 is available as the other one is reserved for userA.
Fixed NullPointerException with
DefaultFulfillmentPricingService when changing to an address without a fulfillment option configuration & repricing cart with currency change
Added validation to prevent checkout with the stale or unavailable priced fulfillment options
If the priced fulfillment option is added to the fulfillment group, and after that, the cart is changed so that the previously selected option is no longer available, then a new option should be selected. The added validation blocks the checkout if the fulfillment option is not updated.
Fixed bug where CSR price override doesn’t work when there are multiple items in cart
Added null check within
DefaultCheckoutService#clearAdjustmentFields(…) in case
adj.getOfferRef() returns null.
Fixed application of Offer’s "Apply to Sale Price?" field such that if true, then the better of either default price + offer adjustment or the sale price wins out.
This fix includes removing sale prices from the cart item’s sku price info if the default price + offer adjustment produces the better price.
Fixed tax-related currency mismatch issues when a cart’s currency changes by ensuring that the following fields are cleared when preparing for cart pricing:
Fixed checkout validation of CartItem-level offer/campaign code usages via the CartOfferValidationActivity by also sending the offer ids gathered from item-level adjustments to
Fixed NullPointerException when adding a bundle type product to cart
PriceInfo from losing data due to always creating a new
Fixed issue where soft reservation request not get sent when using
COMBINE merging type
Fixed bug where the inventory soft reservation is not updated when updating the quantity of an item
Fixed bug where the inventory soft reservation is not released when removing an item from the cart