The best thing would be that I go through every preorder item and add those to an array for the release date/available date and then calculate the weight and the price for each. The question is to have multiple shipments from one order with correct freight cost.
Anyone have something like this already done or have any tips for an contribution that will help me?
The short answer to your question is that there isn't a "correct" way to split the freight costs. What you need to do is to set a policy for how you handle freight charges when the shipment is split up. Obviously, the calculations that osCommerce is capable of making may influence what your policy is. What good is a policy if osCommerce isn't able to present it correctly to the customer?
With my store, I assume that if an item is out-of-stock, its my fault, so I eat the additional cost of multiple shipments. Of course, you could also charge for two shipments (one of the in-stock items and one of the out-of-stock items), which will help you recover more of the shipping costs. Of course, if the out-of-stock items arrive in more than one shipment, do you wait until everything arrives? or ship in additional shipments and loose a bit of money?
Of course, this is part of a bigger issue that hasn't yet been resolved in osCommerce -- how to handle differences between how items ordered are handled. Its not just shipping charges, but how do you keep track of what has been shipped and what has not? What if the client later wants to cancel one backordered item but keep another? How do you later tell which items went in which shipments?
I'm afraid we need what's been asked for in other forums: an order status for each item in the order, not just for the whole order. [FWIW, I've offered to help pay for someone to make a contribution to do this, if anyone is interested.]
Perhaps we need a few other fields for the items on an order -- which shipment they are part of, for example. Until we get this in the database and basic coding for osCommerce, I think we won't be able to get to where we all want to.