Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

[support]?MultiGeoZone MultiTable Shipping Module


dreamscape

Recommended Posts

First of all, I have to apologize for not have read carefully the readme.htm file :blush:

 

Anyway, now I think I know how to setup the shipping tables. I have two zones, and I want to allow free shipping for orders up to 30 $ on one and for 60 $ on the other.

So, I think I have to configure the tables just like this:

Zone 1: .01:9,30.00:0.00

Zone 2: .01:9,60.00:0.00

which means: for orders from 1 cent to 30(or 60) charge 9, for orders over that value, free shipping.

I have setup the tables in this way, but the shipping costs still doesn't appear. I tested with orders about 15, 30, 60, 90.... the shipping costs never appear.

The zones are right configured, if I enable the shipping table with the same zones it works fine.

I really don't know what I'm doing wrong and I really want to use this great contribution.

 

By the way to solve my problem I set up the shipping as follows (if helps someone):

Allow free shipping for orders over 60 (Modules - totalization)

Enable flat shipping for 9 dollars for zone 2

Enable shipping table for zone 1, configured in this way: 29.99:9,30:0

 

Ok, it works, but I think this isn't the best way to set up the shipping costs ;)

 

P.d.: sorry for my english... :rolleyes:

 

Under the counting method that table reads as 29.99 or more items, charge $9.  30 or more items, free shipping.  The only way to be charged for shipping would be to have between 29.99 and 30 items in the cart... how can you have .001 of an item?  Less than 29.99 items, there is nothing in the table for that, so there will be no quotes displayed.

 

Under price, it reads the same.  $29.99 or more charge $9.  $30 or more, give free shipping.  Less than $29.99 is not accounted for, and therefore, no quotes will be displayed if the cost is less than $29.99.  And it is free for $30 or more.  So according to your table, the only way to be charged for shipping is if your cart subtotal is exactly $29.99

Link to comment
Share on other sites

It works! at least. And it was my fault as I suspect... :blush:

The problem was:

- in the function that show the pulldown list to select the zone the sql query is just like this:

 $zone_class_query = tep_db_query("select geo_zone_id, geo_zone_name from " . TABLE_GEO_ZONES . " where LOWER(geo_zone_name) like 'shp%' order by geo_zone_name");

 

So, what I did was delete [where LOWER(geo_zone_name) like 'shp%' ] to allow all the zones to be included, not only the ones which begin whit shp. But if you do that you have to delete also the sql bold query:

 function getGeoZoneID($country_id, $zone_id) {
     // First, check for a Geo Zone that explicity includes the country & specific zone (useful for splitting countries with zones up)
     $zone_query = tep_db_query("select gz.geo_zone_id from " . TABLE_GEO_ZONES . " gz left join " . TABLE_ZONES_TO_GEO_ZONES . " ztgz on (gz.geo_zone_id = ztgz.geo_zone_id) where ztgz.zone_country_id = '" . (int)$country_id . "' and ztgz.zone_id = '" . (int)$zone_id . "' [B]and LOWER(gz.geo_zone_name) like 'shp%'[/B]");

     if (mysql_num_rows($zone_query)) {
       $zone = mysql_fetch_assoc($zone_query);
       return $zone['geo_zone_id'];
     } else {
       // No luck…  Now check for a Geo Zone for the country and "All Zones" of the country.
       $zone_query = tep_db_query("select gz.geo_zone_id from " . TABLE_GEO_ZONES . " gz left join " . TABLE_ZONES_TO_GEO_ZONES . " ztgz on (gz.geo_zone_id = ztgz.geo_zone_id) where ztgz.zone_country_id = '" . (int)$country_id . "' and (ztgz.zone_id = '0' or ztgz.zone_id is NULL) [B]and LOWER(gz.geo_zone_name) like 'shp%'[/B]");

       if (mysql_num_rows($zone_query)) {
         $zone = mysql_fetch_assoc($zone_query);
         return $zone['geo_zone_id'];
       } else {
         return false;
       }
     }
   }

 

