Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

New UPS XML Shipping Module available


Recommended Posts

That's the weird part. Now when I click on install it doesn't do anything. Then if I refresh the page the model fields are displayed but when I click update they don't get saved. then it reloads the page again and the install button is there again. No remove button.

Link to comment
Share on other sites

That's the weird part. Now when I click on install it doesn't do anything. Then if I refresh the page the model fields are displayed but when I click update they don't get saved. then it reloads the page again and the install button is there again. No remove button.
Weird indeed. I now see that the shipping delay is the only one with a configuration_id. Well, I didn't add that :) but why not remove the whole reference to it while you are at it:

		// add key for shipping delay
	tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function) values ('Shipping Delay', 'SHIPPING_DAYS_DELAY', '1', 'How many days from when an order is placed to when you ship it (Decimals are allowed). Arrival date estimations are based on this value.', '6', '21', NULL, now(), NULL, NULL)");

Try de-installing manually with phpMyAdmin:

 delete from configuration where configuration_key in ('MODULE_SHIPPING_UPSXML_RATES_STATUS', 'MODULE_SHIPPING_UPSXML_RATES_ACCESS_KEY', 'MODULE_SHIPPING_UPSXML_RATES_USERNAME', 'MODULE_SHIPPING_UPSXML_RATES_PASSWORD', 'MODULE_SHIPPING_UPSXML_RATES_PICKUP_METHOD', 'MODULE_SHIPPING_UPSXML_RATES_PACKAGE_TYPE', 'MODULE_SHIPPING_UPSXML_RATES_CUSTOMER_CLASSIFICATION_CODE', 'MODULE_SHIPPING_UPSXML_RATES_ORIGIN', 'MODULE_SHIPPING_UPSXML_RATES_CITY', 'MODULE_SHIPPING_UPSXML_RATES_STATEPROV', 'MODULE_SHIPPING_UPSXML_RATES_COUNTRY', 'MODULE_SHIPPING_UPSXML_RATES_POSTALCODE', 'MODULE_SHIPPING_UPSXML_RATES_MODE', 'MODULE_SHIPPING_UPSXML_RATES_UNIT_WEIGHT', 'MODULE_SHIPPING_UPSXML_RATES_UNIT_LENGTH', 'MODULE_SHIPPING_UPSXML_DIMENSIONS_SUPPORT', 'MODULE_SHIPPING_UPSXML_RATES_QUOTE_TYPE', 'MODULE_SHIPPING_UPSXML_RATES_USE_NEGOTIATED_RATES', 'MODULE_SHIPPING_UPSXML_RATES_UPS_ACCOUNT_NUMBER', 'MODULE_SHIPPING_UPSXML_HANDLING_TYPE', 'MODULE_SHIPPING_UPSXML_RATES_HANDLING', 'MODULE_SHIPPING_UPSXML_INSURE', 'MODULE_SHIPPING_UPSXML_CURRENCY_CODE', 'MODULE_SHIPPING_UPSXML_RATES_TAX_CLASS', 'MODULE_SHIPPING_UPSXML_RATES_ZONE', 'MODULE_SHIPPING_UPSXML_RATES_SORT_ORDER', 'MODULE_SHIPPING_UPSXML_TYPES', 'SHIPPING_DAYS_DELAY', 'MODULE_SHIPPING_UPSXML_EMAIL_ERRORS', 'MODULE_SHIPPING_UPSXML_RATES_TIME_IN_TRANSIT_VIEW');

Link to comment
Share on other sites

P.S. I have CURL, in PHP, and I enabled logging, create an empty log file, put the full file path and set the permissions to 777, and the log file remains empty. I just get a long wait then a blank page.
You haven't chosen a shipping zone in the admin for UPSXML and the client account under which you test this is outside of that shipping zone? If so, choose --none-- for the shipping zone (which means that for "all" shipping zones UPS will appear as a shipping option).
Link to comment
Share on other sites

