Zen-cart may fail to charge appropriate taxes under the following circumstances:

1. PayPal Express Checkout is used for payment
2. Automatic Account Creation option is enabled in PayPal Express configuration
3. The buyer has had a PayPal account for many years
4. The buyer misspelled the name of the province when creating his/her account.

It definitely affects Canadian ZC merchants, but may affect other countries as well that charge sales tax.

The problem happens when PayPal passes an incorrect name of the province to Zen-cart, so it doesn't recognize it and doesn't add the taxes to the total. PayPal introduced province name validation a few years back, so only PayPal buyers who created their accounts many years ago could possibly misspell the name of their province when setting up the account.

Example: Zen-cart recognizes "Ontario" and "ON", but does NOT recognize "OntRario" or "ONT". "Quebec" is OK, but "Québec" is NG.

Possible solutions:

On a case by case basis, when you see an order without taxes (but they should have been applied), contact the buyer and ask him/her to go to their PayPal account and update the province in their profile. Since PayPal now has a select box instead of a text (type in) box, once they select their province, the problem is fixed - but only for this specific customer. Also, you should go into that customer's profile (in ZC admin area) and update the province yourself as it may not do it automatically then the customer changes it in his/her PayPal profile.

You should check your orders, maybe this issue affected you and you didn't even realize it! Keep in mind that if you are required by law to collect sales tax and you don't, you still owe it to the government!


1. Contact PayPal (the more users, the better) and report this issue to them - maybe PayPal will run a script on their system that would convert all Canadian address entries province names to their legal / accepted format. Considering that PayPal is a large corporation, it could take them a while to do it, if they'll even bother doing it at all.

2. A ZC PayPal Express patch based on the following logic. First letter of the postal code can be used to determine the right province:
K, L, M, N, P - Ontario
J - Quebec
V - British Columbia
Y - Yukon
etc.

An obvious drawback here is if a buyer enters a wrong first letter of the postal code, the province would be changed by the script to a wrong province. Then again, if a buyer does not check the postal code he/she enters, then it's their fault. Still, best code is one that is nearly foolproof.

Alternatively, a script could compare the entry (province name supplied by customer) to all provinces defined in the zones and selecting one that is the closest match.

Feedback is welcome!