2016-07-12 7 views
0

基本的にステータスが処理に変わった後でのみ、注文にクーポンを適用したいと考えています。デバッグ後、sales_order_place_afterイベントでオブザーバがフ​​ァイルapp/code/core/Mage/SalesRule/Model/Observer.phpで呼び出され、機能がsales_order_afterPlaceであることがわかりました。Magento - 注文変更ではなくステータス変更後に適用されるクーポン

このオブザーバーをオーバーライドして、注文のステータスを確認するための条件を追加してからクーポンを先に進めたいとします。

さらに、​​3210をオーバーライドして、イベントオーダーステータスの変更またはオーダープレイスイベントの代わりにオーダーセーブイベントを使用したいとします。

答えて

0

これは私がそれを仕上げた方法です。私は以下のコードを追加

<depends> 
    <Mage_SalesRule/> 
</depends> 

と私の​​3210に:私が追加私のetc/modules/Namespace_Package.xml

はとタグを依存

<events> 
    <sales_order_place_after> 
     <observers> 
      <salesrule> 
       <type>disabled</type> 
      </salesrule> 
     </observers> 
    </sales_order_place_after> 
    <sales_order_save_after> 
     <observers> 
      <salesrule> 
       <class>salesrule/observer</class> 
       <method>sales_order_afterPlace</method> 
      </salesrule> 
     </observers> 
    </sales_order_save_after> 
</events> 

及びモジュールタグに私はオブザーバーを上書きするためにこの方法を持っていました:

<models> 
    <modulename> 
     <class>Namespace_Package_Model</class> 
    </modulename> 
    <salesrule> 
     <rewrite> 
      <observer>Namespace_Package_Model_Salesrule_Observer</observer> 
     </rewrite> 
    </salesrule> 
</models> 
関連する問題