You haven't chosen a shipping zone in the admin for UPSXML and the client account under which you test this is outside of that shipping zone? If so, choose --none-- for the shipping zone (which means that for "all" shipping zones UPS will appear as a shipping option).

No, I hadn't chosen a zone. I left is set to --none--

Link to comment
Share on other sites

No, I hadn't chosen a zone. I left is set to --none--
Then I don't have a clue. Perhaps there is a PHP error (languagel file missing?) which your ISP is not showing (which in itself is good, but a problem when you are debugging). There might be an error log for PHP errors, ask your ISP.
Link to comment
Share on other sites

Then I don't have a clue. Perhaps there is a PHP error (languagel file missing?) which your ISP is not showing (which in itself is good, but a problem when you are debugging). There might be an error log for PHP errors, ask your ISP.

I'll check, but I don't think it's that. The page request sits there for quite a long time, and then dies with a blank screen. I don't think it would 'hang' that long if it were a missing file. I'd just get an error on the screen.

Link to comment
Share on other sites

I have completed the installation up to step 7 correctly, triple checked to make sure I did it right. However, when I go to install it in the modules section of the admin, it doesn't show up. Maybe the most recent download is missing a file, or maybe my eyes are tricking me. I don't know. Either way, it won't show up in the modules section.

 

I'm pretty sure that I need to have a file in /includes/modules/shipping but I don't have a file to place there. Any ideas as to what I should do to resolve this? Thanks.

 

 

Bumping this. Anyone?

Link to comment
Share on other sites

Bumping this. Anyone?

Don't you think it is rather odd when you are the only one with that problem? Do you really downloaded a package which doesn't contain a folder "catalog" (with subdirectory includes/modules/shipping)? Hard to believe.

Link to comment
Share on other sites

To get free ground shipping while still providing other full price shipping methods for either UPS or FedEx I made the following change in the following file:

 

/includes/modules/shipping/upsxml.php

 

Near line 330 in my file - find

 

$methods = array();

