org.broadleafcommerce.core.order.domain
Interface OrderItem

All Superinterfaces:
Cloneable, Serializable
All Known Subinterfaces:
BundleOrderItem, DiscreteOrderItem, DynamicPriceDiscreteOrderItem, GiftWrapOrderItem
All Known Implementing Classes:
BundleOrderItemImpl, DiscreteOrderItemImpl, DynamicPriceDiscreteOrderItemImpl, GiftWrapOrderItemImpl, OrderItemImpl

public interface OrderItem
extends Serializable, Cloneable


Method Summary
 void addCandidateItemOffer(CandidateItemOffer candidateItemOffer)
          Used by the promotion engine to add offers that might apply to this orderItem.
 void assignFinalPrice()
          Used to set the final price of the item and corresponding details.
 OrderItem clone()
           
 void finalizePrice()
          Called by the pricing engine after prices have been computed.
 Money getAdjustmentValue()
          Deprecated. Delegates to getAverageAdjustmentValue() instead but this method is of little or no value in most practical applications unless only simple promotions are being used.
 Money getAverageAdjustmentValue()
          Returns the average unit item adjustments.
 Money getAveragePrice()
          Returns the average unit display price for the item.
 List<CandidateItemOffer> getCandidateItemOffers()
           
 Category getCategory()
           
 GiftWrapOrderItem getGiftWrapOrderItem()
           
 Long getId()
          The unique identifier of this OrderItem
 boolean getIsDiscounted()
          Returns true if this item received a discount.
 boolean getIsOnSale()
          Default implementation uses getSalePrice() < getRetailPrice()
 String getName()
          Generally copied from the Sku.getName()
 Order getOrder()
          Reference back to the containing order.
 List<OrderItemAdjustment> getOrderItemAdjustments()
          Returns item level adjustment for versions of Broadleaf Commerce prior to 2.3.0 which replaced this concept with OrderItemPriceDetail adjustments.
 Map<String,OrderItemAttribute> getOrderItemAttributes()
          A list of arbitrary attributes added to this item.
 List<OrderItemPriceDetail> getOrderItemPriceDetails()
          Collection of priceDetails for this orderItem.
 List<OrderItemQualifier> getOrderItemQualifiers()
          If any quantity of this item was used to qualify for an offer, then this returned list will indicate the offer and the relevant quantity.
 OrderItemType getOrderItemType()
           
 PersonalMessage getPersonalMessage()
           
 Money getPrice()
          Deprecated. Delegates to getAveragePrice()
 Money getPriceBeforeAdjustments(boolean allowSalesPrice)
          Returns the unit price of this item.
 int getQuantity()
          The quantity of this OrderItem.
 Money getRetailPrice()
          The retail price of the item that was added to the Order at the time that this was added.
 Money getSalePrice()
          Returns the salePrice for this item.
 Money getTaxablePrice()
          Deprecated. If the item is taxable, returns getAveragePrice() It is recommended instead that tax calculation engines use the #getTotalTaxableAmount() which provides the taxable total for all quantities of this item. This method suffers from penny rounding errors in some situations.
 Money getTotalAdjustmentValue()
          Returns the total for all item level adjustments.
 Money getTotalPrice()
          Returns the total price to be paid for this order item including item-level adjustments.
 boolean isDiscountingAllowed()
          If true, this item can be discounted..
 boolean isInCategory(String categoryName)
           
 boolean isRetailPriceOverride()
          Returns true if the retail price was manually set.
 boolean isSalePriceOverride()
          Returns true if the sale price was manually set.
 Boolean isTaxable()
          Returns whether or not this item is taxable.
 int removeAllAdjustments()
          Removes all adjustment for this order item and reset the adjustment price.
 void removeAllCandidateItemOffers()
          Removes all candidate offers.
 void setCandidateItemOffers(List<CandidateItemOffer> candidateItemOffers)
           
 void setCategory(Category category)
           
 void setDiscountingAllowed(boolean discountingAllowed)
          Turns off discount processing for this line item.
 void setGiftWrapOrderItem(GiftWrapOrderItem giftWrapOrderItem)
           
 void setId(Long id)
          Sets the unique id of the OrderItem.
 void setName(String name)
          Sets the name of this order item.
 void setOrder(Order order)
          Sets the order for this orderItem.
 void setOrderItemAdjustments(List<OrderItemAdjustment> orderItemAdjustments)
          Deprecated. Item level adjustments are now stored at the OrderItemPriceDetail level instead to prevent unnecessary item splitting of OrderItems when evaluating promotions in the pricing engine.
 void setOrderItemAttributes(Map<String,OrderItemAttribute> orderItemAttributes)
          Sets the map of order item attributes.
 void setOrderItemPriceDetails(List<OrderItemPriceDetail> orderItemPriceDetails)
          Returns the list of orderItem price details.
 void setOrderItemQualifiers(List<OrderItemQualifier> orderItemQualifiers)
          Sets the list of OrderItemQualifiers
 void setOrderItemType(OrderItemType orderItemType)
           
 void setPersonalMessage(PersonalMessage personalMessage)
           
 void setPrice(Money price)
          Deprecated. Calling this method is the same as calling the following: setRetailPrice(Money) setSalePrice(Money) #setRetailPriceOverride(true) #setSalePriceOverride(true) #setDiscountingAllowed(false) This has the effect of setting the price in a way that no discounts or adjustments can be made.
 void setQuantity(int quantity)
          Sets the quantity of this item
 void setRetailPrice(Money retailPrice)
          Calling this method will manually set the retailPrice.
 void setRetailPriceOverride(boolean override)
          Indicates that the retail price was manually set.
 void setSalePrice(Money salePrice)
          Calling this method will manually set the salePrice.
 void setSalePriceOverride(boolean override)
          Indicates that the sale price was manually set.
 void setTaxable(Boolean taxable)
          Sets whether or not this item is taxable.
 boolean updateSaleAndRetailPrices()
          Used to reset the base price of the item that the pricing engine uses.
 

