Single Sign-On
Heavily utilize SSO services.
Add as much support for as many platforms as possible. Even though this is time consuming and compatibility issues increase as you increase the number you support, look at it like you are supporting more platforms (Android, iOS, Windows, Linux) because odds are the user will have one type of single sign on account that they regularly use.
Generate Passwords By Default
Another practice I've seen is generating the password for the user while still giving them the option to change the password if wanted. If the user wants to come back, then they'll write it down or change it. Odds are if they don't, it won't even bother them. You have their email, and if they want to get a password reset it would already be as easy as having access to their email/phone in most situations, so there is no actual loss of security as long as the password is generated correctly and sent of HTTPS.
Don't Ask Them for A Username
Lastly, don't make them come up with a username and email. One is enough.
If you follow all of these, you'll just need to make the purchase form ask for their first, last name (etc). This will allow for the creation of an account to happen almost transparently, and the user, beyond accepting the terms and conditions and clicking create, will not be hassled. One could even argue that the account is more securely created when the user doesn't have to create their own password, as they will not be prone to reuse a password from another site.