Hello,
in 2013, some canadians taxes will change. Fist one is Quebec taxe (TVQ) and it is causing troubles with Magento.
In 2012, the TVQ was charged on the subtotal + GST amount. In Magento, GST was Priority 1 and TVQ Priority 2. This set up makes both taxes appears with their respective amount in the checkout page. For ex:
GST (5%) : 2.00$
TVQ (9.5%) : 3.00$
In 2013, the TVQ will no longer be charged on the subtotal+GST, but on the subtotal only with a raise at 9.975%. We just have to set TVQ to Priority 1 in the Tax Rules.
Problem is Magento combines both tax amounts in only one amount. For ex:
GST (5%) : 5.00$
TVQ (9.975%) :
According to laws, we must show both GST and TVQ amounts. The main issue is that native Magento cannot show 2 taxes with Priority 1. This point has been confirmed to me by the Magento Support and unfortunately there is nothing they can do about it.
A custom development must be done on both Model and Block classes of the Tax module in order to show both amounts (GST and TVQ).
I am also interested by a solution that will display 2 taxes with the same priority.
All the non harmonized provinces in Canada have the same problem, I am sure some USA states have the same problem too.
I created what I call “dirty fix”, or simply a hack for version 1.7.0.2. So far works for frontend only. Admin Panel under Sales Orders still shows 9.5%. You can try it on your own risk. No warranty what so ever.
The fix is based on the fact that the actual amount of QST did not change. So, we can keep the old rule of calculating QST as a compound 9.5% tax and just change the label from (9.5%) to (9.975%). To do this we need to modify the following files:
Make sure your Quebec Tax identification is QST or modify both appearances of string QST in the replacement code to match your identifier.
You can see the result of my changes on http://modernlamps.ca
Again, this fix is for Magento version 1.7.0.2 only and may not work with other versions.
NOTE: This change will apply to old orders too, i.e. if customer logs in from frontend and checks his pre-2013 orders, he will see the label QST (9.975%).
The patch proposed here is a solution for Quebec only and will only be valid until next tax increase - likely in January 2014.
In addition to this, the same problem exists for Canadian provinces Saskatchewan and Manitoba because they follow the same set of rules:
- two levels of taxes applied (federal and provincial)
- taxes are not compounded (ie: magento tax priority settings are the same)
- Canadian tax laws require that both taxes are shown on all sent to customer and stored by company.
A better fix, at least from Canadian (CA) perspective, would be to force all applicable taxes to be shown on documents regardless of tax priority used in setup.
Related discussion can be found at the bottom of this page
innoveight.ca/magento-taxes-setup/
Logic that controls tax display seems to be around here:
\app\code\core\Mage\Tax\Block\Sales\Order\Tax.php
\app\code\core\Mage\Tax\Model\Config.php
Even better would be to add a new field to tax_calculation_rate table, so any changes can be handled from admin consule.
2. It is not just Quebec, but Saskatchewan and Manitoba with the same problem - depending on where you are based.
3. tax rate equivalents for Saskatchewan and Manitoba are more complicated than Quebec, you may want to fix the field to accomodate the rate
ALTER TABLE tax_calculation_rate CHANGE `rate` `rate` DECIMAL(12,9) NOT NULL;
Note that this is an ugly hack. Please send Magento a Defect Report if it affects your organization. It should be fixed at the source or an appropriate module created.
Even better would be to add a new field to tax_calculation_rate table, so any changes can be handled from admin consule.
2. It is not just Quebec, but Saskatchewan and Manitoba with the same problem - depending on where you are based.
3. tax rate equivalents for Saskatchewan and Manitoba are more complicated than Quebec, you may want to fix the field to accomodate the rate
ALTER TABLE tax_calculation_rate CHANGE `rate` `rate` DECIMAL(12,9) NOT NULL;
Note that this is an ugly hack. Please send Magento a Defect Report if it affects your organization. It should be fixed at the source or an appropriate module created.
I agree, not sure I want to make changes to the database like that…
By the way, how DO we file a change request to the Magento Core team? I looked everywhere and couldn’t find anything on that.
As a temporary measure, I will do the fixes above and hope for a more permanent solution from Magento soon.