When a customer clicks to complete a purchase, if anything happens that prevents the confirmation page from loading (user temporarily loses internet connection, etc.), but the purchase is still completed, and the credit card has been charged, what is the best way to prevent the customer from making a duplicate purchase (assuming that the first attempt failed)?

1) Whenever a customer makes a purchase, check to see if an identical purchase has been processed. If so, notify the customer and ask if they wish to proceed.

2) When a confirmation page fails to load, have something time out on the purchase screen, and ask customers to check their email for a confirmation, to see if the purchase was successful.

3) Some other better option...?

2 Answers 2


Although the solutions mentioned are not wrong, in either case there is a chance that frustrating the user and we don't want that. I like what is suggested by

UX Movement : Stop resubmissions by progress buttons

In addition to that, what I would suggest is to make the button which reads " Completed" unclickable. This does not confuse the user and also does not allow him to make a duplicate purchase.


Address this in layers

Duplicate purchases can be expensive for retail sites (handling returns and cancellations can be costly) and they can happen for several reasons:

  • User hits Purchase button twice
  • User doesn't see the purchase confirmation page (the case you mentioned)
  • User forgets he hit purchase earlier today and resubmits

Best practice is to address these issues in layers:

  • Detect rapid, duplicate Purchase clicks via debouncing logic on the client or server side, and by disabling the purchase button or redirecting the page after it has been clicked once.
  • Ensure the user sees a purchase confirmation. If you are using javascript, you can do this by having the client-side send an explicit acknowledgement that it received the confirmation page. If you are not using javascript you can use a redirect chain to accomplish similar behavior.
    • If for some reason the confirmation is not seen by the user, then the next time the user visits a page on your site you can show a confirmation notice for the purchase.
  • Detect duplicate purchases. You can notify the user using one or more of the following approaches:
    • Display a note below the Add to cart button for a product, e.g. You purchased this item earlier today.
    • Display a confirmation screen to ask the user if he is sure he wants to reorder the item. e.g. You purchased this item yesterday, order again?
    • Generally I would prefer the first (notice) approach because it reduces the UX friction for the checkout process, thereby reducing abandonment.

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.