Allow the PaymentProcess pane to work even without PaymentInformation

Created on 20 May 2025, 19 days ago

These two checkout panes are currently tightly correlated, such that if the PaymentInformation pane is disabled or otherwise not visible, the PaymentProcess pane will not be visible either. The problem is a site might have chosen to define a custom version of the PaymentInformation pane, extending it and altering the logic slightly, but producing the same end result - a payment gateway and payment method that can be used to process a payment.

One example we encountered was a custom checkout pane that extended PaymentInformation and added some additional logic to the building of the checkout pane's form array. Granted, we had other means to accomplish the same end, but the developer didn't anticipate that having a different id for the custom payment information pane would prevent payment from being authorized or captured by the default PaymentProcess pane.

Ultimately, PaymentProcess doesn't have to care if the customer passed through a checkout step with PaymentInformation. It just cares that 1) payment should be processed and 2) a payment gateway has been selected with or without a payment method based on whether or not the payment gateway supports stored payment methods.

The solution right now could be almost solely contained in a revision to PaymentProcess::isVisible(), though PaymentProcess::getErrorStepId() could also be amended simply to return the previous step ID in the event the payment information pane isn't being used. Alternatively, the function could be a little more savvy and look not just for whatever step has the payment information pane but also any pane that extends it or otherwise replaces it.

✨ Feature request
Status

Active

Version

3.0

Component

Payment

Created by

πŸ‡ΊπŸ‡ΈUnited States rszrama

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024