Jump to content
greasemonkey

FedEx - Web Services v9

Recommended Posts

This error is returned when when the state or province code is longer than 2 characters

----

Error in processing transaction.

 

ERROR

crs

840

The length of the destination state or province exceeds the limit of 2 characters.

The length of the destination state or province exceeds the limit of 2 characters.

----

 

Which is very annoying if you ship to Europe, as we do. If you actually go to your fedex rate quote web page you'll see that the state/province isn't even required for a rate quote to a European address. So, if you don't like the idea of going into oscommerce and changing all the zone codes to be 2 characters, this is the best hack I can come up with. The following hack seems to solve the problem without messing up shipping quotes to areas with 2 character state/province codes and maintains correct addresses for the invoices.

 

 

This goes in --> /includes/modules/shipping/fedexwebservices.php, navigate down to around line 110 and find this block of code:

 

// customer details	  
$street_address = $order->delivery['street_address'];
$street_address2 = $order->delivery['suburb'];
$city = $order->delivery['city'];
$state = tep_get_zone_code($order->delivery['country']['id'], $order->delivery['zone_id'], '');
if ($state == "QC") $state = "PQ";
$postcode = str_replace(array(' ', '-'), '', $order->delivery['postcode']);
$country_id = $order->delivery['country']['iso_code_2'];

 

I inserted this comment and code after -> if ($state == "QC") $state = "PQ";

 

// Fix for long province codes
$state = substr($state, 0, 2);

 

But it would also work right at the end of the code block above, it just needs to be done somewhere after "if ($state == "QC").." and before "$request['RequestedShipment']['Recipient']..." is defined in the next code block.

 

All this does is shorten the state/province code to be the first 2 characters of the code before the rate request is created, so SXE becomes SX and the rate request is processed without generating an error. So long as there is a post code and a street address I think it should function properly.

 

I make no guarantees...

Your mileage may vary wink.png

Share this post


Link to post
Share on other sites

I'm actually receiving this same error and I did obtain the production information:

 

MODULE_SHIPPING_FEDEX_WEB_SERVICES_TEXT_TITLE
MODULE_SHIPPING_FEDEX_WEB_SERVICES_TEXT_TITLE
Error in processing transaction.

ERROR
prof
1000
Authentication Failed

Edited by MrE03

Share this post


Link to post
Share on other sites

I would like to install this contribution in my store to replace my existing FedEx API. However - I have some questions:

 

(1) There doesn't appear to be any text doc for the install - am I missing something?

(2) Does this contrib print labels?

(3) What are the serverside requirements? PHP5?

 

Thanks to all who have labored to get a replacement for the API!

 

John


John Skurka

Share this post


Link to post
Share on other sites

I don't get it, I read everything here and did everything right. My host installed php5 and the soap test worked. My cart works except I can't find a Fedex module that works, Thought this was it, spent 1/2 hour on the phone with fedex to get the key, pass, meter #, and so on, then put it all in the module and get this:

FedEx shipping_fedex.gif Error in processing transaction.

 

WARNING

crs

556

There are no valid services available.

There are no valid services available.

 

 

can anyone help on this?

Share this post


Link to post
Share on other sites

I talked my customer out of fedex. I spent a few weeks trying to get a module to work, I give up, he can go with table rates or something easier.

Share this post


Link to post
Share on other sites

Bryan G: If I had been back here sooner I would have replied. It looks like it was actually working correctly, it just had some bad data. It looks like you were trying to get a quote with a bad address, a bad zip code will cause that error, so will invalid characters in the address for the store or customer, you have to make sure testing addresses are actually valid.

 

I don't think it's lack of available services, it usually just quietly does nothing if there is no shipping option for the delivery address, even when no shipping methods are enabled.

Edited by bubbastien

Share this post


Link to post
Share on other sites

John: There are no docs, other than this thread, that I'm aware of, you should read through it before you decide to install the module. The install is pretty simple though, just extract the zip file and put the files in the same directory on the server that they are in on your local machine. Then just go to the admin area and install the shipping module. Fedex is phasing out the old api and gateway, so you'll need to update your account with fedex if you haven't already. Once the module is installed you should be able to put in your account info and select the shipping options you want to offer.

 

You need php 5 and php soap support, there is a php file in the package that tests your server for soap support.

 

It doesn't print labels, there are some older contributions that do, but I doubt they will still work with the new fedex web services api.

Share this post


Link to post
Share on other sites

John: There are no docs, other than this thread, that I'm aware of, you should read through it before you decide to install the module. The install is pretty simple though, just extract the zip file and put the files in the same directory on the server that they are in on your local machine. Then just go to the admin area and install the shipping module. Fedex is phasing out the old api and gateway, so you'll need to update your account with fedex if you haven't already. Once the module is installed you should be able to put in your account info and select the shipping options you want to offer.

So it truly is a module that can be turned on/off in admin, which allows for existing FedEx module to work as well, right along side (while bugs are being worked out)?

 

You need php 5 and php soap support, there is a php file in the package that tests your server for soap support.

I see this as an issue - my host is not keen on PHP5 due to security issues.

 

It doesn't print labels, there are some older contributions that do, but I doubt they will still work with the new fedex web services api.

So, all this contrib does is get shipping quotes based on the customer's addy?


John Skurka

Share this post


Link to post
Share on other sites

John: Yes it's a regular shipping module that you can enable and disable and just gives live fedex rate quotes. I suppose you could use it along side of the one that is already installed, although I have never done that with this module and other fedex modules.

 

