Torin, thank you ever so much for your UPS XML module. It's an absolute necessity for me. I'd been searching for dimensional support and multiple box sizes, too. Bless your dear heart.
I'd like to propose that your UPS XML module support frozen shipping.
There are a number of places using oscommerce that ship frozen products. The general method for this is dry ice (which UPS allows). The price of the styrofoam containers and the dry ice itself require that the tare price be calculated more exactly.
This could not be a separate module from the UPS XML module because:
The displacement of the ice effects the number of boxes shipped
The amount of ice is dependent on the number of days (a direct result of the shipping method choice).
I'd guess this is the stuff that would need added:
1. Field to products table - Dry ice shipping (Y/N)
ALTER TABLE products
ADD products_length DECIMAL(6,2) DEFAULT '12' NOT NULL,
ADD products_width DECIMAL(6,2) DEFAULT '12' NOT NULL,
ADD products_height DECIMAL(6,2) DEFAULT '12' NOT NULL,
ADD products_ready_to_ship INT(1) DEFAULT '0' NOT NULL,
ADD products_ice INT(1) DEFAULT '0' NOT NULL;
2. Dry ice information table.
DROP TABLE IF EXISTS ice;
CREATE TABLE ice (
? ice_id int NOT NULL auto_increment,
? ice_name varchar(64) NOT NULL,
? ice_description varchar(255) NOT NULL,
? ice_units_base DECIMAL(6,2) default '5' NOT NULL,
? ice_daily_add DECIMAL(6,2) default '5' NOT NULL,
? ice_cost DECIMAL(6,2) DEFAULT '0' NOT NULL,
? ice_unit_volume DECIMAL(6,2) DEFAULT '50' NOT NULL,
? PRIMARY KEY (tare_id)
);
3. Calculation for amount of ice. (must be made before number of boxes are determined)
if (frozen_shipping == "yes") { $ice_amount = (($numdays - 1) * $ice_daily_add) + $ice_units_base; }
4. Calculation for amount of boxes. (accounts for volume lost to ice. ice shipped products and non-ice shipped products shipped separately)
I'm still thinking about this one and I'm looking into your code to see how the number of boxes are determined. Any help you would be willing to give me to figure this out quickly would be great.
5. Calculation for ice price. (must be made after number of boxes are determined)
if (frozen_shipping == "yes") { $ice_price = $ice_amount * $ice_cost * boxes; }