My client sells products from the UK to EU member countries and worldwide. The site is built on Expresso Store 2.5.

Product prices have been entered inclusive of tax and a tax rate of 20% UK VAT has been created applicable to EU member countries. I've also checked the box included in price for this tax rate.

If a customer from outside the EU comes to purchase from the site, the 20% VAT should not be charged. I had assumed 20% should be deducted from the the value of the basket but this doesn't appear to be the case.

Customers outside the EU are being charged the same price, just the VAT breakdown is not shown. They should really pay the price - less the tax, but I cannot work out how to set this up. I've tried setting up a 'Tax Exempt' tax rate but this didn't work.

I tried alternatively entering prices exclusive of tax but it became problematic displaying prices inclusive of tax (to EU customers) on the product pages. This also produced the tax rounding issues associated with Store v1.

I've studied other e-commerce sites and they manage to charge the lower price and get around tax-rounding issues. Has anyone experienced similar difficulties setting up Store?

1 Answer 1


In short you will have to use tax-exclusive pricing or develop an extension that would actually subtract the 20% for orders outside of the EU. The reason for this is that if you set a product to $50.00 with tax inclusive pricing and a tax of 20% your actual item price would be $41.67 but at the same time if you have a tax inclusive price of $50 and a 0% tax the item amount jumps to $50 and the tax is $0. So Store is actually calculating the totals correctly just not how you want them to be calculated.

If I remember correctly in either the 2.2 or 2.3 release the Store team had a bug fix that helped with rounding issues associated with taxes and sales percentages so that should address most of the issues that you have with tax-exclusive pricing (albeit a pain in the butt to have the content editors calculate the totals). It should also be mentioned that you you can enter prices to 4 decimal places to help with rounding issues

$41.6666 * 1.2 = 49.99992 
$41.6667 * 1.2 = 50.00004

This is why I recommend going with the extension approach because you could calculate the totals and adjustments pragmatically and keep a simple publishing approach for your content creators.

There is however another possible option depending on your product complexity if you are not comfortable with PHP (this should really only be considered as a last resort). You would keep your tax-inclusive pricing option that you have currently set you would then add a "variable single sku" option to your products with a specific name lets say "country" as an example with 2 options EU and Not EU. Where EU has no price modification and Not EU has a value of negative whatever to get the items actual price. Then in your template you would need to somehow gather the users location via IP2Location or similar. Then you would need to have some logic for your country modifier to preselect the proper modifier based upon the users location.

(Let me say again that the other possible solution above is not the ideal situation and I would really not recommend that you use an approach like that but it does it work if you absolutely have no other option.)

  • Justin - thank you for your exhaustive answer. You have provided me quite a few options to try. I hadn't realised that prices could be entered to 4 decimal places in Store. As you mention this should resolve the rounding issues. I was 95% there when I tried the tax-exclusive route before. I had created an additional field for 'UK Display Price' to use on the product pages of the website. Mar 14, 2015 at 10:24
  • Hello @Stephen Ireland just wondered if this was resolved as we have similar challenges.
    – paulcripps
    Aug 10, 2016 at 13:11
  • @paulcripps apologies for the delay getting back to you. I've not changed my approach as mentioned in the comment above. Occasionally the rounding to 4 decimal places still isn't enough and we get the odd order through with 1 pence added. The key though was to have a separate numeric field for a display price. I.e. an Inc VAT price. This could be tricky though if you have lots of modifiers that change the price also. If you can share some more information on what you need to do I can help troubleshoot. Aug 16, 2016 at 15:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.