Methode des Checkout Controllers erweitern

Hallo zusammen,
es gibt zwar einige Beiträge zum Thema Controller erweitern, doch eine Antwort auf meine Frage habe ich leider noch nicht gefunden.
Vielleicht könnt Ihr mir helfen:
Ich möchte eine ganz einfache Anforderung lösen:
Nach dem Aufruf der Methode “getBasket” des checkout-Controllers soll der Inhalt des Warenkorbes in die Session geschrieben werden. Das war´s. :slight_smile:

Direkt in den Controller geschrieben funktioniert alles einwandfrei:

 public function getBasket(){
$basket = $this->basket->sGetBasket();
....
$this->session["customCart"] = $basket;
}

Aber ich möchte natürlich nicht den Original-Controller verändern, sondern einen Subscriber verwenden.
Kann ich das auch über einen “Enlight_Controller_Action_PostDispatchSecure_Frontend_Checkout” -Subscriber lösen?
Und wenn ja, wie kann ich dort auf die Funktion “getBasket” zugreifen, um eine Session-Variable am Ende zu erzeugen?

Irgendwie habe ich da eine Blokade im Verständdnis, denn eine Methode z.B. von einer Rest-Api-Klasse könnte ganz einfach so erweitert werden:

class neuer_Checkout extends Shopware_Controllers_Frontend_Checkout{
  public function getBasket(){
    $basket = parent::getBasket();
    $this->session["customCart"] = $basket;
    return $basket;
  }
}

Vielen Dank für Eure Hilfe!
Frank

Hallo,

versuche dich mal per PostDispatch in den Checkout zu hängen und mit den Modulen zu arbeiten:

 'onPostDispatchSecureCheckout'
            // ...
        ]
    }
    
    
    /**
     * @param \Enlight_Event_EventArgs $eventArgs
     */
    public function onPostDispatchSecureCheckout(\Enlight_Event_EventArgs $eventArgs)
    {
        // ...
        Shopware()->Session['customCart'] = Shopware()->Modules()->Basket()->sGetBasketData();
        // ...
    }

/ **....** /

?>

Hilft dir das weiter?

Viele Grüße,
Alex

Nach dem Aufruf der Methode „getBasket“ des checkout-Controllers soll der Inhalt des Warenkorbes in die Session geschrieben werden. Das war´s. 

Seltsame Anforderung. Evtl. ist der Ansatz ja schon falsch…