Class SpecificItemChoice

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

public class SpecificItemChoice extends Object implements Serializable
When a ItemChoice is determined to be a ItemChoiceTargetType.SPECIFIC_PRODUCTS or ItemChoiceTargetType.SPECIFIC_VARIANTS, this holds the relationship that the customer should select from
Author:
Chad Harchar (charchar)
See Also:
  • Constructor Details

    • SpecificItemChoice

      public SpecificItemChoice()
  • 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.
    • getType

      public String getType()
      Whether or not this item holds a product or a variant that the customer can select from
      Returns:
      the type of this addon item
      See Also:
    • getProduct

      public Product getProduct()
      If the type is SpecificItemChoiceType.PRODUCT this holds the product for this choice
      Returns:
      the product representing this choice, or null if type is not SpecificItemChoiceType.PRODUCT
    • getVariant

      public Variant getVariant()
      If the type is SpecificItemChoiceType.VARIANT this holds the variant for this choice
      Returns:
      the variant representing this choice, or null if type is not SpecificItemChoiceType.VARIANT
      See Also:
      • variantParentProductId
    • getVariantParentProductId

      public String getVariantParentProductId()
      This field contains the id of the parent product of the specified variant if the type is SpecificItemChoiceType.VARIANT.

      This field is necessary because variants are a sub-resource of product and thus API callers cannot fetch them purely by variant id alone.

      Returns:
      the id of the parent product of the variant
      See Also:
      • variant
    • 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()
    • getVariantPricing

      public Map<String,com.broadleafcommerce.cart.client.domain.SpecificItemChoiceVariantPricingOverride> getVariantPricing()
      Pricing overrides if specific variants of the main product this item belongs to are added to the cart.
      Returns:
      Pricing overrides if specific variants of the main product are added to the cart.
    • getAttributes

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

      public void setType(String type)
      Whether or not this item holds a product or a variant that the customer can select from
      Parameters:
      type - the type of item this is, usually from SpecificItemChoiceType
      See Also:
    • setProduct

      public void setProduct(Product product)
      If the type is SpecificItemChoiceType.PRODUCT this holds the product for this choice
      Parameters:
      product - the product representing this choice
    • setVariant

      public void setVariant(Variant variant)
      If the type is SpecificItemChoiceType.VARIANT this holds the variant for this choice
      Parameters:
      variant - the variant representing this choice
      See Also:
      • variantParentProductId
    • setVariantParentProductId

      public void setVariantParentProductId(String variantParentProductId)
      This field contains the id of the parent product of the specified variant if the type is SpecificItemChoiceType.VARIANT.

      This field is necessary because variants are a sub-resource of product and thus API callers cannot fetch them purely by variant id alone.

      Parameters:
      variantParentProductId - the id of the parent product of the variant
      See Also:
      • variant
    • 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)
    • setVariantPricing

      public void setVariantPricing(Map<String,com.broadleafcommerce.cart.client.domain.SpecificItemChoiceVariantPricingOverride> variantPricing)
      Pricing overrides if specific variants of the main product this item belongs to are added to the cart.
      Parameters:
      variantPricing - Pricing overrides if specific variants of the main product are added to the cart.
    • 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)