Table of Contents
Taxes. And Death. And More Taxes.
How Taxes Work in FoxyCart
A “tax” in FoxyCart is a standalone set of properties that define a particular tax that can be applied to your product categories. Your store can have zero tax rates or 100, and they can be applied individually or in parallel, but the best way to understand how taxes work in FoxyCart is to dive into the admin to look at the available options.
Creating a Tax Rate
The section below will discuss each individual option you'll see when you hit the “taxes” menu item in your store's admin.
- This select box allows you to load previously configured taxes to view or edit. It also has options to add a new tax or to delete the current tax.
- Tax Summary
- This is an informational field that includes the tax name, tax rate, and tax type.
- Tax Name
- This is the name given to the tax that will be displayed to your customer and also included in API requests and in the transaction datafeed.
- Tax Type
- This select box has four options.
- Global will apply to the order regardless the shipping or billing information.
- Country will apply the tax only if the country entered in the tax's settings matches the customer's shipping address.
- Region will apply only if the country and state/province entered in the tax's settings match the customer's shipping address.
- Local will apply only if the country, state/province, and city entered in the tax's settings match the customer's shipping address.
- Country, Region, City
- Location data to be used for the tax type, above.
- Tax Rate (%)
- This is the tax rate to be applied as a percentage. So if a tax is 17.5%, enter
- Apply to Shipping & Handling
- If checked, then when this tax applies to a product, it will also be collected on the amount charged for shipping and handling. Useful if you must collect tax on the freight you charge to your customer as part of the sale.
- Applied to Categories
- This will list categories that currently apply the tax. See the below section for more info.
Taxes and Categories
Taxes, by themselves, don't actually do anything. In order for a tax to be applied it must be associated with a category. Once associated, any products in that category will get the appropriate taxes applied. To associate a tax with a category, simply check the appropriate checkbox(es) when you edit your category.
How Multiple Taxes Work Together
If you have multiple taxes to be applied in one transaction they will be applied individually. Here's a quick example of what your cart could look like on pageload on checkout, when certain taxes are “TBD” because the address info hasn't been completed yet:
Taxes and Billing v. Shipping Addresses
FoxyCart applies taxes based on the shipping address. If a separate shipping address is not specified, the billing address is assumed to be the shipping address, and taxes are applied accordingly. While there is some debate online as to whether or not this is correct, we have asked multiple tax experts and tax rate services, and this approach is what we believe to be the most correct at this point.
Current Limitations and Future Improvements
Highly Specific Tax Rates
Currently it is very difficult to handle taxes for states that may have hundreds, thousands, or tens of thousands of rates based on zip code, city, jurisdiction, county, and etc. Please vote for advanced tax API/endpoint functionality if that'd benefit you.
ZIP Code based tax rates are now supported in v1.0's tax functionality.
While there are currently workarounds to get tax-inclusive products, vote for native tax-inclusive pricing support if that'd benefit you.
Though cumulative taxes can almost always be supported (with FoxyCart's current functionality) with just a little bit of basic algebra, please vote for native cumulative tax functionality if that'd benefit you.