J'ai enregistré un observateur de l' sales_order_save_commit_after
événement pour être averti lorsqu'une nouvelle commande arrive. Cela fonctionne bien mais l'événement est déclenché deux fois de suite avec la même commande.
Mon config.xml
<sales_order_save_commit_after>
<observers>
<unique_sales_order_save_commit_after>
<type>singleton</type>
<class>mymodule/observer</class>
<method>export</method>
</unique_sales_order_save_commit_after>
</observers>
</sales_order_save_commit_after>
Comment puis-je vérifier si c'est la première fois ou quel autre événement serait mieux?
Mise à jour
J'ai également essayé l' sales_order_invoice_pay
événement (trouvé sur SO ) mais ce n'est pas déclenché pour moi.
la source
sales_order_save_after
, mais je vais l'utilisersales_order_place_after
car il n'est pas déclenché à nouveau par des changements de back-end.Si quelqu'un a toujours un problème avec cela, j'ai découvert comment magento gère cela.
Dans la méthode appelée, vous pouvez prendre la commande et définir un indicateur dessus.
Ex:
Dans l'application / code / core / Mage / Cataloginventory / Model / Observer.php
fonction subtractQuoteInventory (Varien_Event_Observer $ observer)
est un exemple de la façon dont magento gère cela.
la source
J'ai changé l'événement en
sales_order_place_after
. Cela fonctionne bien.la source
Le code Bove fonctionne pour moi.
la source