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.
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.
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.
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.
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.
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.