Frage

Ich habe einen Beobachter für sales_order_place_after Und das funktioniert. Jetzt bin ich eine Bestellung erzeugen Ich selbst und möchte dieses Ereignis auslösen, aber es kommt nicht zu meinem Beobachter.

Stimmt hier etwas nicht:

Mage::dispatchEvent('sales_order_place_after', array('order' => $service->getOrder()));

Oder muss ich etwas Besonderes aus einer externen Skriptdatei tun? Mein Drehbuch sieht aus wie Dies.

War es hilfreich?

Lösung

Sieht so aus, als wäre meine Vermutung richtig.

In Ihrer Konfiguration XML -Datei beobachten Sie das Ereignis nur in einem Bereich (z. B. Frontend). Ihr Skript wird jedoch in einem anderen Bereich ausgeführt. Das Platzieren des Ereignisses in den globalen Abschnitt Ihrer Konfigurationsdatei sollte sich darum kümmern.

Andere Tipps

Stieß auf das gleiche Problem, bei dem das Ereignis in meinem externen Skript nicht abgefeuert wurde.
Abhängig vom Umfang Ihres Beobachters in der config.xml Sie müssen die festlegen Eventbereich.

require_once 'app/Mage.php';
Mage::init();

Mage::app()->addEventArea('global'); // e.g. 'global', 'frontend', 'adminhtml'
...

Siehe auch Dieser Artikel.

Ersetzen Sie das Ereignis an sales_order_save_after, Dies sollte aus Frontend-, Administrator- und benutzerdefinierten Skripten ausgelöst werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top