Shipping is sometimes very complicated to get correct. There’s a number of ways that an osCommerce store can be set up to deal with giving shipping quotes, off the top of my head; per item, flat rate, zones, table based and lots more dealing with specific mail carriers. Sometimes, even though there are lots of shipping modules, none of them are quite right for the specific need.
One of my clients wanted the ability to set up a number of Zones [OK, let’s use the standard Zones module], then he decided he wanted to set up only a few zones, each containing a handful of countries, and then have the other countries (ones that are not in any zone) default to an “all other” zone automatically. [OK, let’s use the Zones World contribution].
Then he decided that he wanted to ship by weight. Where each unit of weight would simply be charged at $x. And that the calculation should be open ended – so if they ordered 1000 units, the shipping charge would be 1000 * $x [OK, that’s going to be problematic].
The Zones World contribution is close, but this uses a table of weight to price ratios – this table is limited to 255 characters (which could be easily changed). Rather than use this, I gave the idea that we should look at coding up a new solution specifically for his needs.
What we ended up with was a hybrid of “flat rate”, “zones” and “zones world”. Basically the shop owner selects a number of zones and adds countries to each zone as usual. He also inserts 1 price “$x” per zone, and can input a handling fee to be added. The price is then multiplied by the weight of the order, and the handling fee is added.
GB shipping costs 0.20 per kg, with a 4.95 handling fee. US shipping costs 0.50 per kg, with a 10.95 handling fee. These are inserted in the module set-up.
The weight of the order totals 37kgs including tare. So, we can calculate shipping fees as so;
GB: ( 0.20 * 37) + 4.95 == $12.35
US: (0.50* 37) + 10.95 == $29.45
However, the beauty of this module is that it is so easy to set up (no messing with weight/price ratios) that any order can be dealt with properly. If the order was some thing outrageously high, like 2,300 products weighing 4132 kgs, US shipping would be (0.50 * 4132) + 10.95 == $2076.95. I believe that this could not be done adequately with any other shipping method!
The new shipping module is being tested thoroughly over the next month or so, and if it works as it’s intended, I’ll try to package it up and get it available.