Registré un observador para sales_order_save_commit_after
que se le notificara el evento cuando llega un nuevo pedido. Esto funciona bien, pero el evento se dispara dos veces seguidas con el mismo orden.
Mi 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>
¿Cómo puedo verificar si es la primera vez o qué otro evento sería mejor?
Actualizar
También probé el sales_order_invoice_pay
evento (que se encuentra en SO ) pero eso no se activa para mí.
fuente
sales_order_save_after
funciona, pero lo usaré,sales_order_place_after
ya que no se activa nuevamente por los cambios de back-end.Si alguien todavía tiene problemas con esto, descubrí cómo magento se ocupa de esto.
En el método llamado, puede tomar el orden y establecer una bandera en él.
Ex:
En app / code / core / Mage / Cataloginventory / Model / Observer.php
función subtractQuoteInventory (Varien_Event_Observer $ observer)
es un ejemplo de cómo magento trata esto.
fuente
Cambié el evento a
sales_order_place_after
. Esto funciona bienfuente
El código Bove está funcionando para mí.
fuente