Class FixedFulfillmentPricingProvider

    • Constructor Detail

      • FixedFulfillmentPricingProvider

        public FixedFulfillmentPricingProvider​(com.fasterxml.jackson.databind.ObjectMapper objectMapper,
                                               com.broadleafcommerce.common.extension.TypeFactory typeFactory,
                                               FixedFulfillmentPricingProperties fixedShipProps)
    • Method Detail

      • calculateCostForFulfillmentGroup

        public com.broadleafcommerce.shipping.domain.FulfillmentOptionPricedResponse calculateCostForFulfillmentGroup​(@NonNull
                                                                                                                      @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingRequest request)
        Description copied from interface: FulfillmentPricingProvider
        Calculate shipping for a request that includes a specified fulfillment option.
        Specified by:
        calculateCostForFulfillmentGroup in interface FulfillmentPricingProvider
        Parameters:
        request - The request for which to calculate shipping.
        Returns:
        Response object with calculated shipping cost for the provided request.
      • canCalculateCostForOption

        public boolean canCalculateCostForOption​(@NonNull
                                                 @NonNull String fulfillmentOptionName)
        Description copied from interface: FulfillmentPricingProvider
        Whether this provider has knowledge of the provided option and thus can provide cost information for it.
        Specified by:
        canCalculateCostForOption in interface FulfillmentPricingProvider
        Parameters:
        fulfillmentOptionName - The option to consider whether this provider can calculate cost information.
        Returns:
        Whether this provider has knowledge of the provided option and thus can provide cost information for it.
      • estimateCostForFulfillmentGroup

        public com.broadleafcommerce.shipping.domain.FulfillmentOptionPricedResponse estimateCostForFulfillmentGroup​(@NonNull
                                                                                                                     @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingRequest request)
        Description copied from interface: FulfillmentPricingProvider
        Estimate shipping for a request that includes a specified fulfillment option.
        Specified by:
        estimateCostForFulfillmentGroup in interface FulfillmentPricingProvider
        Parameters:
        request - The request for which to estimate shipping.
        Returns:
        Response object with estimated shipping cost for the provided request.
      • providePricedFulfillmentOptions

        public List<com.broadleafcommerce.shipping.domain.FulfillmentOptionPricedResponse> providePricedFulfillmentOptions​(@NonNull
                                                                                                                           @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingRequest request)
        Description copied from interface: FulfillmentPricingProvider
        Retrieve all possible priced fulfillment options for the provided request. Intended to be used to display options to the customer for selection.
        Specified by:
        providePricedFulfillmentOptions in interface FulfillmentPricingProvider
        Parameters:
        request - The request for which to calculate shipping and return options.
        Returns:
        All possible priced fulfillment options for the provided request.
      • canProvidePricedFulfillmentOptions

        public boolean canProvidePricedFulfillmentOptions​(com.broadleafcommerce.shipping.domain.FulfillmentPricingRequest fulfillmentPricingRequest)
        Description copied from interface: FulfillmentPricingProvider
        Whether this provider can provide fulfillment options based on the "fulfillmentPricingRequest"
        Specified by:
        canProvidePricedFulfillmentOptions in interface FulfillmentPricingProvider
        Parameters:
        fulfillmentPricingRequest - The request used to identify relevant fulfillment options
        Returns:
        Whether this provider can provide fulfillment options based on the "fulfillmentPricingRequest"
      • buildItemToPriceMap

        protected Map<com.broadleafcommerce.shipping.domain.FulfillmentPricingItem,​javax.money.MonetaryAmount> buildItemToPriceMap​(@NonNull
                                                                                                                                         @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingRequest request,
                                                                                                                                         @NonNull
                                                                                                                                         @NonNull FixedFulfillmentPricingOption option)
        Builds a map of FulfillmentPricingItems to the calculated prices.
        Parameters:
        request - The request for which to calculate shipping
        option - The fulfillment option to use to calculate pricing for the request
        Returns:
        a map of FulfillmentPricingItems to the calculated prices.
      • buildFulfillmentOptionPricedResponse

        protected com.broadleafcommerce.shipping.domain.FulfillmentOptionPricedResponse buildFulfillmentOptionPricedResponse​(@NonNull
                                                                                                                             @NonNull javax.money.MonetaryAmount price,
                                                                                                                             @NonNull
                                                                                                                             @NonNull Map<com.broadleafcommerce.shipping.domain.FulfillmentPricingItem,​javax.money.MonetaryAmount> itemToPriceMap,
                                                                                                                             @NonNull
                                                                                                                             @NonNull FixedFulfillmentPricingOption fulfillmentOption,
                                                                                                                             boolean isEstimate)
        Builds a FulfillmentOptionPricedResponse with the given inputs.
        Parameters:
        price - The value to set for FulfillmentOptionPricedResponse.getFulfillmentPriceCalculated().
        itemToPriceMap - Map of FulfillmentPricingItems to their fulfillment prices
        fulfillmentOption - The FulfillmentOption that forms the basis of the response
        isEstimate - Whether this is for estimating the fulfillment pricing
        Returns:
        a FulfillmentOptionPricedResponse for the given inputs.
      • calculateFulfillmentGroupPriceBeforeAdjustments

        protected javax.money.MonetaryAmount calculateFulfillmentGroupPriceBeforeAdjustments​(@NonNull
                                                                                             @NonNull FixedFulfillmentPricingOption option,
                                                                                             javax.money.CurrencyUnit expectedCurrency)
      • getMonetaryAmount

        protected javax.money.MonetaryAmount getMonetaryAmount​(javax.money.CurrencyUnit expectedCurrency,
                                                               @Nullable
                                                               Set<com.broadleafcommerce.shipping.domain.FulfillmentPriceAmount> fulfillmentPriceAmounts)
        Find the corresponding price for the expected currency, otherwise return zero.
        Parameters:
        expectedCurrency - The expected currency to find a price for
        fulfillmentPriceAmounts - The list of prices to search against
        Returns:
        the corresponding price for the expected currency, otherwise return zero
      • calculatePriceForItem

        @Deprecated
        protected javax.money.MonetaryAmount calculatePriceForItem​(@NonNull
                                                                   @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingItem item,
                                                                   @NonNull
                                                                   @NonNull FixedFulfillmentPricingOption option,
                                                                   @NonNull
                                                                   @NonNull javax.money.CurrencyUnit currency)
        Calculates the price for a fulfillment item. By default this means the price for a single unit rather than all like units, i.e., FulfillmentPricingItem.getUnitPrice() is used not FulfillmentPricingItem.getSubtotal().
        Parameters:
        item - The FulfillmentPriceInfo item to be priced
        option - The applicable FixedFulfillmentPricingOption for the item
        Returns:
        the price for a fulfillment item.
      • calculatePriceForItems

        protected javax.money.MonetaryAmount calculatePriceForItems​(@NonNull
                                                                    @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingItem item,
                                                                    @NonNull
                                                                    @NonNull FixedFulfillmentPricingOption option,
                                                                    @NonNull
                                                                    @NonNull javax.money.CurrencyUnit currency)
        Calculates the price for a fulfillment items. By default this means the price for all units, i.e., FulfillmentPricingItem.getMerchandiseTotalAmount().
        Parameters:
        item - The FulfillmentPriceInfo item to be priced
        option - The applicable FixedFulfillmentPricingOption for the item
        Returns:
        the price for a fulfillment items.
      • calculateFixedPriceForItem

        protected javax.money.MonetaryAmount calculateFixedPriceForItem​(@NonNull
                                                                        @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingItem item,
                                                                        @NonNull
                                                                        @NonNull FixedFulfillmentPricingOption option,
                                                                        @NonNull
                                                                        @NonNull javax.money.CurrencyUnit currency)
      • calculatePercentageRateForItem

        @Deprecated
        protected javax.money.MonetaryAmount calculatePercentageRateForItem​(@NonNull
                                                                            @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingItem item,
                                                                            @NonNull
                                                                            @NonNull FixedFulfillmentPricingOption option,
                                                                            @NonNull
                                                                            @NonNull javax.money.CurrencyUnit currency)
        Deprecated.
      • calculatePercentageRateForItems

        protected javax.money.MonetaryAmount calculatePercentageRateForItems​(@NonNull
                                                                             @NonNull com.broadleafcommerce.shipping.domain.FulfillmentPricingItem item,
                                                                             @NonNull
                                                                             @NonNull FixedFulfillmentPricingOption option,
                                                                             @NonNull
                                                                             @NonNull javax.money.CurrencyUnit currency)
      • preRequest

        protected void preRequest​(com.broadleafcommerce.shipping.domain.FulfillmentPricingRequest fulfillmentPricingRequest)
      • getObjectMapper

        protected com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()
      • getTypeFactory

        protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()