Setting up taxes and tax rates is likely one of the first tasks you’ll want to perform when setting up a store. Taxes can be a complex matter, but WooCommerce aims to make setting them up as straightforward as possible. To get started you’ll want to go to WooCommerce > Settings > Tax.
Tax Options ↑ Back to Top
The tax tab displays several options which you can configure to suit your needs – the settings which you choose will ultimately be based on the tax jurisdiction under which your store is located. The following options exist:
Define whether to enable taxes and tax calculations. If taxes are disabled, you can ignore the rest of the options on the page as they will have no effect.
Prices Entered With Tax
This option is perhaps the most important option when it comes to setting up how you manage taxes in your store as it determines how you will input product prices later on.
“Yes, I will enter prices inclusive of tax” would mean all catalog prices are input using your store’s base tax rate.
For example, in the UK you would input prices inclusive of the 20% tax rate e.g. You would enter a product price of £9.99 which includes £1.67 tax. A customer in the UK would pay £9.99 as defined, whereas in this example a customer in the US would only pay £8.32.
“No, I will enter prices exclusive of tax” would mean that your catalog prices need to be tax exclusive.
Using the example from above, a UK shop would enter 8.32 at the product price. A tax of 20% would be applied on top of this during checkout making the amount payable £9.99.
The tax calculation for tax inclusive prices is:
tax_amount = price - ( price / ( ( tax_rate_% / 100 ) + 1 ) )
The tax calculation for tax exclusive prices is:
tax_amount = price * ( tax_rate_% / 100 )
Calculate Tax Based On…
You can choose between:
- Customer billing address
- Customer shipping address (default)
- Store base address
Default Customer Address
When a guest initially visits your store we don’t know their location when calculating taxes and shipping; this setting lets you choose the location we assume they are in, before they enter it.
Shop base address will let the system assume they are in the same location as your shop.
No address will give them no location – taxes won’t be calculated.
Shipping Tax Class
In most setups, shipping tax class is inherited from the item being shipping e.g. shipping a reduced rate item like baby clothes would also used a reduced rate.
If this is not the case in your jurisdiction, choose a different tax class here.
Round tax at subtotal level, instead of per line
If in your tax jurisdiction rounding is done last (when the subtotal is calculated) enable this option.
Additional Tax Classes
Tax Classes are assigned to your products. In most cases you will want to use the default “standard” class. If however you sell goods which require a different tax class (for example Tax except zero-rated products) you can add the classes here. To get you started we include “standard”, “reduced-rate” and “zero-rate” tax classes.
You will notice that at the top of the tax settings page each class is listed – click a class to view the tax rates assigned to the class.
Display prices during cart/checkout
This option determines how prices are displayed on your cart and checkout pages – it works independently from your catalog prices. Choose from inclusive/exclusive tax display.
Setting up Tax Rates ↑ Back to Top
At the top of the tax screen you will notice your tax classes are displayed – click on one to view the tax rates for the class.
Once viewing your tax class, you will see the tax rates table. Here you can define tax rates (1 per row). Click ‘insert row’ to get started.
Each tax rate has the following attributes:
- Country Code – 2 digit country code for the rate. Use ISO 3166-1 alpha-2 codes. Leave blank (*) to apply to all countries.
- State Code – 2 digit state code for the rate. See
i18n/states/COUNTRYCODE.phpfor supported states. For the US, use a 2 digit abbreviation e.g. AL. Leave blank (*) to apply to all states.
- ZIP/Postcode – Enter postcodes for the rate – you may separate multiple values with a semi-colon (;), use wildcards to match several postcodes (e.g. PE* would match all postcodes starting with PE), and you may use numeric ranges (e.g. 2000-3000). Leave blank (*) to apply to all postcodes.
- City – Semi-colon separated list of cities for the rate. Leave blank (*) to apply to all cities.
- Rate % – Enter the tax rate, for example, 20.000 for a tax rate of 20%.
- Tax Name – Name your tax, e.g. VAT
- Priority – Choose a priority for this tax rate. Only 1 matching rate per priority will be used. To define multiple tax rates for a single area you need to specify a different priority per rate.
- Compound – If this rate is compound (applied on top of all prior taxes) check this box.
- Shipping – If this rate also applies to shipping, check this box.
Tax Rate Examples
Here is an example of a tax setup for a UK store – 20% for UK customers only.
In this example, we have a 6% tax rate for all US states except for California which has a 7% tax rate and then a local tax rate of 2% for ZIP code 90210. Notice the priorities – this demonstrates how you can ‘layer’ rates on top of one another.
Importing and exporting rates
There is an export button within the table which you can use to export a CSV of your input rates.
There is also an import function which you can use to import a CSV. The CSV requires 10 columns;
country code, state code, postcodes, cities, rate, tax name, priority, compound, shipping, tax class
Leave tax class blank for standard rates.
Viewing Tax Reports ↑ Back to Top
Tax reporting can be found in Reports > Taxes by Month. This report lets you view the taxes for the year:
The ‘toggle tax rows’ shows a different report breaking up taxes based on your rules. This is useful if you need a report showing local taxes separately for example.