我有一个观察者 sales_order_place_after 这正在起作用。现在我 生成订单 我本人并且想触发这一事件,但没有得到我的观察者。

这里有问题:

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

还是我需要从外部脚本文件中做一些特别的事情?我的脚本看起来像 这个.

有帮助吗?

解决方案

看来我的猜测是正确的。

在您的配置XML文件中,您仅在一个范围内观察事件(例如前端)。但是,您的脚本正在以不同的范围运行。将事件放入配置文件的全局部分应考虑到这一点。

其他提示

遇到了同样的问题,即我的外部脚本未触发事件。
取决于观察者的范围 config.xml 您必须设置 事件区域.

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

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

也可以看看 本文.

将事件替换为 sales_order_save_after, ,应从前端,管理和自定义脚本触发。

许可以下: CC-BY-SA归因
scroll top