Checking out a cart as a guest, without having to create an account, should be the default option.
Offer your customers the opportunity to create an account after the purchase, when you already have the customer’s contact info.

Customers love forms, while merchants love all the data they can collect from forms. The best compromise is to ask for most of the data only when you absolutely need it. Customers know that you are going to need their contact information in order to accept and process an order. Why not to wait until to have that information to create a user account in your system?
Franco Folini lives and works in the eCommerce territory, a wild area between the Kingdom of Technology and the Kingdom of Marketing. He speaks fluently the language of both realms. For many years, Franco has been helping people bridge the divide and successfully collaborate.
If you want to find out more about Franco, visit his LinkedIn profile or send him an email folini[at]gmail.com