klaviyo / magento2-klaviyo

37 stars 50 forks source link

Deprecated use of base64_encode in Observer/SalesQuoteSaveAfter.php #304

Open gldt-arandazzo opened 2 weeks ago

gldt-arandazzo commented 2 weeks ago

Environment details

PHP version: 8.1-latest Magento version: 2.4.6-p6 (Commerce B2B) Klaviyo extension version: 4.1.3

Steps to reproduce

Upon inspecting my system.log file, I am seeing errors related to the Klaviyo SalesQuoteSaveAfter.php observer.

report.CRITICAL: Deprecated Functionality: base64_encode(): Passing null to parameter #1 ($string) of type string is deprecated in /var/vhosts/domain.com/www/vendor/klaviyo/magento2-extension/Observer/SalesQuoteSaveAfter.php on line 139

Full stack trace

`report.CRITICAL: Deprecated Functionality: base64_encode(): Passing null to parameter #1 ($string) of type string is deprecated in /var/vhosts/domain.com/www/vendor/klaviyo/magento2-extension/Observer/SalesQuoteSaveAfter.php on line 139

0 [internal function]: Magento\Framework\App\ErrorHandler->handler()

1 /var/vhosts/domain.com/www/vendor/klaviyo/magento2-extension/Observer/SalesQuoteSaveAfter.php(139): base64_encode()

2 /var/vhosts/domain.com/www/vendor/klaviyo/magento2-extension/Observer/SalesQuoteSaveAfter.php(96): Klaviyo\Reclaim\Observer\SalesQuoteSaveAfter->checkCustomerAndReturnEncodedId()

3 /var/vhosts/domain.com/www/vendor/magento/framework/Event/Invoker/InvokerDefault.php(88): Klaviyo\Reclaim\Observer\SalesQuoteSaveAfter->execute()

4 /var/vhosts/domain.com/www/vendor/magento/framework/Event/Invoker/InvokerDefault.php(74): Magento\Framework\Event\Invoker\InvokerDefault->_callObserverMethod()

5 /var/vhosts/domain.com/www/vendor/magento/module-staging/Model/Event/Manager.php(97): Magento\Framework\Event\Invoker\InvokerDefault->dispatch()

6 /var/vhosts/domain.com/www/generated/code/Magento/Staging/Model/Event/Manager/Proxy.php(95): Magento\Staging\Model\Event\Manager->dispatch()

7 /var/vhosts/domain.com/www/vendor/magento/framework/Model/AbstractModel.php(837): Magento\Staging\Model\Event\Manager\Proxy->dispatch()

8 /var/vhosts/domain.com/www/vendor/magento/framework/Model/ResourceModel/Db/VersionControl/AbstractDb.php(56): Magento\Framework\Model\AbstractModel->afterSave()

9 /var/vhosts/domain.com/www/vendor/magento/framework/Model/ResourceModel/Db/AbstractDb.php(402): Magento\Framework\Model\ResourceModel\Db\VersionControl\AbstractDb->processAfterSaves()

10 /var/vhosts/domain.com/www/vendor/magento/module-quote/Model/ResourceModel/Quote.php(317): Magento\Framework\Model\ResourceModel\Db\AbstractDb->save()

11 /var/vhosts/domain.com/www/vendor/magento/module-quote/Model/QuoteRepository/SaveHandler.php(121): Magento\Quote\Model\ResourceModel\Quote->save()

12 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\QuoteRepository\SaveHandler->save()

13 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\QuoteRepository\SaveHandler\Interceptor->___callParent()

14 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\QuoteRepository\SaveHandler\Interceptor->Magento\Framework\Interception{closure}()

15 /var/vhosts/domain.com/www/generated/code/Magento/Quote/Model/QuoteRepository/SaveHandler/Interceptor.php(23): Magento\Quote\Model\QuoteRepository\SaveHandler\Interceptor->___callPlugins()

16 /var/vhosts/domain.com/www/vendor/magento/module-quote/Model/QuoteRepository.php(202): Magento\Quote\Model\QuoteRepository\SaveHandler\Interceptor->save()

17 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\QuoteRepository->save()

18 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\QuoteRepository\Interceptor->___callParent()

19 /var/vhosts/domain.com/www/vendor/magento/module-negotiable-quote/Model/Plugin/Quote/Model/QuoteRepositoryPlugin.php(98): Magento\Quote\Model\QuoteRepository\Interceptor->Magento\Framework\Interception{closure}()

20 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Magento\NegotiableQuote\Model\Plugin\Quote\Model\QuoteRepositoryPlugin->aroundSave()

21 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\QuoteRepository\Interceptor->Magento\Framework\Interception{closure}()

22 /var/vhosts/domain.com/www/generated/code/Magento/Quote/Model/QuoteRepository/Interceptor.php(59): Magento\Quote\Model\QuoteRepository\Interceptor->___callPlugins()

23 /var/vhosts/domain.com/www/vendor/magento/module-backend/Model/Session/Quote.php(158): Magento\Quote\Model\QuoteRepository\Interceptor->save()

24 /var/vhosts/domain.com/www/vendor/vertexinc/vertex-tax-module/Model/RequestLogger.php(223): Magento\Backend\Model\Session\Quote->getQuote()

25 /var/vhosts/domain.com/www/vendor/vertexinc/vertex-tax-module/Model/RequestLogger.php(135): Vertex\Tax\Model\RequestLogger->getCurrentAdminQuote()

26 /var/vhosts/domain.com/www/vendor/vertexinc/vertex-tax-module/Model/Api/Logger.php(107): Vertex\Tax\Model\RequestLogger->log()

27 /var/vhosts/domain.com/www/vendor/vertexinc/vertex-tax-module/Model/Api/Logger.php(67): Vertex\Tax\Model\Api\Logger->logRequest()

28 /var/vhosts/domain.com/www/vendor/vertexinc/vertex-tax-module/Service/QuoteProxy.php(50): Vertex\Tax\Model\Api\Logger->wrapCall()

29 /var/vhosts/domain.com/www/vendor/vertexinc/vertex-tax-module/Model/TaxQuote/TaxQuoteRequest.php(92): Vertex\Tax\Service\QuoteProxy->request()

30 /var/vhosts/domain.com/www/vendor/vertexinc/vertex-tax-module/Model/Calculator.php(152): Vertex\Tax\Model\TaxQuote\TaxQuoteRequest->taxQuote()

31 /var/vhosts/domain.com/www/vendor/vertexinc/vertex-tax-module/Model/Plugin/TaxCalculationPlugin.php(75): Vertex\Tax\Model\Calculator->calculateTax()

32 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Vertex\Tax\Model\Plugin\TaxCalculationPlugin->aroundCalculateTax()

33 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Tax\Model\TaxCalculation\Interceptor->Magento\Framework\Interception{closure}()

34 /var/vhosts/domain.com/www/generated/code/Magento/Tax/Model/TaxCalculation/Interceptor.php(23): Magento\Tax\Model\TaxCalculation\Interceptor->___callPlugins()

35 /var/vhosts/domain.com/www/vendor/magento/module-tax/Model/Sales/Total/Quote/Subtotal.php(43): Magento\Tax\Model\TaxCalculation\Interceptor->calculateTax()

36 /var/vhosts/domain.com/www/vendor/magento/module-quote/Model/Quote/TotalsCollector.php(261): Magento\Tax\Model\Sales\Total\Quote\Subtotal->collect()

37 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\Quote\TotalsCollector->collectAddressTotals()

38 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->___callParent()

39 /var/vhosts/domain.com/www/vendor/amasty/promo/Plugin/Quote/Model/Quote/TotalsCollectorPlugin.php(157): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->Magento\Framework\Interception{closure}()

40 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Amasty\Promo\Plugin\Quote\Model\Quote\TotalsCollectorPlugin->aroundCollectAddressTotals()

41 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->Magento\Framework\Interception{closure}()

42 /var/vhosts/domain.com/www/generated/code/Magento/Quote/Model/Quote/TotalsCollector/Interceptor.php(41): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->___callPlugins()

43 /var/vhosts/domain.com/www/vendor/magento/module-quote/Model/Quote/TotalsCollector.php(156): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->collectAddressTotals()

44 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\Quote\TotalsCollector->collect()

45 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->___callParent()

46 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->Magento\Framework\Interception{closure}()

47 /var/vhosts/domain.com/www/generated/code/Magento/Quote/Model/Quote/TotalsCollector/Interceptor.php(32): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->___callPlugins()

48 /var/vhosts/domain.com/www/vendor/magento/module-quote/Model/Quote.php(2021): Magento\Quote\Model\Quote\TotalsCollector\Interceptor->collect()

49 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\Quote->collectTotals()

50 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\Quote\Interceptor->___callParent()

51 /var/vhosts/domain.com/www/vendor/magento/module-deferred-total-calculating/Plugin/TotalsCollectorPlugin.php(137): Magento\Quote\Model\Quote\Interceptor->Magento\Framework\Interception{closure}()

52 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Magento\DeferredTotalCalculating\Plugin\TotalsCollectorPlugin->aroundCollectTotals()

53 /var/vhosts/domain.com/www/vendor/magento/module-purchase-order/Plugin/Quote/Model/QuotePlugin.php(46): Magento\Quote\Model\Quote\Interceptor->Magento\Framework\Interception{closure}()

54 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Magento\PurchaseOrder\Plugin\Quote\Model\QuotePlugin->aroundCollectTotals()

55 /var/vhosts/domain.com/www/vendor/magento/module-negotiable-quote/Plugin/Quote/Model/QuotePlugin.php(102): Magento\Quote\Model\Quote\Interceptor->Magento\Framework\Interception{closure}()

56 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Magento\NegotiableQuote\Plugin\Quote\Model\QuotePlugin->aroundCollectTotals()

57 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\Quote\Interceptor->Magento\Framework\Interception{closure}()

58 /var/vhosts/domain.com/www/generated/code/Magento/Quote/Model/Quote/Interceptor.php(95): Magento\Quote\Model\Quote\Interceptor->___callPlugins()

59 /var/vhosts/domain.com/www/vendor/magento/module-checkout/Model/Cart.php(594): Magento\Quote\Model\Quote\Interceptor->collectTotals()

60 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Checkout\Model\Cart->save()

61 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Checkout\Model\Cart\Interceptor->___callParent()

62 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Checkout\Model\Cart\Interceptor->Magento\Framework\Interception{closure}()

63 /var/vhosts/domain.com/www/generated/code/Magento/Checkout/Model/Cart/Interceptor.php(23): Magento\Checkout\Model\Cart\Interceptor->___callPlugins()

64 /var/vhosts/domain.com/www/vendor/amasty/cart/Controller/Cart/Add.php(247): Magento\Checkout\Model\Cart\Interceptor->save()

65 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Amasty\Cart\Controller\Cart\Add->execute()

66 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Amasty\Cart\Controller\Cart\Add\Interceptor->___callParent()

67 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Amasty\Cart\Controller\Cart\Add\Interceptor->Magento\Framework\Interception{closure}()

68 /var/vhosts/domain.com/www/generated/code/Amasty/Cart/Controller/Cart/Add/Interceptor.php(23): Amasty\Cart\Controller\Cart\Add\Interceptor->___callPlugins()

69 /var/vhosts/domain.com/www/vendor/magento/framework/App/Action/Action.php(111): Amasty\Cart\Controller\Cart\Add\Interceptor->execute()

70 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\Action\Action->dispatch()

71 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Amasty\Cart\Controller\Cart\Add\Interceptor->___callParent()

72 /var/vhosts/domain.com/www/vendor/magento/module-company/Plugin/Framework/App/Action/AbstractActionPlugin.php(65): Amasty\Cart\Controller\Cart\Add\Interceptor->Magento\Framework\Interception{closure}()

73 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Company\Plugin\Framework\App\Action\AbstractActionPlugin->aroundDispatch()

74 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Amasty\Cart\Controller\Cart\Add\Interceptor->Magento\Framework\Interception{closure}()

75 /var/vhosts/domain.com/www/generated/code/Amasty/Cart/Controller/Cart/Add/Interceptor.php(32): Amasty\Cart\Controller\Cart\Add\Interceptor->___callPlugins()

76 /var/vhosts/domain.com/www/vendor/magento/framework/App/FrontController.php(245): Amasty\Cart\Controller\Cart\Add\Interceptor->dispatch()

77 /var/vhosts/domain.com/www/vendor/magento/framework/App/FrontController.php(212): Magento\Framework\App\FrontController->getActionResponse()

78 /var/vhosts/domain.com/www/vendor/magento/framework/App/FrontController.php(147): Magento\Framework\App\FrontController->processRequest()

79 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch()

80 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent()

81 /var/vhosts/domain.com/www/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(99): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}()

82 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch()

83 /var/vhosts/domain.com/www/vendor/amasty/aminvisiblecaptcha/Plugin/Framework/App/FrontControllerInterface/ValidateCaptcha.php(124): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}()

84 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Amasty\InvisibleCaptcha\Plugin\Framework\App\FrontControllerInterface\ValidateCaptcha->aroundDispatch()

85 /var/vhosts/domain.com/www/vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(75): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}()

86 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(135): Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch()

87 /var/vhosts/domain.com/www/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception{closure}()

88 /var/vhosts/domain.com/www/generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins()

89 /var/vhosts/domain.com/www/vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch()

90 /var/vhosts/domain.com/www/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http->launch()

91 /var/vhosts/domain.com/www/pub/index.php(30): Magento\Framework\App\Bootstrap->run()

92 {main} [] []`

Expected result

No Errors in log files

Actual result

Error in log file

Additional information

No response

cykolln commented 2 weeks ago

Thank you for letting us know - we are intending on doing a full clean-up of the extension to ensure compatibility w/ PHP 8.3 and will get this deprecation fixed as part of that work.