I got into this debate MANY years ago. At the time, I thought letting users choose a username made more sense since it shouldn't ever change.
However, the trend seems to be using e-mails. I suppose this is because an e-mail address is supposed to be unique - although this is increasingly less true. Also, because this is for an e-commerce site, the e-mail is THE way that you would communicate with users.
I guess the common workflow is to let the user choose an e-mail for their username, send a test e-mail requiring activation of the account (i.e. authenticating the e-mail) and then going from their.
Other than the database's need for a true primary key, I don't suppose you would ever use that in day-to-day activity, unless you could somehow label the primary key as "CustomerID" and start it offset at something like "100475" so that it looks authentic to the first user!