I'm working with an inherited site, and after changing the tax rules so it ensured that customers from the Channel Islands who chose the UK as their country were not charged tax (using this method: http://www.jimcode.org/2011/08/guernsey-jersey-gstvat-rates-magento/ where it looks at the postcode as well)
, the site now calculates the catalog price incorrectly as it re-adds the tax onto the price. Eg. price in set in admin as £99.99 (incl tax), but on the frontend, it shows as £119.99 (incl tax).
My settings are:
Magento Version: 1.9.1.0
Catalog prices: Including tax
Tax Calculation Based On: Delivery Address
Default Tax Destination Calculation Default Country: United Kingdom
Enable Cross Border Trade: No
Shipping Settings Origin Country: United Kingdom
On searching where people have had a similar problem, people say to change the shipping origin country, but my tax calculation needs to be based on the delivery address.
Even if I revert my tax rules to the previous default settings, it does not fix the problem. I've reindexed, cleared cache, resaved a product, resaved the config settings ... but can't get it working.
I'm thinking that perhaps there has been some sort of corruption maybe? Do I need to run some sort of 'recalculate tax' perhaps?
Turns out that in the tax_calculation_rate table, one of the rows had NULL in the tax_postcode column. In my case, it needed to be empty.