View Issue Details

IDProjectCategoryView StatusLast Update
0007915module PayPal Checkoutmodule PayPal checkout - subpublic2026-04-02 14:42
ReportereWorks GmbH Assigned To 
PriorityhighSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version2.8.0 / 3.7.0 
Target Version2.8.2 / 3.7.2Fixed in Version2.8.2 / 3.7.2 
Summary0007915: Call to a member function getId() on null beim Aufruf von hasProductVariantInBasket auf der Detailseite
DescriptionDer hasProductVariantInBasket-Aufruf in https://github.com/OXID-eSales/paypal-module/blob/b-6.3.x/views/blocks/page/details/inc/productmain.tpl#L8 führt zu einer "OXID Logger.ERROR: Call to a member function getId() on null" Exception, wenn eine ausverkaufte Variante im Warenkorb liegt. Grund ist der Einsatz von getArtStockInBasket(), welche wiederum in https://github.com/OXID-eSales/oxideshop_ce/blob/b-6.5.x/source/Application/Model/Basket.php#L2823 nur Artikel verarbeiten kann, die gekauft werden können.
Steps To Reproduce1) Artikel mit Varianten und dem Lagestatus "Wenn ausverkauft offline" anlegen
2) Eine der Varianten im Shop in den Warenkorb legen
3) Den Lagerbestand dieser Varianten auf 0 reduzieren
4) Detailseite vom Vaterartikel aufrufen
5) Seite kaputt und Exception im Log
Additional InformationhasProductVariantInBasket() sollte ausverkaufte Varianten erkennen und überspringen oder aber die auftretende Exception handhaben.
TagsNo tags attached.

Activities

eWorks GmbH

2026-03-24 12:21

reporter   ~0018436

Ggf. liegt die Ursache auch direkt in dem getArtStockInBasket-Aufruf in https://github.com/OXID-eSales/paypal-module/blob/b-6.3.x/views/blocks/page/details/inc/productmain.tpl#L8 Lässt sich anhand der Exception nur schwer ausmachen, weil nur die Zeile im Template im Stacktrace genannt wird.

QA

2026-03-24 14:42

administrator   ~0018438


QA - ES -

Similar in latest version of the module v2.8.1 / 3.7.1