for ($i=0; $i < sizeof($upsQuote); $i++) {

list($type, $cost) = each($upsQuote[$i]);

// BOF limit choices, behaviour changed from versions < 1.2

if ($this->exclude_choices($type)) continue;

// EOF limit choices

 

Add the following

if ($order->info['subtotal'] > 100) {

if (stristr($type, 'Ground')) { $cost = '0.00'; }

}

 

Note: The above allow free shipping for orders over $100. If you want something different just change the '100' in the first line. You could also do this for other UPS shipping methods by changing the 'Ground' type.

Link to comment
Share on other sites

Is anyone updaing this module for USPS V3?

 

Here is what I received by email -

 

+++++++++++++++++++++++++++++++++++++++++=

 

 

Dear Customer,

 

 

 

On May 14 2007, the United States Postal Service® will implement changes for Domestic Mail. In response to these changes, a new Domestic Rates Application Program Interface (API), RateV3, will be released by USPS Web Tools®.

 

 

 

A staging environment will be available to test the new API on April 19th. Please go to:

 

http://stg-production.shippingapis.com/

 

 

 

 

 

RateV2 will still be available after the release of RateV3, and will suffice unless rates need to be calculated for Large Priority Mail packages. USPS is introducing a new dimensional weight pricing model for Large Priority Mail pieces. Dimensional weighting is a mechanism that converts the cubic size of a piece into a weight. If a large box is very light, it will be charged as a higher-weight piece, based on the International Air Transport Association (IATA) standard. This change only affects Priority Mail pieces larger than 1 cubic foot, and traveling to destinations within zones 5-8. The Rate V3 API still requires dimensions if an item is large, regardless of the zone.

 

 

 

 

 

To capture the dimensional weight for Large Priority Mail pieces, RateV3 will require three new dimension tags for rectangular Priority Mail pieces: Length, Width, and Height; and four new dimension tags for non-rectangular pieces: Length, Width, Height, and Girth. Shippers will specify in the existing Container tag whether a Large Priority Mail piece is rectangular or non-rectangular.

 

 

 

RateV3 also implements changes to First Class Mail. A new tag, First Class Mail Type, will be used to specify whether a First Class Mail piece is a letter, flat, or parcel. Today, First Class Mail pieces are charged identical rates, regardless of the type of package. With the change, the postage for each type of First Class Mail piece will more accurately reflect the processing costs for each. The Machineable tag will also be applied to First Class Mail, in addition to Parcel Post.

 

 

 

An example of an XML request of the Rate V3 is:

 

<RateV3Request USERID="000AAAAA9999">

 

<Package ID="1ST">

 

<Service>FIRST CLASS</Service>

 

<FirstClassMailType>LETTER</FirstClassMailType>

 

<ZipOrigination>44106</ZipOrigination>

 

<ZipDestination>90210</ZipDestination>

 

<Pounds>0</Pounds>

 

<Ounces>0.75</Ounces>

 

<Size>REGULAR</Size>

 

<Machinable>false</Machinable>

 

</Package>

 

<Package ID="2ND">

 

<Service>PRIORITY</Service>

 

<ZipOrigination>44106</ZipOrigination>

 

<ZipDestination>20770</ZipDestination>

 

<Pounds>5</Pounds>

 

<Ounces>8</Ounces>

 

<Container>NONRECTANGULAR</Container>

 

<Size>LARGE</Size>

 

<Width>15</Width>

 

<Length>30</Length>

 

<Height>15</Height>

 

<Girth>55</Girth>

 

</Package>

 

<Package ID="3RD">

 

<Service>ALL</Service>

 

<ZipOrigination>90210</ZipOrigination>

 

<ZipDestination>20770</ZipDestination>

 

<Pounds>8</Pounds>

 

<Ounces>32</Ounces>

 

<Container>RECTANGULAR</Container>

 

<Size>LARGE</Size>

 

<Width>15</Width>

 

<Length>30</Length>

 

<Height>15</Height>

 

<Machinable>true</Machinable>

 

</Package>

 

</RateV3Request>

 

 

 

 

 

If you have any questions, concerns or technical inquiries, please contact the USPS Internet customer Care Center via email at [email protected] or phone 1-800-344-7779.

 

 

Sincerely,

 

 

Patti Mason

 

Manager, USPS.com

Link to comment
Share on other sites

Is anyone updaing this module for USPS V3?

 

Here is what I received by email -

 

+++++++++++++++++++++++++++++++++++++++++=

 

 

Dear Customer,

 

 

 

On May 14 2007, the United States Postal Service® will implement changes for Domestic Mail. In response to these changes, a new Domestic Rates Application Program Interface (API), RateV3, will be released by USPS Web Tools®.

 

 

 

A staging environment will be available to test the new API on April 19th. Please go to:

 

http://stg-production.shippingapis.com/

 

 

 

 

 

RateV2 will still be available after the release of RateV3, and will suffice unless rates need to be calculated for Large Priority Mail packages. USPS is introducing a new dimensional weight pricing model for Large Priority Mail pieces. Dimensional weighting is a mechanism that converts the cubic size of a piece into a weight. If a large box is very light, it will be charged as a higher-weight piece, based on the International Air Transport Association (IATA) standard. This change only affects Priority Mail pieces larger than 1 cubic foot, and traveling to destinations within zones 5-8. The Rate V3 API still requires dimensions if an item is large, regardless of the zone.

 

 

 

 

 

To capture the dimensional weight for Large Priority Mail pieces, RateV3 will require three new dimension tags for rectangular Priority Mail pieces: Length, Width, and Height; and four new dimension tags for non-rectangular pieces: Length, Width, Height, and Girth. Shippers will specify in the existing Container tag whether a Large Priority Mail piece is rectangular or non-rectangular.

 

 

 

RateV3 also implements changes to First Class Mail. A new tag, First Class Mail Type, will be used to specify whether a First Class Mail piece is a letter, flat, or parcel. Today, First Class Mail pieces are charged identical rates, regardless of the type of package. With the change, the postage for each type of First Class Mail piece will more accurately reflect the processing costs for each. The Machineable tag will also be applied to First Class Mail, in addition to Parcel Post.

 

 

 

An example of an XML request of the Rate V3 is:

 

<RateV3Request USERID="000AAAAA9999">

 

<Package ID="1ST">

 

<Service>FIRST CLASS</Service>

 

<FirstClassMailType>LETTER</FirstClassMailType>

 

<ZipOrigination>44106</ZipOrigination>

 

<ZipDestination>90210</ZipDestination>

 

<Pounds>0</Pounds>

 

<Ounces>0.75</Ounces>

 

<Size>REGULAR</Size>

 

<Machinable>false</Machinable>

 

</Package>

 

<Package ID="2ND">

 

<Service>PRIORITY</Service>

 

<ZipOrigination>44106</ZipOrigination>

 

<ZipDestination>20770</ZipDestination>

 

<Pounds>5</Pounds>

 

<Ounces>8</Ounces>

 

<Container>NONRECTANGULAR</Container>

 

<Size>LARGE</Size>

 

<Width>15</Width>

 

<Length>30</Length>

 

<Height>15</Height>

 

<Girth>55</Girth>

 

</Package>

 

<Package ID="3RD">

 

<Service>ALL</Service>

 

<ZipOrigination>90210</ZipOrigination>

 

<ZipDestination>20770</ZipDestination>

 

<Pounds>8</Pounds>

 

<Ounces>32</Ounces>

 

<Container>RECTANGULAR</Container>

 

<Size>LARGE</Size>

 

<Width>15</Width>

 

<Length>30</Length>

 

<Height>15</Height>

 

<Machinable>true</Machinable>

 

</Package>

 

</RateV3Request>

 

 

 

 

 

If you have any questions, concerns or technical inquiries, please contact the USPS Internet customer Care Center via email at [email protected] or phone 1-800-344-7779.

 

 

Sincerely,

 

 

Patti Mason

 

Manager, USPS.com

Link to comment
Share on other sites

Is anyone updaing this module for USPS V3?

 

On May 14 2007, the United States Postal Service® will implement changes for Domestic Mail. In response to these changes, a new Domestic Rates Application Program Interface (API), RateV3, will be released by USPS Web Tools®.

What has UPS (United Parcel Service of America, Inc.) to do with United States Postal Service (USPS)?

Link to comment
Share on other sites

If that function finds a dimension missing it will do the guessing of the dimensions based on density. For items that are not ready-to-ship the function doesn't make a difference, it is not used in the calculations.

No, you enter that in the product (categories.php).

 

I double checked this feature again now, but it works fine for me. I have no clue why you get 0 weight (unless you have a very low weight items, UPS get sent a minimum weight of 1 lbs; see function _addItem, weight = 1 but should not need to show up on checkout_shipping where a simple round is done).

When you look at the function quote you will notice that $productsArray = $cart->get_products(); After that you can add code to look for specific items and split them in two or more items.

 

OK I've taken a look at this trying to debug why I'm getting 0 weight when I enable Ready To Ship. The products weights are not low, so that's not the issue. It appears that the total weight is being transfered, but when the following code tries to separate the products and calculate the weight, apparently the weight information is not being transfered. This is the section in question. I have added echos to verify what data is or isn't being transfered.

 

} elseif ($this->dimensions_support == '1') {
           $totalWeight = 0;
           $total_non_ready_to_ship_weight = 0;
		$total_non_ready_to_ship_value = 0;
           // sort $productsArray according to ready-to-ship (first) and not-ready-to-ship (last)
           usort($productsArray, ready_to_shipCmp);
           $non_ready_to_shipArray = array();
           // walk through the productsArray, separate the items ready-to-ship and add them to
           // the items (boxes) list, add the weight to the totalWeight
           // and add the other items to a separate array
           for ($i = 0; $i < count($productsArray); $i++) {
               if ($productsArray[$i]['ready_to_ship'] == '1') {
                   for ($z = 0 ; $z < $productsArray[$i]['quantity']; $z++) {

				echo "productsArray[$i]['quantity']= " . $productsArray[$i]['quantity'] . " | $i <br>";

				                        $this->_addItem($productsArray[$i]['length'], $productsArray[$i]['width'], $productsArray[$i]['height'], $productsArray[$i]['weight'], (MODULE_SHIPPING_UPSXML_INSURE == 'False' ? $this->pkgvalue : $productsArray[$i]['final_price']));
        echo "productsArray[$i]['weight']= " . $productsArray[$i]['weight'] . " | <br>"; 

					$totalWeight += $productsArray[$i]['weight'] ;
					echo "totalWeight= " . $totalWeight . " | <br>";
                   } // end for ($z = 0 ; $z < $productsArray[$i]['quantity']; $z++)

               } // end if($productsArray['ready_to_ship'] == '1')
               else {
                   $non_ready_to_shipArray[] = $productsArray[$i];
               }
           } // end for ($i = 0; $i < count($productsArray); $i++)
           // Ready_to_ship items out of the way, now assess remaining weight and remaining value of products

           for ($x = 0 ; $x < count($non_ready_to_shipArray) ; $x++) {
               $total_non_ready_to_ship_weight += ($non_ready_to_shipArray[$x]['weight'] * $non_ready_to_shipArray[$x]['quantity']);

			echo "non_ready_to_shipArray[$x]['weight']= " . $non_ready_to_shipArray[$x]['weight'] . " |<br> ";
			echo "non_ready_to_shipArray[$x]['quantity']= " . $non_ready_to_shipArray[$x]['quantity'] . " | <br>";

							$total_non_ready_to_ship_value += ($non_ready_to_shipArray[$x]['final_price'] * $non_ready_to_shipArray[$x]['quantity']);
           } // end for ($x = 0 ; count($non_ready_to_shipArray) ; $x++)

           if (tep_not_null($non_ready_to_shipArray)) {
               // adapted code from includes/classes/shipping.php
               $shipping_non_ready_to_ship_boxes = 1;
               $shipping_non_ready_to_ship_weight = $total_non_ready_to_ship_weight;
               if (SHIPPING_BOX_WEIGHT >= $total_non_ready_to_ship_weight*SHIPPING_BOX_PADDING/100) {
                 $total_non_ready_to_ship_weight = $total_non_ready_to_ship_weight+SHIPPING_BOX_WEIGHT;
               } else {
                 $total_non_ready_to_ship_weight += $total_non_ready_to_ship_weight*SHIPPING_BOX_PADDING/100;
               }
               if ($total_non_ready_to_ship_weight > SHIPPING_MAX_WEIGHT) { // Split into many boxes
                   $shipping_non_ready_to_ship_boxes = ceil($total_non_ready_to_ship_weight/SHIPPING_MAX_WEIGHT);
                   $shipping_non_ready_to_ship_weight = round($total_non_ready_to_ship_weight/$shipping_non_ready_to_ship_boxes,1);
               }
               // end adapted code from includes/classes/shipping.php
               // weight and number of boxes of non-read-to-ship is determined, now add them to the items list
               for ($y = 0; $y < $shipping_non_ready_to_ship_boxes ; $y++) {
                   $this->_addItem(0, 0, 0, $shipping_non_ready_to_ship_weight, (MODULE_SHIPPING_UPSXML_INSURE == 'False' ? $this->pkgvalue : number_format(($total_non_ready_to_ship_value/$shipping_non_ready_to_ship_boxes), 2, '.', '')) );
                   $totalWeight += $shipping_non_ready_to_ship_weight;
               } // end for ($y = 0; $y < $shipping_non_ready_to_ship_boxes ; $y++)
           } // end if (tep_not_null($non_ready_to_shipArray))
       } else {

 

I placed an order with 4 items, 2 RTS and 2 Non-RTS and here is the echo output:

 

shipping_weight1= 7.15 |

shipping_num_boxes1= 1 |

total_weight1= 6.15 |

productsArray[0]['quantity']= 1 | 0

productsArray[0]['weight']= |

totalWeight= 0 |

productsArray[1]['quantity']= 1 | 1

productsArray[1]['weight']= |

totalWeight= 0 |

non_ready_to_shipArray[0]['weight']= |

non_ready_to_shipArray[0]['quantity']= 1 |

non_ready_to_shipArray[1]['weight']= |

non_ready_to_shipArray[1]['quantity']= 1 |

 

It is receiving the shipping weight (7.15) and the total_weight (6.15 - subtract 1 lb for box weight) just fine. It seems as though the productsArray[$i]['weight'] and non_ready_to_shipArray[$x]['weight'] is not receiving the weight information from wherever is was supposed to get it. Any ideas?

 

Everything else seems to be functioning properly and is working fine, quoting, package numbers, etc. Just this one major problem left....

Link to comment
Share on other sites

OK , I figured out why the weight was 0 on the RTS orders. When I installed the dimensional stuff, I overwrote the weight select statement in the SQL query in shopping_cart.php . duh....I knew it was something stupid. Thanks for pointing me in the right direction JanZ!

Link to comment
Share on other sites

Hello,

 

I just installed the latest UPS XML with dimensional support enabled and also uploaded 700+ pre-defined packages contribution. The problem is when dimensional support is enabled and "With product dimensions" box is checked for Dimensions Support in Admin/Modules/Shipping/UPS XML, the checkout_shipping page just hanging there and doesn't go anywhere. Once I check "No" for Dimensions Support in Admin/Modules/Shipping/UPS XML, the page loads just fine with all available shipping quotes. Is there anything I'm doing wrong? Can anybody please help?

 

Thanks in advance.

Link to comment
Share on other sites

I just installed the latest UPS XML with dimensional support enabled and also uploaded 700+ pre-defined packages contribution. The problem is when dimensional support is enabled and "With product dimensions" box is checked for Dimensions Support in Admin/Modules/Shipping/UPS XML, the checkout_shipping page just hanging there and doesn't go anywhere. Once I check "No" for Dimensions Support in Admin/Modules/Shipping/UPS XML, the page loads just fine with all available shipping quotes. Is there anything I'm doing wrong?

Since you don't have those 700+ boxes available to pack your products you should delete the ones you don't have (or start again and only enter those that you have). It might be that the code is just too busy trying to fit your products in those 700 different boxes and spends all its time there instead of getting a quote from UPS.

Link to comment
Share on other sites

Hi JanZ,

 

I have asked about this before in this topic and many times over the course of a couple of years in this message foum, and come to the conclusion that there isn't a contribution or method that is already out there that will easily allow a single product item to be split into 2 or more boxes and quoted as such through UPS. We have several items that are shipped into two separate Ready To Ship boxes, but sold as a single unit. I have had several instances of customers needing these capabilities, so I'm sure that it's not a rare shipping scenario. We've made due by increasing the weight of an item to compensate for the added cost, but it's a rough method at best wit complications.

 

I am to the point where I am ready to start modifying the UPSXML module, product pages, and tables to accomplish this. The problem that I face is that I don't want to deviate from a supported module because I know that UPS changes their methodology once in a while and I would rather not be 100% responsible for a custom module, when I'm not all that knowledgeable about the other inner workings.

 

The holy grail for me is if this feature could be integrated into the current UPSXML module as a version update so that we can keep the integrity of the work flow consistent. I would be willing to help in any way that I can with work flow, testing, or whatever else needs to be done to make this happen (within my capabilities).

 

In my mind, I see this as an add on to RTS/dimensional support add on. If there are two boxes that need to be shipped for a single item, then they should each be RTS by themselves. All that would need to be done is add second weight field, and additional LWH fields for the separate items. Then the package QTY's and weights would need to be passed to the shopping_cart.php and UPSXML module for processing. (this is where I'm a little fuzzy as to all the in's and out's).

 

