Ajax Cart Template: cart summary does not reflect VAT when changing country/state from dropdown
I couldn't believe this feature is not already available, but was told by support to submit a request.
Problem: when a user selects a country from the drop down list that should have TAX/VAT applied (according to configured tax rules), the VAT amount is not reflected in the cart summary. Instead the VAT is added to the invoice and appears on the checkout. This is confusing for the client, as they see one price during the order process, and then when they go to pay VAT is added, but users don't know this as the payment page does not indicate VAT.
You can reproduce this by following these steps:
1. Go to https://www.properhost.com/members/cart.php (this order form is a customized version of the Ajax cart template)
2. Go through to the last step, and change country to Norway. A Norwegian tax rule (25%) is already set up in WHMCS.
3. The order summary on the right does not update. It still shows the amount without VAT.
4. If you complete the order and submit the form, VAT is added to the total amount but it does not show that to the user. They are just presented with a larger bill than what they saw on the order form.
This is bad user experience and very misleading.
On the last step, after changing country to Norway, if you submit the form (without all fields filled in to trigger the validation failure), and then enter a coupon code (e.g. "mage50off"), you will see the VAT is added to the summary. It therefore seems like the VAT calculation is not run until the last step in the order process. It should be run when the country/state dropdowns changes. I believe it is not too much work as you only need to send an Ajax request when changing the dropdown, applying the tax calculation based on the selected country, and then recalculate the summary.
Just to reiterate; the actual tax calculation/rules are not broken. Invoices are generated correctly with VAT. The problem is only with the Ajax cart template.
Please consider fixing this in the next version.