Jump to content
torinwalker

New UPS XML Shipping Module available

Recommended Posts

Is this an issue with my UPS XML install?
Yes, you should have added that function to catalog/admin/includes/functions/general.php (step 4):

// UPSXML
// Alias function for Store configuration values in the Administration Tool
 function tep_cfg_select_multioption($select_array, $key_value, $key = '') {
for ($i=0; $i<sizeof($select_array); $i++) {
  $name = (($key) ? 'configuration[' . $key . '][]' : 'configuration_value');
  $string .= '<br><input type="checkbox" name="' . $name . '" value="' . $select_array[$i] . '"';
  $key_values = explode( ", ", $key_value);
  if ( in_array($select_array[$i], $key_values) ) $string .= ' CHECKED';
  $string .= '> ' . $select_array[$i];
} 
$string .= '<input type="hidden" name="' . $name . '" value="--none--">';
return $string;
 }

Share this post


Link to post
Share on other sites
I just installed UPSXML_v1_2_2 for the first time on a new site.

When i out it gives a blank page for catalog/checkout_shipping.php.

If i remove UPSXML it works fine.

Apparently, you get some PHP or database error with the UPSXML contribution, but since your hosting company configured PHP not to show any errors to the browser you don't know what the errors are. Perhaps they have a log of them instead?

 

Did you upload the language file named upsxml.php too? Both files are required for a shipping mod to work, it could be a source of that problem.

Share this post


Link to post
Share on other sites

anyone else getting an error like this when trying to checkout?

 

1054 - Unknown column 'package_heigth' in 'field list'

select *, (package_length * package_width * package_heigth) as volume from packaging order by volume;

[TEP STOP]

 

anyone know what would cause that?

Share this post


Link to post
Share on other sites
Apparently, you get some PHP or database error with the UPSXML contribution, but since your hosting company configured PHP not to show any errors to the browser you don't know what the errors are. Perhaps they have a log of them instead?

 

Did you upload the language file named upsxml.php too? Both files are required for a shipping mod to work, it could be a source of that problem.

 

Thanks JanZ

I did upload the language file named upsxml.php. I am pretty sure i get errors.

This is the error in the log file

 

 

Error from cURL: Error [28]: connect() timed out!

UPS RESPONSE:

Error from cURL: Error [28]: connect() timed out!

UPS RESPONSE:

------------------------------------------

Time in Transit: 0

------------------------------------------

 

Error from cURL: Error [28]: connect() timed out!

UPS RESPONSE:

 

Any other ideas?

Thanks

Share this post


Link to post
Share on other sites
Thanks JanZ

I did upload the language file named upsxml.php. I am pretty sure i get errors.

This is the error in the log file

Error from cURL: Error [28]: connect() timed out!

UPS RESPONSE:

Error from cURL: Error [28]: connect() timed out!

UPS RESPONSE:

------------------------------------------

Time in Transit: 0

------------------------------------------

 

Error from cURL: Error [28]: connect() timed out!

UPS RESPONSE:

 

Any other ideas?

Thanks

 

Do you use GoDaddy?

 

I figure out the cURL: Error [28]: connect() timed out!

 

If you use GoDaddy as your host, you must add the following lines of code to the curl command section in /catalog/includes/modules/shipping/upsxml.php

 

curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
  curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
  curl_setopt ($ch, CURLOPT_PROXY, "http://64.202.165.130:3128");
  curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

 

good luck!

Share this post


Link to post
Share on other sites
anyone else getting an error like this when trying to checkout?

 

1054 - Unknown column 'package_heigth' in 'field list'

select *, (package_length * package_width * package_heigth) as volume from packaging order by volume;

[TEP STOP]

 

anyone know what would cause that?

 

v 1.2.3 seems to fix that :thumbsup:

 

... i'm still getting the

111035: The maximum per package weight for that service from the selected country is 150 pounds.

error.

 

any ideas? anything else needing to be changed?

Share this post


Link to post
Share on other sites

I just installed UPS XML v1.2.2. First I had the GoDaddy curl issue but I believe the posted fix worked. Can't tell for sure because now I have another problem - identical to one that was posted a few days ago

 

.

Fatal error: Cannot redeclare class xmldocument in /home/content/j/l/c/jlccowart/html/catalog/includes/classes/xmldocument.php on line 19

 

I've checked to make sure there are no extra files lurking anywhere that could cause this.

 

Any other suggestions?

Share this post


Link to post
Share on other sites

UPS XML Module v1.2.3 fixes the below issue. Height was just mispelled

 

anyone else getting an error like this when trying to checkout?

 