Do you think that this is a worthy subject to apply effort to for the next upgrade to the UPSXML module?

Link to comment
Share on other sites

Since you don't have those 700+ boxes available to pack your products you should delete the ones you don't have (or start again and only enter those that you have). It might be that the code is just too busy trying to fit your products in those 700 different boxes and spends all its time there instead of getting a quote from UPS.

Thanks for replying, Jan. I took out all the "Oversized" and greater than 25in length pre-defined packages from the packaging contribution. Went down from 700+ package definitions to around 40, reasonably-sized packages. However, nothing has changed. The page is still hanging. Is there anything else that might cause the problem?

 

Thanks.

Link to comment
Share on other sites

However, nothing has changed. The page is still hanging. Is there anything else that might cause the problem?

Apparently, there is a problem but I can't tell you where to look. Did you add all the necessary changes for the dimensions support (like in the class shopping_cart.php)? Does is happen with one particular product, all products, ready-to-ship products?

 

Only thing to do is debugging like that, trying to find a pattern. One of the first things you could do is debug the input around line 227 in upsxml.php and change it to:

		$this->_upsDest($order->delivery['city'], $state, $order->delivery['country']['iso_code_2'], $order->delivery['postcode']);
	$productsArray = $cart->get_products();
			if ($this->dimensions_support > 0) {
				$productsArray = $this->more_dimensions_to_productsArray($productsArray);
	  // debug only
	  echo '<pre>Products to pack:<br>';
	  print_r($productsArray);
	  exit;
			}

	if ($this->dimensions_support == '2') {

The code stops on the exit and will print out something like this:

Products to pack:
Array
(
[0] => Array
	(
		[id] => 324
		[name] => Bamboo Pencil Red
		[model] => 
		[image] => bamboo_pencil_red.jpg
		[price] => 5.7500
		[quantity] => 1
		[weight] => 1.000
		[length] => 33.00
		[width] => 1.50
		[height] => 1.50
		[ready_to_ship] => 0
		[final_price] => 5.75
		[tax_class_id] => 1
		[attributes] => 
		[x] => 1.50
		[y] => 1.50
		[z] => 33.00
		[volume] => 74.25
	)

The variables weight, length, width, height, ready-to-ship, x, y, z, and volume should be meaningfull (and correspond with the values you entered in the admin of course).

Link to comment
Share on other sites

The holy grail for me is if this feature could be integrated into the current UPSXML module as a version update so that we can keep the integrity of the work flow consistent. I would be willing to help in any way that I can with work flow, testing, or whatever else needs to be done to make this happen (within my capabilities).

 

In my mind, I see this as an add on to RTS/dimensional support add on. If there are two boxes that need to be shipped for a single item, then they should each be RTS by themselves. All that would need to be done is add second weight field, and additional LWH fields for the separate items. Then the package QTY's and weights would need to be passed to the shopping_cart.php and UPSXML module for processing. (this is where I'm a little fuzzy as to all the in's and out's).

 

Do you think that this is a worthy subject to apply effort to for the next upgrade to the UPSXML module?

It is an interesting challenge but time-consuming and time or more precisely the lack of it is what prevents most code from getting written (or published) ;)

 

My thoughts at the moment on how this could be done is adding a table that holds the data on the split products (id, products_id, l, w, h, fraction of total weight for this box, fraction of total price of the item for this box, ready-to-ship 0/1) and probably best to add a new function to the class shopping_cart that collects the information UPSXML needs, including the split products ($cart->get_products generates lots of queries; at least two per product in the cart).

 

This is the easy part I think. The most time-consuming will be to code the admin part. Perhaps a pop-up window could be used (CCGV has that, I used one in the Nov 14, 2006 SPPC attributes mod rev. 1 for the admin of group prices for attributes). However, for spreading the weight and value (insurance) over the boxes you have to add some Javascript to try to make sure the fractions add up to 1...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...