Adyen / adyen-magento2

Adyen Payment plugin for Magento2
MIT License
155 stars 210 forks source link

[ECP-8717][ECP-8955] Call to undefined method getQuoteId() in "Adyen\Payment\Gateway\Request\GiftcardDataBuilder" #2307

Closed AlexGorelikov closed 7 months ago

AlexGorelikov commented 11 months ago

Hey

Describe the bug Runtime exception when you want to place an order. The PayPal module is a dependent module for the Magento. We have a conflict of references

Adyen\Payment\Gateway\Request\GiftcardDataBuilder (38line) $paymentDataObject->getOrder(); // PayPal\Braintree\Gateway\Data\Order\OrderAdapter

vendor/paypal/module-braintree-core/etc/di.xml <preference for="Magento\Payment\Gateway\Data\Order\OrderAdapter" type="PayPal\Braintree\Gateway\Data\Order\OrderAdapter"/>

vendor/adyen/module-payment/etc/di.xml <preference for="Magento\Payment\Gateway\Data\Order\OrderAdapter" type="Adyen\Payment\Gateway\Data\Order\OrderAdapter" />

To Reproduce: Place an order

Expected behavior Success order

Plugin version 9.0.1

candemiralp commented 10 months ago

Hello @AlexGorelikov,

Thank you for creating this issue. We created an internal ticket to investigate an solve this issue.

Best Regards, Can

aschrammel commented 8 months ago

Hi @candemiralp

are there any news on that issue? We are currently in process of upgrading from 8.20.1 to 9.0.5 and running into the exact same issue.

Would be great to get some info on the progress there 😄

Thx a lot in advance.

Best regards Andreas

candemiralp commented 8 months ago

Hello @aschrammel,

This issue is currently on our sprint board and planning to handle it on the current sprint (within 2 weeks).

Best Regards, Can

aschrammel commented 7 months ago

@candemiralp I've updated to 9.0.7 now and still face the same issue. Now it's working on the corrected place, but in the end I'm still running into the error when trying to check out with credit card.

Call to undefined method PayPal\Braintree\Gateway\Data\Order\OrderAdapter::getQuoteId()

Stack trace is the following:

