Turns out it is turning into more than just UPS integration. Outside of Flat Rate shipping options, dynamic shipping based on the following will be available:
FedEx
* Ground
* Home Delivery
* Express Saver
* First Overnight
* Priority Overnight
* Standard Overnight
* 2Day
UPS
* Next Day Air
* Next Day Air Early AM
* Next Day Air Saver
* 2nd Day Air
* 2nd Day Air AM
* 3 Day Select
* Ground
USPS
* Express Mail
* Priority Mail
* Parcel Post
* Media Mail
As you can see from the demo at
http://cmssandbox.com/MODx095/index.php?id=95, you can mix and match from different carriers. This demo is setup on the sandbox, so feel free to checkout. Also, imagine that this form represents TVs in a document, and each document will represent a product. Right now I am considering allowing the shipping to be done by passing in parallel parameters like this:
&shipCompany=`UPS,UPS,FedEx,USPS,USPS`
&shipType=`Ground,3 Day Select,2Day,Priority Mail,Media Mail`
&handlingFee=`2,2,4,0,0`
The above would provide the following shipping Options for someone checking out:
UPS
Ground ($2 added to the amount received from UPS)
3 Day Select ($2 added to the amount received from UPS)
FedEx
2Day ($4 added to amount received from FedEx)
USPS
Priority Mail (No handling fee added)
Media Mail (No handling fee added)
I am always open to suggestions. I am trying to keep this as OO as possible so it should be extremely easy to work with.
Discounts
You will have to brew your own code, but I will have provided an example that allows for category based discounts. Essentially, items will have a "Discount Code." Based on this discount code you can run through the cart and if your logic is met, you can just call cart->addDiscount(). You can add as many discounts as you fancy.
Plan for some ajax magic also