mollie / Magento

Mollie Payments for Magento 1.x
https://www.mollie.com/
BSD 2-Clause "Simplified" License
39 stars 30 forks source link

Bug with \Mollie_Mpm_Model_Observer::restoreQuoteWhenReturningFromMollie #164

Closed Ig0r-M-magic42 closed 4 years ago

Ig0r-M-magic42 commented 4 years ago

Given following event https://github.com/mollie/Magento/blob/18a6b259b186404ae0158caa65e8e46b843853a0/app/code/community/Mollie/Mpm/Model/Observer.php#L133-L150 Then if a user places an order And presses back As a result above code will make set active to true for quote that was used to place the order And if we place another order Then this will result in creating another invoice for the same order with value of 0 Thus creating a BUG that an order was not created

Plus observed is not checking if used method is actually Mollie and does this for all quotes

Replicated in 5.5.3

Frank-Magmodules commented 4 years ago

Hi @Ig0r-M , Thank you for opening this issue. We can't directly reproduce this. Can you contact us through our contact form so we can exchange log files to check the issue? Thank you!

Ig0r-M-magic42 commented 4 years ago

@Frank-Magmodules could you go over below steps, after this if you still cannot reproduce i will try to make a .gif indicating each step and values in db for quote and order.

Steps to Reproduce

Notes

On \Mage_Checkout_OnepageController::successAction following function is triggered \Mage_Checkout_Model_Session::clear which clears quote_id and last_success_quote_id but last_quote_id which is used in \Mollie_Mpm_Model_Observer::restoreQuoteWhenReturningFromMollie is not cleared.

Frank-Magmodules commented 4 years ago

Hello @Ig0r-M,

Unfortunately, I can't reproduce the bug you described. I follow all steps, but the last 2 points you describe don't happen in our test environment:

Do you maybe have plugins in place that hook in on the same flow? Maybe that there is a conflict with these, but on a clean Magento 1.9.4.1 installation this behavior is not reproducible.

Please fill in our contact form if your able to share your server/magento details so our team can take a look with you.

Ig0r-M-magic42 commented 4 years ago

Thanks @Frank-Magmodules i will attempt to retest as well on an fresh Magento installation as it might be conflicting either third party code or our custom one. Unfortunately i cannot give access to the project where this has been happening.

Frank-Magmodules commented 4 years ago

Great @Ig0r-M , please let me know the outcome.

AkashP454 commented 4 years ago

Apologies @Frank-Magmodules. I am a colleague of @Ig0r-M.

The last 2 steps we have pointed out seem to another issue..... (I don't think are related at the moment). The last 2 steps only occur when sometimes using another payment method (pay360)

- On checkout you will be directed to empty shopping basket page, rather than the checkout success page
- Another invoice is created for the previous order, and the new order is not created.

@Frank-Magmodules Were you able to replicate the fact that the quote is_active was being set back to true after an order being placed using check/mo payment (the first 5 steps written by Igor above).

\Mollie_Mpm_Model_Observer::restoreQuoteWhenReturningFromMollie I believe this a bug as the quote shouldn't be set back to true after an order has been placed

Thanks and apologies for the confusion.

Frank-Magmodules commented 4 years ago

Hello @AkashP454,

Good to hear that the 2 steps are not related to our extension. About setting the quote active: Yes we have seen that and identified that it should not happen. We will look into it.

Marvin-Magmodules commented 4 years ago

Hi @Ig0r-M, @AkashP454, thanks again for opening this issue. The issue has been resolved in the v5.5.6 release. The quote is only restored on the right state and only for Mollie orders. We are closing this issue now but please feel free to reopen the issue if this still occurs.

seansan commented 4 years ago

Hi @Ig0r-M , Thank you for opening this issue. We can't directly reproduce this. Can you contact us through our contact form so we can exchange log files to check the issue? Thank you!

This is the important part: a logic error and does not meet reproducing

This part: Plus observed is not checking if used method is actually Mollie and does this for all quotes