package com.salesmanager.core.modules.order.total; import com.salesmanager.core.model.catalog.product.Product; import com.salesmanager.core.model.customer.Customer; import com.salesmanager.core.model.merchant.MerchantStore; import com.salesmanager.core.model.order.OrderSummary; import com.salesmanager.core.model.order.OrderTotal; import com.salesmanager.core.model.shoppingcart.ShoppingCartItem; import com.salesmanager.core.modules.Module; /** * Calculates order total based on specific * modules implementation * @author carlsamson * */ public interface OrderTotalPostProcessorModule extends Module { /** * Uses the OrderSummary and external tools for applying if necessary * variations on the OrderTotal calculation. * @param orderSummary * @param shoppingCartItem * @param product * @param customer * @param store * @return * @throws Exception */ OrderTotal caculateProductPiceVariation(final OrderSummary summary, final ShoppingCartItem shoppingCartItem, final Product product, final Customer customer, final MerchantStore store) throws Exception; }