View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0007915 | module PayPal Checkout | module PayPal checkout - sub | public | 2026-03-24 12:17 | 2026-04-02 14:42 |
| Reporter | eWorks GmbH | Assigned To | |||
| Priority | high | Severity | major | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | 2.8.0 / 3.7.0 | ||||
| Target Version | 2.8.2 / 3.7.2 | Fixed in Version | 2.8.2 / 3.7.2 | ||
| Summary | 0007915: Call to a member function getId() on null beim Aufruf von hasProductVariantInBasket auf der Detailseite | ||||
| Description | Der 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 Reproduce | 1) 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 Information | hasProductVariantInBasket() sollte ausverkaufte Varianten erkennen und überspringen oder aber die auftretende Exception handhaben. | ||||
| Tags | No tags attached. | ||||
|
|
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 - 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"] [] |