#1 /srv/vendor/magento/module-payment/Gateway/Command/GatewayCommand.php(118): Magento\Payment\Gateway\Response\HandlerChain->handle()
#2 /srv/vendor/magento/module-payment/Model/Method/Adapter.php(549): Magento\Payment\Gateway\Command\GatewayCommand->execute()
#3 /srv/vendor/magento/module-payment/Model/Method/Adapter.php(655): Magento\Payment\Model\Method\Adapter->executeCommand()
#4 /srv/generated/code/Adyen/Payment/Model/Method/Adapter/Interceptor.php(392): Magento\Payment\Model\Method\Adapter->initialize()
#5 /srv/vendor/magento/module-sales/Model/Order/Payment.php(377): Adyen\Payment\Model\Method\Adapter\Interceptor->initialize()
#6 /srv/generated/code/Magento/Sales/Model/Order/Payment/Interceptor.php(122): Magento\Sales\Model\Order\Payment->place()
#7 /srv/vendor/magento/module-sales/Model/Order.php(1002): Magento\Sales\Model\Order\Payment\Interceptor->place()
#8 /srv/vendor/magento/module-sales/Model/Order.php(1228): Magento\Sales\Model\Order->_placePayment()
#9 /srv/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Sales\Model\Order->place()
#10 /srv/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Model\Order\Interceptor->___callParent()
#11 /srv/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Model\Order\Interceptor->Magento\Framework\Interception\{closure}()
#12 /srv/generated/code/Magento/Sales/Model/Order/Interceptor.php(356): Magento\Sales\Model\Order\Interceptor->___callPlugins()
#13 /srv/vendor/magento/module-sales/Model/Service/OrderService.php(209): Magento\Sales\Model\Order\Interceptor->place()
#14 /srv/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Sales\Model\Service\OrderService->place()
#15 /srv/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Model\Service\OrderService\Interceptor->___callParent()
#16 /srv/vendor/magento/module-inventory-sales/Plugin/Sales/OrderManagement/AppendReservationsAfterOrderPlacementPlugin.php(195): Magento\Sales\Model\Service\OrderService\Interceptor->Magento\Framework\Interception\{closure}()
#17 /srv/vendor/magento/framework/Interception/Interceptor.php(135): Magento\InventorySales\Plugin\Sales\OrderManagement\AppendReservationsAfterOrderPlacementPlugin->aroundPlace()
#18 /srv/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Model\Service\OrderService\Interceptor->Magento\Framework\Interception\{closure}()
#19 /srv/generated/code/Magento/Sales/Model/Service/OrderService/Interceptor.php(86): Magento\Sales\Model\Service\OrderService\Interceptor->___callPlugins()
#20 /srv/vendor/magento/module-quote/Model/QuoteManagement.php(603): Magento\Sales\Model\Service\OrderService\Interceptor->place()
#21 /srv/vendor/magento/module-quote/Model/QuoteManagement.php(483): Magento\Quote\Model\QuoteManagement->submitQuote()
#22 /srv/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\QuoteManagement->submit()
#23 /srv/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\QuoteManagement\Interceptor->___callParent()
#24 /srv/vendor/magento/module-sales-rule/Plugin/CouponUsagesIncrement.php(54): Magento\Quote\Model\QuoteManagement\Interceptor->Magento\Framework\Interception\{closure}()
#25 /srv/vendor/magento/framework/Interception/Interceptor.php(135): Magento\SalesRule\Plugin\CouponUsagesIncrement->aroundSubmit()
#26 /srv/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\QuoteManagement\Interceptor->Magento\Framework\Interception\{closure}()
#27 /srv/generated/code/Magento/Quote/Model/QuoteManagement/Interceptor.php(68): Magento\Quote\Model\QuoteManagement\Interceptor->___callPlugins()
#28 /srv/vendor/magento/module-quote/Model/QuoteManagement.php(441): Magento\Quote\Model\QuoteManagement\Interceptor->submit()
#29 /srv/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\QuoteManagement->placeOrder()
#30 /srv/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\QuoteManagement\Interceptor->___callParent()
#31 /srv/vendor/paypal/module-braintree-core/Plugin/OrderCancellation.php(63): Magento\Quote\Model\QuoteManagement\Interceptor->Magento\Framework\Interception\{closure}()
#32 /srv/vendor/magento/framework/Interception/Interceptor.php(135): PayPal\Braintree\Plugin\OrderCancellation->aroundPlaceOrder()
#33 /srv/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\QuoteManagement\Interceptor->Magento\Framework\Interception\{closure}()
#34 /srv/generated/code/Magento/Quote/Model/QuoteManagement/Interceptor.php(50): Magento\Quote\Model\QuoteManagement\Interceptor->___callPlugins()
#35 /srv/vendor/magento/module-checkout/Model/PaymentInformationManagement.php(125): Magento\Quote\Model\QuoteManagement\Interceptor->placeOrder()
#36 /srv/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Checkout\Model\PaymentInformationManagement->savePaymentInformationAndPlaceOrder()
#37 /srv/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Checkout\Model\PaymentInformationManagement\Interceptor->___callParent()
#38 /srv/vendor/payone-gmbh/magento-2/Model/Plugins/PaymentInformationManagement.php(98): Magento\Checkout\Model\PaymentInformationManagement\Interceptor->Magento\Framework\Interception\{closure}()
#39 /srv/vendor/magento/framework/Interception/Interceptor.php(135): Payone\Core\Model\Plugins\PaymentInformationManagement->aroundSavePaymentInformationAndPlaceOrder()
#40 /srv/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Checkout\Model\PaymentInformationManagement\Interceptor->Magento\Framework\Interception\{closure}()
#41 /srv/generated/code/Magento/Checkout/Model/PaymentInformationManagement/Interceptor.php(23): Magento\Checkout\Model\PaymentInformationManagement\Interceptor->___callPlugins()
#42 [internal function]: Magento\Checkout\Model\PaymentInformationManagement\Interceptor->savePaymentInformationAndPlaceOrder()
#43 /srv/vendor/magento/module-webapi/Controller/Rest/SynchronousRequestProcessor.php(95): call_user_func_array()
#44 /srv/vendor/magento/module-webapi/Controller/Rest.php(188): Magento\Webapi\Controller\Rest\SynchronousRequestProcessor->process()
#45 /srv/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Webapi\Controller\Rest->dispatch()
#46 /srv/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Webapi\Controller\Rest\Interceptor->___callParent()
#47 /srv/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Webapi\Controller\Rest\Interceptor->Magento\Framework\Interception\{closure}()
#48 /srv/generated/code/Magento/Webapi/Controller/Rest/Interceptor.php(23): Magento\Webapi\Controller\Rest\Interceptor->___callPlugins()
#49 /srv/vendor/magento/framework/App/Http.php(116): Magento\Webapi\Controller\Rest\Interceptor->dispatch()
#50 /srv/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\Http->launch()
#51 /srv/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\Http\Interceptor->___callParent()
#52 /srv/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\Http\Interceptor->Magento\Framework\Interception\{closure}()
#53 /srv/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http\Interceptor->___callPlugins()
#54 /srv/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch()
#55 /srv/pub/index.php(30): Magento\Framework\App\Bootstrap->run()
#56 {main}

So it seems, that the preference is still causing issues here.

All caches are flushed, generated/code folder cleared as well as Redis.

candemiralp commented 7 months ago

Hello @aschrammel,

Thanks for informing us. Let me test the case and get back to you soon.

Best Regards, Can

candemiralp commented 7 months ago

Hello @aschrammel,

After testing the behaviour, we saw StateDataHandler causes a similar issue. We've created an implementation ticket to solve this issue.

Best Regards, Can

karmdip-magneto commented 7 months ago

Hello,

We have recently upgraded to the latest version 9.0.7 and running into the exact same issue. Looking forward to getting a fix for this one.

Thanks

mikimpe commented 7 months ago

@candemiralp @aschrammel @karmdip-magneto I run into the same issue.

I opened a PR: https://github.com/Adyen/adyen-magento2/pull/2481

In my case it solved the issue.