WooCommerce can automatically calculate taxes and VAT based on the rules you have set up. This includes, for example, different tax rates, different countries or regions, as well as different tax classes for products.
Before using these settings, however, you need to know, which tax rules actually apply to your business.
Important: WooCommerce provides you with the technical tax calculation. The system does not decide whether you need to charge VAT, which tax rate applies to your business, or in which country a tax liability exists. You should clarify such questions with your accounting department, trust office, or a qualified tax professional.
Therefore, in this article we will explain exclusively, how the tax functions of WooCommerce work technically and are set up.
Enable tax calculation in WooCommerce #
The tax functions are not automatically visible. First you have to activate the tax calculation.
Open in the WordPress backend:
WooCommerce
→ Settings
→ General
In the Taxes and Vouchers section, you activate:
Enable tax rates and calculations
Then save the settings.
After that, under appears WooCommerce → Settings the additional area Tax.
If you don't see the „Tax“ tab: First, check whether tax calculation has been enabled under WooCommerce → Settings → General.
Where are the tax settings located? #
After activation, you can find the tax configuration under:
WooCommerce
→ Settings
→ Tax
Here you will find the general tax options on the one hand and the tables with your stored tax rates on the other.
WooCommerce Core can calculate such tax rates manually based on your rules. However, the automatic determination of your tax obligations or automatic tax filing is not part of these core functions.
Enter prices including or excluding tax #
One of the most important settings is roughly:
Prices entered with taxes included
Here you decide whether the product prices you enter in the WooCommerce backend already include tax or whether WooCommerce should add the tax on top.
WooCommerce offers two basic variants for this.
| Setting | Meaning |
|---|---|
| Enter prices including tax | The price stored in the product already includes the tax of the shop's base location. |
| Enter prices excluding tax | The stored product price is a net price. WooCommerce calculates the tax in addition. |
This decision should be made consciously before creating or importing many products.
Example: Price including tax #
Assuming a product is to cost CHF 108.10 including the tax configured for your base location.
If you have configured WooCommerce so that prices tax included entered, you enter for the product:
108.10
one.
WooCommerce treats this value as a retail price based on your store's tax configuration.
Example: Price excluding tax #
If you instead set your product prices tax exclusive you enter, you store the net price.
A simple calculation example:
Net Price:
CHF 100.00
Tax Rate:
8.1 %
Tax:
CHF 8.10
Gross Price:
CHF 108.10
WooCommerce calculates the tax additionally based on your stored rules.
Important: Use these numbers only as a technical calculation example. Which tax rate actually applies to your product and your company must be clarified outside of WooCommerce.
Why the setting shouldn't simply be changed later #
The „tax inclusive“ or „tax exclusive“ setting determines, how WooCommerce interprets your already entered product prices.
For example, if you have created one hundred products with prices and then change this setting without adjusting the prices accordingly, WooCommerce will interpret the same numbers differently.
This can lead to unexpected selling prices.
Note: The setting does not only determine how prices are displayed. It determines whether the price saved in the product is understood as a net or gross price.
At which address should WooCommerce calculate tax? #
Under the tax options you will find the setting:
Calculate tax based on
WooCommerce can fundamentally use different addresses for this.
| Option | Meaning |
|---|---|
| Customer's shipping address | WooCommerce uses the customer's shipping address to select the appropriate tax rate. |
| Customer billing address | WooCommerce uses the customer's billing address. |
| Base address of the shop | WooCommerce calculates the tax based on the stored shop location. |
Which of these options is right for your business is not a purely technical decision.
WooCommerce simply implements the option you select.
Therefore: Do not change the basis of calculation based on a general recommendation from the internet. Which address is relevant for tax calculation depends on your business model and the tax regulations that apply to you.
The shop address must be entered correctly #
You can find the base address of your shop at:
WooCommerce
→ Settings
→ General
That is where you enter the location of your company.
This address is relevant for various WooCommerce functions and can also be used for tax calculation.
Therefore, check in particular:
- Country or region
- Address
- Postal code
- Place
An incorrect base address can cause WooCommerce to apply rules differently than expected.
Set shipping tax class #
WooCommerce can also calculate taxes on shipping costs.
Under the tax options you will find the setting for Shipping tax class.
WooCommerce can determine the shipping tax class based on the products in the cart, for example, or use a specific tax class.
Which variant you should use depends, in turn, on how your shipping costs must be treated for tax purposes.
We explain the actual shipping zones and shipping costs in the article Set up shipping zones, shipping methods, and shipping costs.
What are tax brackets? #
Tax classes make it possible to treat different products with different tax rules.
WooCommerce includes corresponding tax classes by default and allows the creation of additional classes.
Typically, you will find, for example:
- Standard
- Reduced sentence
- Tax-free or zero-rated
The exact designation may depend on the language, WooCommerce version, and configuration.
You can create additional tax classes yourself if needed.
Assign tax class to a product #
For a taxable product, you can specify in the product editor which tax class WooCommerce should use.
You can find the settings for the tax status and tax class in the product section.
Simplified:
Product A
→ Standard tax rate
Product B
→ Reduced tax rate
WooCommerce will then use the tax rate that you have saved for the corresponding class and the relevant customer region.
Important: The term „Reduced rate“ does not yet define a correct tax rate. You must enter the corresponding tax rates yourself.
Tax status of a product #
In addition to the tax class, a product also has a tax status.
This technically determines whether WooCommerce taxes:
- Product and shipping,
- shipping only
- or not at all
should apply.
The same applies here: WooCommerce provides the options. Whether a specific product is taxable and how it must be treated is not decided by WooCommerce.
Create a tax rate manually #
You can find the tax rates within the respective tax bracket.
For example, open:
WooCommerce
-> Settings
-> Tax
-> Standard rates
There you can add new lines and specify where a particular tax rate should be applied.
A tax rule contains multiple fields.
| Field | Meaning |
|---|---|
| Country code | Determine for which country the rule applies. |
| State/Canton/Region | Can limit the rule to a specific region within a country. |
| Postal code | Can restrict the application to specific postal codes. |
| Place | Can restrict the rule to specific locations. |
| Tax rate | The percentage to be applied. |
| Tax name | Name that WooCommerce can use for the tax rate. |
| Priority | Controls the sequence or combination of matching tax rates. |
| Composite | Enables tax calculation based on other already calculated taxes. |
| Shipping | Determine whether this tax rate can also be applied to shipping. |
Enter the country code correctly #
WooCommerce uses a two-digit country code for countries.
For example:
CH
for Switzerland.
You can also use a placeholder if a rule should apply independently of a specific country.
You should, however, only use such placeholders if you understand exactly which area the rule covers as a result.
Restrict regions, postal codes, and cities #
Not every tax rule has to apply to an entire country.
WooCommerce can also differentiate tax rates based on additional geographic information.
Depending on the country and configuration, this includes, for example:
Country
+
Region
+
Postal code
+
City
This also makes it technically possible to map more complex regional tax rules.
For a standard Swiss shop, you may not need this fine-tuning. However, in other countries or business models, it can be relevant.
Enter tax rate #
In the tax rate field, enter the percentage value.
A technical example:
8.1
equals 8.1 percent.
WooCommerce expects the percentage value here and not the number:
0.081
Important again: The numbers used here are for explaining the WooCommerce input. You must check which sentence actually applies to your products based on current tax regulations.
Define tax name #
You can give a tax rule a name.
This can later appear, for example, in the cart or checkout if you display taxes individually.
Use a term that is understandable for your shop and your customers.
What does priority mean? #
The priority becomes relevant when multiple tax rates apply to the same address.
WooCommerce uses them to determine which rules are considered together or in what order.
For simple tax configurations, you should not change this setting unnecessarily.
If you need multiple combined tax rules, you should first examine closely how they are supposed to interact.
Compound #
A compound tax – in WooCommerce often as Compound Tax denoted – is calculated on an amount that may already include other taxes.
This is a special control logic that is not needed for normal, simple control configurations.
Therefore, only activate this function if your specific tax system actually requires such a calculation.
Set up multiple tax rates #
You can create multiple rules within a tax class.
For example:
Country A
→ Tax rate A
Country B
→ Tax rate B
Country C
→ Tax rate C
At checkout, WooCommerce looks for the rule that matches the customer address used for tax calculation.
This can be used to technically map different tax rules for different regions.
Import and export tax rates #
WooCommerce can also import or export tax rules as a CSV file.
This is especially helpful when you have to manage many tax rates.
With a few rules, manual maintenance is often clearer.
Caution with tax lists from the internet: Do not simply import a third-party CSV file without checking its contents. WooCommerce can calculate the entered values, but it cannot judge whether they are current and legally correct for your business.
Show prices in shop including or excluding tax #
The way you enter product prices in the backend and the way you display them to your customers are two different settings.
Under the tax options, you can specify whether prices in the shop:
including tax
or
excluding tax
displayed.
This setting affects, for example, product pages and shop overviews.
Show prices in cart and checkout #
WooCommerce also has a separate setting for the display in the cart and checkout.
There you can also choose whether prices should be displayed including or excluding tax.
This allows you, for example, to implement different display models.
However, which presentation is permissible or required for your business depends in turn on your market and the applicable price disclosure regulations.
Show tax amounts individually or as a total sum #
WooCommerce can display taxes differently in the cart and checkout.
You can choose, for example, whether to:
- a total tax amount is displayed
- or different tax rates are listed individually
In the case of multiple tax types, a broken-down presentation can be easier to understand.
Use price suffix #
WooCommerce provides a setting for additional text after the product price.
This can be used, for example, to add a note.
WooCommerce also supports placeholders for prices including or excluding tax.
Whether and which notice you must display there is not a technical WooCommerce question, but depends on your legal requirements and your desired presentation.
Rounding of taxes #
WooCommerce has an option to round taxes at the subtotal level instead of rounding each individual product line separately.
With multiple products and tax amounts, this can result in small rounding differences.
For example, if your accounting or payment provider differs by a few cents from a manual invoice, the rounding method can also play a role.
You should only change this setting consciously and check it afterwards with test orders.
Why can prices vary between different countries? #
If you enter product prices including tax and use different tax rates for different customer locations, the visible price may change depending on the customer's location.
In this case, WooCommerce must convert the gross price entered in the base country to the applicable tax rate.
This is particularly important for international shops.
An unexpectedly different gross price therefore does not automatically have to be a calculation error.
Standard customer location affects the display #
Under:
WooCommerce
→ Settings
→ General
Can you specify which location WooCommerce uses for a visitor as long as their actual address is not yet known?.
This setting can influence which price or tax is initially displayed to a visitor.
As soon as a relevant customer address is available in checkout, WooCommerce can update the calculation accordingly.
Taxes and guest orders #
Even with a guest order, WooCommerce can determine the tax based on the customer address entered at checkout.
A permanent customer account is not required for this.
You can find more about the difference between customer accounts and guest orders in the article Setting up customer accounts and guest checkout in WooCommerce.
Taxes and vouchers #
When a customer uses a coupon, WooCommerce first reduces the eligible product amounts and calculates the tax based on the discounted values.
A fixed cart discount must be distributed among the affected items.
We explain how vouchers work in the article Creating coupons and discount codes in WooCommerce.
Taxes on refunds #
During a refund, WooCommerce can also take the corresponding tax amounts into account in addition to the product amount.
You should check which amounts are actually to be refunded before initiating the process.
You can find more about this in the article Cancel order and issue refund.
Automatic tax calculation is not WooCommerce core #
WooCommerce Core provides you with tables where you can enter your own tax rules.
If you want tax rates to be determined automatically based on external tax data, you will need a corresponding extension or an external service.
For example, WooCommerce offers its own or integratable tax solutions. Other providers also offer corresponding extensions.
Important: An automated tax extension can simplify calculations. However, it also does not automatically decide all of your company's tax obligations.
WooCommerce does not file a tax return for you #
The standard WooCommerce tax settings calculate taxes for orders.
However, they do not automatically handle tasks such as:
- tax registration of your company
- Review of your tax liability
- Submission of a VAT return
- Transfer of owed taxes to authorities
- legal assessment of individual products
These are tasks outside of the normal shop calculation.
Example: Simple technical tax rule for a country #
Purely technically speaking, let us assume your tax advisor has confirmed that a rate of 8.1 percent applies to a certain product group in one country.
Then a simple WooCommerce rule could look like this, for example:
Country:
CH
Tax rate:
8.1
Name:
VAT
Shipping:
depending on required configuration
WooCommerce can then apply this rule if the customer address relevant to your tax calculation matches.
The decision, that may or must be used for this rule, but it does not come from WooCommerce.
Example: A country without a stored tax rate #
If there is no matching tax rule for a customer address, WooCommerce cannot calculate a corresponding tax from your manual tax table.
However, that does not automatically mean that this sale can be tax-free.
Very important: „WooCommerce is not calculating any tax“ and „legally no tax is owed“ are two completely different statements.
If tax is unexpectedly not displayed for a country, you should first check your WooCommerce rules and then clarify which tax treatment is actually required.
Common cause: Incorrect tax category on the product #
If no tax or an incorrect tax is calculated for a single product while other products are working correctly, you should check the tax class of that product.
Check:
Edit product
→ Product data
→ Tax status
→ Tax class
A product with a different tax class may use a different tax table than expected.
Common cause: Customer address does not match tax rule #
If WooCommerce calculates taxes based on the shipping or billing address, the entered customer address must also match an existing tax rule.
Therefore, check for problems:
- Land
- Region
- Postal code
- Place
- Calculation basis in tax options
A too narrowly defined tax rule can cause WooCommerce to find no match.
Common cause: Tax return and tax calculation are confused #
Another common fallacy is to equate calculation with representation.
For example, you can prices:
enter including tax
And yet:
display exclusive tax
or vice versa.
Therefore, in the case of a seemingly incorrect price, check both the input settings and the display settings.
Test control settings after changes #
Taxes are among the areas that you should never judge solely based on the backend settings.
Perform test orders after making changes.
Test the situations that are actually relevant to your shop.
For example:
- a standard taxable product
- different tax brackets, if you use these
- relevant countries or regions
- Billing and shipping address
- Voucher
- Shipping costs
- Cart and Checkout
Check not only the final amount, but also the subtotal, discount, tax, and shipping.
We cover a complete audit of the shop in the article Testing a WooCommerce shop before launch: Test order and checklist.
If the tax calculation is incorrect #
If WooCommerce charges an unexpected amount, you shouldn't immediately enter a different tax rate until the result is approximately correct.
Check systematically:
- Are taxes even enabled?
- Are prices entered including or excluding tax?
- Which address is used for the calculation?
- Is the shop base address correct?
- What is the tax bracket of the product?
- Is there a matching tax rule for the customer address?
- Is the correct tax rate entered in this rule?
- How are prices displayed in the shop and checkout?
- Are there any additional tax plugins?
If the configuration looks technically correct, but the amount still does not match your tax requirements, you should first check whether the underlying tax rule has been defined correctly.
For technical WooCommerce issues, the article will also help later. Systematically finding WooCommerce issues: status, logs, and error diagnostics.
Which tax rates should I enter? #
A WooCommerce guide cannot answer this question definitively.
The correct tax rate can depend, among other things, on:
- Headquarters of your company
- Type of product or service
- Customer location
- Type of customer
- Revenue and registration obligations
- national and international tax regulations
WooCommerce can technically map these rules if you know them.
However, it does not replace a tax assessment of your business.
In case of uncertainty: Ask your trust office or a tax expert to tell you which tax rules you need for your specific shop. You can then implement these rules technically in WooCommerce.
What's next? #
Alongside taxes, shipping is one of the core calculations in checkout. WooCommerce uses shipping zones to determine which shipping methods and costs are offered to a customer.
In the next article, we therefore explain Set up shipping zones, shipping methods, and shipping costs.
Summary #
WooCommerce can calculate taxes and VAT based on the rules you have set up. To do this, you first need to enable the tax function under WooCommerce → Settings → General activate.
Under WooCommerce → Settings → Tax then you determine, among other things, whether product prices are entered including or excluding tax, which customer address is used for the calculation, and how taxes are displayed in the shop and checkout.
You can use tax classes and tax rates to set up different rules for products, countries, and regions.
However, WooCommerce does not decide which taxes you are legally required to collect. Furthermore, a missing tax calculation in WooCommerce does not automatically mean that a sale is tax-free.
Therefore, clarify the tax rules for your company first and then use WooCommerce for the technical implementation of these requirements.