2012-06-26 6 views
7

Ich habe gerade angefangen, ein Magento-Modul zu erstellen, das den gesamten Magento-Checkout-Prozess umgeht und stattdessen die Warenkorb-Details per XML-RPC an eine dritte Fulfillment-Firma sendet."Weiter zur Kasse" Event für Magento?

Nicht überall schnell und könnte ein wenig Anleitung verwenden. Mein Verständnis ist, dass ich das Modul mit einem Beobachter basierend auf dem Ereignis erstellen sollte, das durch das Auschecken ausgelöst wird. Das Problem ist, dass ich nicht herausfinden kann, welches Ereignis das wäre. Ich habe die ganze riesige Liste hier durchgegangen;

http://www.nicksays.co.uk/magento_events_cheat_sheet/

Ich habe versucht;

checkout_submit_all_after - Feuer nach Auftrag

checkout_cart_add_product_complete erfolgreich verarbeitet - Brände nach Produkt

checkout_cart_save_before in den Warenkorb gelegt - Feuer nach Produkt

checkout_type_onepage_save_order in den Warenkorb gelegt - kann nicht das überhaupt abzufeuern

checkout_onepage_controller_success_action - wird ausgelöst, nachdem die Bestellung erfolgreich verarbeitet wurde

Ich weiß nicht, ob dies bedeutet, ich muss ein benutzerdefiniertes Ereignis erstellen oder wenn es eine ganz andere und viel bessere Alternative zu dem, was ich tue, ist. Aufbauen und Senden der XML Ich werde eine andere Frage hinterlassen (zu Beginn zu erkennen, dass ich meine Hände hier ziemlich voll haben kann), aber alle Tipps dort auch dankbar zu schätzen.

Danke für jede Hilfe.

Antwort

20

controller_action_predispatch_checkout_onepage_index sollte das Ereignis sein, das Sie suchen. Alle Controller erben die preDispatch-Methode, die ein generisches Ereignis für Predispatch auslöst, und ein bestimmtes Ereignis, das auf dem angeforderten Aktionspfad basiert. Der von Ihnen gewünschte Controller befindet sich im Modul checkout und heißt onepage mit einer Standardaktion von index.

Bewertung Mage_Core_Controller_Varien_Action::preDispatch(), um den entsprechenden Code zu sehen

+0

Hervorragend - Antwort sehr geschätzt. Ich hatte angefangen zu denken, dass, da der Knopf für das Auschecken gerade ein Onclick-Ereignis hatte, ich das ändern und das XML verarbeiten und umleiten konnte, indem ich prozedurales PHP verwendete. Das hätte aber alles aus dem Magento-System genommen. Dies hat mein Lernen einen weiteren Schritt vorwärts gebracht! – McNab

+0

Ist das Einseiten-Controller-Ereignis generisch genug, dass es nicht umgangen werden kann? Zum Beispiel verwende ich eine Erweiterung OnePageCheckout von IWD und ich kann nicht sehen, dass dieses Ereignis ausgelöst wird. Gibt es eine "generische" Option? – clime

Verwandte Themen