USPS International Shipping stopped working

6 years ago
No recent changes made to a nopCommerce 2.50 installation that has been running for a couple years now.

Had an order placed last Saturday (30 MAY 2015) shipping to Canada and the postage was correct.

Had two other orders come in on Monday (01 JUNE 2015) shipping to Canada and the postage was $2 (note: this amount is same as my "handling fee" so I'm assuming the postage was actually $0 with the $2 handling fee added on)

Obviously....something just broke with the Post Office Priority Mail shipping calculator.  

I am configured to display both EXPRESS and PRIORITY.   EXPRESS shows correct postage.  PRIORITY does not.  

I even tried enabling flat rate box options (which normally I do not allow) and they just don't even appear as options for Canada

Anybody else run into this?
6 years ago
Additional Info:  Domestic rates are working fine.  This is only boxes to Canada (I'm assuming all international orders)
6 years ago
Is the service name showing as just "USPS" with no additional info?
This appears to be a bug with USPS.  Just yesterday, I worked with a Shipping Director customer who had the same problem - also occurred only for international shipping.   We were able to put in a workaround with the SD configuration (ignore services with $0.00 rate), but clearly this is a USPS bug.  You should contact their technical support.
6 years ago
Yes it could be bug on our USPS plugin level too.

As I worked with Canada Post shipping and i get same issue it work with Domestic but not working with International.

and it required some extra implementation to support international so may be in USPS it required some extra implementation to support international shipping.
6 years ago
I did get a email from the USPS changed their rate on 5/31/2015 and also now require a postal code for international shipment. I assume that the USPS plugin on NopCommerce does not use a Postal Code for International shipment as it was not needed to get an estimate in the shopping cart. I think this would need to be a needed addition to the USPS plugin.
6 years ago
So I've got the same issue here, and I'm working with Shipping Director.  

Does anyone have any ideas on how we can fix this to work correctly?

Currently I have Canada disabled as a ship to country which has to change.

In the meantime I'm going to try and set up a flat rate Canada Shipping rule which I don't want to do but I don't know what else to try?
6 years ago
With SD, it's easy to exclude shipping services using the Option record's Name Expression field:

if the Name Expression evaluates to blank (""), then Shipping Director will exclude the Option.

So, for example, the Name Expression of your USPS record in SD can look like this:

    [$Rate] = 0.00 ? "" : [$Name]

I'd recommend that all those having this problem call USPS tech support ... The squeaky wheel gets the grease :)
6 years ago
Thanks a ton,

I appreciate your help, but I have no idea how to incorporate that into our existing code, when I tried to just append it to the name expression it made all my international shipping stop working.

Would it be possible for you to let me know where to insert that code?

Also, If I understand this "fix" correctly, this will hide the shipping option from being available if it's 0, but that means I will have no shipping options for Canada?  How do I make shipping to Canada work again?

here is a copy of my existing SD file

[quote]Order  Active  Type  Name  Expression  RateExpression  SurchargeExpression  NameExpression  DescriptionExpression
0  True  Boolean  $Debug  true        
5  True  ErrorExit  Check Country  ShippingAddress.Country = null        "Please enter country"
10  True  String  Country  ShippingAddress.Country.TwoLetterIsoCode        
15  True  ErrorExit  Check US State and Zip  "US,CA".Contains([Country]) and (ShippingAddress.StateProvince = null or String.IsNullOrWhitespace(ShippingAddress.ZipPostalCode))        "Please Enter Country, State, and Postal Code"
20  True  ErrorExit  Check Intl Zip  !"US,CA".Contains([Country]) and (String.IsNullOrWhitespace(ShippingAddress.ZipPostalCode))        "Please enter postal code"
25  True  String  State  "US,CA".Contains([Country]) ? ShippingAddress.StateProvince.Abbreviation : ""        
30  True  Boolean  IsInUS  [Country] = "US"        
35  True  Boolean  IsIn48States  [Country] = "US" and [State] <> "AK" and [State] <> "HI" and [State] <> "PR" and [State] <> "AS" and [State] <> "MH" and [State] <> "FM" and [State] <> "MP" and [State] <> "PW" and [State] <> "GU" and [State] <> "VI" and [State] <> "AA" and [State] <> "AE" and [State] <> "AP"        
60  False  OptionExit  ups test  true  Shipping.UPS      
90  True  Option  FixedRate  [Country] = "US" and [$SubTotalWithDiscounts] >= 100 and [IsIn48States]  0    "Free Standard Shipping Over $100"  
95  True  Option  FixedRate  [Country] = "US" and [$SubTotalWithDiscounts] = 999 and [IsIn48States]  0    "Standard - Internal Use"  
100  True  Option  FixedRate  [IsIn48States]  5.95    "Standard - Will be at my door in 3-9 Business Days"  
105  True  Option  FixedRate  [IsIn48States]  7.95    "FedEx Home Delivery - Will be at my door in 3-8 Business Days"  
110  True  Option  UPS  [IsIn48States]  Shipping.UPS    [$Name].Contains("Ground") ? "UPS Ground - Will be at my door in 3-8 Business Days" : [$Name].Contains("2nd Day") ? "UPS Expedited - Will be at my door in 4-5 Business Days" : "UPS Express - Will be at my door in 3-4 Business Days"  
120  True  OptionExit  USPS  [IsIn48States]  Shipping.USPS    "USPS Priority Mail - Will be at my door in 3-5 Business Days"  
200  True  OptionExit  USPS outside 48  [IsInUS]  Shipping.USPS    "USPS Priority Mail - Will be at my door in 4-7 Business Days"  
300  True  OptionExit  USPS Intl  true  Shipping.USPS    [$Name].Contains("Express") ?  "USPS Express Mail 5-9 Business Days" : "USPS International Mail - May take up to 30 Days"  [/quote]
6 years ago
If you already have a Name Expression, then prepend the new condition also using " ? : ".  So for line 300 it would be...
 [$Rate] = 0.00 ? "" : [$Name].Contains("Express") ?  "USPS Express Mail 5-9 Business Days" : "USPS International Mail - May take up to 30 Days" 

USPS would not normally return $0 rate for any shipping service.  The above will only hide the services that have a $0 rate.  From the sample that my client sent me, USPS was always sending a legitimate service/rate along with service/rate of "USPS "/$0.
6 years ago
Thanks for that,  this gives me the following now "Shipping options could not be loaded" when I try to ship something to Canada.  

How can I make it so that I can still ship to Canada?

If I can't easily query usps to get an accurate shipping price, can I at least add a shipping field for flat rate to Canada?

I added the following lines to create a flat rate but this did not work

310  True  Boolean  IsInCANADA  [Country] = "CANADA"        
320  True  Option  FixedRate  [IsInCANADA]  35    "USPS International Mail - Usually arrives in 14-21 Business Days"