Hi,
I'm comming across the fact that my shipping options are not only related to weight and location, but also to size. Certain tarifs are a lot cheaper if a package is smaller then a certain size with my current shipper (TPGpost). Now i'm pretty certain that it's relatively easy to add that to the standard shipping module by making a hack of it, i find that making a new module is a lot more work (as it duplicates a lot of functions that are integrated into VM).
I already made all the changes for 1.0.6, although i didn't test them extensively, but i just deleted the changes by accident before backing them up (got a bit to enthousiastic when i saw VM1.1 and uninstalled VM1.0.6, Doh!). I'll be doing the same for VM1.1 (while playing around with it).
Now i want to know if it's worth the time to make a seperate module of it, make a hack of it, or if the VM team would want to integrate size options to the standard shipping module for VM1.1.
Mr.C
Yes, this is something that I also am interested in. With FedEx, for example, it is considerably cheaper if you use a FedEx envelope instead of a FedEx pak - even if the weight is the same.
The shopping cart that I used to use - www.UltraCart.com - had support for packaging solutions. Basically, you defined the dimensions of a bunch of different package types - and indicated if they were carrier-specific. You also had to provide dimensions (L x W x H + weight) for all your products. The cart would then figure out the best packaging solution.
VirtueMart already stores the product dimensions. What I was thinking about doing is writing a module that provided a function - say "getPackagingSolution(order_id, shipping_method)" - which would use the order_id as the key to go into the order and pull out all the product dimensions. The function would then figure out the best packaging solution (for the specified shipping_method) by looking at a database table or configuration file that contained all the configured package types. Possibly another function should be provided - "getPackagingSolutions(order_Id)" - which would provide a _set_ containing the best packaging solutions for _any_ shipping method, and it would be up to the caller to figure out what to do.
The record - or record set - returned should probably look something like this:
unique_packaging_id, packaging_type [envelope, pak, box, tube, other], shipper_name [FedEx, UPS, etc, or "any"], code_name, description, internal_length, internal_width, internal_height, external_length, external_width, external_height, packaging_weight [i.e., the weight of the empty package itself], packing_tolerance [how close to "full" it can be packed, so that we don't cut it too close]
The internal vs external dimensions may be overkill, but I was trying to take into consideration all potential packaging solutions, including wooden crates.
Anyway, once the above is done, the next step would be to integrate it with a shipping module. For myself, here in the U.S., I would like to integrate such a thing with the Intershipper module. Intershipper can return rates for a number of different carriers, and it accepts the pacakging type (like "carrier envelope" or "customer-supplied packaging") and package dimensions as inputs.
Just my thoughts...
Mike Mills
Has any of you had any succes jet?