Custom Shipping Modifications - weight based requirements
Posted 19 March 2012 - 09:13 AM
My original request:
I have a client that is selling perishable goods overnight by FedEd with frozen gel packs to keep the order fresh. Each box starts with a base weight of 11 pounds because of this and must be factored in on the shipping costs. However, the client must put in a minimum of 12 pounds of product before an order can be placed. This part seems straightforward, but the problem is that at above a certain total shipped weight that a new box must be used, with an additional 11 pounds of start weight on the new box, and another 12 pound minimum of product required before this new box can be shipped.
It is mandatory that I get this logic in place so that website customers will see an accurate shipping quote.
To restate: each box starts with 11 pounds of gel pack weight, and must have 12 pounds of product ordered. The total shipped weight is 23 pounds for any order (box+product). Let's set an upper limit of 41 total shipped pounds per box (box+product) for this discussion. So after 41 total shipped pounds (box+product, or 30 pounds of product only), a new box MUST be used, requiring the customer to order an additional minimum of 12 product pounds to be ordered (it is not cost effective to ship less than this minimum).
So if the customer ordered one full box and one minimum box, the total weights would be 41 pounds for the first and 23 pounds for the second. Hopefully this makes sense? The customer cannot place the order until the minimum on any one box has satisfied, even if one full box is ready to go.
Tech support explained this could be done as follows:
The first part will be checking the weight of the products when placing an order. That can be done by handling the shop:onOrderBeforeCreate and/or shop:onBeforeOrderRecordCreate events. That is to ensure an order is not placed if the weight of the ordered products is not as you require it to be, you will also want to implement this check before allowing the customer to proceed with the checkout. Just ensure that when dividing the total weight of the order with the max weight of products per package, the reminder is greater than the minimum required weight. The tricky part could be figuring out how to ship the products if multiples are ordered. Going by your example, if the customer orders 60 pounds of products, that might mean 2 packages (30 pounds of products + 11 pounds of packing per package). But if the order contains 3 products at 20 pounds each and they can't be split up in multiple boxes, then you would need 3 packages (20 pounds of product + 11 pounds of packing per package) because you can't fit 40 pounds of product per package. If the products can be split up and shipped in multiple boxes, then this is not an issue. If they can't, then you (or whomever you hire to do this) will need to keep that in mind when developing the module.
The second part is calculating the shipping cost. Will you be using our FedEx shipping module? It currently doesn't support the functionality you need, but you can either create your own (copy our FedEx module, modify it as you need and save it as a new module) or we can add a set weight to add to the package when requesting the shipping cost estimate to the configuration. So again, going by your example, in the shipping option settings you would setup the max weight of the package to 30 pounds and packaging weight to 11 pounds. When LS requests quotes from FedEx, it will split up the order to however many packages of up to 30 pounds each are necessary and add 11 pounds to the total weight of each of them. There's also the issue of package volume, we could add a set value there as well (LS estimates the package dimensions based on the total volume of products and number of packages). If that amount of modifications is sufficient, let us know, that can be added. If you require more though or if the products can't be split up in multiple boxes, you will need to look into implementing your own shipping module.
Posted 30 March 2012 - 01:23 PM