Fooman Surcharge und PHP 7

In Magento sorgt die Surcharge Extension dafür, dass man einfach und komfortabel Zuschläge für verschiedene Bereiche des Online-Shops erheben kann, ohne dafür die in Magento implementierten Preisregeln aufbohren zu müssen, um negative Rabatte zu ermöglichen. So beispielsweise auch für die Zahlarten als Zahlartenaufschlag für Nachnahmezahlung, Paypal und Co.. Mit PHP7 verändert sich jedoch die Darstellung im Checkout - hier wird statt den jeweiligen individuellen Zahlartenaufschlägen schlicht und einfach "1" (+ Währung) angezeigt.

 

 

Sucht man im system.log wird man auch tatsächlich schnell fündig:

 

Notice: Object of class Fooman_Surcharge_Model_Surcharge could not be converted to int in app/code/community/Fooman/Surcharge/Model/Observer.php on line 263

 

und

 

Notice: Object of class Fooman_Surcharge_Model_Surcharge could not be converted to int in app/code/community/Fooman/Surcharge/Model/Observer.php on line 264

 

Die Schuldige ist hier also die Datei \app\code\community\Fooman\Surcharge\Model\Observer.php, in der zwei Zeilen zu einem Fehler führen.

 

Ersetzt man in der Funktion _calcSurchargePreview($quote, $methodCode) nun die Zeilen

 

$surcharge->setBaseAmount($surcharge->setBaseAmount() + $surcharge->getBaseTaxAmount());
$surcharge->setAmount($surcharge->setAmount() + $surcharge->getTaxAmount());

 

mit

 

$surcharge->setBaseAmount($surcharge->getBaseAmount() + $surcharge->getBaseTaxAmount());
$surcharge->setAmount($surcharge->getAmount() + $surcharge->getTaxAmount());

 

,ist der Fehler behoben und die Aufschläge werden fehlerfrei angezeigt. Getestet in Magento CE 1.9.1.0.