-
Notifications
You must be signed in to change notification settings - Fork 10
Tax handling
This plugin will not sync tax rates between Square and WooCommerce.
Square tax rates are applied on a per product basis. So, an item can:
- Have 0 or more tax rates applied to it
- These taxes can be inclusive or exclusive (additive) to the item price
- Taxes can apply at 1 or more locations
The issue with this is that taxes for an online seller must be handled very differently. Taxes are not solely based on the item being sold; the location is no longer fixed in the eCommerce context, so taxes must respond to both the product (tax class / rate) AND the location.
In the U.S. in particular, online sellers must be aware of whether they have nexus in states that use origin- or destination-based systems, which change the tax rate applied to a particular item based on the relationship between the customer's location and the seller's location.
So while we're supporting a single location for Square to sync items to and from WooCommerce, this would support sellers in states with origin-based tax structures (as the location is not fixed, and thus would use the tax rate configured in Square). However, for sellers in a destination-based state (or who have some nexus in a destination-based state), Square's tax rate structure will result in non-compliance with their state's tax laws because the tax rate should change based on the destination of the order, not the location of the sale of goods.
While the tax API is sufficient for POS sellers, it will be problematic for many online sellers. We don't have a clean way around this aside from allowing WooCommerce to determine the appropriate tax rate, as it already lets shops handle tax rates appropriately by configuring their own rate tables by location and tax classes for products.
This plugin will therefore avoid syncing tax rates between WooCommerce and Square for both systems of record, then we'll push the appropriate tax values to Square when creating orders based on the WooCommerce value.