How to Set Up VAT and Tax in WooCommerce (UK and EU)

One setting decides whether your £24 product costs £24 or £28.80: set up VAT and tax in WooCommerce for a UK shop that also sells to the EU.

Watch the tutorial

This tutorial builds the tax setup from scratch in a fresh test shop, using only stock WooCommerce: whether you enter prices with or without VAT, how prices show in the shop and cart, tax classes (standard, reduced and zero rate), the tax rates table for the UK and Ireland, VAT on shipping, and a test at checkout. Then we go through the four most common mistakes. No code needed.

Also on YouTube (opens in a new tab)

Read the transcript

One setting decides whether your £24 product costs £24, or £28.80. Here's how to set up VAT in WooCommerce, for a UK shop that also sells to the EU. We'll build it in a fresh test shop, using only what comes with WooCommerce. This shows how WooCommerce works. It isn't tax advice, so check your own VAT rules with an accountant. First, how WooCommerce works out tax. You enter each price either with VAT included, or without it. You choose which, once, in the tax settings. Each product has a tax class: standard rate, reduced rate, or zero rate. Each class has a table of rates, with a row for each country. WooCommerce uses the row that matches the customer's address. Then it shows the price in the shop and cart, with or without VAT. Those display settings are separate from how you enter prices.

Open WooCommerce, then Settings. On the General tab, tick Enable tax rates and calculations, and save. A new Tax tab appears. Open it.

Prices entered with tax: we'll type our prices with VAT included, so we choose Yes, I will enter prices inclusive of tax. The question mark says to enter prices including your own country's rate. Calculate tax based on: choose Customer shipping address, so the rate follows where the order is going. Shop base address would charge everyone your own country's rate. Leave Shipping tax class on based on cart items. We'll come back to it. Display prices in the shop, and during cart and checkout, are separate settings. WooCommerce warns if they don't match how you enter prices, so we'll set both to Including tax. In Price display suffix, type inc. VAT, so customers can see what each price includes. Display tax totals can be Itemized, or a single total. We'll keep Itemized. Then save.

Tax classes let you charge different VAT rates on different products. WooCommerce comes with Standard rate, plus Reduced rate and Zero rate, listed here under Additional tax classes. You can add your own, one per line. Now open a product. On the General tab, the price says it includes tax, and Tax class is Standard. For this demo only, we'll put Sunrise Blend on Reduced rate. Choose the class, then click Update. We've done the same for the paper filters, and put them on Zero rate. Tax status can also be Shipping only, or None. None charges no tax, like zero rate, but a zero rate product stays in a tax class of its own.

Now the rates. Open Standard rates. Each row has a country code, optional state, postcode and city, then a rate and a name. Click Insert row. The country code is GB, the rate is twenty percent, and the name is VAT. Priority one is fine: WooCommerce uses one matching rate for each priority. Compound stays unticked. It's for taxes charged on top of other taxes, which VAT isn't. Shipping is ticked by default, so this rate applies to shipping too. To give another country its own rate, add a row for it. Here's Ireland: code IE, at twenty-three percent. Save changes. For a long list, you can import a CSV file instead of typing each row. Reduced rate rates work the same way. Add GB at five percent. A zero rate row is optional, because no row also means no tax. We'll add GB at zero percent, so the table is complete.

Now the shop. Prices show including VAT, with our suffix: £24.00, inc. VAT. If you sell mostly to businesses, you can show prices without VAT. Set Display prices in the shop to Excluding tax, and the suffix to ex. VAT. Now the shop shows £20.00, ex. VAT. The cart and checkout have their own setting, so they still show prices including VAT. WooCommerce warns that mixing the two can cause rounding errors. We'll put the shop back to Including tax, and the suffix to inc. VAT.

Now shipping. Here's a flat rate of £4.95, with Tax status set to Taxable. Shipping costs are always entered without tax, so WooCommerce adds VAT on top. Here that makes £5.94. Shipping is taxed when the Shipping box on the rate is ticked, and Tax status is Taxable. Which rate it gets depends on Shipping tax class. Based on cart items, shipping gets the standard rate if any item is standard rate. A cart with only reduced rate items gets the reduced rate on shipping. Or you can pick one class for all shipping.

Time to test. The dripper is in the basket, and the address is in the UK. The price is £24.00, shipping is £5.94, and the total is £29.94, including £4.99 of VAT. Now change the country to Ireland. The price becomes £24.60. Our prices include VAT, so WooCommerce takes out the UK rate and puts in the Irish rate, on the same £20 before VAT. The total is £33.83, including £6.33 of VAT. Always test each country you sell to, the way a customer would.

Now some common mistakes. The first is changing Prices entered with tax after you've added products. Choose No, and WooCommerce now reads £24.00 as the price before VAT. The shop now shows £28.80. No product changed, only how WooCommerce reads it. The question mark warned us: changing this option will not update existing products. So choose it first, or re-enter your prices.

The second is a country with no row. Here's a customer in Germany. We have no row for Germany, so there's no VAT, and our VAT-inclusive price falls to £20.00. If you do charge VAT in a country, it needs a row in the rates table.

The third is a product left on the wrong tax class. Here the paper filters are still on Standard rate. The price looks right, £6.00, but the order includes £1.99 of VAT, because the filters and the shipping are both taxed. Open the product, and choose Zero rate. Now the VAT line disappears.

The fourth is expecting tax-exempt customers. WooCommerce has no built-in setting to exempt a customer from tax, and the checkout has no VAT number field. For that, you need an extension, or custom code. The same goes for checking EU VAT numbers.

To recap: choose how you enter prices, and set the display settings separately. Give each product a tax class, and each class a row for every country you charge. Remember that shipping tax follows your settings, and test from a few different countries. This video covered UK and EU VAT. If you sell in the US, sales tax works differently, and we haven't covered it here. Everything shown is stock WooCommerce. Thanks for watching.

What you will learn

  • Where to switch on taxes and what "Prices entered with tax" really changes
  • How "Calculate tax based on" (customer shipping address, billing address or shop base) decides which rate is used
  • How to show prices including or excluding VAT in the shop and in the cart and checkout, and how to add a price suffix such as inc. VAT
  • How tax classes work: standard rate, reduced rate and zero rate, and how Tax status (Taxable, Shipping only, None) fits in
  • How to add rows to the tax rates table for each country, and what the Priority, Compound and Shipping columns do
  • How shipping is taxed: flat rate costs are entered without tax, and the Shipping tax class setting decides the rate
  • How to test the result at checkout for a UK and an Irish customer
  • Four common mistakes: changing how prices are entered after adding products, a country with no tax row, a product left on the wrong tax class, and expecting built-in tax-exempt customers or VAT number checks

Good to know

This shows how WooCommerce behaves. It is not tax or legal advice, so check your own VAT rules with an accountant. The rates in the video (UK 20%, 5% and 0%, Ireland 23%) are demo values for the test shop, not a statement of what applies to your products. Everything shown is stock WooCommerce (version 11.2 in this video) with no extra plugins, and screens may look slightly different in other versions. This tutorial covers UK and EU VAT only; US sales tax works differently and has its own tutorial. Filmed on a demo shop (Marlow Lane Coffee) with sample products and prices. The voice-over is a computer-generated voice.