The SimpleCanadaTax component, which appears in the Tax stage of an order processing pipeline, calculates the Goods and Services Tax (GST) and Provincial Sales Tax (PST) used in Canada, and writes the computed values to the order._tax_total_pst
, order._tax_total_gst
, order._tax_total
, and item._tax_total
fields. SimpleCanadaTax always sets _tax_included
name/value pairs to zero (0) for both the item and the order. The data used by the SimpleCanadaTax component is usually provided by the QueryProdInfoADO component.
ship_to_country
on the order form to determine whether to apply the tax to the order. The tax will be applied only if there is an exact match. ship_to_state
field on the order form). The component then uses this concatenated string to look up the PST tax rate on the order form.The SimpleCanadaTax component is a simple tool for you to use to calculate tax rates. Microsoft strongly recommends that you have an independent tax professional verify all applicable tax rates and data generated by this component before you use such information for personal or business purposes.
GST is common throughout Canada and almost all goods and services have a GST. If a product is taxed, the GST rate is the same throughout Canada. However, some products are not taxed and some service merchants (making less than a given amount) may elect to not charge GST. Each province has its own PST, usually a fixed rate for all products, but PST still depends on the product (although a province may elect to tax an item not taxed by another province).
When shipping from one province to another you do not pay any PST tax. Although not common, a product may have PST but not GST. The reverse is also true.
SimpleCanadaTax always sets _tax_included
fields to zero (0) for both the item and the order (see Using the Tax Components). The component does not handle fractions of base currency units; all calculations are rounded to the nearest whole unit.
The combination of the Key, Apply when, and Country fields determine whether tax should be applied, but only if the order is being shipped to one of the provinces in the Province List.
The SimpleCanadaTax component first checks the Apply when value. If it is set to Always, the tax is always applied to the order. If Apply when is set to Has any value, the tax is applied to the order whenever the order form contains any value for ship_to_country. If Apply when is set to Equal to Country, the component does a comparison between the value of ship_to_country on the order form and the text string in the Country field on this property page. If there is a match, the tax is applied.
If the component determines that tax should be applied, it then compares the value of ship_to_state on the order form to the list of provinces specified in Province List. If there is a match, indicating that the order is being shipped to a province where tax should be collected, the component does two things. First, it retrieves the GST tax rate from the field on the order form identified by GST Item Key. Second, it appends the prefix specified in PST Item Key Prefix to the name of the province to which the item is being shipped (from the ship_to_state field on the order form). The component then uses this concatenated string to look up the PST tax rate on the order form.
To specify that a 2% GST tax rate and a 4.5% Alberta PST tax rate is charged for an item shipped to Alberta, Canada, do the following:
can_prod_gst_tax_rate real NOT NULL
can_prod_pst_tax_rate_alb real NOT NULL
Product ABC
. Type 2.0 into the can_prod_gst_tax_rate
column and 4.5 into the can_prod_pst_tax_rate_alb
column in the Product ABC
row.Field | Value |
---|---|
Apply when | Has any value |
Country | CAN |
GST Item Key | _product_can_prod_gst_tax_rate |
PST Item Key Prefix | _product_can_prod_pst_tax_rate |
Province List | alb |
If the customer types a country or province on the OrderForm that is not specified in the SimpleCanadaTax component configuration, the values of the _tax_total
and _tax_included
name/value pairs on the order and on the items will not be set.