When any item is added to the cart or the checkout link is followed, we do a order summary/edit page at the top with a "begin checkout" section below it which has a graphic that changes the highlight step as you walk through:
-->Enter Shipping Destination<--Check Stock--Select Shipping--Finalize Order--
Select country, if U.S. destination enter zip code. Check the box if you want shipping insurance.
--Enter Shipping Destination-->Check Stock<--Select Shipping--Finalize Order--
Here we've checked stock on the items (out of stock items are offered) and if any are out of stock, choose an option for handling the shipping (hold order until all in, send what's in stock and other items later at no extra shipping charge, remove items from order.)
--Enter Shipping Destination--Check Stock-->Select Shipping<--Finalize Order--
When they arrive here we have queried the shipping API and list all the shipping options we support. Choose a shipping method:
Parcel Post: $17.00, 5-7 business days + $2.05 Insurance = $19.05 total shipping
Priority Mail: $22.00, 3-5 business days + $2.05 Insurance = $24.05 total shipping ........
No form, just follow a link . . . .
--Enter Shipping Destination--Check Stock--Select Shipping-->Finalize Order<--
The familiar order review at the top, to the right an option for returning customers to log in and populate the form. Not required. Billing address/etc. follows that, check box for "same as billing" or manual entry, and CC info.
Seems like everyone's pretty happy with this, and to our surprise, very few shoppers remove out of stock items on checkout. Yes, we currently have it set for "hold entire order", but actually started out with "send what ya got" and customers kept checking it to "hold." So I guess they like it.