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 Details

  • Method Details

    • getCatalogProvider

      @Deprecated protected CatalogProvider<? extends CatalogItem> getCatalogProvider()
      Deprecated.
      This implementation does not use catalogProvider
      Access or catalogProvider.
      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 provided CartItem's related CatalogItem has quantity threshold restrictions.
      Specified by:
      cartItemHasQuantityThresholds in interface CartItemConfigurationService<P extends Product>
      Parameters:
      cartItem - The CartItem that we need to check for quantity thresholds.
      catalogItemList - The CatalogItemList that should contain the CartItem's related CatalogItem.
      Returns:
      If the provided CartItem's related CatalogItem 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 provided CartItem's related CatalogItem has quantity threshold restrictions.
      Specified by:
      cartItemHasQuantityThresholds in interface CartItemConfigurationService<P extends Product>
      Parameters:
      cartItem - The CartItem that we need to check for quantity thresholds.
      catalogItemList - The CatalogItemList that should contain the CartItem's related CatalogItem.
      contextInfo - Context information around sandbox and multitenant state.
      Returns:
      If the provided CartItem's related CatalogItem 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 into CartItem.getGlobalConfigErrors(), while errors for specific attributes will be recorded into CartItem.getAttributeConfigErrors(). For hierarchical cart items (items with CartItem.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 as CartItemConfigurationErrorEnum.MISCONFIGURED_DEPENDENT_ITEMS on CartItem.getGlobalConfigErrors().
      Specified by:
      validateCartItem in interface CartItemConfigurationService<P extends Product>
      Parameters:
      cart - The cart with the cart item
      cartItem - The cart item with which to process configuration.
      catalogItemList - The CatalogItemList that should contain the CartItem's related CatalogItem.
      validationFlow - The context used to identify validation requirements of the CartItem at that point in its lifecycle. If this is set to ValidationStrategy.ADD_ITEM, then the configuration service will try to
      contextInfo - 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 into CartItem.getGlobalConfigErrors(), while errors for specific attributes will be recorded into CartItem.getAttributeConfigErrors(). For hierarchical cart items (items with CartItem.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 as CartItemConfigurationErrorEnum.MISCONFIGURED_DEPENDENT_ITEMS on CartItem.getGlobalConfigErrors().
      Specified by:
      validateCartItem in interface CartItemConfigurationService<P extends Product>
      Parameters:
      cart - The cart with the cart item
      cartItem - The cart item with which to process configuration.
      product - The CatalogItem with configuration to be used for validation.
      validationFlow - The context used to identify validation requirements of the CartItem at that point in its lifecycle. If this is set to ValidationStrategy.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, @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 into CartItem.getGlobalConfigErrors(), while errors for specific attributes will be recorded into CartItem.getAttributeConfigErrors(). For hierarchical cart items (items with CartItem.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 as CartItemConfigurationErrorEnum.MISCONFIGURED_DEPENDENT_ITEMS on CartItem.getGlobalConfigErrors().
      Specified by:
      validateCartItem in interface CartItemConfigurationService<P extends Product>
      Parameters:
      cart - The cart with the cart item
      cartItem - The cart item with which to process configuration.
      product - The CatalogItem with configuration to be used for validation.
      validationFlow - The context used to identify validation requirements of the CartItem at that point in its lifecycle. If this is set to ValidationStrategy.ADD_ITEM, then the configuration service will try to
      contextInfo - 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 interface CartItemConfigurationService<P extends Product>
      Parameters:
      cart - The cart with the cart item
      cartItem - 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 interface CartItemConfigurationService<P extends Product>
      Parameters:
      cart - The cart with the cart item
      cartItem - The cart item with which to process configuration
      contextInfo - 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 interface CartItemConfigurationService<P extends Product>
      Parameters:
      cart - The cart with the cart item
      cartItem - The cart item with which to process configuration
      contextInfo - Context information around sandbox and multitenant state.
      See Also:
      • DefaultCartItemTypes.NON_CATALOG_ITEM
    • validateSubscriptionCartItemPricing

      public void validateSubscriptionCartItemPricing(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CartItemConfigurationService
      In some cases, it is necessary to validate the cart items after pricing has been hydrated. For example, for Merchandising Bundles with Subscription Items, the prices of the Subscription Items should match the payment strategy of the parent Merchandising Bundle.
      Specified by:
      validateSubscriptionCartItemPricing in interface CartItemConfigurationService<P extends Product>
      Parameters:
      cart - The Cart being priced.
      contextInfo - Additional sandbox and multitenant info
    • catalogItemRequestAlreadyExists

      public <R extends CatalogItemRequest> boolean catalogItemRequestAlreadyExists(@NonNull @NonNull Collection<R> catalogItemRequests, @NonNull @NonNull String productId, @Nullable String variantId)
      Description copied from interface: CartItemConfigurationService
      Hook point to prevent duplicate CatalogItemRequests from being built based on the passed in IDs.

      The variantIdUsedToIdentifyCatalogItemRequests property is used to determine if the variant ID of the CartItem or AddItemRequest will be used to determine a duplicate CatalogItemRequest along with the product ID. By default, this property is set to true.

      Specified by:
      catalogItemRequestAlreadyExists in interface CartItemConfigurationService<P extends Product>
      Parameters:
      catalogItemRequests - the list of requests to check for duplicates
      productId - the product ID to check the existing CatalogItemRequests with
      variantId - the possible variant ID to check the existing CatalogItemRequests with
      Returns:
      true if any existing CatalogItemRequest matches the passed in product and/or variant IDs
    • 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 provided CartItem does not have a backing Variant from the list of CatalogItem This specifically targets Variants by checking the variant ID of a cart item.

      Specified by:
      variantCartItemMissingFromCatalogItem in interface CartItemConfigurationService<P extends Product>
      Parameters:
      catalogItemList - the list of CatalogItems
      cartItem - the cart item to check
      contextInfo - context information surrounding sandboxing and multitenant state
      Returns:
      true if the cartItem does not have a backing Variant for a variant
    • getProductType

      @Nullable protected String getProductType(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem)
      Gets the product type from the cart item if it exists.
      Parameters:
      cartItem - The cart item whose inventory is being checked
      Returns:
      the product type from the cart item if it exists
      Since:
      Cart Operation Service 2.3.0, Release Train 2.3.0
    • validateCartItemInternal

      protected void validateCartItemInternal(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull CatalogItem product, @NonNull @NonNull CatalogItemList<? extends CatalogItem> catalogItemList, boolean isDependentItem, String validationFlow, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • consolidateConfigErrors

      protected void consolidateConfigErrors(@NotNull @NotNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P broadleafProduct)
    • validateProductOptions

      protected void validateProductOptions(@NotNull @NotNull com.broadleafcommerce.cart.client.domain.Cart cart, @NotNull @NotNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, String validationFlow, P broadleafProduct)
    • validateDependentItems

      protected void validateDependentItems(com.broadleafcommerce.cart.client.domain.Cart cart, @NotNull @NotNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NotNull @NotNull CatalogItemList<? extends CatalogItem> catalogItemList, String validationFlow, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • validateSelectorProduct

      protected void validateSelectorProduct(@NotNull @NotNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P broadleafProduct)
    • validateIndividuallySold

      protected void validateIndividuallySold(@NotNull @NotNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, P broadleafProduct)
    • hasVariantDistinguishingOptions

      protected boolean hasVariantDistinguishingOptions(@NonNull P product)
    • 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 this cart item
      cartItem - The cart item whose quantity is being validated
      product - 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 cart
      cart - the current Cart being modified
      parentItemQuantity - 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 added
      cartItem - the CartItem being added to the cart
      parentQuantity - 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 cart
      cart - the current Cart being modified
      parentItemQuantity - 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 item
      cartItem - the CartItem being added to the cart
      parentQuantity - 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 against
      cart - the current Cart being modified
      parentItemQuantity - the quantity of the parent CartItem for the dependent cart items
      itemsInCartQuantity - 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 dependentCartItems
      cartItem - the original parent CartItem being added to the cart
      parentQuantity - 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 the cartItem is valid based on the product's info.
      Parameters:
      cartItem - The CartItem to validate.
      product - The Product added to the cart with source information used for validating the terms.
      Since:
      Cart Operation Service 2.2.0, Release Train 2.2.0
    • validateSubscriptionCartItem

      protected void validateSubscriptionCartItem(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull P product, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Validates the subscription cart item.
      Parameters:
      cart - the Cart containing the CartItem.
      cartItem - the subscription CartItem to validate.
      product - the subscription Product added to the cart with source information
      contextInfo - the ContextInfo for the current operation
      Since:
      Cart Operation Service 2.3.0, Release Train 2.3.0
    • validateBillingFrequencyChange

      protected void validateBillingFrequencyChange(@NonNull @NonNull String subscriptionActionFlow, @NonNull @NonNull ExistingSubscriptionDetails existingSubscriptionDetails, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull P product, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      If the given UpdateItemRequest is changing the billing frequency of the subscription, validates that the change is allowed.

      By default, the billing frequency change is only allowed if there's no delayed actions against the subscription and if the action being taken isn't a delayed action itself (e.g. prepaid downgrade).

      Parameters:
      subscriptionActionFlow - the DefaultSubscriptionActionFlow representing the action being taken against the subscription
      existingSubscriptionDetails - the ExistingSubscriptionDetails
      cart - the Cart containing the item being updated
      cartItem - the CartItem being updated
      product - the Product associated with the item being updated
      contextInfo - context information around sandbox and multitenant state
      Since:
      Cart Operation Service 2.3.0, Release Train 2.3.0
    • isSubscriptionBillingFrequencyChangeAllowed

      protected boolean isSubscriptionBillingFrequencyChangeAllowed(@NonNull @NonNull String subscriptionActionFlow, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart, @NonNull @NonNull ExistingSubscriptionDetails existingSubscriptionDetails, @NonNull P product, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    • requiredAttributesMissing

      protected boolean requiredAttributesMissing(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem)
    • addItemConfigError

      protected void addItemConfigError(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull String errorCode, @NonNull @NonNull String errorMessage)
    • getMessage

      protected String getMessage(@NonNull @NonNull String errorMessage, @Nullable Object... args)
    • 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.
    • getUserRefTypeForReadingUserSubscriptionSummary

      protected String getUserRefTypeForReadingUserSubscriptionSummary(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart)
      The userRefType to query the Subscription-Ops service to group them into active and former subscriptions.
      Parameters:
      cart - the cart containing the user reference info
      Returns:
      the userRefType
      Since:
      Cart Operation Service 2.3.0, Release Train 2.3.0
    • getUserRefForReadingUserSubscriptionSummary

      protected String getUserRefForReadingUserSubscriptionSummary(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.Cart cart)
      The userRefType to query the Subscription-Ops service to group them into active and former subscriptions.
      Parameters:
      cart - the cart containing the user reference info
      Returns:
      the userRefType
      Since:
      Cart Operation Service 2.3.0, Release Train 2.3.0
    • getIncludedProductService

      protected IncludedProductConfigurationService getIncludedProductService()
    • getItemChoiceService

      protected ItemChoiceConfigurationService getItemChoiceService()
    • getAttributeChoiceService

      protected AttributeChoiceConfigurationService getAttributeChoiceService()
    • getMessageSource

      protected org.springframework.context.MessageSource getMessageSource()
    • getTypeFactory

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

      protected CartOperationServiceOfferUtils getOfferUtils()
    • setOfferUtils

      @Autowired public void setOfferUtils(CartOperationServiceOfferUtils offerUtils)
    • getBroadleafProductService

      protected BroadleafProductService<Product> getBroadleafProductService()
    • setBroadleafProductService

      @Autowired public void setBroadleafProductService(BroadleafProductService<Product> broadleafProductService)
    • getCartSubscriptionUtils

      protected CartSubscriptionUtils getCartSubscriptionUtils()
    • setCartSubscriptionUtils

      @Autowired public void setCartSubscriptionUtils(CartSubscriptionUtils cartSubscriptionUtils)
    • getSubscriptionOpsProvider

      @Nullable protected SubscriptionOpsProvider getSubscriptionOpsProvider()
    • setSubscriptionOpsProvider

      @Autowired(required=false) public void setSubscriptionOpsProvider(@Nullable SubscriptionOpsProvider subscriptionOpsProvider)
    • getProperties

      protected CartOperationServiceProperties getProperties()
    • setProperties

      @Autowired public void setProperties(CartOperationServiceProperties properties)