Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
When paying with a saved card, many (though not all) orders are getting stuck in the checkout stage. The transaction is successful (and logged to the order as such), but the order status is never updated and a confirmation email never sent. It's not all orders, but I haven't been able to find an obvious difference between the good ones and the ones causing problems.
Comment | File | Size | Author |
---|---|---|---|
#5 | 1415670-prevent_payment_callback_when_form_errors_present.patch | 832 bytes | andyg5000 |
Comments
Comment #1
rszrama CreditAttribution: rszrama commentedAre you sure the transaction is successful? Could it be reporting a false positive inside of Drupal Commerce?
Comment #2
dabblela CreditAttribution: dabblela commentedThanks for getting back on this. The transaction is successful and the card is charged. I believe the problem is that I have a one page checkout (no review) and clicking submit even if there are required fields missing or other form errors will still attempt a transaction. The form errors are reported to the user, but the transaction still goes through and the order balance is zeroed. Since the order balance is zero, subsequent transactions don't go through and the user can't complete checkout.
Comment #3
rszrama CreditAttribution: rszrama commentedSounds like that'd do it. The module doesn't do anything atm to accommodate such a scenario
Comment #4
dabblela CreditAttribution: dabblela commentedWould it break anything to add something like:
Comment #5
andyg5000Form errors on other elements (ie: billing information) do not prevent payment submission when payment form is on the same pane.
Comment #6
dabblela CreditAttribution: dabblela commentedThis looks great to me.
Comment #7
rszrama CreditAttribution: rszrama commentedYep, great patch. I added in a warning message so the customer knows that their payment will not be processed until all errors on the page have been addressed.
Commit: http://drupalcode.org/project/commerce.git/commitdiff/044ce3d