com.softslate.commerce.businessobjects.order
Interface CartDiscountProcessor

All Known Implementing Classes:
BasicCartDiscountProcessor

public interface CartDiscountProcessor

Interface for business logic methods having to do with discounts in a user's cart.

CartProcessor employs an instance implementing CartDiscountProcessor when discounting needs to be processed.

When the application needs to create an instance that implements CartDiscountProcessor, BusinessObjectFactory finds the name of the Java class to instantiate from the "cartDiscountProcessorImplementer" setting in the appComponents.properties file.

The default "cartDiscountProcessorImplementer" is BasicCartDiscountProcessor.

Author:
David Tobey
See Also:
InventoryProcessor

Method Summary
 java.util.Map defineDiscountSettings(Product product, java.util.Collection attributeSKUCollection, java.util.Collection storeDiscounts)
          Inspects a Product and returns a Map of useful variables related to the state of the product's discounts.
 boolean isDiscountOk(Discount discount, java.lang.Double previousOrderTotal)
          Checks that a given discount is applicable.
 boolean isDiscountOkIfItemInCart(Discount discount, java.lang.Double previousOrderTotal, java.lang.String productCode)
          Checks if a given discount would be applicable, if the given product code were in the user's cart.
 java.util.Map processAddItems(java.util.Collection orderItems)
          Processes discounts upon adding an item or items to the user's cart.
 java.util.Map processAfterTaxes(java.util.Map parameters)
          Processes discounts after shipping and taxes have been calculated.
 java.util.Map processCouponCode(java.util.Map parameters)
          Processes discounts as a user enters a coupon code.
 java.util.Map processCustomerLogin(java.util.Map parameters)
          Processes discounts as a customer logs in.
 java.util.Map processCustomerLogout(java.util.Map parameters)
          Processes discounts as a customer logs out.
 java.util.Map processOnCheckout(java.util.Map parameters)
          Processes discounts during checkout, as taxes and shipping are processed.
 java.util.Map processOrderComplete(java.util.Map parameters)
          Processes discounts as a user's order is completed.
 java.util.Map processRemoveDiscounts()
          Removes all the discounts in the current user's cart.
 

Method Detail

processAddItems

java.util.Map processAddItems(java.util.Collection orderItems)
                              throws java.lang.Exception
Processes discounts upon adding an item or items to the user's cart. The default implementation simply calls BasicCartDiscountProcessor.processDiscounts(Collection)

Parameters:
orderItems - The collection of OrderItem objects being added to the cart.
Returns:
A Map containing results of the processing. The default implementation returns null.
Throws:
java.lang.Exception

processOnCheckout

java.util.Map processOnCheckout(java.util.Map parameters)
                                throws java.lang.Exception
Processes discounts during checkout, as taxes and shipping are processed. The default implementation simply calls BasicCartDiscountProcessor.processDiscounts(Collection)

Parameters:
parameters - A Map with any parameters needed for the processing. The default implementation does not use this argument.
Returns:
A Map containing results of the processing. The default implementation returns null.
Throws:
java.lang.Exception

processAfterTaxes

java.util.Map processAfterTaxes(java.util.Map parameters)
                                throws java.lang.Exception
Processes discounts after shipping and taxes have been calculated. This is so that if there are any gift certificates, they may be applied against the order's total rather than its subtotal as is the case with regular discounts. The default implementation simply calls BasicCartDiscountProcessor.processDiscounts(Collection)

Parameters:
parameters - A Map with any parameters needed for the processing. The default implementation does not use this argument.
Returns:
A Map containing results of the processing. The default implementation returns null.
Throws:
java.lang.Exception

processCouponCode

java.util.Map processCouponCode(java.util.Map parameters)
                                throws java.lang.Exception
Processes discounts as a user enters a coupon code. The default implementation simply calls BasicCartDiscountProcessor.processDiscounts(Collection)