And that's all. The contribution works fine and it's really good (you'll be able to set all the zones and all the shipping tables you want!).

 

Sorry for all the inconveniences :'(

Link to comment
Share on other sites

The reason that the module requires shipping zones to being with "Shp" is because otherwise, if you have tax zones, there might be overlap, and if there is, when someone from inside one of your tax zones purchases something, unless there is some way to distinguish the shipping zones from the tax zones, it could pick up the tax zone and think that is the correct shipping zone, and not find any quotes for the user.

 

That sounds a bit complicated, but here is a real world example:

 

- Your tax geo zone is California

- You have shipping geo zones set for the Lower 48 states; Alaska & Hawaii; Canada & Mexico; the European Union; and the Rest of the World.

- If someone from outside of California buys, there is no problem;

- However, if someone from California buys, without a way to tell if a geo zone is a shipping zone or not, the module might pick up California -or- the Lower 48 States as this person's geo zone, since they are located in both. If it finds California first, it will attempt to use that geo zone to determine the shipping, but none will be found.

- To prevent this, I have made the MZMT module look only for geo zones that being with "Shp" so that it can be sure they are shipping geo zones and not tax geo zones or payment geo zones.

 

I do NOT recommend or support the changes to remove the functionality to distinguish shipping geo zones from other geo zones as posted above by tonyClifton. If you make those change, you do so at your own risk.

The only thing necessary for evil to flourish is for good men to do nothing

- Edmund Burke

Link to comment
Share on other sites

Hi,

 

Is there any way to restrict a table to a weight range? For example you may have two different shipping methods for a particular GeoZone but one may be limited in the weight you can send but the other not.

 

Any idea's?

 

Regards,

 

Heather

Link to comment
Share on other sites

Hi,

I've read through the thread, but kind of lost myself. :(

Can anybody tell me how I should do if I'd like to set shipping rate like this?

 

If the total purchase is over $150, no shipping fee required.

But if the total purchase falls below $150, the following criteria will be applied.

- if total weight is lower than 500 gram, the shipping fee will be $20

- if total weight is higher than 500 gram, the shipping fee will be $25.

 

I installed this MultiGeoZone MultiTable Shipping Module and made up 2 Geo Zones that applied on the same region. First Geo zone is based on price, and I set shipping table like this 0:25,150:0. Second Geo zone is based on weight, and I set shipping table like this 0:20,500:25.

 

But it didn't work as I expected. Seems like it uses only the first geo zone to calculate and ignore the second.

 

AARHH....what should I do?

Any help will be very appreciated.

 

Regards,

Thidarat

Link to comment
Share on other sites

hi,

great contribution really - just installed it and it works fine - but i would like to know if there is a possibility just like with the ordinary ZONE RATES that if a country is not in any GEOZONE then the checkout process cannot be continued.

 

now if somebody has a shipping address that is not in any geozone, no shipping fee will be charged and he can continue checking out. in Zone Rate Module in this case it says "NO SHIPPING TO THIS COUNTRY IS OFFERED" or something like this.......

 

of course i can create a geozone with rest of the world but i just dont like to send my products to the rest of the world.

 

thanx a lot in advance as i dont want to delete all this nice countries from my database (maybe they will serve me a day)

 

bye

 

sebs

Link to comment
Share on other sites

of course i can create a geozone with rest of the world but i just dont like to send my products to the rest of the world.

 

If you're not using the countries then I suggest removing them. If you even need them in the future, you can add them back in ;)

The only thing necessary for evil to flourish is for good men to do nothing

- Edmund Burke

Link to comment
Share on other sites

  • 1 month later...

Excellent contribution, but I just noticed today that when you get above 70 pounds the contribution freeks out and says the shipping weight is actually less than what is was with less items?

Most Valuable OsCommerce Contributions:

Also Purchased (AP) Preselection (cuts this resource hogging query down to nothing) -- Contribution 3294

FedEx Automated Labels -- Contribution 2244

RMA Returns system -- Contribution 1136

Sort Products By Dropdown -- Contribution 4312

Ultimate SEO URLs -- Contribution 2823

Credit Class & Gift Voucher -- Contribution 282

Cross-Sell -- Contribution 5347

Link to comment
Share on other sites

The module doesn't calculate weight, osCommerce does. The module just uses the weight osCommerce passes to it.

 

If you have your max package weight at 70 pounds, you need to download the latest version, which fixes a bug in previous versions where multiple packages were not being handled correctly.

The only thing necessary for evil to flourish is for good men to do nothing

- Edmund Burke

Link to comment
Share on other sites

  • 2 weeks later...

Ahh, I see what is happening it is just displaying the weight per box, and not the number of boxes. Thanks for your help and great contribution!

Most Valuable OsCommerce Contributions:

Also Purchased (AP) Preselection (cuts this resource hogging query down to nothing) -- Contribution 3294

FedEx Automated Labels -- Contribution 2244

RMA Returns system -- Contribution 1136

Sort Products By Dropdown -- Contribution 4312

Ultimate SEO URLs -- Contribution 2823

Credit Class & Gift Voucher -- Contribution 282

Cross-Sell -- Contribution 5347

Link to comment
Share on other sites

  • 4 weeks later...

I want to be have each item calculate weight at the table rate, and then all the shipping costs added together to make one total shipping...

 

i.e.

 

1 pencil = ?1.00 (weight 1)

1 book = ?4.00 (weight 2)

 

table rates

1:1.00,2:1.50,3:1.75

 

so currently the shipping value based on the table rate would be ?1.75, however, I want it to be able to calculate the shipping in the following way..

 

item 1 shipping ?1.00

item 2 shipping ?1.50

total shipping applied would then be ?2.50, very different from ?1.75

 

any ideas dreamscape?

Link to comment
Share on other sites

  • 2 weeks later...

First of all, this is one hell of a contribution ! Great work !

 

i have one question though, on line 52:

                            'module' => constant('MODULE_SHIPPING_MZMT_GEOZONE_' . $this->delivery_geozone . '_TEXT_TITLE') . ' (' . $shipping_weight . ' lbs)',

 

There's ' (' . $shipping_weight . ' lbs)' but in my checkout_shipping.php page it only displays ( lbs) and it doesn't show the weight of the pakkage as is should regarding to the code. What could be wrong ??

 

thnx for your help.

Link to comment
Share on other sites

  • 4 weeks later...

I've downloaded the contrib but I can't decompress the tar archive.

 

I've downloaded it in different computers several times, but after decompressing the gz archive, when I try to access the nested tar archive using PicoZip, I see a warning: File format not supported. I have read lots of .tar.gz files before and that had never happened. ;)

 

Are there any files compressed in another format?

 

Thanks,

Victor

Link to comment
Share on other sites

I installed MZMT Contribution, but the shipping cost for 1st item cannot be calculate correctly. I set

 

Geo Zone 1 Handling Fee

3.99

 

Geo Zone 1 Shipping Table 1

1:900%

 

then the shipping cost for 1 item is $21.99. it suppose to be $12.99. 2nd item charge $9.00 more as well. why the shipping cost for 1st item cannot be calculate correctly?

 

Thanks in advance...

Link to comment
Share on other sites

Hi,

Really new at this and have been trying to figure most of the stuff out. This is really a great contribution.

Unfortunately I've hit a snag. Was trying things out and amidst the trial and error, I installed the MZMT 3 times. To cut the story short, I realized that in my admin/configure, I have 3 Pre-configurations for MZMT.

I am not sure if this is why my shipping is not working out correctly.

I had set 1 zone in the MZMT as the only shipping option.

However, only (lbs) comes up with no option to even select it.

I made sure that zone coincides with my login address.

 

So... help please?

How do I get rid of the extra pre-configurations in my admin/configure? :'(

Link to comment
Share on other sites

Oh yes, and one more thing, how do you extend the number of characters in the shipping table (where we key in the weight:price). This was asked before but "dreamscape" had PM the messaged to that person so it's not visible here for me to read.

Link to comment
Share on other sites

Sorry, it's me again. Just wanted to share what I did.

Initially I couldn't get my MZMT to work.

I went on a hunch and installed the Country-State Selector contribution. Now my MZMT works. I guess before, the zones I had set were not identifying with the customer's address?

Link to comment
Share on other sites

Hello??? Anyone out there that can help? Dreamscape???

I am still hoping someone can tell me how to delete off the extra MZMT pre-configuration at my admin/configuration.

 

You need deleted them in your database. Use phpMyAdmin to access your database, browse the configuration table, find the extra keys and delete them.

Link to comment
Share on other sites

You need deleted them in your database. Use phpMyAdmin to access your database, browse the configuration table, find the extra keys and delete them.

 

 

Thank you very much. Actually I was just going to post the answer as I stumbled upon the solution last night. But very much appreciative of your reply.

Link to comment
Share on other sites

  • 4 weeks later...
This mod is exactly what my shop needed, but I was wondering if anyone had gotten it to work with "ship in cart". I would like to show in the cart what the shipping would be for my default country. Seems like it should be so easy since it's just based on the total price or item number..... but ship in cart mod just shows the Geo Zone 3 no matter what. Anyone know how to get it to use Geo Zone 1 for those customers who aren't logged in yet?

 

 

i have same problem. does anyone know ho to solve it?

Link to comment
Share on other sites

Could someone tell me EXACTLY how to do step #2 with phpMyAdmin?

 

2. Import SQL file `_install_sql/INSTALL_v1.000.sql` to your DB.

 

I know I go to sql and there is a box that I put things in, I have had to do that before but I need someone to tell me the exact steps. I'm sorry for being such a chicken but I don't want to mess up my database!

 

Thank you all so much.

Link to comment
Share on other sites

nevermind, I got brave and think I did it right ;)

 

for others:

 

I went to SQL, then down at the bottom where there is the choose box I browsed to where I had unzipped MZMT and the folder _install_sql/INSTALL_v1.000.sql. chose that and said Go.

 

for those who couldn't get it unzipped, I couldn't either but I found a free program called 7-zip that was able to unzip it. HTH.

Link to comment
Share on other sites

I wanted to post how I am setting up this mod in case someone else is looking for something similar.

 

I only sell two products, postcards and sheet music but they are all vintage and unique. I wanted a price for the first postcard and a price for additional for the USA, Canada and the rest of the world. and then I wanted a seperate price for the first sheet music plus additional.

 

I set up a geozone for USA and two tables under that, one for postcards and one for sheet music. I then did the same for the other geozones. on checkout, they have to choose either postcards or sheet music and then shipping is figured correctly.

 

I'd like to add some text on this screen to tell the customer that they need to choose one or the other but also if they buy a piece of sheet music and some postcards, they need to choose sheet music (because of the larger base price associated with it since it is heavier). does anyone know where I need to go to add text to that page or do I need to post this question somewhere else? Thank you for this contribution.

Edited by mel-
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...