com.konakart.bl.modules.ordertotal.buyxgetyfree
Class BuyXGetYFree
java.lang.Object
com.konakart.bl.modules.BaseModule
com.konakart.bl.modules.ordertotal.BaseOrderTotalModule
com.konakart.bl.modules.ordertotal.buyxgetyfree.BuyXGetYFree
- All Implemented Interfaces:
- OrderTotalInterface
public class BuyXGetYFree
- extends BaseOrderTotalModule
- implements OrderTotalInterface
Module that creates an OrderTotal object for applying a Buy X Get Y Free discount. The discount
may be applied on prices before or after tax.
The promotion may be activated on a product only if:
- The total amount of the order is greater than a minimum amount
There may be multiple valid promotions applicable for an order. If this is the case, the logic
applied is the following: All cumulative promotions are summed into one order total object. Then
we loop through the order total objects and choose the one that offers the largest discount.
| Methods inherited from class com.konakart.bl.modules.BaseModule |
getBasketMgr, getCatMgr, getConfigMgr, getCurrMgr, getCustMgr, getEmailMgr, getEng, getLangMgr, getMultiStoreMgr, getOrderMgr, getOrderTotalMgr, getPaymentMgr, getProdMgr, getPromMgr, getResourceBundle, getRewardPointMgr, getSecMgr, getShippingMgr, getSolrMgr, getStoreId, getTaxMgr, init, isAvailable |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BuyXGetYFree
public BuyXGetYFree(KKEngIf eng)
throws org.apache.torque.TorqueException,
KKException,
com.workingdogs.village.DataSetException
- Constructor
- Parameters:
eng -
- Throws:
com.workingdogs.village.DataSetException
KKException
org.apache.torque.TorqueException
setStaticVariables
public void setStaticVariables()
throws KKException
- Sets some static variables during setup
- Specified by:
setStaticVariables in interface OrderTotalInterface
- Throws:
KKException
isAvailable
public boolean isAvailable()
throws KKException
- Returns true or false
- Specified by:
isAvailable in interface OrderTotalInterface
- Returns:
- True or False
- Throws:
KKException
getOrderTotal
public OrderTotal getOrderTotal(Order order,
boolean dispPriceWithTax,
java.util.Locale locale)
throws java.lang.Exception
- Create and return an OrderTotal object for the discount amount.
Custom field usage:
- custom2 = Buy Quantity
- custom3 = Free Quantity
- custom1 = Minimum Order Value
- custom4 = Apply discount before tax
If the promotion applies to multiple products, we create an array of order total objects and
attach the array to the order total that we return (ot.setOrderTotals(otArray)). The reason
for doing this is to get a line item of the order for each discounted product. We still need
to populate the order total that we return with the total discount amount because this will
be used to compare this promotion with other promotions in order to decide which one to use.
- Specified by:
getOrderTotal in interface OrderTotalInterface
- Parameters:
order - dispPriceWithTax - locale -
- Returns:
- Returns an OrderTotal object for this module
- Throws:
java.lang.Exception
getSortOrder
public int getSortOrder()
- Specified by:
getSortOrder in interface OrderTotalInterface
- Returns:
- Return the order in which the module gets called and displayed
getCode
public java.lang.String getCode()
- Specified by:
getCode in interface OrderTotalInterface
- Returns:
- Returns the code for the module
Copyright © 2011 DS Data Systems UK Ltd.