Class DefaultCartItemCatalogInformationService<P extends Product>
- java.lang.Object
-
- com.broadleafcommerce.cartoperation.service.mapping.DefaultCartItemCatalogInformationService<P>
-
- All Implemented Interfaces:
CartItemCatalogInformationService<P>
public class DefaultCartItemCatalogInformationService<P extends Product> extends Object implements CartItemCatalogInformationService<P>
-
-
Constructor Summary
Constructors Constructor Description DefaultCartItemCatalogInformationService(CartItemConfigurationService<Product> cartItemConfigurationService, List<CartItemProductMapper> cartItemProductMappers, CartOperationServiceProperties properties)DefaultCartItemCatalogInformationService(List<CartItemProductMapper> cartItemProductMappers)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected Map<String,com.broadleafcommerce.order.common.domain.AttributeChoiceValue>buildItemAttributeChoices(@NonNull Map<String,String> requestItemAttributeChoices)protected com.broadleafcommerce.pricing.client.domain.PriceInfocleanPriceInfo(@NonNull com.broadleafcommerce.pricing.client.domain.PriceInfo priceInfo)ExcludePriceableTargetinformation from thePriceInfoas it's unnecessary to calculate pricing.protected BroadleafProductService<Product>getBroadleafProductService()protected CartItemConfigurationService<Product>getCartItemConfigurationService()protected List<CartItemProductMapper>getCartItemProductMappers()protected CartItemProductServicePropertiesgetCartItemProductServiceProperties()protected Set<String>getCategoryIdsForProduct(P product)protected StringgetDataDrivenEnumId(DataDrivenEnum dataDrivenEnum)protected com.broadleafcommerce.cart.client.domain.ImageAssetRefgetImageAssetForProduct(P product)protected com.broadleafcommerce.cart.client.domain.ImageAssetRefgetImageAssetForVariant(@NonNull Variant variant, P product)protected IncludedProductConfigurationServicegetIncludedProductService()protected ItemChoiceConfigurationServicegetItemChoiceService()protected StringgetPricingKey(P product, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem)Returns the product price key, if specified, otherwise retrieves it from the cart item or generates a new one.protected CartOperationServicePropertiesgetProperties()protected voidhydrateIncludedProductDependentItems(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> potentialDependentItems, P product, boolean isAdd)PopulateIncludedProductinformation onCartItem.getDependentCartItems()based on the product configuration.protected voidhydrateItemChoiceDependentItems(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> potentialDependentItems, P product)PopulateItemChoiceinformation onCartItem.getDependentCartItems()based on the product configuration.protected Optional<P>identifyProductForCartItem(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull CatalogItemList<? extends CatalogItem> catalogItemList)protected voidpopulateAttributeChoiceLabelsFromOptions(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P product)com.broadleafcommerce.cart.client.domain.CartItempopulateCatalogItemInformation(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull CatalogItemList<? extends CatalogItem> catalogItemList, boolean isAdd, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Populate catalog information within theCartItembased on the providedCatalogItemand the merchandising contextcom.broadleafcommerce.cart.client.domain.CartItempopulateCatalogItemInformation(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P product, @NonNull List<P> catalogItemList, boolean isAdd, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Populate catalog information within theCartItembased on the providedCatalogItemand the merchandising contextprotected voidpopulateDependentItemInformation(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P product, @NonNull List<P> products, boolean isAdd)Deprecated.protected voidpopulateDependentItemInformation(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P product, @NonNull List<P> products, boolean isAdd, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)protected voidpopulateVariantInformation(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull Variant variant, @NonNull Map<String,com.broadleafcommerce.pricing.client.domain.PriceInfo> skuPriceInfos)voidsetBroadleafProductService(BroadleafProductService<Product> broadleafProductService)voidsetCartItemProductServiceProperties(CartItemProductServiceProperties cartItemProductServiceProperties)voidsetIncludedProductService(IncludedProductConfigurationService includedProductService)voidsetItemChoiceService(ItemChoiceConfigurationService itemChoiceService)
-
-
-
Constructor Detail
-
DefaultCartItemCatalogInformationService
public DefaultCartItemCatalogInformationService(List<CartItemProductMapper> cartItemProductMappers)
-
DefaultCartItemCatalogInformationService
public DefaultCartItemCatalogInformationService(CartItemConfigurationService<Product> cartItemConfigurationService, List<CartItemProductMapper> cartItemProductMappers, CartOperationServiceProperties properties)
-
-
Method Detail
-
populateCatalogItemInformation
public com.broadleafcommerce.cart.client.domain.CartItem populateCatalogItemInformation(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItemList<? extends CatalogItem> catalogItemList, boolean isAdd, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Description copied from interface:CartItemCatalogInformationServicePopulate catalog information within theCartItembased on the providedCatalogItemand the merchandising context- Specified by:
populateCatalogItemInformationin interfaceCartItemCatalogInformationService<P extends Product>- Parameters:
cartItem- The CartItem that is to be updated with catalog item datacatalogItemList- The catalog items that were retrieved for the add-to-cart, including dependent catalog itemsisAdd- Whether we are in an add-to-cart flowcontextInfo- Context information around sandbox and multitenant state- Returns:
- the updated CartItem that now contains CatalogItem data
-
populateCatalogItemInformation
public com.broadleafcommerce.cart.client.domain.CartItem populateCatalogItemInformation(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull P product, @NonNull @NonNull List<P> catalogItemList, boolean isAdd, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Description copied from interface:CartItemCatalogInformationServicePopulate catalog information within theCartItembased on the providedCatalogItemand the merchandising context- Specified by:
populateCatalogItemInformationin interfaceCartItemCatalogInformationService<P extends Product>- Parameters:
cartItem- The CartItem that is to be updated with catalog item dataproduct- The CatalogItem that this CartItem is intended to representcatalogItemList- The catalog items that were retrieved for the add-to-cart, including dependent catalog itemsisAdd- Whether we are in an add-to-cart flowcontextInfo- Context information around sandbox and multitenant state- Returns:
- the updated CartItem that now contains CatalogItem data
-
identifyProductForCartItem
protected Optional<P> identifyProductForCartItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItemList<? extends CatalogItem> catalogItemList)
-
getDataDrivenEnumId
@Nullable protected String getDataDrivenEnumId(@Nullable DataDrivenEnum dataDrivenEnum)
-
cleanPriceInfo
protected com.broadleafcommerce.pricing.client.domain.PriceInfo cleanPriceInfo(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.PriceInfo priceInfo)ExcludePriceableTargetinformation from thePriceInfoas it's unnecessary to calculate pricing.- Parameters:
priceInfo- The price info to clean up for addition to CartItem attributes- Returns:
- The price info with target information excluded
-
getPricingKey
protected String getPricingKey(@NonNull P product, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem)
Returns the product price key, if specified, otherwise retrieves it from the cart item or generates a new one. This in general only needed for theDefaultProductType.MERCHANDISING_PRODUCTas it doesn't have the SKU and pricing key.- Parameters:
product- the product to get the pricing key fromcartItem- the cart item to get the pricing key from- Returns:
- the pricing key
-
getImageAssetForProduct
@Nullable protected com.broadleafcommerce.cart.client.domain.ImageAssetRef getImageAssetForProduct(@NonNull P product)
-
getImageAssetForVariant
@Nullable protected com.broadleafcommerce.cart.client.domain.ImageAssetRef getImageAssetForVariant(@NonNull @NonNull Variant variant, @NonNull P product)
-
populateVariantInformation
protected void populateVariantInformation(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull Variant variant, @NonNull @NonNull Map<String,com.broadleafcommerce.pricing.client.domain.PriceInfo> skuPriceInfos)
-
buildItemAttributeChoices
protected Map<String,com.broadleafcommerce.order.common.domain.AttributeChoiceValue> buildItemAttributeChoices(@NonNull @NonNull Map<String,String> requestItemAttributeChoices)
-
populateAttributeChoiceLabelsFromOptions
protected void populateAttributeChoiceLabelsFromOptions(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull P product)
-
populateDependentItemInformation
@Deprecated protected void populateDependentItemInformation(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull P product, @NonNull @NonNull List<P> products, boolean isAdd)
Deprecated.
-
populateDependentItemInformation
protected void populateDependentItemInformation(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull P product, @NonNull @NonNull List<P> products, boolean isAdd, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
-
hydrateIncludedProductDependentItems
protected void hydrateIncludedProductDependentItems(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> potentialDependentItems, @NonNull P product, boolean isAdd)PopulateIncludedProductinformation onCartItem.getDependentCartItems()based on the product configuration.- Parameters:
cartItem- The cart item on which to populate dependent item product configuration information.potentialDependentItems- The list ofCartItem.getDependentCartItems()to pick from to find a match for anIncludedProduct.product- The product with configuration to be used for hydration.isAdd- Whether we are in an add-to-cart flow
-
hydrateItemChoiceDependentItems
protected void hydrateItemChoiceDependentItems(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> potentialDependentItems, @NonNull P product)PopulateItemChoiceinformation onCartItem.getDependentCartItems()based on the product configuration.- Parameters:
cartItem- The cart item on which to populate dependent item product configuration information.potentialDependentItems- The list ofCartItem.getDependentCartItems()to pick from to find a match for anItemChoice.product- The product with configuration to be used for hydration.
-
getCartItemConfigurationService
protected CartItemConfigurationService<Product> getCartItemConfigurationService()
-
getCartItemProductMappers
protected List<CartItemProductMapper> getCartItemProductMappers()
-
getProperties
protected CartOperationServiceProperties getProperties()
-
getBroadleafProductService
protected BroadleafProductService<Product> getBroadleafProductService()
-
setBroadleafProductService
@Autowired public void setBroadleafProductService(BroadleafProductService<Product> broadleafProductService)
-
getIncludedProductService
protected IncludedProductConfigurationService getIncludedProductService()
-
setIncludedProductService
@Autowired public void setIncludedProductService(IncludedProductConfigurationService includedProductService)
-
getItemChoiceService
protected ItemChoiceConfigurationService getItemChoiceService()
-
setItemChoiceService
@Autowired public void setItemChoiceService(ItemChoiceConfigurationService itemChoiceService)
-
getCartItemProductServiceProperties
protected CartItemProductServiceProperties getCartItemProductServiceProperties()
-
setCartItemProductServiceProperties
@Autowired public void setCartItemProductServiceProperties(CartItemProductServiceProperties cartItemProductServiceProperties)
-
-