nach dem Update von 4.8.7 auf 4.9.0 wird im Admin-Bereich in einer Bestellung der Karteireiter Stamm nicht mehr angezeigt, sondern man sieht in dem iFrame die Startseite des Shops.
In der ./log/EXCEPTION_LOG.txt erscheint dazu folgendes:
Folgendes habe ich bisher versucht:[ul]
[li]Mit oxchkversion die Integrität des Shops geprüft (alles ok).
[/li][li]Alle Module deaktivert.
[/li][li]Auf Azure zurück gewechselt.
[/li][li]Leserechte der angeführten php-Files geprüft (sind alle 644).
[/li][li]tmp-Verzeichnis gelöscht
[/li][/ul]
Das alles blieb ohne Wirkung. Ich kann in der Bestellung den Karteireiter Stamm nicht aufrufen.
Ich bin mit meiner Weisheit am Ende. Hat jemand einen Tipp für mich, wo ich noch suchen kann?
Leider nein, noch nichts neues. Da diverse Module (noch) inkompatibel für die 4.9.0 sind, ist das im Moment eher so eine Long Term Issue für mich.
Ich hatte eigentlich gehofft, jemand könnte mir einen Hinweis geben, wo man noch nach Fehlern suchen könnte. Also weitere Logs als lediglich EXCEPTION_LOG.txt.
Die o.g. Fehlermeldung ergibt für mich einfach keinen Sinn. Die Methode getWeight() ist vorhanden. Warum wird sie als “does not exist or is not accessible!” gemeldet?
Ich will ja keine Out-Of-The-Box-Lösung für das Problem. Viel lieber wären mir Tipps für eine planvolle Ursachenforschung.
Ich habe das gleiche Phänomen, nämlich die Startseite des Shops im “Stamm”-Reiter, allerdings mit einer etwas anderen Fehlermeldung und wohl auch einer anderen Ursache. Die Fehlermeldung ist
oxSystemComponentException-oxException (time: 2014-10-30 20:56:04): [0]: Function 'getSize' does not exist or is not accessible! (oxOrderArticle)
Stack Trace: #0 /var/www/html/apps/oxid/application/models/oxdelivery.php(247): oxSuperCfg->__call('getSize', Array)
#1 /var/www/html/apps/oxid/application/models/oxdelivery.php(247): oxOrderArticle->getSize()
<snip>
Das Problem tritt auf, wenn eine Versandkostenregel wirksam wird, die auf die Grösse abzielt. Ich bin mir noch nicht sicher genug, um einen “offiziellen” Bugreport zu schreiben, aber vielleicht könnte mir jemand sagen, ob ich auf der richtigen Fährte bin?
Mein Eindruck ist, dass der Shop versucht, aus dem Eintrag für einen Artikel in der Bestellung (oxOrderArticle) die Größe des Artikels auszulesen (getSize()). Diese Klasse kennt die Methode jedoch nicht, sie ist im Artikel selbst (oxArticle) definiert. Der Shop müsste also vom Eintrag für den Artikel in der Bestellung auf dem Artikel rückschließen und dann dort getSize() aufrufen. Also in oxdelivery.php, Zeile 246, statt
$dAmount += $oProduct->getSize();
eher etwas wie
$dAmount += $oProduct->getArticle()->getSize();
Kommt das ungefähr hin, oder bin ich auf der ganz falschen Spur? Die Shop-Version ist übrigens 4.9.0.