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
.