public BigDecimal getGroundTotal(MyCart myCart, String voucherKey) {
		
		BigDecimal total = getSubTotal(myCart);
		
		if ( total.compareTo(DEFAULT_TOTAL) != 1 ) return DEFAULT_TOTAL; // for case subTotal <= 0
		
		BigDecimal totalDeductionByBundleDiscount = getTotalAmountSavedFromBundle(myCart);
		BigDecimal totalDeductionByVoucher = getTotalAmountSavedFromVoucher(myCart, voucherKey);
		
		if ( getVoucherIncludeShippingFeeFlag() ) total = total.add(getShippingFee()).subtract(totalDeductionByBundleDiscount).subtract(totalDeductionByVoucher);
		else total = total.subtract(totalDeductionByBundleDiscount).subtract(totalDeductionByVoucher).add(getShippingFee());
		
		total = total.add( total.multiply(getTax()) );
		
		return total.setScale(2, BigDecimal.ROUND_HALF_UP);
		
	} // end getGroundTotal