Class DefaultCartItemConfigurationService<P extends Product>
java.lang.Object
com.broadleafcommerce.cartoperation.service.configuration.DefaultCartItemConfigurationService<P>
- All Implemented Interfaces:
CartItemConfigurationService<P>
public class DefaultCartItemConfigurationService<P extends Product>
extends Object
implements CartItemConfigurationService<P>
- Author:
- Chad Harchar (charchar)
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultCartItemConfigurationService
(IncludedProductConfigurationService includedProductService, ItemChoiceConfigurationService itemChoiceService, AttributeChoiceConfigurationService attributeChoiceService, org.springframework.context.MessageSource messageSource, com.broadleafcommerce.common.extension.TypeFactory typeFactory) DefaultCartItemConfigurationService
(CatalogProvider<? extends CatalogItem> catalogProvider, IncludedProductConfigurationService includedProductService, ItemChoiceConfigurationService itemChoiceService, AttributeChoiceConfigurationService attributeChoiceService, org.springframework.context.MessageSource messageSource, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addItemConfigError
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull String errorCode, @NonNull String errorMessage) protected int
calculateDependentItemsQuantity
(com.broadleafcommerce.cart.client.domain.CartItem parentDependentCartItem, com.broadleafcommerce.cart.client.domain.CartItem cartItem, int parentQuantity) Recursively calculates the quantities of the items dependent on the parent CartItem.protected int
calculateItemAndDependentItemsQuantityWithSameProductId
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem dependentCartItem, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, int parentQuantity) Calculates the total quantity of a particular dependent cart item in the cart.protected int
calculateItemAndDependentItemsQuantityWithSameSku
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem dependentCartItem, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, int parentQuantity) Calculates the total quantity of a particular dependent cart item in the cart.protected int
calculateItemsQuantity
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, int parentItemQuantity, int itemsInCartQuantity) Calculates the total quantity of a particular item in the cart.protected int
calculateItemsQuantityWithSameProductId
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, int parentItemQuantity) Calculates the total quantity of a particular item in the cart.protected int
calculateItemsQuantityWithSameSku
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, int parentItemQuantity) Calculates the total quantity of a particular item in the cart.boolean
cartItemHasQuantityThresholds
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull CatalogItemList<? extends CatalogItem> catalogItemList) Determines if the providedCartItem's
relatedCatalogItem
has quantity threshold restrictions.boolean
cartItemHasQuantityThresholds
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull CatalogItemList<? extends CatalogItem> catalogItemList, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines if the providedCartItem's
relatedCatalogItem
has quantity threshold restrictions.protected Stream<com.broadleafcommerce.cart.client.domain.CartItem>
flattenWithDependents
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem item) Returns a flattened stream consisting of the given item with all of its nested dependents.protected AttributeChoiceConfigurationService
protected BroadleafProductService<Product>
protected CatalogProvider<? extends CatalogItem>
Deprecated.protected IncludedProductConfigurationService
protected ItemChoiceConfigurationService
protected String
getMessage
(@NonNull String errorMessage, Object... args) protected org.springframework.context.MessageSource
protected CartOperationServiceOfferUtils
protected com.broadleafcommerce.common.extension.TypeFactory
protected boolean
hasPositiveQuantity
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) protected boolean
hasVariantDistinguishingOptions
(P product) identifyProductForCartItem
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull CatalogItemList<? extends CatalogItem> catalogItemList) protected boolean
isNonSkuTypeOrNullSku
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Determines if a provided CartItem is a Product Type that does not normally have a sku or has a null sku.protected boolean
requiredAttributesMissing
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) void
setBroadleafProductService
(BroadleafProductService<Product> broadleafProductService) void
setOfferUtils
(CartOperationServiceOfferUtils offerUtils) void
validateCartItem
(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull CatalogItemList<? extends CatalogItem> catalogItemList, @NonNull String validationFlow, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Process cart item configuration by validating catalog information.void
validateCartItem
(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull CatalogItem product, String validationFlow) Process cart item configuration by validating catalog information.void
validateCartItem
(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull CatalogItem product, String validationFlow, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Process cart item configuration by validating catalog information.void
validateCustomQuoteItem
(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Processes item configuration validation for custom quote items.void
validateCustomQuoteItem
(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Processes item configuration validation for custom quote items.protected void
validateItemAndDependentsHavePositiveQuantities
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem item) A basic requirement is that all items added to a cart have a positive quantity.void
validateNonCatalogItem
(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Processes item configuration validation for non-catalog items.protected void
validateQuantityWithinThreshold
(@NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P product) Checks if the quantity of the item fits within the threshold.protected void
validateTerms
(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P product) Determines if thecartItem
is valid based on theproduct's
info.boolean
variantCartItemMissingFromCatalogItem
(@NonNull CatalogItemList<? extends CatalogItem> catalogItemList, @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines if the providedCartItem
does not have a backingVariant
from the list ofCatalogItem
This specifically targets Variants by checking the variant ID of a cart item.
-
Constructor Details
-
DefaultCartItemConfigurationService
public DefaultCartItemConfigurationService(IncludedProductConfigurationService includedProductService, ItemChoiceConfigurationService itemChoiceService, AttributeChoiceConfigurationService attributeChoiceService, org.springframework.context.MessageSource messageSource, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
DefaultCartItemConfigurationService
public DefaultCartItemConfigurationService(CatalogProvider<? extends CatalogItem> catalogProvider, IncludedProductConfigurationService includedProductService, ItemChoiceConfigurationService itemChoiceService, AttributeChoiceConfigurationService attributeChoiceService, org.springframework.context.MessageSource messageSource, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
getCatalogProvider
Deprecated.This implementation does not usecatalogProvider
Access orcatalogProvider
.- Returns:
- The configured
catalogProvider
-
cartItemHasQuantityThresholds
public boolean cartItemHasQuantityThresholds(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItemList<? extends CatalogItem> catalogItemList) Description copied from interface:CartItemConfigurationService
Determines if the providedCartItem's
relatedCatalogItem
has quantity threshold restrictions.- Specified by:
cartItemHasQuantityThresholds
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
cartItem
- TheCartItem
that we need to check for quantity thresholds.catalogItemList
- TheCatalogItemList
that should contain theCartItem's
relatedCatalogItem
.- Returns:
- If the provided
CartItem's
relatedCatalogItem
has quantity threshold restrictions.
-
cartItemHasQuantityThresholds
public boolean cartItemHasQuantityThresholds(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItemList<? extends CatalogItem> catalogItemList, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartItemConfigurationService
Determines if the providedCartItem's
relatedCatalogItem
has quantity threshold restrictions.- Specified by:
cartItemHasQuantityThresholds
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
cartItem
- TheCartItem
that we need to check for quantity thresholds.catalogItemList
- TheCatalogItemList
that should contain theCartItem's
relatedCatalogItem
.contextInfo
- Context information around sandbox and multitenant state.- Returns:
- If the provided
CartItem's
relatedCatalogItem
has quantity threshold restrictions.
-
validateCartItem
public void validateCartItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItemList<? extends CatalogItem> catalogItemList, @NonNull @NonNull String validationFlow, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartItemConfigurationService
Process cart item configuration by validating catalog information. Errors for the item will be recorded intoCartItem.getGlobalConfigErrors()
, while errors for specific attributes will be recorded intoCartItem.getAttributeConfigErrors()
. For hierarchical cart items (items withCartItem.getDependentCartItems()
) it is intended that this method be called from the bottom up, i.e., the lowest level dependent item gets called first. That way, errors on items will be properly cascaded up the hierarchy asCartItemConfigurationErrorEnum.MISCONFIGURED_DEPENDENT_ITEMS
onCartItem.getGlobalConfigErrors()
.- Specified by:
validateCartItem
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
cart
- The cart with the cart itemcartItem
- The cart item with which to process configuration.catalogItemList
- TheCatalogItemList
that should contain theCartItem's
relatedCatalogItem
.validationFlow
- The context used to identify validation requirements of theCartItem
at that point in its lifecycle. If this is set toValidationStrategy.ADD_ITEM
, then the configuration service will try tocontextInfo
- Context information around sandbox and multitenant state.
-
validateCartItem
public void validateCartItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItem product, String validationFlow) Description copied from interface:CartItemConfigurationService
Process cart item configuration by validating catalog information. Errors for the item will be recorded intoCartItem.getGlobalConfigErrors()
, while errors for specific attributes will be recorded intoCartItem.getAttributeConfigErrors()
. For hierarchical cart items (items withCartItem.getDependentCartItems()
) it is intended that this method be called from the bottom up, i.e., the lowest level dependent item gets called first. That way, errors on items will be properly cascaded up the hierarchy asCartItemConfigurationErrorEnum.MISCONFIGURED_DEPENDENT_ITEMS
onCartItem.getGlobalConfigErrors()
.- Specified by:
validateCartItem
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
cart
- The cart with the cart itemcartItem
- The cart item with which to process configuration.product
- TheCatalogItem
with configuration to be used for validation.validationFlow
- The context used to identify validation requirements of theCartItem
at that point in its lifecycle. If this is set toValidationStrategy.ADD_ITEM
, then the configuration service will try to
-
validateCartItem
public void validateCartItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItem product, String validationFlow, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartItemConfigurationService
Process cart item configuration by validating catalog information. Errors for the item will be recorded intoCartItem.getGlobalConfigErrors()
, while errors for specific attributes will be recorded intoCartItem.getAttributeConfigErrors()
. For hierarchical cart items (items withCartItem.getDependentCartItems()
) it is intended that this method be called from the bottom up, i.e., the lowest level dependent item gets called first. That way, errors on items will be properly cascaded up the hierarchy asCartItemConfigurationErrorEnum.MISCONFIGURED_DEPENDENT_ITEMS
onCartItem.getGlobalConfigErrors()
.- Specified by:
validateCartItem
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
cart
- The cart with the cart itemcartItem
- The cart item with which to process configuration.product
- TheCatalogItem
with configuration to be used for validation.validationFlow
- The context used to identify validation requirements of theCartItem
at that point in its lifecycle. If this is set toValidationStrategy.ADD_ITEM
, then the configuration service will try tocontextInfo
- Context information around sandbox and multitenant state.
-
validateCustomQuoteItem
public void validateCustomQuoteItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Description copied from interface:CartItemConfigurationService
Processes item configuration validation for custom quote items.Any customization should be added here.
- Specified by:
validateCustomQuoteItem
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
cart
- The cart with the cart itemcartItem
- The cart item with which to process configuration- See Also:
-
DefaultCartItemTypes.CUSTOM_QUOTE_ITEM
-
validateCustomQuoteItem
public void validateCustomQuoteItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartItemConfigurationService
Processes item configuration validation for custom quote items.Any customization should be added here.
- Specified by:
validateCustomQuoteItem
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
cart
- The cart with the cart itemcartItem
- The cart item with which to process configurationcontextInfo
- Context information around sandbox and multitenant state.- See Also:
-
DefaultCartItemTypes.CUSTOM_QUOTE_ITEM
-
validateNonCatalogItem
public void validateNonCatalogItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartItemConfigurationService
Processes item configuration validation for non-catalog items.Any customization should be added here.
- Specified by:
validateNonCatalogItem
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
cart
- The cart with the cart itemcartItem
- The cart item with which to process configurationcontextInfo
- Context information around sandbox and multitenant state.- See Also:
-
DefaultCartItemTypes.NON_CATALOG_ITEM
-
variantCartItemMissingFromCatalogItem
public boolean variantCartItemMissingFromCatalogItem(@NonNull @NonNull CatalogItemList<? extends CatalogItem> catalogItemList, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartItemConfigurationService
Determines if the providedCartItem
does not have a backingVariant
from the list ofCatalogItem
This specifically targets Variants by checking the variant ID of a cart item.- Specified by:
variantCartItemMissingFromCatalogItem
in interfaceCartItemConfigurationService<P extends Product>
- Parameters:
catalogItemList
- the list ofCatalogItems
cartItem
- the cart item to checkcontextInfo
- context information surrounding sandboxing and multitenant state- Returns:
- true if the
cartItem
does not have a backingVariant
for a variant
-
hasVariantDistinguishingOptions
-
validateItemAndDependentsHavePositiveQuantities
protected void validateItemAndDependentsHavePositiveQuantities(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem item) A basic requirement is that all items added to a cart have a positive quantity. This method validates the given item and all of its nested dependents to ensure they have a positive quantity. Config errors will be registered on the item if the validation does not pass.- Parameters:
item
- the item which should be validated to have a positive quantity for itself and dependents
-
hasPositiveQuantity
protected boolean hasPositiveQuantity(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) -
flattenWithDependents
protected Stream<com.broadleafcommerce.cart.client.domain.CartItem> flattenWithDependents(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem item) Returns a flattened stream consisting of the given item with all of its nested dependents.- Parameters:
item
- the item to flatten- Returns:
- a flattened stream consisting of the given item with all of its nested dependents
-
validateQuantityWithinThreshold
protected void validateQuantityWithinThreshold(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull P product) Checks if the quantity of the item fits within the threshold.- Parameters:
cart
- The cart for thiscart item
cartItem
- The cart item whose quantity is being validatedproduct
- The product that this CartItem is intended to represent
-
calculateItemsQuantityWithSameSku
protected int calculateItemsQuantityWithSameSku(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, int parentItemQuantity) Calculates the total quantity of a particular item in the cart. Checks against the sku of the cartItem being added to the cart.- Parameters:
cartItem
- the CartItem being added to the cartcart
- the current Cart being modifiedparentItemQuantity
- the quantity of the parent CartItem- Returns:
- the quantity of items in the cart with the same sku
-
calculateItemAndDependentItemsQuantityWithSameSku
protected int calculateItemAndDependentItemsQuantityWithSameSku(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem dependentCartItem, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, int parentQuantity) Calculates the total quantity of a particular dependent cart item in the cart. Checks against the sku of the cartItem being added to the cart.- Parameters:
dependentCartItem
- the item dependent on the main CartItem being addedcartItem
- the CartItem being added to the cartparentQuantity
- the quantity of the parent CartItem for the dependent cart items- Returns:
- the quantity of dependent items in the cart with the same sku
-
calculateItemsQuantityWithSameProductId
protected int calculateItemsQuantityWithSameProductId(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, int parentItemQuantity) Calculates the total quantity of a particular item in the cart. Checks against the productId of the cartItem being added to the cart. This method is useful in cases where a CartItem may not have a sku such as with a BUNDLE type.- Parameters:
cartItem
- the CartItem being added to the cartcart
- the current Cart being modifiedparentItemQuantity
- the quantity of the parent CartItem for the dependent cart items- Returns:
- the quantity of items in the cart with the same productId
-
calculateItemAndDependentItemsQuantityWithSameProductId
protected int calculateItemAndDependentItemsQuantityWithSameProductId(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem dependentCartItem, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, int parentQuantity) Calculates the total quantity of a particular dependent cart item in the cart. Checks against the productId of the cartItem being added to the cart. This method is useful in cases where a CartItem may not have a sku such as with a BUNDLE type.- Parameters:
dependentCartItem
- the current dependent cart itemcartItem
- the CartItem being added to the cartparentQuantity
- the quantity of the parent CartItem for the dependent cart items- Returns:
- the quantity of dependent items in the cart with the same productId
-
calculateItemsQuantity
protected int calculateItemsQuantity(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, int parentItemQuantity, int itemsInCartQuantity) Calculates the total quantity of a particular item in the cart.- Parameters:
cartItem
- the CartItem being added to check againstcart
- the current Cart being modifiedparentItemQuantity
- the quantity of the parent CartItem for the dependent cart itemsitemsInCartQuantity
- the quantity of similar items already found in the cart- Returns:
- the quantity of items in the cart
-
calculateDependentItemsQuantity
protected int calculateDependentItemsQuantity(com.broadleafcommerce.cart.client.domain.CartItem parentDependentCartItem, com.broadleafcommerce.cart.client.domain.CartItem cartItem, int parentQuantity) Recursively calculates the quantities of the items dependent on the parent CartItem.- Parameters:
parentDependentCartItem
- the CartItem to check for dependentCartItemscartItem
- the original parent CartItem being added to the cartparentQuantity
- the total quantity of the current parent dependentCartItem- Returns:
- the quantity of currently calculated dependent cart items
-
validateTerms
protected void validateTerms(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull P product) Determines if thecartItem
is valid based on theproduct's
info.- Parameters:
cartItem
- TheCartItem
to validate.product
- TheProduct
added to the cart with source information used for validating the terms.- Since:
- Cart Operation Service 2.2.0, Release Train 2.2.0
-
requiredAttributesMissing
protected boolean requiredAttributesMissing(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) -
addItemConfigError
-
getMessage
-
identifyProductForCartItem
protected Optional<P> identifyProductForCartItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItemList<? extends CatalogItem> catalogItemList) -
isNonSkuTypeOrNullSku
protected boolean isNonSkuTypeOrNullSku(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem) Determines if a provided CartItem is a Product Type that does not normally have a sku or has a null sku.- Parameters:
cartItem
- the CartItem to check for type and sku- Returns:
- True if a CartItem is a non sku type or does not have a sku on it, otherwise false.
-
getIncludedProductService
-
getItemChoiceService
-
getAttributeChoiceService
-
getMessageSource
protected org.springframework.context.MessageSource getMessageSource() -
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory() -
getOfferUtils
-
setOfferUtils
-
getBroadleafProductService
-
setBroadleafProductService
@Autowired public void setBroadleafProductService(BroadleafProductService<Product> broadleafProductService)
-
catalogProvider