Eigene Funktion für addArticleAction()

Ich stehe eben völlig auf dem Schlauch. Würde gern für addArticleAction() eine eigene Funktion schreiben bzw. die bestehene ersetzen. Will jetzt aber nicht unbedingt den kompletten Checkout Controller ersetzen. Gibt es eine Möglichkeit, nur die Action durch eine eigene Funktion zu ersetzen?

 

Hallo @R4M‍,

du kannst eine Action komplett ersetzen, das ist möglich.
Ich frage nur nochmal zur Sicherheit: Bist du dir absolut sicher, dass du die Action überschreiben willst?
Ggf. gibt es auch einen besseren Weg, die Action bspw. nur zu ergänzen.

Solltest du die Action komplett ersetzen wollen, würde ich dir diesen Weg empfehlen:
Du registrierst dich auf das Event Enlight_Controller_Action_Frontend_Checkout_AddArticle.
Dieses Event wird aufgerufen  bevor  die originale Action ausgeführt wurde- sämtlichen Code, den du hier also nun aufrufst, wird ebenfalls vor der originalen Action ausgeführt.

Da es sich hierbei um ein „NotifyUntil“ Event handelt, kannst du per „return true;“ den Aufruf der originalen Action verhindern, sodass nur dein eigener Code aufgerufen wird.

War das soweit hilfreich?

Gruß,
Patrick  Shopware

1 „Gefällt mir“

Hallo Patrick,

ja für ein Plugin muss diese Action überschrieben bzw. erweitert werden. Wenn es eine Möglichkeit gibt, die Action auch nur zu erweitern, dann wäre das natürlich noch besser. So nach dem Motto:

public function addArticleAction() {
... meine Funktion ...
... Shopware Code ...
}

Ich schau mir das noch mal näher an. Danke für die Info!

@R4M schrieb:

Hallo Patrick,

ja für ein Plugin muss diese Action überschrieben bzw. erweitert werden. Wenn es eine Möglichkeit gibt, die Action auch nur zu erweitern, dann wäre das natürlich noch besser. So nach dem Motto:

public function addArticleAction() {
… meine Funktion …
… Shopware Code …
}

Ich schau mir das noch mal näher an. Danke für die Info!

Das ist doch EXAKT die Lösung die @Patrick Stahl gepostet hat… 

Ja, nach einigen Versuchen und Tests ist es auch das richtige und mein Plugin nimmt erste Formen an :slight_smile: