Ok, here goes.
First, the disclamers...
MAKE A BACKUP COPY OF YOUR OnePageCheckout USER CONTROL FILES BEFORE INSTALLING THIS MODIFIED VERSION
Now...
MAKE ANOTHER BACKUP COPY OF YOUR OnePageCheckout USER CONTROL FILES BEFORE INSTALLING THIS MODIFIED VERSION AND PUT IT SOMEWHERE ELSE BESIDES THE FIRST COPY
You're messing with the single most important page on your site aside from the home page. If this doesn't work, take it out and put your old files back in place.
The rules
1. This is the OnePageCheckout from AC7 Final SR1. If you aren't running that, use with (even more) caution.
2. This is the single thickest programming code I've ever dug into. That means two things: I'm going drinking tonight and I might have just bugged a perfectly good Checkout page.
3. I tested the snot out of this, both locally and live. You need to do the same.
4. If you get a lot of multiple-shipment orders, be prepared for a REALLY tall checkout page.
5. If there's ever a sure-fire way to completely tick off your customers, screw up your checkout page. Even better, they probably won't tell you. See # 3.
The Joys
1. It works really slick - I like it alot. Radio buttons populate vertically for each possible shipping method. I'm dying to play with a horizontal layout that uses actual UPS, DHL images to represent each shipper. Perhaps next week.
2. It auto-selects the first possible shipping method.
3. It SORTS the shipping methods in order of cost, putting the least expensive shipping methods first with the cheapest possible method being the default selection.
4. I have commented where I made revisions in the code-behind. Search for AbleMods to find them.
Installation
These files go into your ~/ConLib/ folder.
The Effort
This little 1-hour project turned into 9 hours. If you like, there's always my AbleMods.com store chocked full of low-cost ways to reward me
The Files
OnePageCheckout.zip