3

I have a Magento 2 website. Payments through PayPal Pro but when the customer makes an order and successful payment the order status is still 'Pending Payment'

I have spoken to PayPal and Pay IPN are being successfully received by listener, but the order status is not updating from 'Pending Payment'

Does anyone know how to possibly fix this? Thanks

  • Do you have any customization related to order success ? – Shashank Gupta Mar 23 '18 at 13:05
1

Your question is from 10 months ago.. but still worth a reply!

Not sure what version you are using but I have this issue on Magento 2.2.7 (CE) with all payments made by Credit card using the Paypal pro hosted solution. With Magento 2.1.9 it happened occasionally but now with Magento 2.2.7 it happens every time. Orders made using paypal express (not credit card) are working correctly and get moved to "processing" once the payment is made.

This issue is being tracked here and is currently active: https://github.com/magento/magento2/issues/18148

As a workaround I use the SQL query suggested that issue by Mattyl (on 2nd Nov 2018) and it moves the status to "processing" successfully. Here is the SQL query, I recommend testing it on a copy of your database first to prove to yourself it works as expected. Hopefully there will be a fix soon!

SQL Query from github issue:

UPDATE sales_order JOIN sales_order_status_history ON sales_order.entity_id = sales_order_status_history.parent_id JOIN sales_order_grid ON sales_order.entity_id = sales_order_grid.entity_id SET sales_order.state = 'processing', sales_order.status = 'processing', sales_order_status_history.status = 'processing' , sales_order_grid.status = 'processing' WHERE (sales_order_status_history.comment LIKE '%IPN "Completed"%' OR sales_order_status_history.comment LIKE '%ID transazione%') AND sales_order.state = 'pending_payment';

Enjoy!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.