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.
- Tax
- 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 is Calculated Automatically
- For the United States, this option allows you to set
country
orregion
taxes to set tax rates automatically. See below for more details. - Tax Rate (%)
- This is the tax rate to be applied as a percentage. So if a tax is 17.5%, enter
17.5
, not0.175
. - This input will not be shown if you have automatic tax calculation selected.
- 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.
- This input will not be shown if you have automatic tax calculation selected, as that is determined automatically.
- 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.
Automatically Calculated Taxes (US only)
If the “Tax is Calculated Automatically” checkbox is checked for a given tax (only within the US currently), taxes will be calculated automatically within the designated area for that tax. So for example, if you have a tax set for California that is set to calculate automatically, FoxyCart will query the tax database based on the customer's zip code and apply the appropriate tax rate (which may include state, county, city, or other tax jurisdictions). This automatic lookup will dictate if the tax should apply to shipping or not, and if it relates to the billing or shipping address.
Our tax database is provided by Tax Data Systems, which is updated on a monthly basis. Note that neither FoxyCart nor Tax Data Systems makes any warranty or claim as to the accuracy of the tax data returned, but many very large merchants use Tax Data Systems. Currently we use a version of the database that provides a single tax rate per zip code. In the event there are multiple tax rates in a single zip code, the more populated zip code's rate is used in the database.
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 o n 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
Tax-Inclusive Pricing
While there are currently workarounds to get tax-inclusive products, vote for native tax-inclusive pricing support if that'd benefit you.
Cumulative Taxes
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.
Tax-Exempt Customers
FoxyCart doesn't currently have native functionality to allow for tax-exempt customers, though there are workarounds (such as assigning a tax-exempt category, and restricting access to that to certain customers using SSO. Please vote for tax-exempt customers if that'd benefit you.