Frontend Controller innerhalb Plugin abrufen

Guten Tag,

vielen Dank fürs Lesen und Antworten…

Ich habe mir gerade einen kleinen Controller gebaut um über die SessionID eines Warenkorbes aus einem GET Parameter die Artikel zu laden, zu prüfen ob es diese noch gibt
und anschließend sollen diese Artikel dem Warenkorb hinzugefügt werden. Ich habe mir über den Router den Link zu dem Frontend Controller zusammen gebaut, allerdings wird dieser Link natürlich nie aufgerufen. Jetzt meine Frage der Aufruf des Controllers “Checkout” mit der Action “addArticle” muss doch irgendwie anders gehen?
Oder sehe ich grade den Wald vor lauter Bäumen nicht…

    public function indexAction(){
        # no template
        Shopware()->Plugins()->Controller()->ViewRenderer()->setNoRender();

        $basket_session_id = $this->Request()->getParam('warenkorb');
        $basket = Shopware()->Models()->getRepository('Shopware\Models\Order\Basket')->findBy(array('sessionId' => $basket_session_id));

        if (is_array($basket)) {
            foreach ($basket as $basket_article) {
                $article = Shopware()->Models()->getRepository('Shopware\Models\Article\Article')->find($basket_article->getId());
                if ($article instanceof Shopware\Models\Article\Article) {
                    $this->Front()->Router()->assemble(array('module' => 'frontend', 'controller' => 'Checkout',
                        'action' => 'addArticle', 'sAdd' => $basket_article->getOrderNumber(), 'sQuantity' => $basket_article->getQuantity()));
                }
            }
        }

        # redirect cart
        #$this->redirect(Shopware()->Front()->Router()->assemble(array('controller' => 'Checkout', 'action' => 'cart')));
    }

 

Du solltest hier die Methode aus der Klasse sBasket aufrufen um sie zum Warenkorb hinzuzufügen. Wie das funktioniert kannst du die im Checkout Controller Methode addArticleAction anschauen.

Vielen Dank,

so gehts!

Hey,

wie war hier nun die konkrete Lösung ? :slight_smile:

mfg 

Marc