-- HikaShop version -- : HikaShop Business: 2.3.2
-- Joomla version -- : Joomla! 2.5.22
-- PHP version -- : 5.3.28
-- Browser(s) name and version -- : all
-- Error-message(debug-mod must be tuned on) -- : None
Hello,
We have a store that sells products internationally.
It has 2 shipping methods:
PUROLATOR - for Canada
FedEX for everywhere else
All works EXCEPT for FedEX shipping to Mexico and a few other countries.
Message from HIKASHOP - "NO SHIPPING METHOD FOUND" when some countries are the shipping to address.
The thing is - if I go to FedEX WWW I can get those shipping rates with the exact same addresses.
The plugin does not have any country restriction.
The plugin call the Fedex API in order to get the possibilities and the rates (the prices).
If you did not activate some special fedex methods, it might be possible that some countries are not available.
After that, it is possible that the website will give you some information and the API another ; it will be weird, but possible.
What I will recommend you is to see directly with Fedex ; the plugin can't be the source of your troubles, it's just a bridge with the Fedex API.
Regards,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.
We have done some digging and here is what we found:
Hikashop error message reads: " SHIPPING METHOD NOT FOUND" It was working before we updated some time ago but now it often - ALMOST ALWAYS does not work.
We hired a programmer to debug what is going on here - his findings are below.
He turned on logging in the code for the FedEX Shipping plugin.
FEDEX returns a message that reads:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="
schemas.xmlsoap.org/soap/envelope/
">
fedex.com/ws/rate/v10
">ERRORERRORcrs840The 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. *** Rate Request v10 using PHP ***crs1000
It seems that there is an issue with 2 vs 3 characters for STATE OR PROVINCE Code.
Also, apparently the file: fedex.php on line is 782 sends 3 character code when FEDEX wants 2
ORIGINAL CODE:
'StateOrProvinceCode' => $data->address_state->zone_code_3,
SHOULD BE?:
'StateOrProvinceCode' => $data->address_state->zone_code_2,
Additionally the db table apparently does not have all the 2 character codes and needs to be completed.
Hello,
Thanks for your feedback :
1. I just checked the FedEx developer documentation and they don't seem to restrict the "StateOpProvinceCode" to a 2 characters code :
2. Note that through the USA and Canada sub-zones, you won't have any zone which have more than 2 characters on the "Code 3 letters" or "$data->address_state->zone_code_3" variable, so if you have set an USA/Canadian shipping address, the zone code won't be longer than 2 characters.
Hello - is it possible to please get some assistance with issues with FEDEX plugin and possible problems with the hikashop tables for countries / states /provinces
As you might see, the "Fedex" plugin has not been developed by the HikaShop team but by : "Rich S Wyatt - D3 Web Creations".
The author gave us the plugin and the right to include it into HikaShop.
Because the plugin had some troubles, "Obsidev" made some modifications in order to fix the different issues before the first release.
Now, the HikaShop team is maintaining the plugin for the compatibility with HikaShop.
If Fedex is asking for codes with 2 characters, you have to give him codes with 2 characters.
You will see that in the HikaShop database, the states have mostly codes in the "zone_code_3" even if the code is in 2 characters. Most of states does not have any value in the "zone_code_2" ; so it's difficult for the plugin to work with that.
You can edit the plugin and replace
Code:
$state_zone=@$rate->shipping_params->sender_state;
$query="SELECT zone_id, zone_code_3 FROM ".hikashop_table('zone')." WHERE zone_namekey IN ('".$state_zone."')";
$db->setQuery($query);
$state = $db->loadObject();
$data['sender_state']=$state->zone_code_3;
By
Code:
$state_zone=@$rate->shipping_params->sender_state;
$query="SELECT zone_id, zone_code_2, zone_code_3 FROM ".hikashop_table('zone')." WHERE zone_namekey IN ('".$state_zone."')";
$db->setQuery($query);
$state = $db->loadObject();
$data['sender_state'] = empty($state->zone_code_2) ? $state->zone_code_3 : $state->zone_code_2;
in order to load the "zone_code_2" when possible but if in the database there is no 2 characters code at all, HikaShop and the fedex plugins won't be able to create them.
At this moment you will need to fill your zone database with the correct codes.
www.hikashop.com/support/documentation/i...ashop-zone-form.html
Regards,
Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.