1. If your store is CFWebstore version 6.50 or newer you can simply replace the file cfcs/shipping/uspostal.cfc with this file: USPostal.cfc (file is zipped).
2. Or you can make the changes manually.
Replace ~line 266:
temprequest = temprequest & 'USERID="#arguments.userid#"><Revision/>';
with this:
// May 2015 Update
temprequest = temprequest & 'USERID="#arguments.userid#">';
if (v.CustomerAddr.Country IS NOT 'US') {
temprequest = temprequest & '<Revision>2</Revision>';
}
else {
temprequest = temprequest & '<Revision/>';
}
Replace ~line 340:
if (v.CustomerAddr.Country IS 'US') {
temprequest = temprequest & '<machinable>#arguments.Machinable#</machinable>';
}
With this:
// May 2015 Update
if (v.CustomerAddr.Country IS 'US') {
temprequest = temprequest & '<machinable>#arguments.Machinable#</machinable>';
}
else {
temprequest = temprequest & '<originzip>#v.MerchantAddr.Zip#</originzip>';
}
To make the updates live, login to your Admin account, go to Site Design and click 'reset cache'. This will flush the server memory and load the new uspostal.cfc.
Now go to your shopping cart and input a Canadian address and make sure USPS rates are being returned. Here's a test address:
348 Adelaide St W,
Toronto ON M5V 1R7,
Canada