Improvement Areas:
1) Return discount codes when order fails.
2) When order fails, give option to recreate basket instead of forcing user to recreate by adding one at a time.
3) Better handling of billing failures/issues. Order would have gone through if resubmitted. Order triggered fraud protection and I approved the transaction, but you did not resubmit.