To those unfamiliar with the Canadian sales tax system, an introduction leaves most the sense that it is both complicated and cumbersome to fully comprehend. At least, that was my first reaction when I first started working in the country.
In today’s article we’re going to show you how to setup tax rates within Magento specifically to handle the Canadian sales tax system. Though the same tools can be applied to taxation rules for any country.
Background
If like me you need to wrap your head around how Canadian sales tax is supposed to work I would strongly recommend reading up on the basics before going much further. I’m not going to rewrite a Wikipedia article here but I will extract a few key points for the purpose of this article.
Three types of sales taxes exist in Canada.
- A Goods and Services Tax (GST) is a federally enforced tax meaning it applies across the country where an HST tax does not already apply. Canadian GST is a 5% tax.
- Provincial Sales Taxes (PST) are collected in select provinces as per the table below. Applicable goods and the tax rate of PST’s vary among provinces. Moreover, in Quebec and Prince Edward Island PST is a cumulative tax that is also applied to the GST portion of a sale. I will demonstrate how to use compounded taxes in Magento later in the article.
- A Harmonized Sales Tax combines PST and GST taxes in select provinces into a single tax. Currently only 3 provinces collect an HST however it is important to note that this is set to change as of July 1st 2010 with British Columbia and Ontario set to introduce an HST in replacement of the current tax system.
The many varied rates makes this whole thing sound pretty complicated so lets break it down to a simpler view to see what’s really being charged here.
| Province | HST | GST | PST | Total |
| Alberta | 5% | 5% | ||
| British Columbia | 5% | 7% | 12% | |
| Manitoba | 5% | 7% | 12% | |
| New Brunswick | 13% | 13% | ||
| Newfoundland and Labrador | 13% | 13% | ||
| Nova Scotia | 13% | 13 | ||
| Northwest Territories | 5% | 5% | ||
| Nunavut | 5% | 5% | ||
| Ontario | 5% | 8% | 13% | |
| Prince Edward Island | 5% | 10% | 15.5%* | |
| Quebec | 5% | 7.5% | 12.875%* | |
| Saskatchewan | 5% | 5% | 10% | |
| Yukon | 5% | 5% |
* in Québec and PEI, PST is calculated on the total price including GST. Please also note that these rates may not be correct after publishing this article, you should always double check these figures with the relevant authorities.
After glancing at the table above you would be forgiven for asking yourself if you really need to worry about taxes outside of your own province. Particularly where PST is concerned this matter can further confuse the issue of online retail sales within the Canadian tax system. In short I’m going to suggest that you do worry about taxes outside of your home province but again I highly recommend some further reading on the topic. In fact here you may find a very eloquent summary of the accepted practices and legislation’s involved.
Getting down and dirty
Ok so now that we have reasonable understanding of the rates and rules that our online shop must conform to we can move onto the actual Magento setup. I’m going to assume that you’ve already got a Magento store installed and operational.
Let’s start with the rates that apply to each zone. In your Magento administration select Sales > Tax > Manage Tax Zones and Rates. You may need to delete the sample tax rates provided if this is a new store. Otherwise select Add New Tax Rate.
The Tax Identifier field is the name of the tax rate that will appear on the customer’s invoice. For the first one we’re going to enter GST then select Canada from the Country drop down box. As GST applies to all provinces leave the State as *. We don’t need to worry about Post code ranges so we can leave those two fields as is. For Rate we simply have to enter a number for our tax rate. In our case a 5 will suffice. This should leave us with something like the image below.
This takes care of GST for everyone. For our other tax rates we simply repeat the process but select the province from the State drop down box to indicate to which zone the tax rate applies. Go ahead and enter the other tax rates from the table above until. Once you’re done you should have a nice list like the following. If time is of the essence you could also import this CSV into your store under Sales > Tax > Import / Export Tax Rates to have the tax rates done for you.
Tax Rules
With our rates setup now we need to give Magento a bit more information about the rules to use in order to apply tax to a customers order. For this we need to go to Sales > Tax > Manage Tax Rules and select Add New Tax Rule.
Here we need to select which tax rates we are going to apply to our customer and product classes. Our GST and HST taxes can be applied in the same rule but we need to be a little more specific with our PST rules so we’ll do them separately.
We’ll start with GST and HST so firstly you’ll need give your tax rule a Name, something like Retail Customer-Taxable Goods-Canada should suffice but this can be anything you like. Ensure that your Retail Customer group is selected from the Customer Tax Class box and both Taxable Goods and Shipping* are selected in the Product Tax Class box. To select multiple items within each box simply click and drag or hold shift or control whilst clicking on each item.
From the Tax Rate box make sure you have your GST and HST for NB, NL and NS selected. Set the Priority 1 and the Sort Order to 1. The priority number will be used to implement our compounded taxes in a few moments when we add our PST rules. Select Save Rule to return to the Manage Tax Rules screen.
Now we’re going to add the first of our PST rules, namely those of British Columbia, Ontario, Manitoba and Saskatchewan that are calculated on the sub-total of products excluding GST. That is, non-compounded tax rates. To do this we simply make a new tax rule with the same priority number as our GST tax rule. Magento will apply tax rules of the same priority number in the same calculation and add this amount to the sub-total. Tax rules of differing priority numbers will be calculated separately in order from lowest to highest. That is, it will calculate the tax required for priority 1 tax rules, add this amount to the sub-total, then calculate tax required for priority 2 tax rules and add this amount to the sub-total and then so on until no more tax rules apply.
Go ahead and add in the non-compounded tax rules until you have a table like the following.
Now we need to add in our compounded tax rules for both Quebec and Prince Edward Island. Based on what we now know about how Magento treats priority numbers in tax rules we simply have to add these the same way as our other tax rules but use a Priority number of 2 or higher. You should end up with a table like this.
See it in action
Well that’s the hard part out of the way. Your site should now be calculating correctly based on the customers location. We can test that by heading to your shop front and placing some sample orders pretending to be from different locations. At this point though you’ll notice a couple of things that need to be fixed before we are finished.
Firstly, by default Magento will not list multiple taxes as separate line items on your order. They are calculated together and simply listed as Tax. To fix this we need to go to back to the admin section and navigate our way to System > Configuration, under the Sales menu on the left hand side select Tax. Under the Shopping Cart Display Settings section we need to set Display full tax summary to Yes. There are some more settings in this tax section that you may want to look at while you’re here depending on your catalog display preferences. Below is a snapshot of the tax settings for my store for your reference.
Result!
Well there we have it. Not only have we learned we gathered a better understanding of the complex Canadian taxation system we’ve also learned how to tame Magento to handle it all for you. I hope you enjoyed this first installment of our series of blog posts about Magento. There’ll be plenty more to come in the very near future that can hopefully make setting up your online store just a little bit less confusing.
Feel free to post any comments or questions below and I’ll do my best to clear things up.
Sleekd has provided another well written article on setting up Magento to handle Canadian tax. You should also be sure check that the tax rates you use are up-to-date when setting up your store. My figures were taken from Wikipedia when writing this article.







