Class CartItemPriceableTargetUtils

java.lang.Object
com.broadleafcommerce.cartoperation.service.provider.external.pricing.CartItemPriceableTargetUtils

public class CartItemPriceableTargetUtils extends Object
Collection of utilities for PriceableTargets related to CartItem.
Author:
Nathan Moore (nathandmoore), Erin Pennington (epenning)
  • Constructor Details

    • CartItemPriceableTargetUtils

      public CartItemPriceableTargetUtils(com.fasterxml.jackson.databind.ObjectMapper mapper, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
  • Method Details

    • createTargets

      public Set<com.broadleafcommerce.pricing.client.domain.PriceableTarget> createTargets(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, Map<String,Integer> totalQuantityForTargetId)
      Creates PriceableTargets for a CartItem. This will create as many targets as are defined in the PRICEABLE_FIELDS attribute in CartItem.getInternalAttributes().
      Parameters:
      cartItem - CartItem for which to create PriceableTargets.
      Returns:
      PriceableTargets for a CartItem.
    • createTargets

      public Set<com.broadleafcommerce.pricing.client.domain.PriceableTarget> createTargets(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull String targetType, @NonNull @NonNull Map<String,Map<String,javax.money.MonetaryAmount>> priceableFields, Map<String,Integer> totalQuantityForTargetId)
    • getPriceableFieldsByTargetType

      protected Map<String,Map<String,Map<String,javax.money.MonetaryAmount>>> getPriceableFieldsByTargetType(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem)
    • getPriceableFields

      protected Map<String,Map<String,javax.money.MonetaryAmount>> getPriceableFields(@NonNull @NonNull Map<String,com.broadleafcommerce.pricing.client.domain.PriceInfo> priceInfos)
    • getSkuPriceInfos

      @Deprecated protected Map<String,com.broadleafcommerce.pricing.client.domain.PriceInfo> getSkuPriceInfos(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem)
      Deprecated.
    • getPriceInfos

      protected Map<String,com.broadleafcommerce.pricing.client.domain.PriceInfo> getPriceInfos(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem)
    • getPriceInfosByTargetType

      protected Map<String,Map<String,com.broadleafcommerce.pricing.client.domain.PriceInfo>> getPriceInfosByTargetType(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem)
      Gets a map of PriceInfo map by the target type.
      Parameters:
      cartItem - the CartItem to get the ap from
      Returns:
      a map of PriceInfo map by the target type
    • getPriceableFields

      protected Map<String,javax.money.MonetaryAmount> getPriceableFields(@Nullable com.broadleafcommerce.pricing.client.domain.PriceInfo priceInfo)
      Builds the map of priceable fields for a PriceInfo that could later be added as PriceableTarget.getPriceableFields(). The key is the type of the priceable field and the value is the amount.
      Parameters:
      priceInfo - PriceInfo for which to determine the priceable fields.
      Returns:
      map of priceable fields for a PriceInfo
      See Also:
    • createTargetForSku

      @Deprecated protected com.broadleafcommerce.pricing.client.domain.PriceableTarget createTargetForSku(@NonNull @NonNull String sku, @Nullable String vendorRef, Integer quantity, @NonNull @NonNull Map<String,javax.money.MonetaryAmount> priceableFields)
      Creates the PriceableTarget with sku as PriceableTarget.getTargetId().
      Parameters:
      sku - SKU identifier for which to create a PriceableTarget.
      vendorRef - Soft reference to the vendor to be associated with this PriceableTarget.
      priceableFields - Map of the priceable fields for the sku to add as PriceableTarget.getPriceableFields().
      Returns:
      the PriceableTarget with sku as PriceableTarget.getTargetId().
    • createTarget

      protected com.broadleafcommerce.pricing.client.domain.PriceableTarget createTarget(@NonNull @NonNull String targetId, @NonNull @NonNull String targetType, @Nullable String vendorRef, Integer quantity, @NonNull @NonNull Map<String,javax.money.MonetaryAmount> priceableFields)
      Creates the PriceableTarget with the specified identifier and type.
      Parameters:
      targetId - the target identifier for which to create a PriceableTarget.
      targetType - the target type for which to create a PriceableTarget.
      vendorRef - Soft reference to the vendor to be associated with this PriceableTarget.
      priceableFields - Map of the priceable fields for the sku to add as PriceableTarget.getPriceableFields().
      Returns:
      the PriceableTarget with sku as PriceableTarget.getTargetId().
      See Also:
    • getMapper

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

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