Jump to content



Photo
* * * * - 1 votes

[support]†MultiGeoZone MultiTable Shipping Module


  • Please log in to reply
336 replies to this topic

#61   Chuckler

Chuckler
  • Members
  • 21 posts
  • Real Name:Dean Winter

Posted 13 February 2005 - 10:17

I'm having a prob with the way MZMT (I think it's MZMT) calculates the shipping tax.

eg.

Item 1 ... $452.60
Shipping .$ 9.90
Subtotal . $461.60
Tax.........$ 42.05
Total.......$462.50

In this example, Item 1 is $452.60 including 10% tax. Shipping is $9.90 including 10% tax. The subtotal should be $462.50, and the Tax should be $42.95.

Am I correct that this is a MZMT problem? I just guessed because the missing amount in both columns is the tax on the shipping. /whistling.gif' class='bbc_emoticon' alt=':-"' />

I've also applied dman_3021's fix from this thread:
http://forums.oscomm...wtopic=74679
to make the subtotal tax inclusive, so maybe it's there. ??

#62   dreamscape

dreamscape
  • Members
  • 1,546 posts
  • Real Name:departing this world in search of another

Posted 13 February 2005 - 16:20

The shipping module itself does not calculate tax. MZMT is setup to have tax applied like any other shipping module, if you have selected a tax class for it, but it does not do the calculation itself.
The only thing necessary for evil to flourish is for good men to do nothing
- Edmund Burke

#63   loveacrossborders

loveacrossborders
  • Members
  • 53 posts
  • Real Name:Shaun

Posted 13 February 2005 - 17:24

Hi dreamscape,

I wonder if you know of a solution to our problem at the bottom of page three.

Cheers!

#64   dreamscape

dreamscape
  • Members
  • 1,546 posts
  • Real Name:departing this world in search of another

Posted 13 February 2005 - 17:35

Hi dreamscape,

I wonder if you know of a solution to our problem at the bottom of page three.

Cheers!

<{POST_SNAPBACK}>


Check your PM box.

Edited by dreamscape, 13 February 2005 - 17:38.

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

#65   WebPixie

WebPixie
  • Members
  • 138 posts
  • Real Name:Andrea

Posted 21 February 2005 - 01:45

Check your PM box.

<{POST_SNAPBACK}>



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?

#66   tonyClifton

tonyClifton
  • Members
  • 5 posts
  • Real Name:Jose Cornide

Posted 02 March 2005 - 11:12

Hi everyone, new here, but long time instaling and developing osComerce.

I installed this great contribution (Thanks dreamscape!) but I found the following, i have read the entire post and it looks it only happens to me :-( so I think I'm doing something wrong...

If I set the shipping by weight everything works fine, but if I do it by price no shipping costs are displayed nor added to the order.

I think I'm doing everything right, this is the shipping costs table I have configured:
.5:5.97,1:6.96,1.5:7.95,2:8.94,2.5:0

Thanks in advance!

#67   dreamscape

dreamscape
  • Members
  • 1,546 posts
  • Real Name:departing this world in search of another

Posted 02 March 2005 - 15:54

tonyClifton, your table is setup that if anyone buys something that costs $2.50 or more, they are not charged for shipping.
The only thing necessary for evil to flourish is for good men to do nothing
- Edmund Burke

#68   puckett_jw

puckett_jw
  • Members
  • 73 posts
  • Real Name:Jimmy Puckett

Posted 02 March 2005 - 16:24

Rate based on weight.

We are considering using the weight fiield to base shipping on, but mirror the cost value into the weight field, except for a few items that we want to ship for free (I posted about this a while back). Anyhow, in doing some testing, there is a rounding issue that is driving us nuts. We have set the package weight to 0 & the maximum package weight through the roof, but it system (OSC or MZMT?) is rounding the wieght to the nearest whole number, which puts some orders in the wrong shipping bracket. Anyone have any suggestions?

#69   tonyClifton

tonyClifton
  • Members
  • 5 posts
  • Real Name:Jose Cornide

Posted 02 March 2005 - 16:47

/pinch.gif' class='bbc_emoticon' alt='>_<' /> Doh!
I changed it, 29.99:9.00,30.00:0. If I choose weight it works fine, but I have the same problem. If you choose count or price no shipping costs are displayed on the checkout shipping page nor added to the order total (checkout_shipping.php).

tonyClifton, your table is setup that if anyone buys something that costs $2.50 or more, they are not charged for shipping.

<{POST_SNAPBACK}>



#70   artifex_canada

artifex_canada
  • Members
  • 4 posts
  • Real Name:Ryan

Posted 05 March 2005 - 22:46

Same problem here. And I've uninstalled and reinstalled the module just to be sure. I'm only working with 2 zones (Canada, USA)

USA
17:15,10000:0

Canada
39:9,10000:0

Essentially a minimum order amount for free shipping, but the minimum varies depending on if you're from the US or Canada. I can get it to work with the default "table method" shipping, but that's only good for one zone.

/pinch.gif' class='bbc_emoticon' alt='>_<' /> Doh!
I changed it, 29.99:9.00,30.00:0. If I choose weight it works fine, but I have the same problem. If you choose count or price no shipping costs are displayed on the checkout shipping page nor added to the order total (checkout_shipping.php).

<{POST_SNAPBACK}>



#71   dreamscape

dreamscape
  • Members
  • 1,546 posts
  • Real Name:departing this world in search of another

Posted 05 March 2005 - 22:57

USA
17:15,10000:0

Canada
39:9,10000:0

Essentially a minimum order amount for free shipping, but the minimum varies depending on if you're from the US or Canada.  I can get it to work with the default "table method" shipping, but that's only good for one zone.

<{POST_SNAPBACK}>


The required amount for free shipping is the same on both of those: 10000

Assuming this is weight, and taking your USA table, what you have put it 17 or more pounds, charge $15. 10,000 or more pounds, give free shipping. If a person's order is less than 17 pounds, it will not calculate, because according to your table, there is nothing to calculate for under 17 pounds.

I do not do my tables the same as the default osCommerce table module does... it does the dumb "up to but not including x amount:charge". I make mine so they work like "x amount or more:charge" I have explained that in the instructions, which it always helps to read carefully when you have a problem /wink.gif' class='bbc_emoticon' alt=';)' />
The only thing necessary for evil to flourish is for good men to do nothing
- Edmund Burke

