Broadleaf Microservices
  • v1.0.0-latest-prod



Service responsible for providing fulfillment pricing for a cart. Fulfillment pricing typically includes shipping and handling fees, or whichever costs and fees are charged for fulfilling the items in the cart rather than the cost of the items themselves.

The FulfillmentPricingService can also provide the list of FulfillmentOptions.

For overall pricing, see CartPricingService.

External Shipping Provider

By default, this pricing service delegates to the ExternalShippingProvider to get fulfillment rates from Shipping Services. Shipping Services has multiple types of providers configurable out-of-the-box. For instance:

  • FixedFulfillmentPricingProvider - Provides simple fixed fulfillment pricing based on a configuration file.

  • BandedFulfillmentPricingProvider - Provides banded or tiered fulfillment pricing where the tiers are based on a minimum price or weight.

  • VirtualFulfillmentPricingProvider - Provides simple fixed fulfillment pricing based on a configuration file for virtual fulfillment.

  • ShipEngineFulfillmentPricingProvider - Integrates with ShipEngine to provide fulfillment prices and labels.

See Shipping Service Integrations for more details.


CartOperationServiceProperties defines the following configuration properties that affect this service:

  • broadleaf.cartoperation.service.calculateFulfillmentPricingWithAdjustments: Determines whether the fulfillment pricing should consider the adjustments on the order and order items. Default is true.

  • broadleaf.cartoperation.service.calculateProratedFulfillmentPricing: Determines whether the fulfillment pricing should consider prorated price of the order items, after factoring in the order adjustments. Default is true.


A fulfillment option is used to hold information about a particular type of fulfillment implementation. Third-party fulfillment implementations should extend this to provide their own configuration options particular to that implementation. For instance, a UPS shipping calculator might want an admin user to be able to specify which type of UPS shipping this FulfillmentOption represents.

Options might include standard shipping, express, same-day, etc.

To retrieve the list of options as a frontend client, call the Get fulfillment options endpoint, which uses the FulfillmentPricingService to get the list of applicable options for a fulfillment group. This provides the description of the option for the customer as well as the calculated price of using that option.


Fulfillment options can be configured a number of ways depending on the provider. However, at their most basic, they have the following properties:

  • name: This should be unique across all options and is used as an identifier.

  • description: This is used to describe the option to the customer

  • useFlatRates: Whether to use flat rates for this option. Default is false.

  • taxCode: The tax code for the option

  • taxable: Whether price for this option is taxable Default is false.