Jump to content
greasemonkey

FedEx - Web Services v9

Recommended Posts

i've installed the latest version of webservices and order editor and i'm not seeing the fedex choices when i go to edit the order. is there a work around for this?

 

the code that is suggested by order editor's support forum talks about fedex1.php which was the older fedex module.

Share this post


Link to post
Share on other sites

Look in fedexwebservices.php for the following section:

 

lines 121-125

// Depending on your version of Order Editor, any one of the following lines may be appropriate for your setup.
   $totals = $order->info['subtotal'] = $cart->total;  // from CRE Loaded code - testing - this may be the one for all?
//    $totals = $order->info['subtotal'] = $_SESSION['cart']->show_total();  // original code
//    $totals = $order->info['subtotal'] || $_SESSION['cart']->show_total();  // or perhaps this is better
//    $totals = $cart->show_total();  // this seems to work for most

 

test with the different settings. let us know


-Dave

Share this post


Link to post
Share on other sites

First, thank you RoadDoctor for all of your work on this module. I have v9.4.3.1 all working, but fixed one issue and still have another one.

 

First, I think the instructions for the "ship_separately" functionality are incomplete, and/or the code in the includes/modules/shipping/fedexwebservices.php file is wrong. The settings for the module seem to combine the UPS XML "Ready to Ship" and FedEx "Ship_Separately", and the code does the same, but the installation instructions only tell the user how to get the "ship_separately" working (there is a fedexweb.sql.php in the "sql" folder that alters the products table, and it does add the ship_separately field, but not the "ready_to_ship" field, which the code requires when the module option is enabled).

 

I was using the previous FedEx Realtime Quotes, so I already had the ship_separately field in the database, and already had the categories.php changes made, but the shipping module still expected the "ready_to_ship" field in the products table. For anyone else who has this issue, you have two options.

 

1) manually add the field to the products table

 

2) In the fedexwebservices.php module file, change the following two lines

 

Around line 181, change

 

$dimensions_query = "SELECT products_ready_to_ship, products_ship_sep, products_weight FROM " . TABLE_PRODUCTS . "

 

To this

$dimensions_query = "SELECT products_ship_sep, products_weight FROM " . TABLE_PRODUCTS . "

 

Around line 186, change

 

if ($product_dimensions['products_ready_to_ship'] == 1 || $product_dimensions['products_ship_sep'] == 1) {

To this

if ($product_dimensions['products_ship_sep'] == 1) {

 

 

The above changes will tell the code to not even try to find or use the "products_ready_to_ship" column in the products table.

 

 

 

I still have one more issue though. In the osCommerce general Shipping options, the "Maximum Weight You Will Ship" variable does work with this FedEx WebServices Module, but "Package Tare Weight" and "Larger Packages - percentage increase" options do not seem to have any effect on this shipping module. Is anyone else having this problem? Or does anyone know what could be affecting it or how to make it work?

Share this post


Link to post
Share on other sites

Hi,

 

I installed and set up module v9.4.3.1. I can not make it working, when try check out getting below message. Using oscommerce v2.3.1. Maybe someone experienced same problem. Thank you

 

FedEx Please enter a ZIP Code to obtain your shipping quote.

Or possibly:

If no rate is shown, the heavy weight of the item(s) in your Shopping Cart suggests a Request for Freight Quote, rather than FedEx Ground service, is recommended.

Edited by nfteam

Share this post


Link to post
Share on other sites

FedEx Please enter a ZIP Code to obtain your shipping quote.

Or possibly:

If no rate is shown, the heavy weight of the item(s) in your Shopping Cart suggests a Request for Freight Quote, rather than FedEx Ground service, is recommended.

 

That is a standard message when the module does not have an address (or Zip code minimally) to calculate... or as the message reads the item is possibly too heavy for fedex.

 

Check yuor installation


-Dave

Share this post


Link to post
Share on other sites

First, thank you RoadDoctor for all of your work on this module. I have v9.4.3.1 all working, but fixed one issue and still have another one.

 

First, I think the instructions for the "ship_separately" functionality are incomplete, and/or the code in the includes/modules/shipping/fedexwebservices.php file is wrong. The settings for the module seem to combine the UPS XML "Ready to Ship" and FedEx "Ship_Separately", and the code does the same, but the installation instructions only tell the user how to get the "ship_separately" working (there is a fedexweb.sql.php in the "sql" folder that alters the products table, and it does add the ship_separately field, but not the "ready_to_ship" field, which the code requires when the module option is enabled).

 

I was using the previous FedEx Realtime Quotes, so I already had the ship_separately field in the database, and already had the categories.php changes made, but the shipping module still expected the "ready_to_ship" field in the products table. For anyone else who has this issue, you have two options.

 

1) manually add the field to the products table

 

2) In the fedexwebservices.php module file, change the following two lines

 

