On a content creation website, we publish articles. I am primarily a backend developer and need help with creating the most optimal checkout process.

What does the current flow look like today?

  1. A user enters a title and clicks on a CTA "get started"
  2. User is asked to enter an "email address" and a "first name". This creates a user (with temp password) in the database where we can assign the article request to a registered user.
  3. Upon successful registration the user is sent to our backend for authentication and to create the article request.
  4. After article request is created and submitted, the user is redirected to a dashboard where a payment popup comes up.
  5. A notice comes up redirecting them to add their address, change their password, etc (this is needed to ensure all required information is in the system prior to processing the actual payment)
  6. When address is entered, the user is redirected back to complete the payment

Just writing this out screams "unusable and overly complex".


  1. What would be a better and more usable flow?
  2. How do you create an account for someone without requesting all that information up front?
  3. How would one ask for all necessary information in order to complete the payment (assuming this is a new user)?
  • 1
    Whats the issue with having a user with a safe temporary password? At least it isnt "letmein",also looked into google authentication/Facebook authentication? Think to yourself. Do i really care about what the choose as a username? Would our site benefit from any form of registration? Commented Aug 19, 2015 at 6:23
  • Additionally paypal lets you have alot of information about your buyer using their api. So the real question is , is that sign in necessary? What does the user benefit from that? Commented Aug 19, 2015 at 6:34
  • Could you draw some quick sketches or set up a quick demo of how this actually looks. I'm having some trouble visualising this from step 3 onwards. Commented Aug 19, 2015 at 8:34
  • Think about what is really necessary to get the business up and running successfully. It's a service that in the end sends content to a user by email and the user is supposed to pay for it. All you should need for this is an email address and payment information. Commented Aug 25, 2015 at 20:09
  • Consider using a standard shopping cart + checkout process. You know, the one you see everywhere online. That way users aren't learning a new process. Many of these allow anonymous checkouts, which a lot of users prefer. Commented Oct 30, 2015 at 20:49

2 Answers 2


Here is what I'd do. Of course, this may require some code changes, or database mods, but that depends on your backend:

  1. Create the title, their email address and details of the request (one form)
  2. Pay
  3. YOU create a username (their email address)
  4. YOU create a temp password (as you already do)
  5. Send them an email thanking them for their order and ask them to change their password


I'm not sure what info your payment processor wants, but services such as Stripe require very little info. Unless you need their address for something else, don't ask for it.


I would recommend using a style known as progressive disclosure. At the outset just ask users what you need to know to allow them to log in: probably an email address and a password. Then, as they attempt to complete different tasks, you ask them for the information that they need to have entered in order to complete that task. You can also provide incentives for them to add information outside of the processes they want to complete by adding things like a profile completion level graphic or some sort of points reward as stack exchange does.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.