Closed DuckThom closed 9 months ago
Thank you, @DuckThom, for the concise description. Much appreciated. We'll return with more information on this matter shortly.
Not a 100% sure if this is related, but I think we're experiencing a similar issues with "regular" payment links on 2.30.1 with Magento 2.4.6-p2. The payment link is never persisted to the payment (sales_order_payment, although being set in Orders.php). Still looking into what is actually happening but it seems like during the transaction it is saved with everything there, but at a later stage a different reference is saved without the data.
Hello @Swahjak, it seems like you referring to another issue, but rest assured that we are aware of this one and a solution will be included in the upcoming release.
He @Frank-Magmodules is there an open issue for this? Also what is your timeline for a next release? Not to rush you, but that way I can decide to take action myself or wait.
Hello @Swahjak, the issue is not currently accessible to the public, but it's likely that the upcoming release will be available next week!
Hello @Swahjak, we've recently launched a new version (v2.31.0) in which we have identified and resolved the issue you mentioned. I'm closing this matter for now, but please don't hesitate to reopen it if you have any lingering questions or if the issue hasn't been completely resolved to your satisfaction.
Describe the bug After updating from 2.27.0 to 2.30.1 we noticed that we're no longer receiving the
mollie_redirect_url
in theplaceOrder
mutation.Used versions
To Reproduce Steps to reproduce the behavior:
mollie_redirect_url
fieldnull
Expected behavior The redirect url should be filled
Actual behavior Field stays
null
Additional context It looks like this is caused by the addition of the
OrderLockService
in https://github.com/mollie/magento2/blob/master/Model/Mollie.php#L259When using GraphQL, the resolver for the
mollie_redirect_url
field will call$this->mollie->startTransaction($order);
here:https://github.com/mollie/magento2/blob/53548cf1952d3870e1b89f72c2c40d5a406cc3e2/GraphQL/Resolver/Checkout/PlaceOrderAndReturnRedirectUrl.php#L62
Previously, in version 2.27.0, the passed Order instance
$order
would be re-used within all the code called bystartTransaction
, making sure that the payment data was added properly. However, due to the addition of the order lock service, this is no longer the case and the$order
instance will never receive the new payment data.A quick, and somewhat dirty, fix would be to add an additional
$order = $this->getOrderByIncrementId($value['order_id']);
after callingstartTransaction
to make sure the latest order data is loaded.