Around line 181, change

 

$dimensions_query = "SELECT products_ready_to_ship, products_ship_sep, products_weight FROM " . TABLE_PRODUCTS . "

 

To this

$dimensions_query = "SELECT products_ship_sep, products_weight FROM " . TABLE_PRODUCTS . "

 

Around line 186, change

 

if ($product_dimensions['products_ready_to_ship'] == 1 || $product_dimensions['products_ship_sep'] == 1) {

To this

if ($product_dimensions['products_ship_sep'] == 1) {

 

 

The above changes will tell the code to not even try to find or use the "products_ready_to_ship" column in the products table.

 

 

Only if you do not have UPS XML installed, the change on line 181 is fine.

The change on 186 is unnescessary, but wont matter. Thanks for the input.


-Dave

Share this post


Link to post
Share on other sites

That is a standard message when the module does not have an address (or Zip code minimally) to calculate... or as the message reads the item is possibly too heavy for fedex.

 

Check yuor installation

 

I have the same problem. it was a new installation. any suggestion of any place i need to check?

Share this post


Link to post
Share on other sites

I have the same problem. it was a new installation. any suggestion of any place i need to check?

 

Never mind. I tried removing the files and reinstall again then it worked.

Thank you for the add-on. it works well.

Share this post


Link to post
Share on other sites

Not getting ground quotes for Canada, only International Economy and Priority

 

Yup, I checked, and International Ground is enabled, in fact all quotes are enabled and we have no problems with US Ground.

 

Any suggestions would be very much appreciated.

 

Peter

Share this post


Link to post
Share on other sites

Not getting ground quotes for Canada, only International Economy and Priority

 

Yup, I checked, and International Ground is enabled, in fact all quotes are enabled and we have no problems with US Ground.

 

Any suggestions would be very much appreciated.

 

Peter

 

Check the /includes/wsdl/RateServive_v9.wsdl file....

 

make sure this line is present

 

    <xs:enumeration value="INTERNATIONAL_GROUND"/>

 

if its missing change like this:

 

    <xs:restriction base="xs:string">
	  <xs:enumeration value="EUROPE_FIRST_INTERNATIONAL_PRIORITY"/>
	  <xs:enumeration value="FEDEX_1_DAY_FREIGHT"/>
	  <xs:enumeration value="FEDEX_2_DAY"/>
	  <xs:enumeration value="FEDEX_2_DAY_FREIGHT"/>
	  <xs:enumeration value="FEDEX_3_DAY_FREIGHT"/>
	  <xs:enumeration value="FEDEX_EXPRESS_SAVER"/>
	  <xs:enumeration value="FEDEX_FREIGHT"/>
	  <xs:enumeration value="FEDEX_GROUND"/>
	  <xs:enumeration value="FEDEX_NATIONAL_FREIGHT"/>
	  <xs:enumeration value="FIRST_OVERNIGHT"/>
	  <xs:enumeration value="GROUND_HOME_DELIVERY"/>
	  <xs:enumeration value="INTERNATIONAL_ECONOMY"/>
	  <xs:enumeration value="INTERNATIONAL_ECONOMY_FREIGHT"/>
	  <xs:enumeration value="INTERNATIONAL_FIRST"/>
      <xs:enumeration value="INTERNATIONAL_GROUND"/>
	  <xs:enumeration value="INTERNATIONAL_PRIORITY"/>
	  <xs:enumeration value="INTERNATIONAL_PRIORITY_FREIGHT"/>
	  <xs:enumeration value="PRIORITY_OVERNIGHT"/>
	  <xs:enumeration value="SMART_POST"/>
	  <xs:enumeration value="STANDARD_OVERNIGHT"/>
    </xs:restriction>


-Dave

Share this post


Link to post
Share on other sites

Hi, thanks, that line is in there, the whole block is just like you have it.

 

Anything else you can think of?

 

Check the /includes/wsdl/RateServive_v9.wsdl file....

 

make sure this line is present

 

 <xs:enumeration value="INTERNATIONAL_GROUND"/>

 

if its missing change like this:

 

 <xs:restriction base="xs:string">
	 <xs:enumeration value="EUROPE_FIRST_INTERNATIONAL_PRIORITY"/>
	 <xs:enumeration value="FEDEX_1_DAY_FREIGHT"/>
	 <xs:enumeration value="FEDEX_2_DAY"/>
	 <xs:enumeration value="FEDEX_2_DAY_FREIGHT"/>
	 <xs:enumeration value="FEDEX_3_DAY_FREIGHT"/>
	 <xs:enumeration value="FEDEX_EXPRESS_SAVER"/>
	 <xs:enumeration value="FEDEX_FREIGHT"/>
	 <xs:enumeration value="FEDEX_GROUND"/>
	 <xs:enumeration value="FEDEX_NATIONAL_FREIGHT"/>
	 <xs:enumeration value="FIRST_OVERNIGHT"/>
	 <xs:enumeration value="GROUND_HOME_DELIVERY"/>
	 <xs:enumeration value="INTERNATIONAL_ECONOMY"/>
	 <xs:enumeration value="INTERNATIONAL_ECONOMY_FREIGHT"/>
	 <xs:enumeration value="INTERNATIONAL_FIRST"/>
 <xs:enumeration value="INTERNATIONAL_GROUND"/>
	 <xs:enumeration value="INTERNATIONAL_PRIORITY"/>
	 <xs:enumeration value="INTERNATIONAL_PRIORITY_FREIGHT"/>
	 <xs:enumeration value="PRIORITY_OVERNIGHT"/>
	 <xs:enumeration value="SMART_POST"/>
	 <xs:enumeration value="STANDARD_OVERNIGHT"/>
 </xs:restriction>

Share this post


Link to post
Share on other sites

Contact fedex and ask if your webservices meter/account is authorized for Intl Ground quotes ....

 

or your could try this and see what you see

 

	  $methods = array();
 echo '<pre>';					
 print_r($this->types);
 echo '</pre>';

or

	 if (in_array($rateReply->ServiceType, array('GROUND_HOME_DELIVERY', 'FEDEX_GROUND', 'INTERNATIONAL_GROUND'))) {
 echo '<pre>';
 print_r($rateReply);
 echo '</pre>';


-Dave

Share this post


Link to post
Share on other sites

if you have local test server check out xdebug which is a free php debugger tool

http://xdebug.org

It intergrates with many IDE like Netbeans (also free)

http://Netbeans.org

 

While it takes some time to learn how to use these it's really helpful and xdebug has good docs on how to use it with var_dump. It prints out a nice neat color coded var_dump and can be adjusted to suit your needs. Also, you can create a "bat" file like "netbeans.bat" which allows you to click on a stack trace and it will open netbeans to the flie and line that's causing an error.

 

For instance using

var_dump($request['RequestedShipment']['RequestedPackageLineItems']);

or

var_dump($request);

or

var_dump($response);

 

Works pretty well. See more

http://xdebug.org/docs/display

Edited by John W

I'm not really a dog.

Share this post


Link to post
Share on other sites

That is a standard message when the module does not have an address (or Zip code minimally) to calculate... or as the message reads the item is possibly too heavy for fedex.

 

Check yuor installation

 

Roaddoctor thanks for prompt respond. I have zip code under Fedex module and shipping/packaging configuration. Product weight is set for 1lb. So it is not possible it is too havy.

Share this post


Link to post
Share on other sites

I've attempted to install this module on osc 2.3. I can get through the set up of the module in admin but can't get it to show up as a shipping option on front end. Any thoughts?

Share this post


Link to post
Share on other sites

That is a standard message when the module does not have an address (or Zip code minimally) to calculate... or as the message reads the item is possibly too heavy for fedex.

 

Check yuor installation

 

Roaddoctor,

 

you were right it was in my settings. Misspelled password for Fedex Account. Thanks for add on

Share this post


Link to post
Share on other sites

A little note to all - I've noticed that if you have

 

Admin -> Configuration -> Shiping/Packaging -> Enter the Maximum Package Weight you will ship

 

Set to anything other than 70 lbs., your rate results may not be correct for heavier items.


-Dave

Share this post


Link to post
Share on other sites

Hello all, i just got FedEx Webservice Version 9_4.3.1 and have an issue with rates. While debugging i found this in response, please have a look at

[CommodityName] => DOCUMENTS

 

But this line should be

[CommodityName] => COMMODITY

because i am not shipping documents. Am i correct in my assumption, if so how can fix this. Thanks

 

(
			 [serviceType] => INTERNATIONAL_ECONOMY
			 [PackagingType] => YOUR_PACKAGING
			 [DeliveryStation] => ANKA
			 [DeliveryDayOfWeek] => TUE
			 [DeliveryTimestamp] => 2012-12-18T20:00:00
			 [CommitDetails] => stdClass Object
				 (
					 [CommodityName] => DOCUMENTS
					 [serviceType] => INTERNATIONAL_ECONOMY
					 [CommitTimestamp] => 2012-12-18T20:00:00
					 [DayOfWeek] => TUE
					 [DestinationServiceArea] => PM
					 [brokerToDestinationDays] => 0
					 [ProofOfDeliveryDate] => 2012-12-19
					 [ProofOfDeliveryDayOfWeek] => WED
					 [CommitMessages] => stdClass Object
						 (
							 [code] => 134
							 [Message] => REQUEST COMPLETED
						 )
					 [DeliveryMessages] => 8:00 P.M. IF NO CUSTOMS DELAY
					 [DocumentContent] => DOCUMENTS_ONLY
					 [RequiredDocuments] => INTERNATIONAL_AIRWAY_BILL
				 )

Share this post


Link to post
Share on other sites

For packaging type you're sending YOUR_PACKAGING, correct?

Edited by John W

I'm not really a dog.

Share this post


Link to post
Share on other sites

Check the fedex webservices manual and you'll see definitions and what should be returned. Sorry, I don't ship international so I'm not much help.


I'm not really a dog.

Share this post


Link to post
Share on other sites

This module needs to be updated to the latest WSDL version, It might resolve some of the little bugs. I think its ver 12 or something. I dont have time at the moment - if anyones got a test server, try switching to the lastest WSDL and let us know how it goes...


-Dave

Share this post


Link to post
Share on other sites

Hi All,

 

I am using FedEx Webservice Version 9.4.2 for osCommerce 2.2rc2a and later(?) -by Roaddoctor 5/20/2012.

 

My fedex rates is not showing properly or fetching the rate to final check out page is in correct.

 

I am getting the rates difference because of the value in the RESIDENTIAL. Below is the code for this:

 

 

$request['RequestedShipment']['Recipient'] = array('Address' => array (

'StreetLines' => array($street_address, $street_address2), // customer street address

'City' => $city, //customer city

// 'StateOrProvinceCode' => $state, //customer state

'PostalCode' => $postcode, //customer postcode

'CountryCode' => $country_id,

'Residential' => ($order->delivery['company'] != '' || $_REQUEST['type'] == 'business' ? false : true)));

 

It is not calculating the rates based on business or residential.

 

 

I am using SIGNATURE= DIRECT only for RESIDENTIAL and for this below is the code :

 

 

if ((MODULE_SHIPPING_FEDEX_WEB_SERVICES_SIGNATURE_OPTION >= 0 && $totals >= MODULE_SHIPPING_FEDEX_WEB_SERVICES_SIGNATURE_OPTION && $_REQUEST['type'] != 'business') || $_REQUEST['type'] == 'residential')

{

 

$request['RequestedShipment']['RequestedPackageLineItems']['0']['SpecialServicesRequested'] = array(

'SpecialServiceTypes' => 'SIGNATURE_OPTION',

'SignatureOptionDetail' => array(

'OptionType'=>'DIRECT'

),

);

 

}

It is going to a Residence however FED EX is charging Commercial rates not Residential Rates.

This order should have billed the customer $12.60 and it is only charging $9.63 which is undercharging by $2.77

Please advise

Share this post


Link to post
Share on other sites

First upgrade to 9.4.3.1

Then,

If a Company Name is present in the ship to address a Commercial rate is shown, if Company Name is blank it should give Residential Home rates... Are you getting a different result?

 

its set here

												   'Residential' => ($order->delivery['company'] != '' ? false : true))); // Sets commercial vs residential (Home)


-Dave

Share this post


Link to post
Share on other sites

@@Roaddoctor

If the Company name is given then it will ship to business but if a company name is present and the requirement is to ship to residential. This is not happening. I want to paste my all code here just as you pasted above. How to paste my code

 

And How to safely upgrade to 9.4.3.1. I am very new to oscommerce.

Edited by tota

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

×