Ручное изночное событие не работает
-
16-10-2019 - |
Вопрос
У меня есть наблюдатель за 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 и пользовательских сценариев.