You can see a solution for that in the PowerStore, which doesn't require registration.
Basically you can use it in conjunction with registration and login and use it as the registration page in the case that the user hasn't already registered.
It can get a little complex because there are so many possibilities, but it can be done with DataAssist, SecurityAssist, Validation Toolkit, and eCart. You might want to get the powerstore even as a functional example... expecially if you are going to ask how to do inventory control next ;)