2011-11-28 20 views
5

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?

+0

especifique qué método de pago usa exactamente –

+0

Mi ejemplo hace referencia al módulo estándar de PayPal de Magento v1.5.1.0 – FlyingM

+0

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 –

Respuesta

0

Descubrí una forma de evitar el problema: Parece que no hay eventos en Magento que correspondan con los pagos recibidos en PayPal. Una posible solución podría ser proporcionar una URL IPN que active una secuencia de comandos tan pronto como se confirme el pago, pero logré redirigir al cliente a mi tienda, así que no tuve que hacer eso.

En la configuración de perfil de la cuenta de PayPal en "configuración del sitio web", hay una opción llamada "redirección automática". Si esta opción está habilitada y se ingresa una URL, el cliente será reenviado automáticamente a esa URL. Al principio pensé que esto no me ayudaría porque, como he dicho, hay varias tiendas web involucradas que tendrán su propia URL individual y no se puede especificar más de una. Sin embargo, si se pasa una URL de retorno al contactar a PayPal, se anulará la que se especifica en la configuración del perfil y dado que el módulo Magento lo hace de manera predeterminada, solo tuve que ingresar una URL aleatoria en el campo de texto y habilitar la opción Ahora, los clientes son redirigidos a mi tienda cuando hacen un pedido y pagan a través de PayPal.

Cuestiones relacionadas