If your ecommerce website is based in the European union then you're probably going to want to conform to the EU trading rules when adding VAT to your online sales.
Here in the UK the following rules apply:
- VAT is always added when selling to a customer in the UK.
- VAT is always added when selling to a customer in the EU if they do not have a valid VAT number.
- VAT should NOT be added when selling to a customer in the EU if they DO have a valid VAT number.
- VAT should NOT be added when selling to a customer from outside in the EU.
There's a great blog post from Rune at Tea Commerce that describes how to write the appropriate code to apply these rules so I shall not be duplicating that here. Instead I'll just show you how to configure things in the Tea Commerce section of Umbraco so that it all works smoothly.
Create the VAT groups
The first thing you need to do is create two VAT groups:
The '0%' group should have its rate set to 0%.
The 'VAT' group should have its rate set your countries current rate of VAT, 20% in the UK at the time of writing.
The country specific rates for each group should be left blank.
Assign each country a group
Next you should assign the appropriate group to each of your countries.
All countries that are members of the EU should be assigned the 'VAT' group.
All countries that are outside of the EU should be assigned the '0%' group.
Now whenever the country of the order is changed during the checkout process by the customer, Tea Commerce will automatically work out the rate of VAT according to the VAT group that has been assigned to it.
Why two VAT groups and not one?
You may ask why we create two separate VAT groups rather than just use one group with different 'Country specific VAT' rates set.
Well you could do this and the choice is yours but if you're going to be selling a mixture of VAT and VAT-exempt products or services on your website you'll need more than one group.
Tea Commerce will let you override the VAT group at product level. Useful if you need a special rate for a particular product but if you've only got the one VAT Group you can't.
Also by having the separate groups available you've more flexibility to manipulate the VAT rate of the order in your server side code should some business logic dictate as shown in Rune's blog post.