I've done that in the past with flat rate modules for various shippers all created from the same script. You have to create the copies with a different file name, obviously, and you would have to make sure that the defined constants don't clash, or you will get errors about trying to redefine constants when you enable them.

 

Basically that means you have to find instances like:

@define('MODULE_SHIPPING_FEDEX_WEB_SERVICES_INSURE', 0);

 

In the shipping module and language file and make sure that they are unique or change them to something like:

@define('MODULE_SHIPPING_FEDEX_WEB_SERVICES_2_INSURE', 0);

 

As far as php goes, each successive version has been more stable and more secure, so if your hosting provider is balking at the upgrade to a newer version, security isn't the real problem. PHP can be as secure or insecure as it is set up to be on the host, it's all about default configuration on the server side and what options you're allowed to have control over as a user.

Share this post


Link to post
Share on other sites

It is great to see that someone has finally put together a module for Web Services. My Rep has been on my rear for months. I have been using the Fedex Automated labels mod for years. Is anyone else using this and has anyone heard of a web services version that will print labels. From what I can find all that is out there currency are shipping cost calculators. If this is too far off topic I am sorry but I figured this thread would be my best bet for finding others in a situation similar to myself.

 

Thanks!

Share this post


Link to post
Share on other sites

I'm getting the following error when trying to print the fedex label,

 

Warning: fopen(/xampp/htdocs/usamilitarymedals/admin/images/fedex/post.txt) [function.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\usamilitarymedals\admin\includes\fedexdc.php on line 309

 

Warning: fwrite() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\usamilitarymedals\admin\includes\fedexdc.php on line 310

This transaction could not be completed. Please note the error message below.

 

I am confused as to how the post.txt file is created. There isn't a file I am missing is there?

Share this post


Link to post
Share on other sites

It is great to see that someone has finally put together a module for Web Services. My Rep has been on my rear for months. I have been using the Fedex Automated labels mod for years. Is anyone else using this and has anyone heard of a web services version that will print labels.

 

Yes - I'm using the FedEx Automated Labels. I use that contrib every day to ship orders. Gonna suck if it no longer works with WebServices...


John Skurka

Share this post


Link to post
Share on other sites

I have installed this module and it seems to work..on the surface. There doesn't seem to be an option for weight and/or dimensions. Therefore, the rate I'm getting is incorrect. How do I get this to include this info?

Share this post


Link to post
Share on other sites

I have the module installed in version 2.3 of oscommerce. On the surface it seems to be working. However, the rates are not correct based on the account Also, it doesn't pass the correct package count to fedex web services. The shopping cart shows the correct number of items but the shipping module isn't picking up the correct number.

Share this post


Link to post
Share on other sites

Hi,

 

if a customer use special characters in his address , he gets this error when he want to the shipping page:

Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: string 'pok\xf3...' is not a valid utf-8 string in /home/bram/public_html/catalog/includes/modules/shipping/fedexwebservices.php:184 Stack trace: #0 /home/bram/public_html/catalog/includes/modules/shipping/fedexwebservices.php(184): SoapClient->__call('getRates', Array) #1 /home/bram/public_html/catalog/includes/modules/shipping/fedexwebservices.php(184): SoapClient->getRates(Array) #2 /home/bram/public_html/catalog/includes/classes/shipping.php(124): fedexwebservices->quote('') #3 /home/bram/public_html/catalog/checkout_shipping.php(192): shipping->quote() #4 {main} thrown in /home/bram/public_html/catalog/includes/modules/shipping/fedexwebservices.php on line 184

 

anybody can help me?

Thanks in advance.

 

Bram

Share this post


Link to post
Share on other sites

How do I include package dimensions? I just don't see it in this module and the correct rate is dependent on that info.

Share this post


Link to post
Share on other sites

Can anyone help me ????

I am using non soap (HTTP POST method) code to get rate (for shipping) from fedex. But could not get the output from fedex.

Do I have to configure the new certificate file to my Xaamp.As I came to know from fedex.com(https://www.fedex.com/wpor/web/jsp/drclinks.jsp?links=wss/index.html)

that SSl certificate has been updated.

Share this post


Link to post
Share on other sites

Hi Guys. Thank you for this great contribution.

 

It works very well in general. However, if you include any accented character in the shipping address, é è ñ á ó for exemple, it triggers a 500 Server error.

Many foreign addresses include accented characters and it is impossible for the foreign customer to get a shipping quote. Am I an isolated case or is this a know issue?

 

Thank you.

Share this post


Link to post
Share on other sites

 

It works very well in general. However, if you include any accented character in the shipping address, é è ñ á ó for exemple, it triggers a 500 Server error.

Many foreign addresses include accented characters and it is impossible for the foreign customer to get a shipping quote. Am I an isolated case or is this a know issue?

 

I just ran into the same issue with a customer from Brazil used an é in his shipping address and instead of a 500 error the shipping page just came up blank.

We either need a fix for this, or a filter to replace accented characters.

 

Also I have not had a chance to work on it, but I think we would also need to consider the Ship Seperatley addon from the original FedEx Real Time Quotes.

http://addons.oscommerce.com/info/1462 update V2.06 26 Nov 2006.

We ship a lot of bulky packages and this addon has really saved our butts with shipping calculations.


If you choose not to decide you still have made a choice, I will choose a purpose clear, I will choose Free Will. --Neal Peart - Rush

Share this post


Link to post
Share on other sites

Does anyone know if this version supports the display of transit time? It worked in Version 2.04, but it does not seem to display transit time in this version.

 

Thanks

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×