1054 - Unknown column 'package_heigth' in 'field list'

select *, (package_length * package_width * package_heigth) as volume from packaging order by volume;

[TEP STOP]

 

anyone know what would cause that?

Share this post


Link to post
Share on other sites

I received this same error when I just renamed xmldocument.php to something along the lines of xmldocument.new.php and xmldocument.old.php. if you have any other files that start with xmldocument and end with .php in your directories that contain xmldocument this would give you that error. Just drop off the .php at the end and upload the xmldocument again and this should fix that problem.

 

I just installed UPS XML v1.2.2. First I had the GoDaddy curl issue but I believe the posted fix worked. Can't tell for sure because now I have another problem - identical to one that was posted a few days ago

 

.

 

I've checked to make sure there are no extra files lurking anywhere that could cause this.

 

Any other suggestions?

Share this post


Link to post
Share on other sites
I received this same error when I just renamed xmldocument.php to something along the lines of xmldocument.new.php and xmldocument.old.php. if you have any other files that start with xmldocument and end with .php in your directories that contain xmldocument this would give you that error. Just drop off the .php at the end and upload the xmldocument again and this should fix that problem.

 

I checked that first thing - I don't have any extra xmldocument files in my folders. What else could it be?

Share this post


Link to post
Share on other sites

OKAY IT'S OFFICIAL - I'VE LOST MY MIND. But at least my problem's solved, whatever it was.

 

I restored my system from before I added this contribution, re-installed, put in the cURL fix and everything's okay now.

 

Great contribution!

Share this post


Link to post
Share on other sites

If anyone could help I'd appreciate it.

 

I installed the contrib and had problems so started over and everything worked fine with the setup but now on checkout_shipping I end up with this error and can't seem to figure out what is causing it or what I'm overlooking.

 

CGI Error

The specified CGI application misbehaved by not returning a complete set of HTTP headers.

 

Thanks

Share this post


Link to post
Share on other sites
CGI Error

The specified CGI application misbehaved by not returning a complete set of HTTP headers.

Better contact your ISP about this. I suspect a cURL issue, but I have never come across this one before.

Share this post


Link to post
Share on other sites

Jan-

 

I'm trying to get the EDD display to work and am not getting anything. I swear I'm not going crazy and that in the past I've had the service types display as so:

 

UPS

Ground (EDD: 2/15/06)

Next Day Air (EDD: 2/14/06)

 

But I can't get anything to show up there (it just shows the service type). Where is the code that controls this display? I've been back and forth over the module and can't come up with anything.

 

Cheers

Stew


Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Share this post


Link to post
Share on other sites
But I can't get anything to show up there (it just shows the service type). Where is the code that controls this display? I've been back and forth over the module and can't come up with anything.
The way you want to display it should be hacked in upsxml.php but it is also an admin setting whether to use the standard 2006-02-11 or the fancy display.

Share this post


Link to post
Share on other sites
The way you want to display it should be hacked in upsxml.php but it is also an admin setting whether to use the standard 2006-02-11 or the fancy display.

 

The way it's displayed isn't as important as having anything displayed at all- right now all that shows up is nothing.


Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Share this post


Link to post
Share on other sites
The way it's displayed isn't as important as having anything displayed at all- right now all that shows up is nothing.
That's strange. It would mean that no information is received from the TimeinTransit service. Did you enable (full) logging to verify that? Maybe it has something to do with the changes for the multiple shipping (don't you use a changed array, with some id in it)?

Share this post


Link to post
Share on other sites

Jan-

 

I have two problems that I hope you can help me with.

 

First off, there seems to be a conflict of sorts between the new way of disallowing services and my use of custom code to further limit choices based on Ground Time in Transit data.

 

Currently I have this:

 

// BOF limit choices
			//if (exclude_choices($type, $vendors_id)) continue;
			// EOF limit choices
			// BOF limit choices
if (exclude_choices($type, $vendors_id)) continue;
//bof limit results based on ground transit time
if ($this->servicesTimeintransit['UPS Ground']['days'] == "1") {
if (strstr($type, 'Next Day Air')) continue;
if (strstr($type, '2nd Day Air')) continue;
}
elseif ($this->servicesTimeintransit['UPS Ground']['days'] == "2") {
if (strstr($type, '2nd Day Air')) continue;
}
elseif (($this->servicesTimeintransit['UPS Ground']['days'] != "1") && ($this->servicesTimeintransit['UPS Ground']['days'] != "2"))
{
if (strstr($type, 'Ground')) continue;
}
//eof ground limit
// EOF limit choices

 

