Recientemente establecí algunos scripts automáticos para ayudarme a administrar los pedidos entrantes para una tienda de Magento mediante el uso de observadores y eventos de Magento. Mi problema es tratar la cuestión de cuándo se coloca y guarda exactamente un pedido en el sistema según el tipo de pago seleccionado.Eventos del módulo de Magento PayPal
Por ejemplo: si alguien simplemente elige el prepago, el pedido se guarda inmediatamente y el cliente se reenvía automáticamente a una página de éxito, por lo que no hay problemas hasta el momento.
Si un cliente paga a través de Paypal, la situación es completamente diferente. Después de ser redirigido a PayPal, iniciar sesión en la cuenta y confirmar el pago, el cliente no se redirige a la tienda de Magento. Puede hacer clic en un enlace para regresar allí, que también lo reenviará a la página de éxito, pero seguramente no todos lo harán y el problema es que el evento observador que uso solo ejecuta el código si el usuario aterriza en esa página. (El evento con el que estoy trabajando es "checkout_Onepage_Controller_Success_Action").
Por lo tanto, necesito saber de dónde obtiene Magento la información de si un pago de PayPal fue exitoso, se canceló o lo que sea. Miré a través de algunos de los archivos de controlador de PayPal en/app/code/core/Mage/Paypal/controladores/y lo único que parecía cercano a una posible solución fue la función successAction() en StandardController.php. Sin embargo, esta función también parece activarse solo cuando un cliente elige volver a la tienda de Magento para que no me ayude.
¿Alguien tiene alguna experiencia con ese problema?
especifique qué método de pago usa exactamente –
Mi ejemplo hace referencia al módulo estándar de PayPal de Magento v1.5.1.0 – FlyingM
intente enlazar para ordenar eventos relacionados con objetos en lugar de eventos del controlador y cierre la sesión de todos los eventos en un archivo de texto que se desencadenan dentro de su proceso, entonces puede elegir lo que es apropiado –