Parameters:
parameters - A Map with any parameters needed for the processing. The default implementation does not use this argument.
Returns:
A Map containing results of the processing. The default implementation returns null.
Throws:
java.lang.Exception

processCustomerLogin

java.util.Map processCustomerLogin(java.util.Map parameters)
                                   throws java.lang.Exception
Processes discounts as a customer logs in. Some discounts only apply if the user is logged in as a customer, so discounts must be rerun. The default implementation simply calls BasicCartDiscountProcessor.processDiscounts(Collection)

Parameters:
parameters - A Map with any parameters needed for the processing. The default implementation does not use this argument.
Returns:
A Map containing results of the processing. The default implementation returns null.
Throws:
java.lang.Exception

processCustomerLogout

java.util.Map processCustomerLogout(java.util.Map parameters)
                                    throws java.lang.Exception
Processes discounts as a customer logs out. Some discounts only apply if the user is logged in as a customer, so discounts must be rerun. The default implementation simply calls BasicCartDiscountProcessor.processDiscounts(Collection)

Parameters:
parameters - A Map with any parameters needed for the processing. The default implementation does not use this argument.
Returns:
A Map containing results of the processing. The default implementation returns null.
Throws:
java.lang.Exception

processOrderComplete

java.util.Map processOrderComplete(java.util.Map parameters)
                                   throws java.lang.Exception
Processes discounts as a user's order is completed. The default implementation simply calls BasicCartDiscountProcessor.processDiscounts(Collection)

Parameters:
parameters - A Map with any parameters needed for the processing. The default implementation does not use this argument.
Returns:
A Map containing results of the processing. The default implementation returns null.
Throws:
java.lang.Exception

processRemoveDiscounts

java.util.Map processRemoveDiscounts()
                                     throws java.lang.Exception
Removes all the discounts in the current user's cart. Updates the cart totals accordingly. Called before items are removed from the cart by BasicCartProcessor.processRemoveItem(OrderItem)

Returns:
A Map containing results of the processing. The default implementation returns null.
Throws:
java.lang.Exception

isDiscountOk

boolean isDiscountOk(Discount discount,
                     java.lang.Double previousOrderTotal)
                     throws java.lang.Exception
Checks that a given discount is applicable. Used by discount processing to help determine which discounts to apply, and in the presentation to determine which discounts to display to the user.

Parameters:
discount - The discount whose applicability is being checked.
previousOrderTotal - The previous order total of the current user, or null. Some discounts are only applicable if the user has previously placed orders totaling a certain amount.
Returns:
true, the discount is applicable, otherwise, false.
Throws:
java.lang.Exception

isDiscountOkIfItemInCart

boolean isDiscountOkIfItemInCart(Discount discount,
                                 java.lang.Double previousOrderTotal,
                                 java.lang.String productCode)
                                 throws java.lang.Exception
Checks if a given discount would be applicable, if the given product code were in the user's cart. Used by the presentation layer to communicate the discounts that would be available if the item were added to the cart.

Parameters:
discount - The discount whose applicability is being checked.
previousOrderTotal - The previous order total of the current user, or null. Some discount are only applicable if the user has previously placed orders totaling a certain amount.
Returns:
true, the discount is applicable, otherwise, false.
Throws:
java.lang.Exception

defineDiscountSettings

java.util.Map defineDiscountSettings(Product product,
                                     java.util.Collection attributeSKUCollection,
                                     java.util.Collection storeDiscounts)
                                     throws java.lang.Exception
Inspects a Product and returns a Map of useful variables related to the state of the product's discounts.

Parameters:
product -
attributeSKUCollection - An optional Collection of attribute-only SKUs used to define the inventory settings that are returned.
storeDiscounts - An optional Collection of global, store discounts, used to determine if "promotions" for the product exist, ie, discounts that would be applied if the product were added to the cart.
Returns:
A Map of variables related to the product's discounts.
Throws:
java.lang.Exception


Copyright © SoftSlate, LLC 2003–2005