#72   artifex_canada

artifex_canada
  • Members
  • 4 posts
  • Real Name:Ryan

Posted 05 March 2005 - 22:57

<light goes on>

You only notice these things AFTER you click "Post" and are making that final check after having already previewed it.

This mod works opposite to the built-in "table method" which reads "17:15,10000:0" as "up to 17 dollars is a 15 dollar shipping charge... 17.01 to 10,000 dollars is free shipping".

The same setup with this mod (for price) would be written as "0.01:15,17.01:0" or "orders of value greater than or equal to $0.01 but less than the [next value] are $15 shipping, orders greater than or equal to $17.01 [which is the aforementioned 'next value'] are free shipping".

Clear as mud? I'm terrible at explaining things to anyone but myself...

Same problem here.  And I've uninstalled and reinstalled the module just to be sure.  I'm only working with 2 zones (Canada, USA)

USA
17:15,10000:0

Canada
39:9,10000:0

Essentially a minimum order amount for free shipping, but the minimum varies depending on if you're from the US or Canada.  I can get it to work with the default "table method" shipping, but that's only good for one zone.

<{POST_SNAPBACK}>



#73   dreamscape

dreamscape
  • Members
  • 1,546 posts
  • Real Name:departing this world in search of another

Posted 05 March 2005 - 23:02

/pinch.gif' class='bbc_emoticon' alt='>_<' /> Doh!
I changed it, 29.99:9.00,30.00:0. If I choose weight it works fine, but I have the same problem. If you choose count or price no shipping costs are displayed on the checkout shipping page nor added to the order total (checkout_shipping.php).

<{POST_SNAPBACK}>


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
The only thing necessary for evil to flourish is for good men to do nothing
- Edmund Burke

#74   dreamscape

dreamscape
  • Members
  • 1,546 posts
  • Real Name:departing this world in search of another

Posted 05 March 2005 - 23:06

The same setup with this mod (for price) would be written as "0.01:15,17.01:0" or "orders of value greater than or equal to $0.01 but less than the [next value] are $15 shipping, orders greater than or equal to $17.01 [which is the aforementioned 'next value'] are free shipping".


That is really a complicated way to think about it. Using that table, if you read it as "1 or more cents, charge $17.... $17.01 or more, give free shipping," you will save yourself from becoming confused /wink.gif' class='bbc_emoticon' alt=';)' />

I have also made it so that you can put $$ signs in the table to make it easier to read at a glance.... like: .01:$15,17.01:$0

Edited by dreamscape, 05 March 2005 - 23:07.

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

#75   artifex_canada

artifex_canada
  • Members
  • 4 posts
  • Real Name:Ryan

Posted 06 March 2005 - 01:33

Well semantics really. "1 or more cents" did confuse me, because it doesn't tell me where it stops. $17.01 is still, technically, more than one cent.

That is really a complicated way to think about it.  Using that table, if you read it as "1 or more cents, charge $17....  $17.01 or more, give free shipping," you will save yourself from becoming confused

I have also made it so that you can put $$ signs in the table to make it easier to read at a glance.... like: .01:$15,17.01:$0

<{POST_SNAPBACK}>



#76   tonyClifton

tonyClifton
  • Members
  • 5 posts
  • Real Name:Jose Cornide

Posted 06 March 2005 - 17:22

First of all, I have to apologize for not have read carefully the readme.htm file /blush.gif' class='bbc_emoticon' alt=':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 /wink.gif' class='bbc_emoticon' alt=';)' />

P.d.: sorry for my english... /rolleyes.gif' class='bbc_emoticon' alt=':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

<{POST_SNAPBACK}>



#77   tonyClifton

tonyClifton
  • Members
  • 5 posts
  • Real Name:Jose Cornide

Posted 06 March 2005 - 19:40

It works! at least. And it was my fault as I suspect... /blush.gif' class='bbc_emoticon' alt=':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 /crying.gif' class='bbc_emoticon' alt=':'(' />

#78   dreamscape

dreamscape
  • Members
  • 1,546 posts
  • Real Name:departing this world in search of another

Posted 06 March 2005 - 19:58

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

#79   HeatherM

HeatherM
  • Members
  • 1 posts
  • Real Name:Heather Mardon

Posted 09 March 2005 - 09:00

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

#80   thidarat

thidarat
  • Members
  • 12 posts
  • Real Name:Thidarat

Posted 10 March 2005 - 11:03

Hi,
I've read through the thread, but kind of lost myself. /sad.gif' class='bbc_emoticon' alt=':(' />
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