Contents9 sections
Tax settings scare a lot of new shop owners, and it is rarely the tax itself that does it. It is the screen. WooCommerce asks you questions like “Prices entered with tax” and “Calculate tax based on” without explaining what either one means, and every answer feels like it might be the expensive one to get wrong.
This walkthrough fixes that. We will explain each switch in plain words, then set up one simple, real case together: a small US shop selling physical products and charging one state sales tax rate. By the end, you will know what every setting on the screen does — including the ones we tell you to leave alone.
One honest note before we start. This piece explains what the settings do. It is not tax advice, and it cannot tell you whether your shop must charge tax, where, or how much. When the money questions matter — and they do — a tax professional who knows your state is worth paying for. WooCommerce’s own documentation says much the same thing about itself.
The simple setup we are building
Here is the whole plan, so nothing later comes as a surprise:
- Your shop is based in one US state. Our worked example is based in Washington.
- You sell ordinary physical products, all taxed the same way.
- You charge one sales tax rate — your own state’s — typed into WooCommerce by hand.
- You type your product prices without tax in them, which is the usual US way.
If your shop is more complicated than that — you sell into many states, or a few products are taxed differently — this is still the right first step. You add to a working setup later. You do not start there.
Step 1: Turn taxes on
WooCommerce starts with taxes switched off. Until you switch them on, there is no Tax settings tab at all — and that missing tab is why so many owners think their install is broken. It is not broken. It is waiting for this:
- Go to WooCommerce → Settings → General.
- Scroll down to the section called Taxes and coupons.
- Tick the box labelled Enable tax rates and calculations.
- Click Save changes at the bottom of the page.
Now look at the row of tabs along the top of the Settings screen. A new one, Tax, has appeared. Everything else in this guide happens inside it.
Step 2: Tell WooCommerce how you type your prices
Open the Tax tab. The first setting, Prices entered with tax, causes more confusion than all the others put together, so we will take it slowly. It asks one question: when you type a price into a product, does that number already include the tax, or not?
- No, I will enter prices exclusive of tax — the number you type is the product price, and tax is added on top at checkout.
- Yes, I will enter prices inclusive of tax — the number you type is the final total, and WooCommerce works backwards to find the tax hiding inside it.
Here is the same $20 product, both ways. We are using an example tax rate of 6.5% — the rate from our worked example in Step 4 — so the numbers are easy to follow:
- Set to No: you type $20.00. The shop shows $20.00. At checkout, 6.5% tax ($1.30) is added on top, and the customer pays $21.30.
- Set to Yes: you type $20.00, and that is the final price. WooCommerce works backwards: $18.78 of it is the product, and $1.22 is the tax inside it. The customer pays $20.00 exactly.
Which should you pick? If your prices work the way prices work in most US shops — the shelf price is the shelf price, and the tax shows up at the till — pick No. It is also the choice the rest of this guide is built on. One warning, whichever way you go: settle this setting before you enter a lot of products. Changing it later changes how WooCommerce reads every price you have already typed, and it does not rewrite those prices for you.
Step 3: Choose which address the tax follows
Next is Calculate tax based on. A rate in your table only applies to addresses it matches, and this setting chooses which address WooCommerce checks against the table:
- Customer shipping address — where the order is being delivered. This is the default setting.
- Customer billing address — the address tied to the customer’s payment method. It matters mostly for digital goods, which have no delivery address.
- Shop base address — your shop’s own address, used for every order, wherever the customer lives.
For the simple setup in this guide, we pick Shop base address. Here is why. Our example shop charges one rate: its own state’s. Basing tax on the shop address means every order is checked against that one rate, and nothing depends on what a customer types into a form. It is the easiest setup to predict, and the easiest to test.
If your shop grows into charging tax in other states, this is the setting to revisit — shops that ship taxed goods around the country generally use the customer shipping address, because that is where their goods actually arrive. Start simple. Change it when your shop outgrows simple.
Step 4: Add your one rate
Stay in the Tax tab and click Standard rates, near the top of the screen. This is the table where your ordinary tax rate lives; “standard” just means the rate most of your products use. An empty table is expected. Here is how a row goes in:
- Click Insert row. A blank row appears.
- Fill in each box, left to right. Every box is explained below.
- Click Save changes.
What each box means, in plain words:
- Country code — the two-letter code for the country the rate covers. Type US for the United States. A lone * means “everywhere,” which a small shop does not want.
- State code — the state the rate covers. Start typing the state’s name and WooCommerce will suggest the code.
- Postcode / ZIP — narrows the rate to certain ZIP codes. Leave the * in place. That symbol is a wildcard, and here it means “every ZIP code in the state above.”
- City — the same narrowing idea, by city. Leave the * here too: every city in the state.
- Rate % — the percentage, as a plain number. Typing 6.5 means 6.5%.
- Tax name — the words your customer sees next to the tax line at checkout. Most shops write Sales tax.
- Priority — leave it at 1. Priorities are how more than one rate can apply to a single order. With one rate, there is nothing to arrange.
- Compound — leave it unticked. A compound rate is a tax charged on top of another tax. A single state rate never needs it.
- Shipping — ticked by default. It means this rate is also used when tax is charged on the shipping cost itself. Whether shipping itself is taxed depends on your settings — shipping setup lives here, in our shipping zones walkthrough.
Now the worked example — our small shop, based in Washington state, filling in its one row:
- Country code: US
- State code: WA
- Postcode / ZIP: *
- City: *
- Rate %: 6.5
- Tax name: Sales tax
- Priority: 1
- Compound: unticked
- Shipping: ticked
About that 6.5: it is an example number, chosen so the maths is easy to follow. It is not a quote of Washington’s current rate, and it is certainly not your rate. Real rates change, and in Washington they also vary from city to city. Look up your real number from your state’s official tax authority — or ask that tax professional — and type yours in its place.
One row is all a simple shop needs. And the flip side is useful to know: if a customer’s address matches no row in your table, WooCommerce charges no tax on that order. That is your table working exactly as written — remember it when we test, next.
Step 5: Decide how prices are shown
Two settings control display, and they are the last two we will touch. Display prices in the shop chooses whether your product pages show prices including tax or excluding tax. Display prices during cart and checkout makes the same choice for the cart and checkout pages.
Our advice fits in one line: set both to match how you enter prices. We entered prices exclusive of tax in Step 2, so we display Excluding tax in both places. WooCommerce itself flags it when the entry choice and the display choices fight each other — keeping all three pointing the same way avoids the odd one-cent rounding surprises that show up when they do not.
Optional: the automatic route
If typing rates in by hand sounds fragile, there is an official free extension called WooCommerce Tax. It works the sales tax out at checkout for you, using your shop address and the customer’s address, and it is available to shops based in the United States. It needs a free WordPress.com connection to do its work, and turning on its Automated taxes setting takes over most of the manual settings above.
It still does not file your returns or send money anywhere. It only works out the number. For a one-state shop, the manual rate you just added is a perfectly good setup. The extension earns its keep when your shop starts owing tax in more places than you want to track by hand.
What to leave alone for now
Your Tax screen holds a few more tools, all built for shops more complicated than this one. Here is each of them in one line, so the names stop being mysterious:
- Compound rates — a tax charged on top of another tax. Some tax systems work that way; a single US state rate does not, so the box stays unticked.
- The Reduced rate and Zero rate classes — two extra rate tables, for products taxed at a lower rate, or not taxed at all. Until you sell something that qualifies, both tables stay empty.
- Multiple priorities — priority 2, 3, and beyond let a second rate stack alongside the first for the same address. One shop, one state, one rate: priority 1 is all you need.
Leaving these alone is not a gap in your setup. It is the setup, sized to your shop.
Test it before you trust it
Settings you have not tested are guesses, so run one test order now. Use an address inside your own state, and watch the tax line at checkout: it should carry your tax name and an amount that matches your rate. Then try an address from another state, and confirm that no tax appears — your table has no row for it, so none is charged. If no tax appears for the in-state order either, check the product before anything else: its Tax status must be set to Taxable, which is what most products already have.
The full routine takes five minutes when it is done properly. Our companion guide walks through exactly that — set one rate, then test an order and watch the totals — and it is worth doing now, before your first real customer does the testing for you.