FedEx API Change Leaves Magento Users Shipless

Share this post
Dead end

Magento has become an industry standard in e-commerce, due to its flexibility and the sheer number of features that are available out-of-the-box and with no customization. For small online stores, in fact, Magento will generally handle the needs of the retailer with very minimal backend customization.Looking from the outside in, most people think that e-commerce development is difficult because of the fact that financial transactions are being handled. In my experience, I’ve found that the trickiest aspect of e-commerce is actually the shipping. Even though Magento offers out-of-the-box integration with the most popular shipping solutions, there are still multiple variations and the need for significant customization for nearly every store. These can take the form of discounts, international shipping variations, free shipping rules, etc. There’s no ‘one size fits all’ when it comes to shipping solutions.

Any e-commerce platform needs to keep up with changes in third-party APIs, and Magento is no exception. That’s why it was so problematic when Federal Express recently changed their API, seemingly without warning and with no formal announcement. The change was actually a very minor one: they removed a parameter from the end of the URLs for their APIs (for both production and testing), but that tiny change actually changes everything.

The old URLs looked like this: https://ws.fedex.com:443/web-services/rate

The new URLs like this: https://ws.fedex.com:443/web-services

The fact that the change was made with virtually no announcement was problematic enough, as Magento users and developers literally woke up one morning about a month ago to find non-functioning FedEx options in their stores. What complicated the change specifically with Magento, however, was that, while most shipping options can simply be changed directly from the administrative interface in Magento’s backend, the API URLs for FedEx specifically are hard-coded in Magento core. Thus, this isn’t an issue that the average end-user can fix.

There is no official patch from Magento yet, and they will likely take some time to release one, as any patch will need to be backward compatible for a few versions (Magento users don’t necessarily upgrade regularly due to the complexity of the process), and also because other issues with SOAP XML responses were seen after this change, as well, and those are more difficult to address. So, the solution to keeping FedEx running is to change the hard-coded API calls within Magento core itself. There are some unofficial third party patches out there, but use them with caution. The change is easy enough for a developer to make in the appropriate file. However, these should always be applied by an experienced web developer after making a backup of the site, especially the database!

Hopefully, Magento will release a patch soon, although patches for the Community Edition historically arrive slowly. Until then, fixing FedEx the hard way is the only answer to this problem.

Insights

600+ articles to give you key insights for your projects

8 Simple Ways to Improve Your Website Security

8 Simple Ways to Improve Your Website Security

With cyber threats becoming increasingly sophisticated, it’s essential to implement robust security measures to safeguard your website and the sensitive information it holds.  You know that you need to keep your website safe from the bad guys, but once you venture...

The Dilemma of Estimates

The Dilemma of Estimates

Estimates serve as the cornerstone of any website project, providing clients with a roadmap for budgeting, planning, and expectation management. They offer a glimpse into the intricate tapestry of tasks, timelines, and resources needed to bring a website to life....

Config Sync Overview

Config Sync Overview

When Drupal 8 was released, it came with Configuration Syncing functionality. This has been a staple ever since for Drupal 9, Drupal 10, and beyond. Configuration Syncing was a game changer and one of my favorite features in Drupal Core. The days before config sync...