Method Detail

getId

Long getId()
The unique identifier of this OrderItem

Returns:

setId

void setId(Long id)
Sets the unique id of the OrderItem. Typically left null for new items and Broadleaf will set using the next sequence number.

Parameters:
id -

getOrder

Order getOrder()
Reference back to the containing order.

Returns:

setOrder

void setOrder(Order order)
Sets the order for this orderItem.

Parameters:
order -

getRetailPrice

Money getRetailPrice()
The retail price of the item that was added to the Order at the time that this was added. This is preferable to use as opposed to checking the price of the item that was added from the catalog domain (like in DiscreteOrderItem, using DiscreteOrderItem.getSku()'s retail price) since the price in the catalog domain could have changed since the item was added to the Order.

Returns:

setRetailPrice

void setRetailPrice(Money retailPrice)
Calling this method will manually set the retailPrice. To avoid the pricing engine resetting this price, you should also make a call to #setRetailPriceOverride(true) Consider also calling setDiscountingAllowed(boolean) with a value of false to restrict discounts after manually setting the retail price.

Parameters:
retailPrice -

setRetailPriceOverride

void setRetailPriceOverride(boolean override)
Indicates that the retail price was manually set. A typical usage might be for a CSR who has override privileges to control setting the price. This will automatically be set by calling setRetailPrice(Money)


isRetailPriceOverride

boolean isRetailPriceOverride()
Returns true if the retail price was manually set. If the retail price is manually set, calls to updatePrices() will not do anything.

Returns:

getSalePrice

Money getSalePrice()
Returns the salePrice for this item. Note this method will return the lower of the retailPrice or salePrice. It will return the retailPrice instead of null. For SKU based pricing, a call to updateSaleAndRetailPrices() will ensure that the retailPrice being used is current.

Returns:

setSalePrice

void setSalePrice(Money salePrice)
Calling this method will manually set the salePrice. It will also make a call to #setSalePriceSetManually(true) To avoid the pricing engine resetting this price, you should also make a call to #setSalePriceOverride(true) Typically for DiscreteOrderItems, the prices will be set with a call to updateSaleAndRetailPrices() which will use the Broadleaf dynamic pricing engine or the values directly tied to the SKU.

Parameters:
salePrice -

setSalePriceOverride

void setSalePriceOverride(boolean override)
Indicates that the sale price was manually set. A typical usage might be for a CSR who has override privileges to control setting the price. Consider also calling setDiscountingAllowed(boolean) with a value of false to restrict discounts after manually setting the retail price. If the salePrice is not lower than the retailPrice, the system will return the retailPrice when a call to getSalePrice() is made.


isSalePriceOverride

boolean isSalePriceOverride()
Returns true if the sale price was manually set. If the retail price is manually set, calls to updatePrices() will not do anything.

Returns:

getAdjustmentValue

Money getAdjustmentValue()
Deprecated. Delegates to getAverageAdjustmentValue() instead but this method is of little or no value in most practical applications unless only simple promotions are being used.

Returns:

getPrice

Money getPrice()
Deprecated. Delegates to getAveragePrice()

Returns:

setPrice

void setPrice(Money price)
Deprecated. Calling this method is the same as calling the following: setRetailPrice(Money) setSalePrice(Money) #setRetailPriceOverride(true) #setSalePriceOverride(true) #setDiscountingAllowed(false) This has the effect of setting the price in a way that no discounts or adjustments can be made.

Parameters:
price -

getQuantity

int getQuantity()
The quantity of this OrderItem.

Returns:

setQuantity

void setQuantity(int quantity)
Sets the quantity of this item


getOrderItemPriceDetails

List<OrderItemPriceDetail> getOrderItemPriceDetails()
Collection of priceDetails for this orderItem. Without discounts, an orderItem would have exactly 1 ItemPriceDetail. When orderItem discounting or tax-calculations result in an orderItem having multiple prices like in a buy-one-get-one free example, the orderItem will get an additional ItemPriceDetail. Generally, an OrderItem will have 1 ItemPriceDetail record for each uniquely priced version of the item.


setOrderItemPriceDetails

void setOrderItemPriceDetails(List<OrderItemPriceDetail> orderItemPriceDetails)
Returns the list of orderItem price details.

Parameters:
orderItemPriceDetails -
See Also:
#getOrderItemPriceDetails()}

getCategory

Category getCategory()

setCategory

void setCategory(Category category)

getCandidateItemOffers

List<CandidateItemOffer> getCandidateItemOffers()

setCandidateItemOffers

void setCandidateItemOffers(List<CandidateItemOffer> candidateItemOffers)

getOrderItemAdjustments

List<OrderItemAdjustment> getOrderItemAdjustments()
Returns item level adjustment for versions of Broadleaf Commerce prior to 2.3.0 which replaced this concept with OrderItemPriceDetail adjustments.

Returns:
a List of OrderItemAdjustment

setOrderItemAdjustments

void setOrderItemAdjustments(List<OrderItemAdjustment> orderItemAdjustments)
Deprecated. Item level adjustments are now stored at the OrderItemPriceDetail level instead to prevent unnecessary item splitting of OrderItems when evaluating promotions in the pricing engine.


getOrderItemQualifiers

List<OrderItemQualifier> getOrderItemQualifiers()
If any quantity of this item was used to qualify for an offer, then this returned list will indicate the offer and the relevant quantity. As an example, a BuyOneGetOneFree offer would have 1 qualifier and 1 adjustment.

Returns:
a List of OrderItemAdjustment

setOrderItemQualifiers

void setOrderItemQualifiers(List<OrderItemQualifier> orderItemQualifiers)
Sets the list of OrderItemQualifiers


getPersonalMessage

PersonalMessage getPersonalMessage()

setPersonalMessage

void setPersonalMessage(PersonalMessage personalMessage)

isInCategory

boolean isInCategory(String categoryName)

getGiftWrapOrderItem

GiftWrapOrderItem getGiftWrapOrderItem()

setGiftWrapOrderItem

void setGiftWrapOrderItem(GiftWrapOrderItem giftWrapOrderItem)

getOrderItemType

OrderItemType getOrderItemType()

setOrderItemType

void setOrderItemType(OrderItemType orderItemType)

getTaxablePrice

Money getTaxablePrice()
Deprecated. If the item is taxable, returns getAveragePrice() It is recommended instead that tax calculation engines use the #getTotalTaxableAmount() which provides the taxable total for all quantities of this item. This method suffers from penny rounding errors in some situations.

Returns:

getIsOnSale

boolean getIsOnSale()
Default implementation uses getSalePrice() < getRetailPrice()

Returns:

isDiscountingAllowed

boolean isDiscountingAllowed()
If true, this item can be discounted..


setDiscountingAllowed

void setDiscountingAllowed(boolean discountingAllowed)
Turns off discount processing for this line item.

Parameters:
disableDiscounts -

getIsDiscounted

boolean getIsDiscounted()
Returns true if this item received a discount.

Returns:

getName

String getName()
Generally copied from the Sku.getName()

Returns:

updateSaleAndRetailPrices

boolean updateSaleAndRetailPrices()
Used to reset the base price of the item that the pricing engine uses. Generally, this will update the retailPrice and salePrice based on the corresponding value in the SKU. If the retail or sale price was manually set, this method will not change those prices. For non-manually set prices, prices can change based on system activities such as locale changes and customer authentication, this method is used to ensure that all cart items reflect the current base price before executing other pricing / adjustment operations. Other known scenarios that can effect the base prices include the automatic bundling or loading a stale cart from the database. See notes in subclasses for specific behavior of this method.

Returns:
true if the base prices changed as a result of this call

finalizePrice

void finalizePrice()
Called by the pricing engine after prices have been computed. Allows the system to set the averagePrice that is stored for the item.


setName

void setName(String name)
Sets the name of this order item.

Parameters:
name -

clone

OrderItem clone()

assignFinalPrice

void assignFinalPrice()
Used to set the final price of the item and corresponding details.

Parameters:
useSalePrice -

getPriceBeforeAdjustments

Money getPriceBeforeAdjustments(boolean allowSalesPrice)
Returns the unit price of this item. If the parameter allowSalesPrice is true, will return the sale price if one exists.

Parameters:
allowSalesPrice -
Returns:

addCandidateItemOffer

void addCandidateItemOffer(CandidateItemOffer candidateItemOffer)
Used by the promotion engine to add offers that might apply to this orderItem.

Parameters:
candidateItemOffer -

removeAllCandidateItemOffers

void removeAllCandidateItemOffers()
Removes all candidate offers. Used by the promotion engine which subsequently adds the candidate offers that might apply back to this item.


removeAllAdjustments

int removeAllAdjustments()
Removes all adjustment for this order item and reset the adjustment price.


getOrderItemAttributes

Map<String,OrderItemAttribute> getOrderItemAttributes()
A list of arbitrary attributes added to this item.


setOrderItemAttributes

void setOrderItemAttributes(Map<String,OrderItemAttribute> orderItemAttributes)
Sets the map of order item attributes.

Parameters:
orderItemAttributes -

getAveragePrice

Money getAveragePrice()
Returns the average unit display price for the item. Some implementations may choose to show this on a view cart screen. Due to fractional discounts, it the display could represent a unit price that is off. For example, if this OrderItem had 3 items at $1 each and also received a $1 discount. The net effect under the default rounding scenario would be an average price of $0.666666 Most systems would represent this as $0.67 as the discounted unit price; however, this amount times 3 ($2.01) would not equal the getTotalPrice() which would be $2.00. For this reason, it is not recommended that implementations utilize this field. Instead, they may choose not to show the unit price or show multiple prices by looping through the OrderItemPriceDetails.

Returns:

getAverageAdjustmentValue

Money getAverageAdjustmentValue()
Returns the average unit item adjustments. For example, if this item has a quantity of 2 at a base-price of $10 and a 10% discount applies to both then this method would return $1. Some implementations may choose to show this on a view cart screen. Due to fractional discounts, the display could represent a unit adjustment value that is off due to rounding. See getAveragePrice() for an example of this. Implementations wishing to show unit prices may choose instead to show the individual OrderItemPriceDetails instead of this value to avoid the rounding problem. This would result in multiple cart item display rows for each OrderItem. Alternatively, the cart display should use getTotalAdjustmentValue().

Returns:

getTotalAdjustmentValue

Money getTotalAdjustmentValue()
Returns the total for all item level adjustments. For example, if the item has a 2 items priced at $10 a piece and a 10% discount applies to both quantities. This method would return $2.

Returns:

getTotalPrice

Money getTotalPrice()
Returns the total price to be paid for this order item including item-level adjustments. It does not include the effect of order level adjustments. Calculated by looping through the orderItemPriceDetails

Returns:

isTaxable

Boolean isTaxable()
Returns whether or not this item is taxable. If this flag is not set, it returns true by default

Returns:
the taxable flag. If null, returns true

setTaxable

void setTaxable(Boolean taxable)
Sets whether or not this item is taxable. Generally, this has been copied from the setting of the relevant SKU at the time it was added.

Parameters:
taxable -


Copyright © 2013. All Rights Reserved.