Pregunta

Tengo un observador para sales_order_place_after Y esto está funcionando. Ahora yo soy Generando un pedido Yo y me gustaría activar este evento, pero no llega a mi observador.

¿Es algo mal aquí?

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

¿O necesito hacer algo especial desde un archivo de script externo? Mi guión se ve como este.

¿Fue útil?

Solución

Parece que mi suposición fue correcta.

En su archivo de configuración XML solo está observando el evento en un alcance (por ejemplo, frontend). Sin embargo, su script se está ejecutando en un alcance diferente. Colocar el evento en la sección global de su archivo de configuración debe encargarse de esto.

Otros consejos

Encontré el mismo problema en el que el evento no fue despedido en mi script externo.
Dependiendo del alcance de su observador en el config.xml tienes que configurar el Área de eventos.

require_once 'app/Mage.php';
Mage::init();

Mage::app()->addEventArea('global'); // e.g. 'global', 'frontend', 'adminhtml'
...

Ver también Este artículo.

Reemplazar el evento a sales_order_save_after, esto debe activarse desde frontend, administrador y scripts personalizados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top