Soweit ich feststellen kann, wenn ein Skript außerhalb von Magento ausgeführt wird, werden Beobachter nicht aufgerufen, wenn ein Ereignis ausgelöst wird. Warum? Wie repariere ich es?Magento: Wie bekomme ich Beobachter in einem externen Skript arbeiten?
Unten ist das ursprüngliche Problem, das mich zu dieser Frage führte. Das Problem ist, dass der Beobachter, der die Katalogregel anwenden würde, niemals aufgerufen wird. Das Ereignis wird ausgelöst, aber der Beobachter hebt es nicht auf.
Ich verwende ein externes Skript, das eine Magento-Sitzung lädt.
In diesem Skript, ich lade Produkte und greifen eine Reihe von Eigenschaften. Das einzige Problem ist, dass getFinalPrice()
nicht die Katalogregeln anwendet, die für das Produkt gelten.
Ich mache alles, was ich weiß, um die Sitzung einzustellen, auch eine Menge Dinge, die ich für überflüssig halte. Nichts scheint diese Regeln anzuwenden.
Hier ist ein Testskript:
require_once "app/Mage.php";
umask(0);
$app = Mage::app("default");
$app->getTranslator()->init('frontend'); //Probably not needed
Mage::getSingleton('core/session', array('name'=>'frontend'));
$session = Mage::getSingleton("customer/session");
$session->start(); //Probably not needed
$session->loginById(122);
$product = Mage::getModel('catalog/product')->load(1429);
echo $product->getFinalPrice();
Einsicht geschätzt wird.
In welches Ereignis möchten Sie sich einklinken und wie sieht Ihre config.xml für den Event Observer aus? –