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
-
Die HTML Input variable wird seperat von der Datenbank in den Warenkorb geschrieben (kann man die Variable irgendwie abfangen?)
-
Gibt es ein Event, dass zwischen erstellen des Artikel in der Datenbank und abrufen des Warenkorbtextes, in das ich mich einhaengen koennte?
-
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));
}
}
}