Solved - Per Item Taxes & Canadian Tax Rules
I managed to find a solution for this. It was a little difficult to envision and setup, but works fine and appears to be very flexible.
I will share the thought process here, in case anyone else is trying to setup per product taxes in Canada, where tax rates vary from Province to Province.
1: The product database needs three additional fields. GST, PST and HST. These fields are populated with 1 - 0 values. Simply check which taxes apply for each product. All this stores is whether or not the product is taxable, and which tax applies. For general product, you would check all three, food might be nothing, Books GST/HST (no PST), etc...
2: Create three new fields in the eCart Instance. gstVar, pstVar, hstVar
3: Create three new calculations in the eCart Instance.
gstTaxable = [TotalPrice]*[gstVar]
pstTaxable = [TotalPrice]*[pstVar]
hstTaxable = [TotalPrice]*[hstVar]
4: When creating the Add to Cart, bind the database values to the correct eCart variable. (ie: bind the DB GST field to gstVar, etc... etc...)
5: Create the tax rules based on the three calculations.
gstTotal = If the province is <add provinces that GST applies using OR statements>
Calculation = Based on column subtotal, gstTaxable * .05 (5%)
pstTotal = If the province is <usually just your home province>
Calculation = Based on column subtotal, pstTaxable * .07 (7%) (amount may vary)
HST is different. You will need to create a separte tax calculation for every province that uses HST.
hstTotal = If the province is <enter province here>
Calculation = Based on column subtotal, hstTaxable * <place province hst value here>
In the end, this gives you full control of whether or not a product needs to be taxed, and how much for each province. It is also very easy to change the tax values as the provinces change their minds on how much we owe them :)
This is a general "how-to" and will need to be adjusted to your cart. Hopefully it saves others a few hours of thought process!