Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: Fatal Error in Shipping.php | isotope 2.6.6 + Contao 4.4.46 & 4.4.47

  1. #1
    Contao-Nutzer
    Registriert seit
    07.05.2012.
    Beiträge
    16

    Standard Fatal Error in Shipping.php | isotope 2.6.6 + Contao 4.4.46 & 4.4.47

    Hallo Community,

    ich stehe vor einem Problem, das ich irgendwie nicht gebacken bekomme. Projekt ist ein Shop (all-inkl Premium, PHP7.3), in dem Lebensmittel mit nach Versandgewicht berechneten Versandkosten verkauft werden. Die Shopkonfiguration stellt neue Bestellungen auf den Bestellstatus "eingegangen", die Zahlungsart "Vorkasse" stellt den Bestellstatus auf "offen". Mit dem Bestellstatus "offen" geht dann automatisch eine Benachrichtigung inkl. PDF mit Zahlungsinformationen an den Käufer raus. Soweit so gut, das funktioniert alles einwandfrei.

    Jede weitere manuelle Änderung des Bestellstatus im Backend, beispielsweise auf "bezahlt" – unabhängig davon, ob mit dem Status eine E-Mail-Benachrichtigung verknüpft ist oder nicht sofern mit dem Status eine E-Mail-Benachrichtigung verknüpft ist – endet in folgendem Fatal Error, die Benachrichtigung wird nicht versendet: Internal Server Error - Call to a member function addToScale() on null

    Das Contao Log spuckt folgendes aus dabei:
    Code:
    [2020-02-21 18:22:35] request.INFO: Matched route "contao_backend". {"route":"contao_backend","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction","_route":"contao_backend"},"request_uri":"https://www.projektdomain.com/contao?act=edit&do=iso_orders&id=148&ref=flPLbGAr&rt=w46P_Pux-YAx5wDbAy6r1vOfqWsMeo8AnzEFeTXIsLE","method":"POST"} []
    [2020-02-21 18:22:35] security.INFO: Attempting SimplePreAuthentication. {"key":"backend","authenticator":"Contao\\CoreBundle\\Security\\ContaoAuthenticator"} []
    [2020-02-21 18:22:35] app.CRITICAL: An exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Call to a member function addToScale() on null at /path/to/contao/vendor/isotope/isotope-core/system/modules/isotope/library/Isotope/Model/Shipping.php:141)"} []
    In der betreffenden Zeile 141 in der Shipping.php steht folgendes:
    Code:
    $objScale = Isotope::getCart()->addToScale();
    addToScale() hört sich für mich irgendwie nach der Berechnung des Versandgewichtes an, wobei ich mir nicht erklären kann, was die mit einer Änderung des Bestellstatus zu tun haben sollte. An Erweiterungen ist in Isotope lediglich die Lagerverwaltung von CodeFog installiert. Eine Recherche nach diesem Fehler hat leider kein Ergebnis gebracht.

    Vielen Dank für Eure Hilfe, freue mich über jeden Hinweis!

    Heiner



    Edit:

    Stack-Trace des Errors:
    Code:
    Symfony\Component\Debug\Exception\FatalThrowableError:
    Call to a member function addToScale() on null
    
      at vendor/isotope/isotope-core/system/modules/isotope/library/Isotope/Model/Shipping.php:141
      at Isotope\Model\Shipping->isAvailable()
         (vendor/isotope/isotope-core/system/modules/isotope/library/Isotope/Model/Shipping/Group.php:176)
      at Isotope\Model\Shipping\Group->getGroupMethods()
         (vendor/isotope/isotope-core/system/modules/isotope/library/Isotope/Model/Shipping/Group.php:74)
      at Isotope\Model\Shipping\Group->getLabel()
         (vendor/isotope/isotope-core/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php:448)
      at Isotope\Model\ProductCollection\Order->getNotificationTokens('11')
         (vendor/isotope/isotope-core/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php:303)
      at Isotope\Model\ProductCollection\Order->updateOrderStatus('11')
         (vendor/isotope/isotope-core/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php:467)
      at Isotope\Backend\ProductCollection\Callback->executeSaveHook(object(DC_Table))
         (vendor/contao/core-bundle/src/Resources/contao/drivers/DC_Table.php:2125)
      at Contao\DC_Table->edit()
         (vendor/contao/core-bundle/src/Resources/contao/classes/Backend.php:620)
      at Contao\Backend->getBackendModule('iso_orders', null)
         (vendor/contao/core-bundle/src/Resources/contao/controllers/BackendMain.php:131)
      at Contao\BackendMain->run()
         (vendor/contao/core-bundle/src/Controller/BackendController.php:55)
      at Contao\CoreBundle\Controller\BackendController->mainAction()
         (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:151)
      at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
         (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68)
      at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
         (vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:200)
      at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
         (web/app_dev.php:69)
    Geändert von Heiner (23.02.2020 um 09:00 Uhr)

  2. #2
    Marcell
    Gast

    Standard

    Hallo Heiner,

    Ich kenne die Fehlermeldung eigentlich nur im Zusammenhang, wenn die Funktion aufgerufen wird und kein Wert mehr vorhanden oder übergeben wurde. Unabhängig warum beim Ändern des Status die Shipping.php ausgeführt wird, würde ich dir empfehlen einfach mal eine typische PHP Prüfung auf das Object zu machen und die Funktion nur bedingt auslösen. Vielleicht hilft dir ja dieser Ansatz.

  3. #3
    Contao-Nutzer
    Registriert seit
    07.05.2012.
    Beiträge
    16

    Standard

    Hallo Marcell,

    vielen Dank für Deinen Hinweis – der Fehler hat sich tatsächlich als Bug in isotope herausgestellt und wurde in Version 2.6.9 behoben!

    Viele Grüße,
    Heiner

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •