org.broadleafcommerce.core.catalog.domain
Interface Sku

All Superinterfaces:
Serializable
All Known Implementing Classes:
SkuImpl

public interface Sku
extends Serializable

Implementations of this interface are used to hold data about a SKU. A SKU is a specific item that can be sold including any specific attributes of the item such as color or size.

You should implement this class if you want to make significant changes to how the class is persisted. If you just want to add additional fields then you should extend SkuImpl.

Author:
btaylor
See Also:
SkuImpl}, {@link Money}

Method Summary
 void clearDynamicPrices()
          Clears any currently stored dynamic pricing
 Date getActiveEndDate()
          Returns the the last date that the Sku should be available for sale.
 Date getActiveStartDate()
          Returns the first date that the Sku should be available for sale.
 Boolean getAvailable()
          Convenience that passes through to isAvailable
 Product getDefaultProduct()
          This will be a value if and only if this Sku is the defaultSku of a Product (and thus has a @OneToOne relationship with a Product).
 String getDescription()
          Returns the brief description of the Sku.
 Dimension getDimension()
          Get the dimensions for this Sku
 List<FulfillmentOption> getExcludedFulfillmentOptions()
          Gets the FulfillmentOptions that this Sku should be excluded from.
 List<SkuFee> getFees()
          Gets all the extra fees for this particular Sku.
 Map<FulfillmentOption,BigDecimal> getFulfillmentFlatRates()
          Gets the flat rate for fulfilling this Sku for a particular FulfillmentOption.
 FulfillmentType getFulfillmentType()
          Returns the fulfillment type for this sku.
 Long getId()
          Returns the id of this sku
 InventoryType getInventoryType()
          Returns the type of inventory for this sku
 Boolean getIsMachineSortable()
          Whether this Sku can be sorted by a machine
 Money getListPrice()
          Deprecated.  
 String getLongDescription()
          Returns the long description of the sku.
 Map<String,SkuAttribute> getMappedSkuAttributes()
           
 String getName()
          Returns the name of the Sku.
 Product getProduct()
          This will return the correct Product association that is being used on the Sku.
 Money getProductOptionValueAdjustments()
          This is the sum total of the priceAdjustments from the associated ProductOptionValues
 List<ProductOptionValue> getProductOptionValues()
          Gets the ProductOptionValues used to map to this Sku.
 Money getRetailPrice()
          Returns the Retail Price of the Sku.
 Money getSalePrice()
          Returns the Sale Price of the Sku.
 SkuAttribute getSkuAttributeByName(String name)
          Convenience method to return a given sku attribute by its name
 List<SkuAttribute> getSkuAttributes()
          Denormalized set of key-value pairs to attach to a Sku.
 Map<String,Media> getSkuMedia()
          Returns a map of key/value pairs where the key is a string for the name of a media object and the value is a media object.
 Boolean getTaxable()
          Convenience that passes through to isTaxable
 Weight getWeight()
          Gets the embedded Weight for this Sku
 boolean isActive()
          Returns a boolean indicating whether this sku is active.
 boolean isActive(Product product, Category category)
          Returns whether or not this Sku, the given Product and the given Category are all active
 Boolean isAvailable()
          Returns whether the Sku is available.
 Boolean isDiscountable()
          Returns whether the Sku qualifies for discounts or not.
 Boolean isMachineSortable()
          Deprecated. use getIsMachineSortable() instead since that is the correct bean notation
 boolean isOnSale()
          A product is on sale provided the sale price is not null, non-zero, and less than the retail price
 Boolean isTaxable()
          Returns whether the Sku qualifies for taxes or not.
 void setActiveEndDate(Date activeEndDate)
          Sets the the last date that the Sku should be available for sale.
 void setActiveStartDate(Date activeStartDate)
          Sets the the first date that the Sku should be available for sale.
 void setAvailable(Boolean available)
          Sets the whether the Sku is available.
 void setDefaultProduct(Product product)
          The relationship for a Product's default Sku (and thus a Sku's default Product) is actually maintained on the Product entity as a foreign key to Sku.
 void setDescription(String description)
          Sets the brief description of the Sku.
 void setDimension(Dimension dimension)
          Sets the embedded Dimension for this Sku
 void setDiscountable(Boolean discountable)
          Sets the whether the Sku qualifies for discounts or not.
 void setExcludedFulfillmentOptions(List<FulfillmentOption> excludedFulfillmentOptions)
          Sets the FulfillmentOptions that this Sku should be excluded from being apart of
 void setFees(List<SkuFee> fees)
          Sets the extra fees for this particular Sku
 void setFulfillmentFlatRates(Map<FulfillmentOption,BigDecimal> fulfillmentFlatRates)
          Sets the flat rates for fulfilling this Sku for a particular FulfillmentOption.
 void setFulfillmentType(FulfillmentType fulfillmentType)
          Sets the fulfillment type for this sku.
 void setId(Long id)
          Sets the id of this sku
 void setInventoryType(InventoryType inventoryType)
          Sets the type of inventory for this sku
 void setIsMachineSortable(Boolean isMachineSortable)
          Sets whether or not this Sku can be sorted by a machine
 void setListPrice(Money listPrice)
          Deprecated.  
 void setLongDescription(String longDescription)
          Sets the long description of the sku.
 void setMachineSortable(Boolean isMachineSortable)
          Deprecated. use setIsMachineSortable(Boolean) instead since that is the correct bean notation
 void setName(String name)
          Sets the the name of the Sku.
 void setProduct(Product product)
          Associates a Sku to a given Product.
 void setProductOptionValues(List<ProductOptionValue> productOptionValues)
          Sets the ProductOptionValues that should be mapped to this Sku
 void setRetailPrice(Money retailPrice)
          Sets the retail price for the Sku.
 void setSalePrice(Money salePrice)
          Sets the the Sale Price of the Sku.
 void setSkuAttributes(List<SkuAttribute> skuAttributes)
          Sets the denormalized set of key-value pairs on a Sku
 void setSkuMedia(Map<String,Media> skuMedia)
          Sets a map of key/value pairs where the key is a string for the name of a media object and the value is an object of type Media.
 void setTaxable(Boolean taxable)
          Sets the whether the Sku qualifies for taxes or not.
 void setWeight(Weight weight)
          Sets the embedded Weight for this Sku
 

Method Detail

getId

Long getId()
Returns the id of this sku


setId

void setId(Long id)
Sets the id of this sku


getProductOptionValueAdjustments

Money getProductOptionValueAdjustments()
This is the sum total of the priceAdjustments from the associated ProductOptionValues

Returns:
null if there are no ProductOptionValues associated with this Sku or all of their priceAdjustments are null. Otherwise this will be the sum total of those price adjustments
See Also:
ProductOptionValue}

getSalePrice

Money getSalePrice()
Returns the Sale Price of the Sku. The Sale Price is the standard price the vendor sells this item for. If SkuPricingConsiderationContext is set, this uses the DynamicSkuPricingService to calculate what this should actually be rather than use the property itself

See Also:
SkuPricingConsiderationContext, DynamicSkuPricingService

setSalePrice

void setSalePrice(Money salePrice)
Sets the the Sale Price of the Sku. The Sale Price is the standard price the vendor sells this item for. This price will automatically be overridden if your system is utilizing the DynamicSkuPricingService.


getRetailPrice

Money getRetailPrice()
Returns the Retail Price of the Sku. The Retail Price is the MSRP of the sku. If SkuPricingConsiderationContext is set, this uses the DynamicSkuPricingService to calculate what this should actually be rather than use the property itself

See Also:
SkuPricingConsiderationContext, DynamicSkuPricingService

setRetailPrice

void setRetailPrice(Money retailPrice)
Sets the retail price for the Sku. This price will automatically be overridden if your system is utilizing the DynamicSkuPricingService.

Parameters:
retail - price for the Sku

getListPrice

@Deprecated
Money getListPrice()
Deprecated. 

Returns the List Price of the Sku. The List Price is the MSRP of the sku.


setListPrice

@Deprecated
void setListPrice(Money listPrice)
Deprecated. 

Sets the the List Price of the Sku. The List Price is the MSRP of the sku.


getName

String getName()
Returns the name of the Sku. The name is a label used to show when displaying the sku.


setName

void setName(String name)
Sets the the name of the Sku. The name is a label used to show when displaying the sku.


getDescription

String getDescription()
Returns the brief description of the Sku.


setDescription

void setDescription(String description)
Sets the brief description of the Sku.


getLongDescription

String getLongDescription()
Returns the long description of the sku.


setLongDescription

void setLongDescription(String longDescription)
Sets the long description of the sku.


isTaxable

Boolean isTaxable()
Returns whether the Sku qualifies for taxes or not. This field is used by the pricing engine to calculate taxes.


getTaxable

Boolean getTaxable()
Convenience that passes through to isTaxable


setTaxable

void setTaxable(Boolean taxable)
Sets the whether the Sku qualifies for taxes or not. This field is used by the pricing engine to calculate taxes.


isDiscountable

