The solution you propose should work well. Collect the info as they progress through the site, and when they reach a certain stage in the application (that is, ready for checkout) submit the details to the server, generate an order and return the OrderID.
There are a few ways to accomplish this, depending on your setup, the number of (concurrent) users etc. One way to do this, is to save the customer details in Session variables, and as soon as the customer wants to check out, pass the Session variables to the database to have it create the order.
Alternatively (and better scalable) you could save the customer details to a (temporary) database record and save the ShoppingCartID, or CustomerID in either a cookie or a Session variable. When you are ready to checkout, get the customer details from the DB using the CustomerID and then submit the stuff to the database (or just pass the CustomerID to the database, and create the Order entirely in the database).
If you need to find out how you can get the new OrderID, check out the following article at www.adOpenStatic.com
If you have any questions, or need help with specific tasks, just post a message to this list.
Everyone is unique, except for me.