Sales Tax in MA: only part of the product value is taxable. Help?

Posts: 2
Joined: 09/22/2008

Hi everyone. I am developing a site selling apparel, and it operates out of Massachusetts. Unfortunately, Mass has some wacky rules regarding sales tax.

Basically, I need to collect sales tax based on product type and value. Apparel is generally not taxable, unless it sells for over $175. In that case, the tax basis is its price, less $175. (Ex: $250 jacket > $75 is taxable at 5%). This happens on a product by product basis (each product is taxed individually, not the value of the whole order). Of course, it also depends on what type of product it is (ex: jogging shoes exempt, golf shoes taxable).

I can use Workflow to find add a rule based on Shipping State, but what about the value issue? A couple things I am considering:

Add a checkbox field ("is_ma_taxable")
and/or
Add a custom field ("ma_tax_basis") - could this be calculated automatically using Tokens or some other way?
and/or
some Workflow logic based on taxonomy and categorization.

My concern is that I do this in a way that is both simple now, and easy to fix if MA changes its rules. Consequently, I would like to avoid doing anything on a product-by-product basis since I don't know of easy any way to make sweeping product changes in Uber.

I know its a complex question, but I am hoping that someone who has tackled this issue can offer an opinion. Thanks in advance!!

Posts: 974
Joined: 11/05/2007
Bug FinderFAQ ModeratorGetting busy with the Ubercode.

I would approach the problem by making a product class (http://www.ubercart.org/docs/user/3341/understanding_product_classes) for non-taxable items and another class for items taxable at a basis different from sales price. Then these different tax rules can be easily handled by your third option, "some Workflow logic based on taxonomy and categorization." Handling the basis is a little harder - you will have to write a hook_calculate_tax() (http://www.ubercart.org/docs/api/hook_calculate_tax) that subtracts the $175 before applying the rate, and make sure that hook is run only for that one product class which has items taxable at a different basis.

--

<tr>.