But, if I disallow Next Day Air in admin, when using this code Next Day Air shows up anyway when Ground Time in Transit != 1.

 

This is strange to me. The old way, if you didn't select a method it wouldn't show up, but this new way you can add a method back in? This isn't what I'm trying to do. It should be possible to write the code such that a method disallowed in admin won't be added back in by this code (it would be simple if I could just not mention Next Day Air in the custom code, but I want/need to leave it in for my own unique situation), but if it isn't disallowed in admin this code will restrict it's display.

 

Secondly, the EDD is still not showing up for me. This is equally bizarre as I've spoken with one other user, HallMarc, using the exact same module (his does not have my custom mod), and his EDD data is showing up fine. I tried my module without the custom code and it still did not work. For my old module I can accept that I monkeyed with something and disabled the EDD display somehow, but this is a fresh module with very little modification. Can you think of a reason the EDD data would not show up for me, but would for someone else with ostensibly the same module? I know that Time in Transit data is being returned because my custom code works. With your new code for modifying the Shipping Delay, I've figured out how to use this code on my site and get accurate results for our store, so I'd really like this to work.

 

Cheers,

Stew


Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Share this post


Link to post
Share on other sites

Hey Jan!

 

Never mind about the EDD thing, I figured out it's because I changed "UPS Ground" to "Ground" in my language defintion file, etc.

 

I should be able to work this problem out from here.

 

Thanks for this great mod, especially the shipping days delay code!


Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Share this post


Link to post
Share on other sites

Jan-

 

New question:

 

I want to hard code in a shipping date rather than use the shipping delay function.

 

Currently I have this:

 

if (((date(m) == "02")  && (date(j) < "29")) || ((date(m) == "03") && (date(j) < "5")))
{
$shipdate = date("Ymd", 2006-03-06);
}

 

I think my date ranges are correct, but I'm not sure how to tell the module to use March 6 as the shipdate. Also, I'm using version 1.1.4 for this one.

 

Thanks!


Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

Share this post


Link to post
Share on other sites
I want to hard code in a shipping date rather than use the shipping delay function.

 

Currently I have this:

 

if (((date(m) == "02")  && (date(j) < "29")) || ((date(m) == "03") && (date(j) < "5")))
{
$shipdate = date("Ymd", 2006-03-06);
}

Close, but I'm pretty positive you will have to use quotes around the m and j. I think this should work (NOTE this is for version 1.1.4!!!. starts around line 232)

				// BOF limit choices
			if (!exclude_choices($type)) continue;
			// EOF limit choices
			if ( $method == '' || $method == $type ) {
		 $_type = $type;
		 if ( date("m") == "02" || ((date("m") == "03") && (date("j") < 5)) )
					 {
					  $_type = $_type . ", 2006-03-06";
					  } elseif (isset($this->servicesTimeintransit[$type])) {
			$_type = $_type . ", ".$this->servicesTimeintransit[$type]["date"];
			}

Share this post


Link to post
Share on other sites
Close, but I'm pretty positive you will have to use quotes around the m and j. I think this should work (NOTE this is for version 1.1.4!!!. starts around line 232)

				// BOF limit choices
			if (!exclude_choices($type)) continue;
			// EOF limit choices
			if ( $method == '' || $method == $type ) {
		 $_type = $type;
		 if ( date("m") == "02" || ((date("m") == "03") && (date("j") < 5)) )
					 {
					  $_type = $_type . ", 2006-03-06";
					  } elseif (isset($this->servicesTimeintransit[$type])) {
			$_type = $_type . ", ".$this->servicesTimeintransit[$type]["date"];
			}

 

Interesting- this will hard code March 3 into the display, but it won't affect the variable $ship_date.

 

I was thinking of using it further down, around line 900. Currently I have the default

 

function _upsGetTimeServices($vendors_id) {

  if (constant('SHIPPING_DAYS_DELAY_' . $vendors_id) > 0) {
	$shipdate = date("Ymd", time()+(86400*constant('SHIPPING_DAYS_DELAY_' . $vendors_id)));
  } else {
	$shipdate = $this->today;
  }

 

I was looking into replacing this function with the code I posted, so the display would ultimately be the same (ie UPS 2nd Day Air, EDD: March 08, 2006), but the determination of $ship_date would be hard-coded rather than determined based on shipping delay. This would allow for having properly calculated EDD's with various shipping methods. The purpose of this is because I sell a product that only ships once per month but I'd like to still have an EDD for the customer.

 

Thoughts?


Do, or do not. There is no try.

 

Order Editor 5.0.6 "Ultra Violet" is now available!

For support or to post comments, suggestions, etc, please visit the Order Editor support thread.

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

×