Class SpecificItemChoice
- All Implemented Interfaces:
Serializable
ItemChoice
is determined to be a
DefaultItemChoiceTargetType.SPECIFIC_PRODUCTS
or
DefaultItemChoiceTargetType.SPECIFIC_VARIANTS
, this holds the relationship that the
customer should select from- Author:
- Phillip Verheyden (phillipuniverse)
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
boolean
getAsset()
The asset for this selection.javax.money.MonetaryAmount
When displaying this choice to a customer, an optional override for the display the customer should see.javax.money.MonetaryAmount
The price of this explicit selection.System-wide unique identifier to configure specific pricing for the choice.If thetype
isDefaultSpecificItemChoiceType.PRODUCT
this holds the product for this choicegetType()
Whether or not this item holds a product or a variant that the customer can select fromIf thetype
isDefaultSpecificItemChoiceType.VARIANT
this holds the variant for this choiceThis field contains the id of the parent product of the specifiedvariant
if thetype
isDefaultSpecificItemChoiceType.VARIANT
.Pricing overrides if specific variants of the main product this item belongs to are added to the cart.int
hashCode()
boolean
Dictates whether or not discounts are allowed to be applied to this add-on.void
setAsset
(SpecificItemChoiceAsset asset) The asset for this selection.void
setDiscountAllowed
(boolean discountAllowed) Dictates whether or not discounts are allowed to be applied to this add-on.void
setNameOverride
(String nameOverride) When displaying this choice to a customer, an optional override for the display the customer should see.void
setOverridePrice
(javax.money.MonetaryAmount overridePrice) The price of this explicit selection.void
setPricingKey
(String pricingKey) System-wide unique identifier to configure specific pricing for the choice.void
setProduct
(Product product) If thetype
isDefaultSpecificItemChoiceType.PRODUCT
this holds the product for this choicevoid
Whether or not this item holds a product or a variant that the customer can select fromvoid
setVariant
(Variant variant) If thetype
isDefaultSpecificItemChoiceType.VARIANT
this holds the variant for this choicevoid
setVariantParentProductId
(String variantParentProductId) This field contains the id of the parent product of the specifiedvariant
if thetype
isDefaultSpecificItemChoiceType.VARIANT
.void
setVariantPricingOverrides
(List<SpecificItemVariantPricing> variantPricingOverrides) Pricing overrides if specific variants of the main product this item belongs to are added to the cart.toString()
-
Constructor Details
-
SpecificItemChoice
public SpecificItemChoice()
-
-
Method Details
-
getDefaultPrice
public javax.money.MonetaryAmount getDefaultPrice() -
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
If thetype
isDefaultSpecificItemChoiceType.PRODUCT
this holds the product for this choice- Returns:
- the product representing this choice, or null if
type
is notDefaultSpecificItemChoiceType.PRODUCT
-
getVariant
If thetype
isDefaultSpecificItemChoiceType.VARIANT
this holds the variant for this choice- Returns:
- the variant representing this choice, or null if
type
is notDefaultSpecificItemChoiceType.VARIANT
- See Also:
-
variantParentProductId
-
getVariantParentProductId
This field contains the id of the parent product of the specifiedvariant
if thetype
isDefaultSpecificItemChoiceType.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
-
getNameOverride
When displaying this choice to a customer, an optional override for the display the customer should see. If {@link null}, the product or variant name is used for display- Returns:
- the override of the display of the name to the customer. If null, the variant or product name should be used
-
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
-
getOverridePrice
public javax.money.MonetaryAmount getOverridePrice()The price of this explicit selection. If no pricing is specified here, the price of the target
product
,variant
will be used.If the
ItemChoice.getOverridePrice()
is set, that will override any price set here and this price should be ignored- Returns:
- the explicit price of this choice or null if the product/variant price should be
used, or if the override price exists on the
ItemChoice
-
getPricingKey
System-wide unique identifier to configure specific pricing for the choice. Relevant if pricing data is managed in a separate system or data store, like the Broadleaf pricing services. Only relevant whenItemChoice.getOverridePrice()
is null.- Returns:
- a unique key to identify this choice, null if there is no external system this should be linked to for pricing data
-
getAsset
The asset for this selection. Intended to override the asset normally shown for theproduct
orvariant
specifically in the context of this relationship.- Returns:
- asset information for this explicit selection
- See Also:
-
getVariantPricingOverrides
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.
-
setType
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 fromDefaultSpecificItemChoiceType
- See Also:
-
setProduct
If thetype
isDefaultSpecificItemChoiceType.PRODUCT
this holds the product for this choice- Parameters:
product
- the product representing this choice
-
setVariant
If thetype
isDefaultSpecificItemChoiceType.VARIANT
this holds the variant for this choice- Parameters:
variant
- the variant representing this choice- See Also:
-
variantParentProductId
-
setVariantParentProductId
This field contains the id of the parent product of the specifiedvariant
if thetype
isDefaultSpecificItemChoiceType.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 thevariant
- See Also:
-
variant
-
setNameOverride
When displaying this choice to a customer, an optional override for the display the customer should see. If {@link null}, the product or variant name is used for display- Parameters:
nameOverride
- what the customer should see for this choice
-
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
-
setOverridePrice
public void setOverridePrice(javax.money.MonetaryAmount overridePrice) The price of this explicit selection. If no pricing is specified here, the price of the target
product
,variant
will be used.If the
ItemChoice.getOverridePrice()
is set, that will override any price set here and this price should be ignored- Parameters:
overridePrice
- the price of this choice
-
setPricingKey
System-wide unique identifier to configure specific pricing for the choice. Relevant if pricing data is managed in a separate system or data store, like the Broadleaf pricing services. Only relevant whenItemChoice.getOverridePrice()
is null.- Parameters:
pricingKey
- a unique key to identify this choice (usually a UUID)
-
setAsset
The asset for this selection. Intended to override the asset normally shown for theproduct
orvariant
specifically in the context of this relationship.- Parameters:
asset
- asset information for this explicit selection- See Also:
-
setVariantPricingOverrides
Pricing overrides if specific variants of the main product this item belongs to are added to the cart.- Parameters:
variantPricingOverrides
- Pricing overrides if specific variants of the main product are added to the cart.
-
equals
-
canEqual
-
hashCode
public int hashCode() -
toString
-