2011-11-15 15 views
7

Znalazłem wysyłkę zdarzeń Magento to dość frustrujące miejsce. Przypuszczam, że wiele z tej frustracji, jak zwykle, wynika z braku dokumentacji.Zdarzenie Magento jest zawsze wysyłane po pomyślnym złożeniu zamówienia?

Chciałbym, aby mój kod był uruchamiany na różnych etapach, gdy odwiedzający przemieści się przez witrynę. Więc umieściłem trochę debugowania w Mage :: dispatchEvent i przeszedłem przez witrynę, aby zobaczyć, jakie zdarzenia są uruchamiane na każdym etapie. Tam jest dużo!

dwóch miejscach Jestem zainteresowana to:

  • gdy użytkownik wybrał adres rozliczeniowy i przeszedł do kolejnego etapu procesu zamawiania.

  • gdy użytkownik pomyślnie złoży zamówienie

Dla adresu rozliczeniowego jednym, wydarzenia, które widziałem wyrzuceniu które wyglądają istotne są:

controller_action_predispatch_checkout_onepage_saveBilling 
controller_action_postdispatch_checkout_onepage_saveBilling 

do „sprzed” i " post "zasugerował mi, że faktycznie istnieje zdarzenie" checkout_onepage_saveBilling ", ale tak nie jest, więc moje pierwsze pytanie brzmi: dlaczego" pre "i" post "?

Dla pomyślnego kolejności zdarzeń, które wyglądają dobre są:

checkout_onepage_controller_success_action 
checkout_multishipping_controller_success_action 

Moje drugie pytanie brzmi czy te zdarzenia być opalane dla wszystkich metod płatności? Na przykład, jeśli korzystasz z Google Checkout lub PayPal (standardowe przekierowanie), czy wydarzenie się rozpali iw jakim momencie? Po powrocie na stronę z serwisu PayPal? Jeśli tak, to masz pytanie, co jeśli użytkownik nie zwróci po zakończeniu płatności.

Dzięki za pomoc.

+0

Cześć. Czy to zostało odebrane? Czy jest coś jeszcze, co moglibyśmy zapewnić, aby zaakceptować jedną z poniższych odpowiedzi? – Morgon

Odpowiedz

6

Zdarzenie predispatch zostanie uruchomione przed wywołaniem akcji, zdarzenie postdispatch zostanie uruchomione po zakończeniu działania. Jeśli więc chcesz wiedzieć, jaki był wynik działania, powinieneś użyć zdarzenia postdispatch.

W przypadku pomyślnych zamówień, zamówienie na checkout_submit_all_after.

Jeśli go nie widzisz, https://www.nicksays.co.uk/magento-events-cheat-sheet-1-9/ jest przydatnym odnośnikiem do wydarzeń Magento.

13

Niestety, zauważyłem, że checkout_submit_all_after nie uruchamia zamówień Paypal Express.

Brak modyfikacji modeli Paypal, aby to dodać (lub być może podpięcie do wydarzeń, które mogą wystrzelić - jeszcze tego nie sprawdziłem), myślę, że checkout_onepage_controller_success_action może naprawdę być jedynym wydarzeniem, na które możesz liczyć w każdym typie porządku.

+0

Witam, czy kiedykolwiek rozwiązałeś problem z Paypal Express? –

Powiązane problemy