Boolean isDiscountable()
Returns whether the Sku qualifies for discounts or not. This field is used by the pricing engine to apply offers.


setDiscountable

void setDiscountable(Boolean discountable)
Sets the whether the Sku qualifies for discounts or not. This field is used by the pricing engine to apply offers.


isAvailable

Boolean isAvailable()
Returns whether the Sku is available.


getAvailable

Boolean getAvailable()
Convenience that passes through to isAvailable


setAvailable

void setAvailable(Boolean available)
Sets the whether the Sku is available.


getActiveStartDate

Date getActiveStartDate()
Returns the first date that the Sku should be available for sale. This field is used to determine whether a user can add the sku to their cart.


setActiveStartDate

void setActiveStartDate(Date activeStartDate)
Sets the the first date that the Sku should be available for sale. This field is used to determine whether a user can add the sku to their cart.


getActiveEndDate

Date getActiveEndDate()
Returns the the last date that the Sku should be available for sale. This field is used to determine whether a user can add the sku to their cart.


setActiveEndDate

void setActiveEndDate(Date activeEndDate)
Sets the the last date that the Sku should be available for sale. This field is used to determine whether a user can add the sku to their cart.


getDimension

Dimension getDimension()
Get the dimensions for this Sku

Returns:
this Sku's embedded Weight

setDimension

void setDimension(Dimension dimension)
Sets the embedded Dimension for this Sku

Parameters:
dimension -

getWeight

Weight getWeight()
Gets the embedded Weight for this Sku

Returns:
this Sku's embedded Weight

setWeight

void setWeight(Weight weight)
Sets the embedded Weight for this Sku

Parameters:
weight -

isActive

boolean isActive()
Returns a boolean indicating whether this sku is active. This is used to determine whether a user the sku can add the sku to their cart.


getSkuMedia

Map<String,Media> getSkuMedia()
Returns a map of key/value pairs where the key is a string for the name of a media object and the value is a media object.


setSkuMedia

void setSkuMedia(Map<String,Media> skuMedia)
Sets a map of key/value pairs where the key is a string for the name of a media object and the value is an object of type Media.


isActive

boolean isActive(Product product,
                 Category category)
Returns whether or not this Sku, the given Product and the given Category are all active

Parameters:
product - - Product that should be active
category - - Category that should be active
Returns:
true if this Sku, product and category are all active false otherwise

getSkuAttributes

List<SkuAttribute> getSkuAttributes()
Denormalized set of key-value pairs to attach to a Sku. If you are looking for setting up a ProductOption scenario (like colors, sizes, etc) see getProductOptionValues() and setProductOptionValues()

Returns:
the attributes for this Sku

setSkuAttributes

void setSkuAttributes(List<SkuAttribute> skuAttributes)
Sets the denormalized set of key-value pairs on a Sku

Parameters:
skuAttributes -

getProductOptionValues

List<ProductOptionValue> getProductOptionValues()
Gets the ProductOptionValues used to map to this Sku. For instance, this Sku could hold specific inventory, price and image information for a "Blue" "Extra-Large" shirt

Returns:
the ProductOptionValues for this Sku
See Also:
ProductOptionValue}, {@link ProductOption}

setProductOptionValues

void setProductOptionValues(List<ProductOptionValue> productOptionValues)
Sets the ProductOptionValues that should be mapped to this Sku

Parameters:
productOptionValues -
See Also:
ProductOptionValue}, {@link ProductOption}

getDefaultProduct

Product getDefaultProduct()
This will be a value if and only if this Sku is the defaultSku of a Product (and thus has a @OneToOne relationship with a Product). The mapping for this is actually done at the Product level with a foreign key to Sku; this exists for convenience to get the reverse relationship

Returns:
The associated Product if this Sku is a defaultSku, null otherwise
See Also:
getProduct()

setDefaultProduct

void setDefaultProduct(Product product)
The relationship for a Product's default Sku (and thus a Sku's default Product) is actually maintained on the Product entity as a foreign key to Sku. Because of this, there are probably very few circumstances that you would actually want to change this from the Sku perspective instead of the Product perspective.

If you are looking for a way to simply associate a Sku to a Product, the correct way would be to call setProduct(Product) or Product#setSkus(List) which would then cause this Sku to show up in the list of Skus for the given Product

Parameters:
product -

getProduct

Product getProduct()
This will return the correct Product association that is being used on the Sku. If this Sku is a default Sku for a Product (as in, getDefaultProduct() != null) than this will return getDefaultProduct(). If this is not a default Sku for a Product, this will return the @ManyToOne Product relationship created by adding this Sku to a Product's list of Skus, or using setProduct(Product).

