Jump to content
torinwalker

New UPS XML Shipping Module available

Recommended Posts

Thanks Stevel.

 

I was able to enable the error messages, and there seems to be quite a bit. All errors are occuring in /html/admin/includes/classes/xml.php .

 

These are the errors I'm receiving.

 

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of xml_parser_set_option(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /html/admin/includes/classes/xml.php on line 63

 

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of xml_set_object(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /html/admin/includes/classes/xml.php on line 64

 

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of xml_set_element_handler(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /html/admin/includes/classes/xml.php on line 65

 

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of xml_set_character_data_handler(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /html/admin/includes/classes/xml.php on line 66

 

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of xml_parser_free(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /html/admin/includes/classes/xml.php on line 68

 

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of xml_parse(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /html/admin/includes/classes/xml.php on line 73

 

Any suggestions or advice? Thanks.

 

A blank page means a PHP coding error and that PHP error messages are disabled either by your host or in php.ini. You'll have to figure out what the error is before proceeding.
Edited by inswank

Share this post


Link to post
Share on other sites

Those are warnings and not errors. They should not cause a problem. Are there any errors?

 

If you can't figure it out that way, start commenting out chunks of code on the page until you start seeing something - then you know that the problem is in whatever you had just commented out.

Share this post


Link to post
Share on other sites

In my PHP configuration, I have the display_errors turned on. However, I don't see any errors. Just those warning messages. When testing the UPSXML module at checkout, it goes blank; or if I change line 115 to : $this->use_exec = '1', then it gives me this error...

 

This is currently the only shipping method available to use on this order.

United Parcel Service

:

If you prefer to use UPS as your shipping method, please contact the store owner via e-mail.

 

 

Those are warnings and not errors. They should not cause a problem. Are there any errors?

 

If you can't figure it out that way, start commenting out chunks of code on the page until you start seeing something - then you know that the problem is in whatever you had just commented out.

Share this post


Link to post
Share on other sites

Well, that's interesting, but I'm not sure how you should proceed. Whatever it does when use_exec is off (uses CURL through PHP, I think) is not working for you. Do you know that your host supports CURL? Look into the options to have CURL report errors.

 

What I have done in the past is create a separate PHP file that has just the curl_xxx calls and see what it does. You'll have to figure out what the request should be (you can enable logging in the contrib for that.)

Share this post


Link to post
Share on other sites

I was able to get the errors e-mailed to me. It says...

 

Error from cURL: Error [7]: Failed to connect to 96.6.49.243: Permission denied

 

The IP seems to be UPS's. I have the access key, user name and password all entered correctly in the admin.

 

What else could it be? Thanks Steve.

 

Well, that's interesting, but I'm not sure how you should proceed. Whatever it does when use_exec is off (uses CURL through PHP, I think) is not working for you. Do you know that your host supports CURL? Look into the options to have CURL report errors.

 

What I have done in the past is create a separate PHP file that has just the curl_xxx calls and see what it does. You'll have to figure out what the request should be (you can enable logging in the contrib for that.)

Share this post


Link to post
Share on other sites

Curious - I get a very different IP for www.ups.com, but they're using Akamai and that IP is an Akamai IP, so it might be right. Try replacing www.ups.com with 208.67.217.132 and see what happens. You aren't using the test server, are you?

Share this post


Link to post
Share on other sites

Using UPSXML 1.34.

Any one know how to add a premium ( extra fee to certain rates).

Example - UPS Ground remains as is.

3 day select we would like to add a fee to it - $5.00 extra to quote.

Share this post


Link to post
Share on other sites

I just started testing my UPSXML installation and everything works great until I compare the rates to the rates I get at www.ups.com. The ups.com rates are always higher (but by amounts that vary with different shipping methods). For example, a 10 lbs package's rates:

osCommerce | UPS

$9.38 | $13.68

$31.14 | $40.15

$49.16 | $62.14

$57.10 | $72.09

$82.38 | $94.62

$92.07 | $105.18

$130.40 | $143.51

Any ideas on what's going on or how I can find out? Thanks

Share this post


Link to post
Share on other sites

Make sure that "Tare Weight" in Admin > Shipping is zero.

 

Another possibility is that you have "negotiated rates" with UPS but have not enabled that feature in the module and that UPS has enabled this for your "web API service".

Share this post


Link to post
Share on other sites

Looks like I don't have a tare weight set.

 

I checked with someone who actually ships from our company, and their rates matched my osCommerce rates. You were right - we have negotiated rates and I didn't know it.

 

Thanks for the help!!

Share this post


Link to post
Share on other sites

UPSXML 1.3.5 : admin/categories.php:

 

First: apologies, I didn't make it through all the nearly hundred pages of this thread. If this has been answered in there, it's lost for all time. :)

 

Anyone know what specific modifications have been made to admin/categories.php? Barring that, what specific cart version it was mastered against?

 

That file has way too many modifications in my installation for me to reliably back it out and make a diff - I need to work forward from either the changes made or from a diff of the unmodded file to the UPSXML-modded file.

 

Alas, the changes.txt file isn't of much help in this regard, with such detail as "Bug fix in categories.php for the split_products modification. " ;)

 

TIA for any pointers!

 

--- Jodie

Share this post


Link to post
Share on other sites

It appears to be a modded copy of an original 2.2MS2 file. There aren't that many changes to the current version, so you should be able to compare it to the 2.2RC2a version just as well. Any decent file comparison program will give you the differences.

 

It's basically just adding the dimensions and ready-to-ship field to the products page. You could probably ignore the changes if youd on't use the dimensional support.

 

Regards

Jim


See my profile for a list of my addons and ways to get support.

Share this post


Link to post
Share on other sites

Thanks, Jim! I did my analysis against MS2 and was able to figure it out.

 

--- Jodie

 

It appears to be a modded copy of an original 2.2MS2 file. There aren't that many changes to the current version, so you should be able to compare it to the 2.2RC2a version just as well. Any decent file comparison program will give you the differences.

 

It's basically just adding the dimensions and ready-to-ship field to the products page. You could probably ignore the changes if youd on't use the dimensional support.

 

Regards

Jim

Share this post


Link to post
Share on other sites

Hi everybody!

 

After upgrade php4 to php5 I get a blank page with

 

PHP Fatal error: Cannot use string offset as an array in /includes/modules/shipping/upsxml.php on line 325

The line 325 is:

$eta_array = explode("-", $this->servicesTimeintransit[$type]["date"]);

 

I have UPSXML 1.2.2 (Thanks Janz)

 

Any help would be apreciated. Thanks in advance.

Share this post


Link to post
Share on other sites
PHP Fatal error: Cannot use string offset as an array in /includes/modules/shipping/upsxml.php on line 325

The line 325 is:

$eta_array = explode("-", $this->servicesTimeintransit[$type]["date"]);

 

I have UPSXML 1.2.2 (Thanks Janz)

In later versions you can have the option to show the "raw" date returned by UPS. See if you can do that in your version and then check if you really get a date like 2008-09-30 back (looks like it is not...).

Share this post


Link to post
Share on other sites

This version 1.2.2 alow raw or detailed view. Both ways I get a blank page and in the error_log PHP Fatal error: Cannot use string offset as an array

 

How can I see the date returned? Thank you very much.

Share this post


Link to post
Share on other sites
How can I see the date returned?

Set-up and use the logging as explained in the upsxml.php file itself. Then you can see what UPS returns (should be dates in the form of 2008-10-01)

Share this post


Link to post
Share on other sites

Hi;

 

I see the log and the date is in the right format. I change the customer address because it was false and the module works ok.

 

But I get a blank page in checkout_shipping.php when the product is not available.

 

PHP Fatal error: Cannot use string offset as an array in /var/www/vhosts/httpdocs/tienda/includes/modules/shipping/upsxml.php on line 321, referer: http://www.etz.es/tienda/shopping_cart.php?sort=3a

 

$_type = $_type . ", ".$this->servicesTimeintransit[$type]["date"];

 

Thank you very much for your help.

Share this post


Link to post
Share on other sites
But I get a blank page in checkout_shipping.php when the product is not available.

 

PHP Fatal error: Cannot use string offset as an array in /var/www/vhosts/httpdocs/tienda/includes/modules/shipping/upsxml.php on line 321, referer: http://www.etz.es/tienda/shopping_cart.php?sort=3a

 

$_type = $_type . ", ".$this->servicesTimeintransit[$type]["date"];

Of course UPSXML is not called normally from the shopping_cart.php. Only if you use something like ship in cart I presume.

I don't know why this would fail. I presume there is some special condition for this error but I don't know which. If I can't reproduce it, I can't test it either.

My best guess is to use the latest upsxml.php. That has an xml class specifically for PHP5. Perhaps that is the problem?

Upgrading would take some care. You cannot simply replace the upsxml.php files. First read the install instructions. The important part starts around line 109:

Upgrading to version 1.3.#: **IMPORTANT**

Due to a number of changes it is not a simple matter of changing the shipping module. First run the queries in configuration_shipping.sql. Then set the units for weight and length (default pounds and inches) to the ones you use. If you use Dimensional support leave the Dimensions support to "No" until you made a number of other changes too.
Upload the included files:

Share this post


Link to post
Share on other sites

I just installed, I'm pretty sure I followed the directions carefully & I use a compare program, but the module is not in admin.

 

What could I have left out? I've gone over it a few times already & can't find what I did wrong.

Share this post


Link to post
Share on other sites
I just installed, I'm pretty sure I followed the directions carefully & I use a compare program, but the module is not in admin.

 

What could I have left out? I've gone over it a few times already & can't find what I did wrong.

The UPSXML modules have no influence on that. In the admin the code in modules.php reads all the PHP files in the directory catalog/includes/modules/shipping/, reads the language files from the corresponding language directory and then displays them all. If they are PHP files and readable by the webserver they will show up in the admin.

Share this post


Link to post
Share on other sites
The UPSXML modules have no influence on that. In the admin the code in modules.php reads all the PHP files in the directory catalog/includes/modules/shipping/, reads the language files from the corresponding language directory and then displays them all. If they are PHP files and readable by the webserver they will show up in the admin.

 

In the installation instructions it says after running the SQL, etc, enable the module in admin. I have the new options under Shipping/Packaging for weight, length, etc but no UPS XML module in Shipping where my other Shipping modules are. I uploaded all the files, twice in fact to make sure I didn't miss one.

 

I must have missed something, I have so many contributions it gets confusing now when I add another on.

 

I thought maybe there was a particular file that would make the module appear in admin, then I could triple check on that one?

Share this post


Link to post
Share on other sites
I thought maybe there was a particular file that would make the module appear in admin, then I could triple check on that one?

No, you just need to add the upsxml.php files to the catalog/includes/modules/shipping/ and catalog/includes/languages/#language#/modules/shipping/ directories and the admin/modules.php reads the files. If you mix up the files or just ftp one of them you will get an error. If you upload them to the wrong directory or the webserver cannot read them (no permission to read them) then they won't shop up.

Nothing magic here I'm afraid (perhaps unfortunately?).

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

×