Zusaetzliches Artikelatribut im Warenkorb anzeigen lass

Moin, 

 

ich habe auf der Detail-Seite ein Input Feld eingebaut, welches als Artikelkommentar dienen soll. Das funktioniert auch so wie soll nur jetzt moechte ich gerne das in der Datenbank gespeicherte Attribut auch im Warenkorb anzeigen, wenn dieser sich automatisch oeffnet. Problem ist, dass im Moment wenn der Artikeltext im Warenkorb geladen wird, die Attribut noch nicht in der Datenbank gespeichert wurde (ist ja auch PostDispatch). Mir sind spontan drei Ideen gekommen, wie man das umsetzen koennte. Bitte Meinungen oder andere Ideen

  1. Die HTML Input variable wird seperat von der Datenbank in den Warenkorb geschrieben (kann man die Variable irgendwie abfangen?)

  2. Gibt es ein Event, dass zwischen erstellen des Artikel in der Datenbank und abrufen des Warenkorbtextes, in das ich mich einhaengen koennte?

  3. Das Automatische ausfahren des Warenkorb wird deaktiviert, da wenn man den manuell oeffnet der Wert schon in der Datenbank ist.

 

 

Vielen Dank fuer euren Support, anbei mein Code. 

Session()->get( "sessionId" );
        $this->connection = $connection;
        $basketID = $connection->query("SELECT id FROM s_order_basket WHERE sessionID = '$session'ORDER BY id DESC")->fetch(\PDO::FETCH_COLUMN);
        $this->basketID = $basketID;
        $this->session=$session;
    }

    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatchSecure_Frontend_Checkout' => 'onGetControllerPath'
        ];
    }

    public function onGetControllerPath(\Enlight_Event_EventArgs $args){
        $articleComment = $args->getSubject()->Request()->getParam('dsIndividuallaenge');
        if ($this->basketID and $articleComment) {
            $sql=$this->connection->prepare("UPDATE s_order_basket_attributes SET attribute1 = :name WHERE s_order_basket_attributes.id = :row");
            $sql->execute(array('name' => $articleComment, 'row' =>$this->basketID));
        }

    }
}

 

Hallo,

mit deiner „Lösung“ überschreibst du ja aber jedes Mal den Wert, der vorher zu dem Artikel eingegeben wurde? 

Sprich leg ich diesen Artikel https://www.shopwaredemo.de/liam-blue-aster-205 bei dir mit Kommentar 1 in den Warenkorb und möchte ihn danach nochmal mit einem anderen Kommentar (Kommentar 2) in den Warenkorb legen, ist Kommentar 1 dann ja überschrieben und weg.

Ebenso kann man bei dir den Kommentar auch nicht noch einmal ändern.

Ich würde die „Lösung“ also definitiv noch einmal überdenken oder einfach gleich eines der Plugins für exakt diesen Zweck aus dem Shopware Community Store dafür nutzen.

Ebenso würde ich die Information auch nur im richtigen Warenkorb anzeigen lassen und nicht im kleinen Vorschau - Warenkorb / OffCanvas - Warenkorb, alleine schon aus Platz- und Übersichtlichkeitsgründen.

Grüße

Sebastian

Ich gebe dir absolut Recht mit deinen Ausfuehrungen. Weil fuer mich der Weiterbildungsfaktor eine essentielle Rolle spielt mag ich lieber kein Plugin kaufen (aus dem Lerne ich ja nicht so viel, ne :-)). Ich werde mich mit deinen Anmerkungen aufjedenfall nochmal befassen. 

 

Vielen Dank und beste Gruesse