In Magento there are 2 choices around displaying UPS Rates:
- CGI – No requirement for user details, just displays standard rates. EASY but rubbish
- XML – Need a login, password XML Access Key. Can display negotiated rates. HARD but accurate
Basically the CGI is good for playing around, but when you go live you want the XML rates. There is a lot more going on, and if your store is outside the States then you can’t live without.
To get setup for XML Rates is not straightforward. You need to go to their Developer Kit page, register, login, and request an access key.
With a bit of luck at some point you will get an email containing you XML Access Key. So in total you should have a UPS Login, Password, and Access Key.
In Magento enter your UPS login details.
Make sure you highlight all the allowed methods you need – this is a common mistake and if you don’t select some you won’t see any rates.
If you aren’t running SSL you might also want to switch to developer mode in the UPS shipping config, then switch to live afterwards.
All being well you should now see rates on the frontend in Magento.
So now you have XML Rates. But what about those rates you obtained from your UPS representative, how do you display them? Well, for some sites you don’t want to display the negotiated rates, as you don’t want to pass the savings onto your customer. But for others keeping the shipping costs as low as possible is a key part of your competitiveness in the market, and you need those negotiated rates.
In theory you should be able to just switch on negotiated rates in admin and add in your shipper number you obtained from your rep.
But, and here is the catch, we have seen a number of customers that do this and negotiated rates are not returned.
It turns out that in order to switch on Negotiated Rates you must be authenticated on the UPS site. This can be done manually by ringing UPS, or via the My UPS, under ‘Maintain Your UPS Account’.