Here is a rough idea of the progression of the modules.
In Standard Parcels we have a new minimum weight limit for the service, this will be migrated across the other modules, the upper weight limit is defined by the Royal Mail rates, and can be modified by removing the prices:higher weights so by having a min weight we can now say first class stops at 2 Kgs, from 2 Kgs upwards use standard parcels.
Tropheus refreshed my memory for an idea to maximise sales abroad. Zen cart is set up to have a max weight limit that is the same across all modules, normally 50 Kgs, any order more than that gets split into boxes. This creates a problem with the royal mail since the airmail services are limited to 2 Kgs, but other services are limited to 6Kgs. The problem occurs if someone wants to process a 3 Kg shopping cart, they would be allowed to buy in the UK but not abroad because of the airmail service stopping at 2Kg. To get around this, one would have to set the zencat weight limit for the entire website to 2Kg's and then ZC would quote for 2 x 1.5 Kilo packages. The issue that then turns up is that the UK based customer ordering a 3Kg parcel also gets their order split down when they could be getting a cheaper overall rate using the 3Kg rate in standard parcels or first class etc...
What has been discussed and tested is that the modules will be fixed to ignore the Zencart maximum shipping weight, if they have a rate in them that is heavier. Then the ZC weight is set to 2Kgs. This will have the effect of splitting down a 3Kg parcel for overseas buyers into 2 boxes but leaving the 3Kg rate for UK services.
This override has to be done for all UK services (approx 18 modules) but should boost international sales as the customers will no longer be limited by shipping options.
Under the hood the structure of the modules is changing. Each module uses constants like MODULE_SHIPPING_RMSTDPARCELS_MINWEIGHT and this will be changing to more complex looking code. The complex looking code will take the module name and put it in the middle of the constant. When this has been entirely migrated it will signify the renaming of the modules to version 3.0. The reason for this complex change is that it makes building more modules simpler. Currently to build a new module one only has to copy across two files to a new filename, BUT then one has to do a global case sensitive serach and replace to change every constant and it's easy to make a mistake, whereas the complex looking code that makes the constants from the module name, means that the new code would only need to have three changes made to one file to build a new module rather than 28~30 changes.
The other advantage of the complex looking code is that if a new function is added like adding a minimum weight instead of taking the code from one module and pasting it to another then having to do a replace on the constants, the constants will be self-creating and so the code will be easier to swap between modules if any more feature requests are made.
When version 3.0 is ready, this thread will close and a new one will be opened because it is far too long for the new users to read through as it dates back 3 years and things have changed quite a bit.
Philip