Requiring registration before payment can be extremely expensive in lost sales. Instead, offer it as a convenience at the end of the checkout process.
(Avoid having to enter this information next time, simply by creating a password now. You'll also have access to your order history this way, which makes returns easier.)
Compelling rationale by Tog: http://www.asktog.com/columns/081Registration.html
See also "lazy registration" and "gradual engagement" for more examples and guidelines on the Web.
Never ask for information you don't need in order to complete the transaction. You can ask about that stuff later, when your bottom line doesn't depend on it, for example in a user profile form or opt-in survey.