oxideshop.log v2.8.1:
[2026-03-24 14:35:55] OXID Logger.ERROR: Der Artikel "0702-85-853-1-1" ist leider nicht mehr verfügbar ["[object] (OxidEsales\\Eshop\\Core\\Exception\\NoArticleException(code: 0): Der Artikel \"0702-85-853-1-1\" ist leider nicht mehr verfügbar at /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/UtilsObject.php:231)\n[stacktrace]\n
#0 /var/www/oxideshop/source/oxfunctions.php(104): OxidEsales\\EshopCommunity\\Core\\UtilsObject->oxNew('OxidEsales\\\\Esho...')\n
#1 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Application/Model/BasketItem.php(506): oxNew('OxidEsales\\\\Esho...')\n
#2 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Application/Model/Basket.php(2823): OxidEsales\\EshopCommunity\\Application\\Model\\BasketItem->getArticle(true)\n
#3 /var/www/oxideshop/source/tmp/smarty/811b8de9034d5541ddfce162a60e1ce9^%%5E^5E9^5E9B9D5B%%productmain.tpl.php(321): OxidEsales\\EshopCommunity\\Application\\Model\\Basket->getArtStockInBasket('531b537118f5f4d...')\n
#4 /var/www/oxideshop/vendor/smarty/smarty/libs/Smarty.class.php(1875): include('/var/www/oxides...')\n
#5 /var/www/oxideshop/source/tmp/smarty/811b8de9034d5541ddfce162a60e1ce9^%%A5^A59^A595DDB8%%fullproductinfo.tpl.php(9): Smarty->_smarty_include(Array)\n
#6 /var/www/oxideshop/vendor/smarty/smarty/libs/Smarty.class.php(1875): include('/var/www/oxides...')\n
#7 /var/www/oxideshop/source/tmp/smarty/811b8de9034d5541ddfce162a60e1ce9^%%08^08A^08ABD53A%%details.tpl.php(107): Smarty->_smarty_include(Array)\n
#8 /var/www/oxideshop/vendor/smarty/smarty/libs/Smarty.class.php(1875): include('/var/www/oxides...')\n
#9 /var/www/oxideshop/source/tmp/smarty/811b8de9034d5541ddfce162a60e1ce9^%%79^790^7907FF72%%details.tpl.php(6): Smarty->_smarty_include(Array)\n
#10 /var/www/oxideshop/vendor/smarty/smarty/libs/Smarty.class.php(1269): include('/var/www/oxides...')\n
0000011 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Internal/Framework/Smarty/Legacy/LegacySmartyEngine.php(66): Smarty->fetch('widget/product/...', 'ox|https://es.o...')\n
0000012 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Internal/Framework/Templating/TemplateRenderer.php(35): OxidEsales\\EshopCommunity\\Internal\\Framework\\Smarty\\Legacy\\LegacySmartyEngine->render('widget/product/...', Array)\n
0000013 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(509): OxidEsales\\EshopCommunity\\Internal\\Framework\\Templating\\TemplateRenderer->renderTemplate('widget/product/...', Array)\n
0000014 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ee/Core/ShopControl.php(209): OxidEsales\\EshopCommunity\\Core\\ShopControl->_render(Object(OxidSolutionCatalysts\\PayPal\\Component\\Widget\\ArticleDetails))\n
0000015 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(359): OxidEsales\\EshopEnterprise\\Core\\ShopControl->_render(Object(OxidSolutionCatalysts\\PayPal\\Component\\Widget\\ArticleDetails))\n
0000016 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ee/Core/ShopControl.php(98): OxidEsales\\EshopCommunity\\Core\\ShopControl->formOutput(Object(OxidSolutionCatalysts\\PayPal\\Component\\Widget\\ArticleDetails))\n
0000017 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(282): OxidEsales\\EshopEnterprise\\Core\\ShopControl->formOutput(Object(OxidSolutionCatalysts\\PayPal\\Component\\Widget\\ArticleDetails))\n
0000018 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(142): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('OxidEsales\\\\Esho...', NULL, Array, Array)\n
0000019 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/WidgetControl.php(65): OxidEsales\\EshopCommunity\\Core\\ShopControl->start('oxwarticledetai...', NULL, Array, Array)\n
0000020 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/Smarty/Plugin/function.oxid_include_widget.php(32): OxidEsales\\EshopCommunity\\Core\\WidgetControl->start('oxwarticledetai...', NULL, Array, Array)\n
0000021 /var/www/oxideshop/source/tmp/smarty/811b8de9034d5541ddfce162a60e1ce9^%%08^08A^08ABD53A%%details.tpl.php(10): smarty_function_oxid_include_widget(Array, Object(Smarty))\n
0000022 /var/www/oxideshop/vendor/smarty/smarty/libs/Smarty.class.php(1269): include('/var/www/oxides...')\n
0000023 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Internal/Framework/Smarty/Legacy/LegacySmartyEngine.php(66): Smarty->fetch('page/details/de...', 'ox|https://es.o...')\n
#24 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Internal/Framework/Templating/TemplateRenderer.php(35): OxidEsales\\EshopCommunity\\Internal\\Framework\\Smarty\\Legacy\\LegacySmartyEngine->render('page/details/de...', Array)\n
0000025 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(509): OxidEsales\\EshopCommunity\\Internal\\Framework\\Templating\\TemplateRenderer->renderTemplate('page/details/de...', Array)\n
0000026 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ee/Core/ShopControl.php(209): OxidEsales\\EshopCommunity\\Core\\ShopControl->_render(Object(OxidEsales\\Eshop\\Application\\Controller\\ArticleDetailsController))\n
0000027 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(359): OxidEsales\\EshopEnterprise\\Core\\ShopControl->_render(Object(OxidEsales\\Eshop\\Application\\Controller\\ArticleDetailsController))\n
0000028 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ee/Core/ShopControl.php(98): OxidEsales\\EshopCommunity\\Core\\ShopControl->formOutput(Object(OxidEsales\\Eshop\\Application\\Controller\\ArticleDetailsController))\n
0000029 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(282): OxidEsales\\EshopEnterprise\\Core\\ShopControl->formOutput(Object(OxidEsales\\Eshop\\Application\\Controller\\ArticleDetailsController))\n
0000030 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(142): OxidEsales\\EshopCommunity\\Core\\ShopControl->_process('OxidEsales\\\\Esho...', NULL, NULL, NULL)\n
0000031 /var/www/oxideshop/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(27): OxidEsales\\EshopCommunity\\Core\\ShopControl->start()\n
0000032 /var/www/oxideshop/source/index.php(16): OxidEsales\\EshopCommunity\\Core\\Oxid::run()\n
0000033 /var/www/oxideshop/source/oxseo.php(29): require('/var/www/oxides...')\n
0000034 {main}\n"] []