2016-07-12 4 views
0

Ich möchte den Coupon grundsätzlich erst dann auf einen Auftrag anwenden, wenn sich der Status in Bearbeitung ändert. Nach dem Debuggen habe ich erfahren, dass unter sales_order_place_after ein Beobachter in der Datei app/code/core/Mage/SalesRule/Model/Observer.php mit der Funktion sales_order_afterPlace aufgerufen wird.Magento - Coupon, der nach Statusänderung und nicht auf Bestellung platziert wird

Ich möchte diesen Beobachter überschreiben, um eine Bedingung hinzuzufügen, um den Status der Bestellung zu überprüfen und erst dann mit dem Coupon fortzufahren.

Darüber hinaus möchte ich die config.xml überschreiben, Ereignisstatusänderung oder Bestellung speichern Ereignis anstelle von Bestellung Ort Ereignis verwenden.

Antwort

0

Nun, das ist, wie ich es ausgearbeitet habe. a hängt Tag als

In meinem etc/modules/Namespace_Package.xml ich hinzugefügt:

<depends> 
    <Mage_SalesRule/> 
</depends> 

und in meinem config.xml ich den folgenden Code hinzugefügt:

<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> 

und in Modul-Tag hatte ich den Betrachter auf diese Weise außer Kraft zu setzen :

<models> 
    <modulename> 
     <class>Namespace_Package_Model</class> 
    </modulename> 
    <salesrule> 
     <rewrite> 
      <observer>Namespace_Package_Model_Salesrule_Observer</observer> 
     </rewrite> 
    </salesrule> 
</models> 
Verwandte Themen