Blog

WooCommerce Sales Tax 101: Tracking and Filing Sales Tax

Cover photo credit: 401kcalculator.org, CC BY-SA 2.0

Accurately assessing, collecting, and remitting sales tax is one of the most tedious challenges that eCommerce businesses face. When you run a brick-and-mortar shop, tax collection is typically pretty straight forward: you collect the tax based on the good you’re selling for your store’s location.

However, online sales make this more challenging. When you sell across state or country borders, you need to determine what tax you may owe across several different sales locations. Tax assessment varies by the type of product sold, and can even vary by city or locale. If you have multiple locations for your eCommerce business, this can be become far more challenging.

When you’re setting up WooCommerce sales tax rates for your site or a client’s site, there are some important questions you’ll need to ask yourself to determine how you set up tax rates, and if you’ll need any additional tools to properly assess taxes.

Tax Rate Checklist

Here are some good questions to ask yourself or your client:

  • Are you registered to collect sales tax in your business location?

    In the US, you’re required to register in each state in which the business operates. There are 45 states in the US collect sales tax.

    If you’re in another country (one in the EU for example), you may be required to collect tax based on the laws of your country or province, such as VAT taxes.

  • In which tax classes do your products fall?

    If the site sells one kind of product, then they may all be subject to the same rates. However, if the site sells items that fall into different tax classes, then tax rates need to be set up differently for each product type within each location.

    You may have run into this before if you sell both physical and digital goods, which tend to be taxed at different rates.

  • Does the business have any other locations?

    The locations in which the business operates affect nexus — having a presence in a certain state can give you nexus for that state. As a result, you must collect taxes in accordance with that state’s laws as well when a purchaser comes from that state.

    However, defining nexus isn’t as simple as “having a retail location” — you can have nexus for a “significant presence”, which is as vague as it sounds. You may have nexus in a state if employees live there, you have a storage warehouse or fulfillment center there, you work with a drop-shipper in the state, or if you regularly have sales or marketing representatives making scheduled visits (such as for trade shows).

    You may even have nexus if you have affiliates in a given state. This guide to nexus from Avalara has some good points to consider.

  • How do states you’re shipping to assess tax?

    This question is moreso geared towards US-based stores, but it may apply internationally. Some US states require tax to be charged based on the origin (sending) address, and some are destination-based.

    For example, in Pennsylvania, we’re an origin-based tax state, meaning we charge PA state tax to anyone in PA, and that’s it. If your origin is in Philadelphia, you charge the state tax + Philadelphia city tax to anyone in the state, as it’s based on the item’s origin.

    Destination-based states require you to charge tax based on the buyer location. Now for example, let’s pretend Pennsylvania was a destination-based state. If I were outside of Philadelphia, and I sold to someone outside Philly, I’d charge the normal state tax. However, if I sold to someone in Philly, I’d also have to assess their city tax. That definitely makes things more complicated.

    In the US, this also varies depending on whether you’re selling in-state or not. Tax Jar has a good overview of origin vs destination-based tax rates as a primer.

  • Do I want to file taxes myself?

    You’ll be collecting sales tax on any applicable sale, and you’ll be required to report and remit this tax yearly or several times per year (depending on your sales volume). You can either track this yourself and submit transactions along with remitting tax from them, or you can use a third-party service to do this for you. This may be an accountant who’s solely in charge of tracking the tax owed, or you could completely automate tax assessment and paperwork with other services.

WooCommerce Built-in Taxes

If your tax needs a pretty basic (or you’re adventurous 😉 ), you may want to use the built-in tax rates within WooCommerce for tax assessment on applicable transactions.

The “Calculate Tax Based On:” setting is a good one to pay attention to:

WooCommerce Sales Tax Options

For US-based stores, you probably want to use the customer shipping address as the address for tax assessment for a lot of set ups. For example, if we’re in Pennsylvania, we can use the customer shipping address to limit tax assessment to other people in Pennsylvania. We’ll set up a PA-only tax rate (since PA is an origin-based state).

WooCommerce state tax rate configuration

When someone outside of PA checks out, they won’t be assessed tax, while PA residents (or shipping addresses) will be assessed state tax.


WooCommerce Outside PA tax assessment

Customer outside PA



WooCommerce PA tax assessment

Customer inside PA


If you’re a Philadelphia-based store, you’d also have to add city tax to the taxes you’re required to assess.

WooCommerce philadelphia tax rate setup

This would be assessed to anyone within Pennsylvania, Philadelphia-based or not.

WooCommerce tax rate assessment

Philadelphia-based store

Now of course, if you sell products that use different tax codes or rates, you’ll need to set these up, and change the tax class for your products as well.

WooCommerce Product tax class

Does your head hurt yet? If you have nexus in multiple locations, and sell products with different rates, then using a tax automation service may be a good option for you or your client.

