Class ItemChoice

java.lang.Object
com.broadleafcommerce.cartoperation.domain.ItemChoice
All Implemented Interfaces:
Serializable

public class ItemChoice extends Object implements Serializable
Configuration state for ProductOptionType.ITEM_CHOICE.
Author:
Chad Harchar (charchar)
See Also:
  • Constructor Details

    • ItemChoice

      public ItemChoice()
  • Method Details

    • addAttribute

      public void addAttribute(String name, Object value)
      Takes in any additional attributes passed in the request not matching any defined properties.
      Parameters:
      name - Name of the additional attribute
      value - Value of the additional attribute
    • getAttribute

      public Map<String,Object> getAttribute()
      Return any additional attributes passed in the request not matching any defined properties.
      Returns:
      any additional attributes passed in the request not matching any defined properties.
    • getChoiceKey

      public String getChoiceKey()
      The key to use to relate to this ItemChoice when configuring cart items.
      Returns:
      The key to use to relate to this ItemChoice when configuring cart items.
    • getTargetType

      public String getTargetType()
      Identifies the type of items that a customer can choose from, whether specific products, specific variants, or products from a specific category.
      Returns:
      the ItemChoiceTargetType of this add-on
      See Also:
    • getSelectionType

      public String getSelectionType()
      Describes restrictions placed on the customer's ability to select items from the targeted set. Generally, this is a restriction on how many choices can be selected for a single add-to-cart request and, potentially, how quantity is distributed among multiple selected choices.
      Returns:
      the ItemChoiceSelectionType of this item choice
      See Also:
    • getMaximumQuantity

      public Integer getMaximumQuantity()
      The maximum amount of this item that a customer can purchase at a time. If null, this would allow a customer to specify their own quantity for how many of these items they can add to the cart.
      Returns:
      the maximum quantity of the add-on's target product(s) that can be added
    • getMinimumQuantity

      public Integer getMinimumQuantity()
      The minimum amount of the item that a customer must purchase. The minimum and maximum should never be the same as this domain would be better represented as an IncludedProduct.
      Returns:
      the minimum quantity of the add-on's target product(s)
    • isDiscountAllowed

      public boolean isDiscountAllowed()
      Dictates whether or not discounts are allowed to be applied to this add-on.
      Returns:
      true if discounts are allowed to be applied to this add-on, false otherwise
    • getAdditionalItemPricing

      public com.broadleafcommerce.cart.client.domain.AdditionalItemPricing getAdditionalItemPricing()
    • getCategory

      public Category getCategory()
      The Category which the add-on will be chosen from by the customer if the selection is ItemChoiceTargetType.CATEGORY.
      Returns:
      the category from which the add-on will be chosen from or {@link null} if getSelectionType() is not ItemChoiceTargetType.CATEGORY
    • getSpecificChoices

      public List<SpecificItemChoice> getSpecificChoices()
      If the selectionType is ItemChoiceTargetType.SPECIFIC_PRODUCTS or ItemChoiceTargetType.SPECIFIC_VARIANTS this holds the manually-curated options that the customer can choose from. This also allows for specific override pricing on an item-by-item basis
      Returns:
      the explicit choices for ItemChoiceTargetType.SPECIFIC_PRODUCTS or ItemChoiceTargetType.SPECIFIC_VARIANTS value of the selectionType
    • getSpecificItemChoice

      public SpecificItemChoice getSpecificItemChoice()
    • getAttributes

      public Map<String,Object> getAttributes()
      Map holding any additional attributes passed in the request not matching any defined properties.
    • setChoiceKey

      public void setChoiceKey(String choiceKey)
      The key to use to relate to this ItemChoice when configuring cart items.
      Parameters:
      choiceKey - The key to use to relate to this ItemChoice when configuring cart items.
    • setTargetType

      public void setTargetType(String targetType)
      Identifies the type of items that a customer can choose from, whether specific products, specific variants, or products from a specific category.
      Parameters:
      type - the ItemChoiceTargetType of this add-on
      See Also:
    • setSelectionType

      public void setSelectionType(String selectionType)
      Describes restrictions placed on the customer's ability to select items from the targeted set. Generally, this is a restriction on how many choices can be selected for a single add-to-cart request and, potentially, how quantity is distributed among multiple selected choices.
      Parameters:
      selectionType - the ItemChoiceSelectionType of this item choice
      See Also:
    • setMaximumQuantity

      public void setMaximumQuantity(Integer maximumQuantity)
      The maximum amount of this item that a customer can purchase at a time. If null, this would allow a customer to specify their own quantity for how many of these items they can add to the cart.
      Parameters:
      maximumQuantity - the maximum quantity of the add-on's target product(s) that can be added
    • setMinimumQuantity

      public void setMinimumQuantity(Integer minimumQuantity)
      The minimum amount of the item that a customer must purchase. The minimum and maximum should never be the same as this domain would be better represented as an IncludedProduct.
      Parameters:
      minimumQuantity - the minimum quantity of the add-on's target product(s)
    • setDiscountAllowed

      public void setDiscountAllowed(boolean discountAllowed)
      Dictates whether or not discounts are allowed to be applied to this add-on.
      Parameters:
      discountAllowed - true if discounts are allowed to be applied to this add-on, false otherwise
    • setAdditionalItemPricing

      public void setAdditionalItemPricing(com.broadleafcommerce.cart.client.domain.AdditionalItemPricing additionalItemPricing)
    • setCategory

      public void setCategory(Category category)
      The Category which the add-on will be chosen from by the customer if the selection is ItemChoiceTargetType.CATEGORY.
      Parameters:
      category - the category from which the add-on will be chosen from
    • setSpecificChoices

      public void setSpecificChoices(List<SpecificItemChoice> specificChoices)
      If the selectionType is ItemChoiceTargetType.SPECIFIC_PRODUCTS or ItemChoiceTargetType.SPECIFIC_VARIANTS this holds the manually-curated options that the customer can choose from. This also allows for specific override pricing on an item-by-item basis
      Parameters:
      specificChoices - manually-curated options for the user to choose from for this addon
    • setSpecificItemChoice

      public void setSpecificItemChoice(SpecificItemChoice specificItemChoice)
    • setAttributes

      public void setAttributes(Map<String,Object> attributes)
      Map holding any additional attributes passed in the request not matching any defined properties.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • canEqual

      protected boolean canEqual(Object other)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getOverridePrice

      public javax.money.MonetaryAmount getOverridePrice()
    • getPricingKey

      public String getPricingKey()
    • getPricingTargetType

      public String getPricingTargetType()
    • setOverridePrice

      public void setOverridePrice(javax.money.MonetaryAmount overridePrice)
    • setPricingKey

      public void setPricingKey(String pricingKey)
    • setPricingTargetType

      public void setPricingTargetType(String pricingTargetType)