2011-11-15 4 views
7

Estoy viendo que el envío de eventos de Magento es un área bastante frustrante. Supongo que mucha de esa frustración se debe, como de costumbre, a la falta de documentación.Evento de Magento enviado siempre cuando la orden se realiza correctamente?

Me gustaría que mi código se active en varias etapas cuando un visitante atraviesa un sitio. Así que puse algo de depuración en Mage :: dispatchEvent, y caminé por el sitio para ver qué eventos se disparan en cada etapa. Hay mucho!

dos lugares en los que me interesan son:

  • cuando el visitante había seleccionado una dirección de facturación y se trasladó a la siguiente etapa del proceso de pago.

  • cuando un usuario realiza un pedido correctamente

Para la dirección de facturación uno, los eventos que vi ser despedido para que se parezcan relevantes son:

controller_action_predispatch_checkout_onepage_saveBilling 
controller_action_postdispatch_checkout_onepage_saveBilling 

El 'pre' y " post 'me sugirió que en realidad hay un evento' checkout_onepage_saveBilling ', pero no lo hay, así que mi primera pregunta es por qué' pre 'y' post '?

Para el fin de éxito, los eventos que se ven bien son:

checkout_onepage_controller_success_action 
checkout_multishipping_controller_success_action 

Mi segunda pregunta es se dispararán estos eventos para todos los métodos de pago? Por ejemplo, si usa Google Checkout o PayPal (redirección estándar), ¿se desencadenará el evento y en qué momento? Al regresar al sitio de PayPal? De ser así, se plantearía la pregunta de si el usuario no regresa después de completar el pago.

Gracias por cualquier ayuda.

+0

Hola. ¿Esto ha sido respondido? ¿Hay algo más que podamos proporcionar para que usted acepte una de las siguientes respuestas? – Morgon

Respuesta

6

El evento predispatch se activará antes de que se llame a la acción, el evento postdispatch se activará después de que se haya completado la acción. Por lo tanto, si necesita saber cuál fue el resultado de la acción, debe usar el evento postdispatch.

Para pedidos exitosos, revise el evento checkout_submit_all_after.

Si no lo ha visto, https://www.nicksays.co.uk/magento-events-cheat-sheet-1-9/, es una referencia útil para los eventos de Magento.

13

Lamentablemente, me he dado cuenta de que checkout_submit_all_after no se activa para los pedidos de Paypal Express.

A menos que modifique los modelos de Paypal para agregar esto (o tal vez enganchándolos en eventos que pueden disparar, aún no lo he comprobado), creo que checkout_onepage_controller_success_action puede ser el único evento con el que puede contar para cada tipo de orden.

+0

Hola, ¿alguna vez resolvió el problema con Paypal Express? –

Cuestiones relacionadas