Bestellung vor dem Speichern prüfen und ggf. Fehler melden

Hallo,

ich arbeite zur Zeit an ein kleines Plugin, welches ein Feld beim überprüfen (Confirm) der Bestellung hin zufügt. Nun will ich das Feld bevor die Bestellung gespeichert wird, überprüfen und falls es leer ist oder ein falchen Wert hat, den Benutzer zurück zu Confirm Seite schicken mit einer Fehler Meldung.

Das klappt einfach nicht, ich hab schon mehrere Events ausprobiert und jedesmal wenn der Kunde weitergeleitet wird, ist der Warenkorb leer und die Bestellung gespeichert :confused:

Ich benutze zur Zeit folgende Events:

Enlight_Controller_Action_PostDispatch_Frontend_Checkout

Um die ausgabe zu erzeugen.

Und dieses Event um die Daten zu überprüfen und den Kunden zurück zuschicken. Wie erwähnt, klappt das nicht wie geplant.

Enlight_Controller_Action_Frontend_Checkout_Finish

Folgende Methode wird benutzt um den Kunden zurück zuschicken:

				$subject->forward(
					'confirm',
					'checkout',
					'frontend',
					[
						'example' => 'lorem ipsum'
					]
				);

Vielleicht kann mir ja jemand weiter helfen?

Push…

Die Funktion, die du als Listener für das Event …

Enlight_Controller_Action_Frontend_Checkout_Finish

… registriert hast, muss einen Rückgabewert liefern, der nicht NULL ist,
oder die erhaltenen Enlight_Event_EventArgs als verarbeitet markieren …

$args-≻setProcessed(true);

… damit …

Shopware_Controllers_Frontend_Checkout::finishAction()

… nicht mehr aufgerufen wird.

Du kannst die Logik für die Dispatch-Events durchlesen in dieser Funktion:

./engine/Library/Enlight/Controller/Action.php » Enlight_Controller_Action::dispatch()

Viele Grüße, 

Mario Dorn