Zen Cart Logo
Forums / Addon Shipping Modules / Multiple Shipping Origins For Dummies?

Multiple Shipping Origins For Dummies?

Views: 2,596

Results 1 to 20 of 21
1 Nov 2015, 4:33 AM
#1
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Multiple Shipping Origins For Dummies?

How can I make an order loop through the normal shipping calculations for multiple shipping origins?

I have read and re-read all the post on here over the last week and I see a lot of interest in this idea but no solutions.

Here is the code I have implemented just before line 208 of modules / MY FILES / shipping_estimator.php.

/*each zip code needs to be processed seperately thru the ups.php module...this gets the zip codes, weights, and quantities for processing*/

//distinct ship zips in order
$ezfeeds_distinct_ship_zips = $db->Execute("select distinct ship_zip
	from " . TABLE_PRODUCTS . "
	where products_weight > 0
	and products_id IN (select products_id from " . TABLE_CUSTOMERS_BASKET . " 
	where customers_id = '" . (int)$_SESSION['customer_id'] . "')");

if ($ezfeeds_distinct_ship_zips->RecordCount() > 1){
$order_weight = 0;
$order_quantity = 0;

while (!$ezfeeds_distinct_ship_zips->EOF) {

$ezfeeds_distinct_ship_zip = $ezfeeds_distinct_ship_zips->fields['ship_zip'];
$ezfeeds_UPS_products = $db->Execute("select products_id, products_weight, ship_zip
		from " . TABLE_PRODUCTS . "
		where products_weight > 0
		and ship_zip = '$ezfeeds_distinct_ship_zip'
		and products_id IN (select products_id from " . TABLE_CUSTOMERS_BASKET . " 
		where customers_id = '" . (int)$_SESSION['customer_id'] . "')");
$origin_weight = 0;
$origin_quantity = 0;

while (!$ezfeeds_UPS_products->EOF) {
$ezfeeds_ship_zip = $ezfeeds_UPS_products->fields['ship_zip'];
$ezfeeds_produts_id = $ezfeeds_UPS_products->fields['products_id'];
$ezfeeds_products_weight = $ezfeeds_UPS_products->fields['products_weight'];

$ezfeeds_products_name = $db->Execute("select products_name from " . TABLE_PRODUCTS_DESCRIPTION . " 
			where products_id = '$ezfeeds_produts_id' ");
$ezfeeds_product_name = $ezfeeds_products_name->fields['products_name'];

$ezfeeds_UPS_quantities = $db->Execute("select customers_basket_quantity from " . TABLE_CUSTOMERS_BASKET . " 
			where customers_id = '" . (int)$_SESSION['customer_id'] . "'
			and products_id = '$ezfeeds_produts_id' ");
$ezfeeds_products_quantity = $ezfeeds_UPS_quantities->fields['customers_basket_quantity'];

echo "<br>" . $ezfeeds_product_name . "<br>Shipping Origin: " . $ezfeeds_ship_zip . "<br>Individual Weight: " . $ezfeeds_products_weight . "<br>Quantity Ordered: " . $ezfeeds_products_quantity. "<br>";

$ezfeeds_products_weight = $ezfeeds_products_weight * $ezfeeds_products_quantity;
$origin_weight = $origin_weight + $ezfeeds_products_weight;
$origin_quantity = $origin_quantity + $ezfeeds_products_quantity;

$ezfeeds_UPS_products->MoveNext();
}
echo "<br><b>" . $origin_weight . " Shipping Origin Weight<br>";
echo $origin_quantity . " Shiping Origin Quantity</b><br>";

$order_weight = $order_weight + $origin_weight;
$order_quantity = $order_quantity + $origin_quantity;


//change shipping origin to this one for processing order

//require multiple_origins_shipping.php

//build counters to tally total order

$ezfeeds_distinct_ship_zips->MoveNext();

}

echo "<br><b>" . $order_weight." Lbs. Order Weight<br>";
echo $order_quantity." Order Quantity</b><br>";	
//change db zip origin back to central point of USA, 67530, just in case a zip is missing	
}
/*END MIKE*/

It totals weights and quantites by SESSION and zip code just fine with an output like this:

Sport Hoody Color Gry Size YL
Shipping Origin: 07506
Individual Weight: 1
Quantity Ordered: 1

Performance Tee Color Blk Size YM
Shipping Origin: 07506
Individual Weight: 1
Quantity Ordered: 1

2 Shipping Origin Weight
2 Shiping Origin Quantity

17 X 13 Oval Decor Copper Tray With Cast Brass Handle
Shipping Origin: 07663
Individual Weight: 5
Quantity Ordered: 2

10 Shipping Origin Weight
2 Shiping Origin Quantity

12 Lbs. Order Weight
4 Order Quantity

It does not calculate the UPS shipping cost yet...this is where I need help. I just can not seem to grasp onto the way shipping charges are processed. I've read the code a hundred times and end up with a headache after each attempt to understand how it works.

I have tried extending the end of my ```php
while (!$ezfeeds_distinct_ship_zips->EOF) {


The process stops after the first shipping origin...:frusty:

I have also tried plugging this code into various places in the ups.php, shipping, and other files associated with shipping, but nothing seems to work.

I even looked into osCommerces' MVS (multiple vendor support) module and I'm still confused.

I really would appreciate any help I can get with this.
1 Nov 2015, 5:25 AM
#2
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

P.S. I really don't care about any other shipping method since I only use 'Free Shipping' and 'UPS' for the delivery of my products.

1 Nov 2015, 7:48 AM
#3
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

I have figured out how to pass my variables from the code above to the ups.php file.

Around line 127, search for this: ```php
function quote($method = '') {


Change the globals line to this: ```php
global $_POST, $order, $shipping_weight, $shipping_num_boxes, $ezfeeds_ship_zip, $origin_weight, $origin_quantity, $distinct_ship_zips;

If you want to test it echo with this: ```php
echo $origin_weight." Origin Weight in ups.php 'function quote'<br>";
echo $origin_quantity." Origin Quantity in ups.php 'function quote'<br>";
echo $ezfeeds_ship_zip." Origin Ship ZIP in ups.php 'function quote'<br>";
echo $distinct_ship_zips." Distinct Shipping Origins in ups.php 'function quote'<br>";


Around line 156 look for this: ```php
$this->_upsOrigin(SHIPPING_ORIGIN_ZIP, $country_name['countries_iso_code_2']);

Change it to this: ```php
$this->_upsOrigin($ezfeeds_ship_zip, $country_name['countries_iso_code_2']);


WARNING - That line above overrides SHIPPING_ORIGIN_ZIP...your admin setting for shipping origin zip code.

The same concept will be applied to weight and quantity...where ever they are at.

I believe that is all that is needed to get the quote by zip origin...

Now, **I need to know what is stopping my while loop after the first zip origin**...anyone?
1 Nov 2015, 8:00 AM
#4
lhungil avatar

lhungil

Totally Zenned

Join Date:
Feb 2012
Location:
mostly harmless
Posts:
1,818
Plugin Contributions:
4

Re: Multiple Shipping Origins For Dummies?

There is also a plugin "DropShip Core" which allows one to configure different "origin shipping points" per product.

"DropShip Core" currently ships with a "UPS Dropship" shipping module containing the necessary code to handle multiple different "origin shipping points", negotiated UPS rates, insurance (admin setting - cannot be changed by the customer), different shipping packages, and the list goes on.

NOTE: Support for more than one "country" as a shipping origin will be available in a future version (required changes are in BETA status at the moment). The current public version (at the time of writing) only supports a single country.

1 Nov 2015, 9:06 AM
#5
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

lhungil:

There is also a plugin "DropShip Core" which allows one to configure different "origin shipping points" per product.

"DropShip Core" currently ships with a "UPS Dropship" shipping module containing the necessary code to handle multiple different "origin shipping points", negotiated UPS rates, insurance (admin setting - cannot be changed by the customer), different shipping packages, and the list goes on.

NOTE: Support for more than one "country" as a shipping origin will be available in a future version (required changes are in BETA status at the moment). The current public version (at the time of writing) only supports a single country.

Thanks. I downloaded dropship core a couple of days ago but didn't install it for some reason...is it updated for 1.5.4? That may be why I didn't pursue it...

I'll look at it again.

How can I extract and set a variable to the price in the $quotes array?

Array ( [0] => Array ( [id] => ups [module] => United Parcel Service (1 x 1.00lbs) [methods] => Array ( [0] => Array ( [id] => GND [title] => Ground [cost] => 15.26 ) ) [tax] => 3.4 [icon] => United Parcel Service ) ) 

I'll research it on Stackoverflow too...may be an answer there.

1 Nov 2015, 9:13 AM
#6
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

lhungil:

There is also a plugin "DropShip Core" which allows one to configure different "origin shipping points" per product.

"DropShip Core" currently ships with a "UPS Dropship" shipping module containing the necessary code to handle multiple different "origin shipping points", negotiated UPS rates, insurance (admin setting - cannot be changed by the customer), different shipping packages, and the list goes on.

NOTE: Support for more than one "country" as a shipping origin will be available in a future version (required changes are in BETA status at the moment). The current public version (at the time of writing) only supports a single country.

Zen Cart® Versions v1.5.0, v1.5.1

I'm using 1.5.4 ...

1 Nov 2015, 9:23 AM
#7
lhungil avatar

lhungil

Totally Zenned

Join Date:
Feb 2012
Location:
mostly harmless
Posts:
1,818
Plugin Contributions:
4

Re: Multiple Shipping Origins For Dummies?

"DropShip Core" works on Zen Cart 1.5.4. It does require one to manually merge the changes to core Zen Cart files though.

1 Nov 2015, 9:38 AM
#8
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

mikeel100:

Thanks. I downloaded dropship core a couple of days ago but didn't install it for some reason...is it updated for 1.5.4? That may be why I didn't pursue it...

I'll look at it again.

How can I extract and set a variable to the price in the $quotes array?

Array ( [0] => Array ( [id] => ups [module] => United Parcel Service (1 x 1.00lbs) [methods] => Array ( [0] => Array ( [id] => GND [title] => Ground [cost] => 15.26 ) ) [tax] => 3.4 [icon] => United Parcel Service ) )

> 
> I'll research it on Stackoverflow too...may be an answer there.

Found it ...  ```php
echo $quotes[0]['methods'][0]['cost']." Quotes Cost<br>";
1 Nov 2015, 9:51 AM
#9
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

lhungil:

"DropShip Core" works on Zen Cart 1.5.4. It does require one to manually merge the changes to core Zen Cart files though.

Great! Well, kind of...I'm not so good at merging. I'll look at it when I'm fully convinced this ordeal is over my head.

I'm doing this the hard way to force myself to understand how the shipping modules work with each other to come up with the costs.

Now that I know how to extract the quote from the $quotes array...I believe it is just a matter of subtotaling everything and bringing it back together after all shipping origins have been ran through the ups module.

I really appreciate your suggestions.

1 Nov 2015, 6:05 PM
#10
mc12345678 avatar

mc12345678

Totally Zenned

Join Date:
Jul 2012
Posts:
16,908
Plugin Contributions:
2

Re: Multiple Shipping Origins For Dummies?

mikeel100:

Great! Well, kind of...I'm not so good at merging. I'll look at it when I'm fully convinced this ordeal is over my head.
I really appreciate your suggestions.

Merging of existing code is similar (but much easier) than writing the code to perform the desired action. As you compare the changes (using a basic text comparison tool), if the difference doesn't have anything to do with the programs goal, then it more than likely is a "version" difference that has nothing to do with the operation of the plugin but was a change in the ZC code.

Don't forget regarding "adding" up all of the things at the end to consider individual "packing" and other surcharge related "fees" or adjustments... Further really hope that the time being spent re-inventing existing code is worth beyond the "challenge" of doing it...

2 Nov 2015, 6:44 AM
#11
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

mc12345678:

Merging of existing code is similar (but much easier) than writing the code to perform the desired action. As you compare the changes (using a basic text comparison tool), if the difference doesn't have anything to do with the programs goal, then it more than likely is a "version" difference that has nothing to do with the operation of the plugin but was a change in the ZC code.

Don't forget regarding "adding" up all of the things at the end to consider individual "packing" and other surcharge related "fees" or adjustments... Further really hope that the time being spent re-inventing existing code is worth beyond the "challenge" of doing it...

I'm familiar with WinMerge...used it to do a couple of upgrades. I just don't like doing it.

I appreciate the tips for "adding" up all the extras at the end...but I'm a long way from that!

My code is now calculating properly in the shipping estimator...but only when logged in.

It is not passing to the checkout stage...much more reading and work to do.

I started studying the init_cart_handler, main_cart_actions, init_session, and other files today.

Looks like my code needs to be moved to an earlier stage in the shopping cart process in order for it to work while not logged in...still hunting for a place to put it. Maybe I should check your code out to see how you did it...LOL.

2 Nov 2015, 9:41 PM
#12
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

I believe I figured out why the shipping quotes are not working when not logged in...my PHP query is using the
" . TABLE_CUSTOMERS_BASKET . " and the basket is not filled until a customer logs in.

I need to query from a SESSION variable or array somehow.

I know very little about working with a SESSION. Order variables are stored somewhere before people log in...where?

How can I make a _SESSION array into a PHP variable for running a query? Here is the query I need to convert:

$ezfeeds_distinct_ship_zips = $db->Execute("select distinct ship_zip
		from " . TABLE_PRODUCTS . "
		where products_weight > 0
		and products_id IN (select products_id from " . TABLE_CUSTOMERS_BASKET . " 
		where customers_id = '" . (int)$_SESSION['customer_id'] . "')");

I need to create an array just before this query so I can use it like this:

$pID = array($_SESSION['products']['id']);

$ezfeeds_distinct_ship_zips = $db->Execute("select distinct ship_zip
		from " . TABLE_PRODUCTS . "
		where products_weight > 0
		and products_id IN (select products_id from " . ???$pID??? . " 
		where customers_id = '" . (int)$_SESSION['customer_id'] . "')");

Anyone?

2 Nov 2015, 11:32 PM
#13
mc12345678 avatar

mc12345678

Totally Zenned

Join Date:
Jul 2012
Posts:
16,908
Plugin Contributions:
2

Re: Multiple Shipping Origins For Dummies?

mikeel100:

I believe I figured out why the shipping quotes are not working when not logged in...my PHP query is using the
" . TABLE_CUSTOMERS_BASKET . " and the basket is not filled until a customer logs in.

I need to query from a SESSION variable or array somehow.

I know very little about working with a SESSION. Order variables are stored somewhere before people log in...where?

How can I make a _SESSION array into a PHP variable for running a query? Here is the query I need to convert:

$ezfeeds_distinct_ship_zips = $db->Execute("select distinct ship_zip
from " . TABLE_PRODUCTS . "
where products_weight > 0
and products_id IN (select products_id from " . TABLE_CUSTOMERS_BASKET . "
where customers_id = '" . (int)$_SESSION['customer_id'] . "')");

> 
> I need to create an array just before this query so I can use it like this:
> 
> $pID = array($_SESSION['products']['id']);
> 
> ```php
$ezfeeds_distinct_ship_zips = $db->Execute("select distinct ship_zip
		from " . TABLE_PRODUCTS . "
		where products_weight > 0
		and products_id IN (select products_id from " . ???$pID??? . " 
		where customers_id = '" . (int)$_SESSION['customer_id'] . "')");

Anyone?

$_SESSION['cart']->get_product_id_list()

$ezfeeds_distinct_ship_zips = $db->Execute("select distinct ship_zip
from " . TABLE_PRODUCTS . "
where products_weight > 0
and products_id IN (" . $_SESSION['cart']->get_product_id_list() . " 
where customers_id = '" . (int)$_SESSION['customer_id'] . "')");
3 Nov 2015, 12:23 AM
#14
mc12345678 avatar

mc12345678

Totally Zenned

Join Date:
Jul 2012
Posts:
16,908
Plugin Contributions:
2

Re: Multiple Shipping Origins For Dummies?

Oops, missed a right parentheses and the fact that the customer_id was still mixed in there... Below is the corrected query. Sorry Mikeel100

$ezfeeds_distinct_ship_zips = $db->Execute("select distinct ship_zip
from " . TABLE_PRODUCTS . "
where products_weight > 0
and products_id IN (" . $_SESSION['cart']->get_product_id_list() . ")");
4 Nov 2015, 9:33 AM
#15
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

mc12345678:

Oops, missed a right parentheses and the fact that the customer_id was still mixed in there... Below is the corrected query. Sorry Mikeel100

$ezfeeds_distinct_ship_zips = $db->Execute("select distinct ship_zip
from " . TABLE_PRODUCTS . "
where products_weight > 0
and products_id IN (" . $_SESSION['cart']->get_product_id_list() . ")");


Thanks! I'll give a shot tomorrow...crosseyed and hungry right now:)
5 Nov 2015, 12:39 AM
#16
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

Yes! It worked. Thanks so much.

I have been searching all day for the quantity counterpart of

(" . $_SESSION['cart']->get_product_id_list() . ")

I did a developers search in admin for $_SESSION to tried to find it but everything I've tried seems to return the total count instead of the count of the the single product being evaluated for ups shipping.

I have also done ```php
print_r($SESSION);


```php
Array 
	(
	[securityToken] => xxxxxxxxxxxxxxxxxxxxxxxxxxxx 
	[customers_host_address] => 8-41-125-109.xxxxx.xxxxxx.com 
	[cartID] => [cart] => shoppingCart Object 
	(
	[contents] => Array 
		( 
		[192501] => Array 
			( 
			[qty] => 1 
			)

I'm also an array extraction dummy...been reading the w3school.com info on arrays but it hasn't sunk in yet LOL.

How do I extract the ['qty'] from the array and set it to a variable or is there an existing variable I can use?

tpl_shopping_cart_default prints the ```php
$product['quantityField']


I suspect that $productArray contains all the data I need to proceed but I can't get it to echo or print_r.

Thanks for any help!
5 Nov 2015, 1:20 AM
#17
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

Found one piece of the puzzle...

$products = $_SESSION['cart']->get_products();
print_r($products);

Array 
	( 
	[0] => Array 
		( 
		[id] => 2607 
		[category] => 781 
		[name] => 17 X 13 Oval Decor Copper Tray With Cast Brass Handle [model] => DSD537376 
		[image] => images_products/at_home/kitchenware/serving_trays/253.jpg 
		[price] => 44.3555 
		[quantity] => 2 
		[weight] => 5 
		[final_price] => 44.3555 
		[onetime_charges] => 0 
		[tax_class_id] => 2 
		[attributes] => [attributes_values] => [products_priced_by_attribute] => 0 
		[product_is_free] => 0 
		[products_discount_type] => 0 
		[products_discount_type_from] => 0 
		[products_virtual] => 0 
		[product_is_always_free_shipping] => 0 
		) 
	[1] => Array 
		( 
		[id] => 59385 
		[category] => 2401 
		[name] => Sport Hoody Color Gry Size YS [model] => DSD467088 
		[image] => images_products/apparel/performance_wear/athletic_wear/1081-SportHoodySweatshirt.jpg 
		[price] => 28.7500 [quantity] => 3 
		[weight] => 1 
		[final_price] => 28.75 
		[onetime_charges] => 0 
		[tax_class_id] => 2 
		[attributes] => [attributes_values] => [products_priced_by_attribute] => 0 
		[product_is_free] => 0 
		[products_discount_type] => 0 
		[products_discount_type_from] => 0 
		[products_virtual] => 0 
		[product_is_always_free_shipping] => 0 
		) 
	[2] => Array 
		( 
		[id] => 59507 
		[category] => 2393 
		[name] => Akadema Sweat Pants Heather Medium 
		[model] => DSD566260 
		[image] => images_products/apparel/performance_wear/athletic_wear/1081-sweatPants_1.jpg 
		[price] => 28.7500 
		[quantity] => 4 
		[weight] => 2 
		[final_price] => 28.75 
		[onetime_charges] => 0 
		[tax_class_id] => 2 
		[attributes] => [attributes_values] => [products_priced_by_attribute] => 0 
		[product_is_free] => 0 
		[products_discount_type] => 0 
		[products_discount_type_from] => 0 
		[products_virtual] => 0 
		[product_is_always_free_shipping] => 0 
		)
	)

I wish I had found this a week ago...

Where in the programming is this array built?

I need to add 'ship_origin_zip' to this layout...then I can do away with the multiple queries the db that I have already created.

Anyone?

5 Nov 2015, 1:47 AM
#18
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

Answered my own question...

$products = $_SESSION['cart']->get_products();
$i = 0;
foreach($products as $product){
	print_r($products[$i]['quantity']."<br>");
$i++;
}
5 Nov 2015, 5:14 PM
#19
mc12345678 avatar

mc12345678

Totally Zenned

Join Date:
Jul 2012
Posts:
16,908
Plugin Contributions:
2

Re: Multiple Shipping Origins For Dummies?

There's also $_SESSION['cart']->get_quantity($products_id) which can be used if you know the products_id like the above function provides a comma separated listing that can be exploded on the comma into an array that can be used with the get_quantity function. The functions that I have identified recently are all a part of the includes/classes/shopping_cart.php file.

Further, if the code is to eventually be submitted to the forum, it is ideal to use ZC provided functions where/when possible. This way, if the cart "array" changes, your code won't need modification. :)

6 Nov 2015, 8:21 AM
#20
mikeel100 avatar

mikeel100

Zen Follower

Join Date:
Sep 2012
Location:
West Jefferson, NC
Posts:
391
Plugin Contributions:
0

Re: Multiple Shipping Origins For Dummies?

mc12345678:

There's also $_SESSION['cart']->get_quantity($products_id) which can be used if you know the products_id like the above function provides a comma separated listing that can be exploded on the comma into an array that can be used with the get_quantity function. The functions that I have identified recently are all a part of the includes/classes/shopping_cart.php file.

Further, if the code is to eventually be submitted to the forum, it is ideal to use ZC provided functions where/when possible. This way, if the cart "array" changes, your code won't need modification. :)

Thanks for the great tips! I am still a novice but learning quickly.

I ran across the quantity / product thing in my search but could never get it to echo back...didn't understand exploding it so I just continued hacking away until I found the $products array...that will be quite usefull.

I do plan on contributing....after I figure out how to apply all of the zencart functions to my existing code.

My program currently has over 3000 lines of code. I knew nothing about functions or sessions when I started the project...so, it's fun time rewriting code. LOL.

My code is working perfectly in the shipping estimator...now I have to find where to make the same thing happen in the checkout, confirmation, and paypal modules.

Gonna take a break for a couple of days...my brain hurts!

Thanks again for your help!