A freshly installed Drupal Commerce site with Commerce Dunning Defaults enabled correctly sends a notification asking a customer to update his credit card info when a hard decline happens. However, when the customer updates his credit card no any charge attempts happen. The system charges correctly for the next billing period, but the past one with missed payment is left intact unpaid.
I thought that after the customer updates his credit card the expected behavior for the system was to attempt to charge for the missed period. I see on the modules page that further charge attempts happen only for soft declines and for the hard declines it says:
If it was a hard decline that led to the failure, the customer needs to update their credit card, so notifications regarding that are also scheduled.
I would appreciate if someone explained how to make the system to charge for the missed period with the updated credit card?
Comments
Comment #2
nickonom commentedAfter the customer updated his credit card I even tried to edit failed order and mark it as
Payment failed (soft decline)hoping that the system will process it, unfortunately it did not. So I am now confused if I did something wrong when setting up the Commerce Dunning module or some additional configurations required besides just enabling Commerce Dunning Defaults?Comment #3
nickonom commentedComment #4
wizonesolutionsHard declines work the same way as soft declines; I agree that the module page is unclear (but I am not a maintainer and can't change it).
Commerce Dunning uses Rules Scheduler to schedule retries. The defaults are 3, 10, and 14 days. It won't retry as soon as they update their card; you have to do a Rule or write code for that yourself, or (as I do for testing) go into the database and make the timestamp for the Dunning action on that order (you can tell by the identifier) be earlier and then run Cron again.