Hallo liebe Leute, ich habe ein Problem, bei dem ich mir schon seit 2 Tagen mit Pluginselbstprogrammierung den Kopf zerbreche. Ist folgendes möglich: Der Besucher/Kunde des Shops kann während des Bestellvorganges (im 1. Schritt Warenkorb) zu den Artikeln im Warenkorb zusätzliche Felder ausfüllen (die es standardmäßig noch nicht gibt). Ich würde dafür die verschiedenen Attribute-Tabellen nutzen (s_order_attributes, s_order_basket_attributes, s_order_details_attributes), finde aber nirgends einen Hinweise darauf, wie das zu machen ist. Ich habe es jetzt schon mit dem Schuhgrößen-Plugin probiert, aber es geht eben darum, dass der Kunde die Felder ausfüllen soll, nicht der Shopbetreiber. Ich habe dieses Beispiel probiert: https://gist.github.com/sthamann/5343247 - wobei ich hier nicht weiß, wie ich Einträge aus eigenen Formularfeldern aus dem Warenkorb im Plugin auslesen kann (welcher Event/Hook zu nutzen ist und wie ich die Daten speicher). Mein bisher funktionierendster Versuch war der hier: $this-\>subscribeEvent( 'Shopware\_Modules\_Basket\_UpdateArticle\_FilterSqlDefault', 'ShopwareModulesBasketUpdateArticleFilterSqlDefault' );
und: public function ShopwareModulesBasketUpdateArticleFilterSqlDefault(Enlight\_Event\_EventArgs $args) { if (array\_key\_exists('o\_attr\_1', $\_REQUEST)) { $id = $args-\>getId(); $sql = 'UPDATE `s_order_basket_attributes` SET `ordermod_firmennummer` = "' . $\_REQUEST['o\_attr\_1'] . '" WHERE `basketID` = "' . $id . '";'; Shopware()-\>Db()-\>query($sql); } }
Das speichert einen gewünschten Wert (getriggert, wenn man die Menge im Warenkorb ändert) in die Tabelle s_order_basket_attributes, wenn ich die Bestellung allerdings ausführe, verschwindet dort der Eintrag und erscheint nirgendwo anders. Hat jemand eine Idee, wie ich diese Funktionalität in Shopware verwirklichen kann? Für hilfreiche Tipps oder Denkanstöße sehr dankbar: Jay.