El evento activado por manual no funciona
-
16-10-2019 - |
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.
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.