public BigDecimal getTotalAmountSavedFromVoucher(MyCart myCart, String voucherKey) {
		
		BigDecimal subTotal = getSubTotal(myCart);
		
		// return $0 if no item in shopping list or no voucher key given
		List<Voucher> availableVouchers = getVoucherList();
		if ( myCart == null || myCart.getOrderList().isEmpty() || availableVouchers == null || availableVouchers.isEmpty() 
				|| voucherKey == null || voucherKey.trim().equals("") ) return DEFAULT_TOTAL;
		
		for (Voucher voucher : availableVouchers) {
			if ( voucher.voucherIsReadyToUse(voucherKey, subTotal) ) {
				setVoucherIncludeShippingFeeFlag( voucher.getIncludeShippingFeeFlag() );
				return voucher.getVoucherValueType() == Voucher.VOUCHER_VALUE_FIX ? 
						voucher.getVoucherValue() : subTotal.multiply(voucher.getVoucherValue());
			}
		}
		
		return new BigDecimal("0.00");
		
	} // end getTotalDeductionByVoucher