Tax Automation Services

This kind of problem boggled our minds when we first started looking into sales tax. As digital product retailers (back when we sold plugins independently), we didn’t tend to have to worry about sales tax for our eCommerce store, as most states didn’t require you to collect tax on digital goods.

However, merchants selling physical goods who have nexus in multiple locations can have a bear of a time figuring out what tax to charge. Tracking and remitting tax to multiple states is tedious as well.

That’s why we partnered with companies like Avalara to integrate tax automation services with WooCommerce.

If you use an automation service like AvaTax, you can fetch the appropriate tax rates automatically from a third party service. These transactions will be properly tracked and recorded for you so that returns are easier when you need to file. If you’re in a position where outsourcing tax assessment and filings make sense, or your tax calculations are more complicated then you’d like them to be, using a tax automation service can save you a lot of headache.

For example, our free AvaTax plugin lets you:

  • Automatically calculate tax rates at checkout and for manually-created orders
  • Automatically submit paid orders as AvaTax transactions
  • Set a global product tax code, or override this code on a per category, per product, or per-variation basis as needed
  • Automatically manage partial and complete refund tax adjustments when refunds are marked in WooCommerce

WooCommerce AvaTax settings 1

You can also use more advanced functions like setting tax exemptions on a per-user basis (for those of you who have schools or non-profit organizations who purchase from you).


Regardless of how you choose to manage your WooCommerce sales tax assessment and collection, you’ll want to be sure that the business is registered to collect sales tax in each state for which is has nexus, and that rates are calculated appropriately based on state rates and laws, along with the product type for which the tax is assessed.

9 Comments

  • […] are some WooCommerce Sales Tax 101 tips and questions for both merchants and agencies to determine how they should set up tax rules […]

  • Mike 3 months ago Reply

    When I do my return, the state asks for total sales for the quarter, and then they ask for non-taxable sales for the quarter. In WC, how do you get the total of non-taxable sales? The taxes reports don’t seem to make much sense in this regard?

    • Beka Rice 3 months ago Reply

      Hey Mike, I’m not 100% sure on this one so I’d check with your accountant to be certain. Likely you’d need to view the product sales on your store and get reports for that time period for any product that was not taxable, but not sure if “non-taxable” also means “non-taxed orders” (ie from other states, depending on where you are). These kind of questions are exactly why I recommend using Avatax to handle this tracking automatically 🙂

      • Mike 3 months ago Reply

        Right, I just have to collect tax for the state I’m in. Non taxable sales just means the amount of sales that aren’t subject to sales tax. I’ll look at some of the other reports, maybe exporting other reports will reveal more detail.

  • Jeff Kyle 2 months ago Reply

    I asked WooCommerce Support this question:

    “We have nexus is two states. Will your WooCommerce for AvaTax plugin account for both origin addresses and charge sales tax in the second state as applicable? Thank you.”

    This was their answer:

    “The WooCommerce Avatax extension will only support one origin address as WooCommerce only supports one origin address out of the box and there’s no way to tell WooCommerce that a certain product is in a particular store.

    Whether you have 2 or more locations or just a single one, you can only specify the address of your primary location and the rates will be dependent on that.”

    We currently use the Simple Sales Tax plugin that interfaces with TaxCloud. SST allows multiple original addresses to be specified to account for companies with nexus in multiple states. We’ve been having problems getting the original developer andTaxCloud to get the plugin to be WooCommerce 3.0 compatible so we’re considering other options.

    Is WooCommerce Support correct that the Skyverge plugin can’t calculate tax for more than one state? Given that you talk about nexus several times in this post and you seem to imply that your plugin would handle nexus in multiple states, I’ll be surprised if it can’t do it. Thank you.

    • Beka Rice 2 months ago Reply

      Hey Jeff, your nexus locations are set up in your Avalara account, not within the plugin. This is because it matters if you have nexus in the state; it doesn’t depend on where the inventory comes from as to whether or not tax should be assessed. Avalara will walk through getting nexus locations set up within the AvaTax account, and then it handles these calculations on its end to account for nexus before passing the correct rates back to the plugin.

      • Jeff Kyle 2 months ago Reply

        Great. Thanks Beka!

  • Jennifer 4 days ago Reply

    In Louisiana I do not have to charge the 5% state tax to Louisiana customers, but I do for every other state my products ship to. Can you tell me how to set that up in WooCommerce? Do I have to input every single state and put 5%? Thanks.

    • Beka Rice 2 days ago Reply

      If you have tax rates with the same priority, you could have the Louisiana one override the national one like this: http://cloud.skyver.ge/3o3X0I0E2G0p (substitute LA for PA) — just be sure to change tax settings to calculate based on the customer shipping address.

Submit a Comment