| 
 Tip 
 | 
The 2.x versions are Spring Boot 3 compatible. | 
Fulfillment Entities like FulfillmentCalculatorConfig, FulfillmentDestination, and FulfillmentOrigin now have a ContextState field and are ContextStateAware.
Updated DefaultFulfillmentOptionService to sort the fulfillment options to ensure the default service level is first and the rest are sorted by price.
Added ActiveAware to JpaFulfillmentCalculatorConfig
Improved the help-text on certain fields in the Admin.
Added an endpoint to read pages of FulfillmentCalculatorConfig
Added a DistanceCalculationHelper class for conversion and to perform arithmetic operations on Distance.
Fields for dimension or weight restrictions have been added to Fulfillment Calculators. Calculators will not price items that exceed the restricted dimension or weight.
Added ContextInfo to FulfillmentPricingContext
Passing EnhancedFulfillmentPricingGroup as a parameter to filterCalculatorsByGroupFulfillmentDestination() method.
Removed unused constructor parameter from DefaultFulfillmentCalculatorService
FulfillmentDestinations have DestinationDetailTypes that specify exactly which geographic areas make up the FulfillmentDestination. Currently, this is specified with country, state, city, or zip code data. This update adds fields to support a circular area defined by a radius and a center point. The center point may be specified as an address or as coordinates.
DBFulfillmentCalculator has been enhanced to support determining if a fulfillment address is within the area specified by the calculator’s FulfillmentDestination. DBFulfillmentCalculator defers to GeoCoordinateService for the actual calculations.
There is no geolocation functionality included with the framework, but there is the GeolocationProvider interface that a client could implement to provide geolocation functionality to the GeoCoordinateService. Alternatively, clients could use a front-end library to set coordinates on the addresses.
With this update, a new field supportedFulfillmentTypes is added to FulfillmentPricingConfig. With this field, applications can specify which fulfillment types should be requested when requesting fulfillment options. This value is read by CartOperationService when creating the fulfillment pricing request. Logic has also been updated in DefaultFulfillmentOptionService to support options for multiple fulfillment types being returned.