質問

私にはオブザーバーがいます sales_order_place_after そして、これは機能しています。私は今 注文を生成します 私自身、そしてこのイベントをトリガーしたいのですが、それは私のオブザーバーに到達しません。

ここで何か問題があります:

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

または、外部スクリプトファイルから何か特別なことをする必要がありますか?私のスクリプトのように見えます これ.

役に立ちましたか?

解決

私の推測は正しかったようです。

構成XMLファイルでは、1つの範囲(FrontEndなど)でイベントを観察するだけです。ただし、スクリプトは別の範囲で実行されています。設定ファイルのグローバルセクションにイベントを配置すると、これに対応する必要があります。

他のヒント

私の外部スクリプトでイベントが起動されなかったのと同じ問題に遭遇しました。
の観察者の範囲に応じて 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帰属
所属していません magento.stackexchange
scroll top