In some implementations, it might make sense to have both the @OneToOne association set (Product.setDefaultSku(Sku)) as well as the @ManyToOne association set (setProduct(Product)). In this case, This method would only return the result of getDefaultProduct(). However, the @OneToOne and @ManyToOne association should never actually refer to different Products, and would represent an error state. If you require this, consider subclassing and using your own @ManyToMany relationship between Product and Sku. If you are trying to model bundles, consider using a ProductBundle and subsequent SkuBundleItems.

Returns:
getDefaultProduct() if getDefaultProduct() is non-null, the @ManyToOne Product association otherwise. If no relationship is set, returns null

setProduct

void setProduct(Product product)
Associates a Sku to a given Product. This will then show up in the list returned by Product.getSkus()

Parameters:
product - - Product to associate this Sku to
See Also:
Product.getSkus()

isOnSale

boolean isOnSale()
A product is on sale provided the sale price is not null, non-zero, and less than the retail price

Returns:
whether or not the product is on sale

isMachineSortable

Boolean isMachineSortable()
Deprecated. use getIsMachineSortable() instead since that is the correct bean notation

Whether this Sku can be sorted by a machine

Returns:
true if this Sku can be sorted by a machine

getIsMachineSortable

Boolean getIsMachineSortable()
Whether this Sku can be sorted by a machine


setMachineSortable

void setMachineSortable(Boolean isMachineSortable)
Deprecated. use setIsMachineSortable(Boolean) instead since that is the correct bean notation

Sets whether or not this Sku can be sorted by a machine

Parameters:
isMachineSortable -

setIsMachineSortable

void setIsMachineSortable(Boolean isMachineSortable)
Sets whether or not this Sku can be sorted by a machine

Parameters:
isMachineSortable -

getFees

List<SkuFee> getFees()
Gets all the extra fees for this particular Sku. If the fee type is FULFILLMENT, these are stored on FulfillmentGroup.getFulfillmentGroupFees() for an Order

Returns:
the SkuFees for this Sku

setFees

void setFees(List<SkuFee> fees)
Sets the extra fees for this particular Sku

Parameters:
fees -

getFulfillmentFlatRates

Map<FulfillmentOption,BigDecimal> getFulfillmentFlatRates()
Gets the flat rate for fulfilling this Sku for a particular FulfillmentOption. Depending on the result of FulfillmentOption.getUseFlatRates(), this flat rate will be used in calculating the cost of fulfilling this Sku.

Returns:
the flat rates for this Sku

setFulfillmentFlatRates

void setFulfillmentFlatRates(Map<FulfillmentOption,BigDecimal> fulfillmentFlatRates)
Sets the flat rates for fulfilling this Sku for a particular FulfillmentOption. Depending on the result of FulfillmentOption.getUseFlatRates(), this flat rate will be used in calculating the cost of fulfilling this Sku.

Parameters:
fulfillmentFlatRates -

getExcludedFulfillmentOptions

List<FulfillmentOption> getExcludedFulfillmentOptions()
Gets the FulfillmentOptions that this Sku should be excluded from. For instance, some Skus might not be available to be fulfilled next-day

Returns:

setExcludedFulfillmentOptions

void setExcludedFulfillmentOptions(List<FulfillmentOption> excludedFulfillmentOptions)
Sets the FulfillmentOptions that this Sku should be excluded from being apart of

Parameters:
excludedFulfillmentOptions -

getSkuAttributeByName

SkuAttribute getSkuAttributeByName(String name)
Convenience method to return a given sku attribute by its name

Parameters:
name -
Returns:
the SkuAttribute

getMappedSkuAttributes

Map<String,SkuAttribute> getMappedSkuAttributes()
Returns:
a Map of all the sku attributes on this sku keyed by the attribute name

getInventoryType

InventoryType getInventoryType()
Returns the type of inventory for this sku

Returns:
the InventoryType for this sku

setInventoryType

void setInventoryType(InventoryType inventoryType)
Sets the type of inventory for this sku

Parameters:
inventoryType - the InventoryType for this sku

getFulfillmentType

FulfillmentType getFulfillmentType()
Returns the fulfillment type for this sku. May be null.

Returns:

setFulfillmentType

void setFulfillmentType(FulfillmentType fulfillmentType)
Sets the fulfillment type for this sku. May return null.

Parameters:
fulfillmentType -

clearDynamicPrices

void clearDynamicPrices()
Clears any currently stored dynamic pricing



Copyright © 2013. All Rights Reserved.