Вопрос

У меня есть наблюдатель за sales_order_place_after И это работает. Теперь я генерируя заказ Я и хотел бы вызвать это событие, но оно не доходит до моего наблюдателя.

Здесь что -то не так:

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

Или мне нужно сделать что -то особенное из внешнего файла сценария? Мой сценарий выглядит как это.

Это было полезно?

Решение

Похоже, мое предположение было правильным.

В вашем файле конфигурации XML вы наблюдаете за событием только в одной области (например, Frontend). Однако ваш сценарий работает в другой области. Размещение события в глобальный раздел вашего файла конфигурации должен позаботиться об этом.

Другие советы

Наткнулся на ту же проблему, когда мероприятие не было запущено во внешнем сценарии.
В зависимости от объема вашего наблюдателя в config.xml Вы должны установить Область мероприятия.

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

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

Смотрите также эта статья.

Заменить событие на sales_order_save_after, это должно быть вызвано из сценариев Admin и пользовательских сценариев.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top