Spalten zu s_order_basket hinzufügen

Uh, hier ist das Deutsche Forum, sorry hab die Frage auch in das Englische gepostet. Hallo, ich habe zwar schon öfters ein Projekt mittels Shopware realisiert jedoch bin ich aktuell etwas überfordert. Den Code selbst verstehe ich denke ich jedenfalls, nunja ich schildere mal was ich vor habe. Der Kunde soll in Textareas und durch wählen der Font und Fontsize einen Text eingeben können und diesen auch gestalten - bis jetzt kein Problem. Diese Daten muss ich aber auch in der Datenbank speichern. Nun habe ich dies versucht mittels eine eigenen Tabelle wobei die Zuordnung dann relativ schwierig ist (checkout Controller - addArticleAction()). Die Daten werden wie gewollt in der Datenbank gespeichert nur bei der Ausgabe gibt es dann eben Probleme. Nun dachte ich mir, wieso nicht gleich die Daten mittels der Funktion sCreateTemporaryOrder in die Tabelle s_order_basket speichern. Nun habe ich meine benötigen Felder in dieser besagten Tabelle erstellt - kann aber keine Werte darin speichern. Bin ich in der sOrder.php bei der Funktion s_order_basket sCreateTemporaryOrder an der richtigen Stelle? Als Test: $data = array( 'ordernumber' =\> '0', 'userID' =\> $this-\>sUserData["additional"]["user"]["id"], 'invoice\_amount' =\> $this-\>sBasketData["AmountWithTaxNumeric"], 'invoice\_amount\_net' =\> $this-\>sBasketData["AmountNetNumeric"], 'invoice\_shipping' =\> $this-\>sShippingcostsNumeric, 'invoice\_shipping\_net' =\> $this-\>sShippingcostsNumericNet, 'ordertime' =\> new Zend\_Db\_Expr('NOW()'), 'status' =\> -1, 'paymentID' =\> $this-\>sUserData["additional"]["user"]["paymentID"], 'customercomment' =\> $this-\>sComment, 'net' =\> $net, 'taxfree' =\> $taxfree, 'partnerID' =\> (string) $this-\>getSession()-\>offsetGet("sPartner"), 'temporaryID' =\> $this-\>getSession()-\>offsetGet('sessionId'), 'referer' =\> (string) $this-\>getSession()-\>offsetGet('sReferer'), 'language' =\> $shop-\>getId(), 'dispatchID' =\> $dispatchId, 'currency' =\> $this-\>sSYSTEM-\>sCurrency["currency"], 'currencyFactor' =\> $this-\>sSYSTEM-\>sCurrency["factor"], 'subshopID' =\> $mainShop-\>getId(), 'gravurVorne' =\> 'Text', 'gravurHinten' =\> 'Text2' ); Dieser Werte habe ich ebenfalls dem zweiten data Array hinzugefügt jedoch wird in den zwei Feldern nichts in der DB gespeichert. Das komische, ich habe die Funktion sCreateTemporaryOrder bereits ganz gelöscht und den Cache geleert jedoch wird in die Tabelle s_order_basket dennoch noch der Datensatz gespeichert/geupdatet. Ebenso habe ich nachfolgende Zeilen in der checkout.php auskommentiert: //$order-\>sDeleteTemporaryOrder(); // Delete previous temporary orders //$orderid = $order-\>sCreateTemporaryOrder(); // Create new temporary order Leider ohne Erfolg die Daten werden trotzdem in die Tabelle geschrieben. Eine kleine Frage noch am Rande, ist es möglich im Warenkorb jeden/den selben Artikel (angenommen ein Kunde bestellt den selben Artikel 5 mal) extra auszugeben? Vielen Dank im voraus, bin für jede Hilfe dankbar. In diesem Sinne, Beste Grüße - Michael

Hallo, keiner eine Idee oder die Frage schlecht formuliert? Danke & Grüße

Relativ simpel: Finger weg von den Shopware Tabellen - nutze die Attribute. Hier ein Beispiel Plugin: http://wiki.shopware.de/Schuhgroessen-E … _1052.html Viele Grüße

Und mittels der Attribute ist es möglich das der Benutzer Daten in ein Input Feld (beim Artikel) schreibt und diese dann dem Shopbetreiber im Backend bei der jeweiligen Bestellung ausgegeben werden? Grüße & Danke, Michael

Ja. Viele Grüße

Nebenbei zur Information, dieses Plugin hat bei mir nur zur Folge dass unter -> Kunden die Liste leer ist also keine Kunden mehr angezeigt werden. Dies liegt ganz sicher an dem Plugin da der Fehler nicht auftritt wenn ich es deaktiviere. Plugin: http://wiki.shopware.de/Schuhgroessen-E … _1052.html

Definitiv nicht die core Tabellen bearbeiten, damit ist nichts mehr updatesicher und du gefährdest die Funktionalitäten aller anderen Plugins. Benutz die attributes Tabellen wie Aquatuning schon sagt. Im Beispielplugin werden die Attribute auch über Shopware-eigene Hilfsfunktionen erstellt, die beim deinstallieren deines Plugins auch wieder entfernt werden sollten. Beispiel der User-Tabelle Attribut erstellen $this-\>Application()-\>Models()-\>addAttribute( 's\_user\_attributes', 'swag', 'customer\_preferences\_size', 'int(11)', true, null ); Danach das aktualisieren der relevanten Models nicht vergessen $this-\>getEntityManager()-\>generateAttributeModels(array( 's\_user\_attributes' )); Attribut entfernen $this-\>Application()-\>Models()-\>removeAttribute( 's\_user\_attributes', 'swag', 'customer\_preferences\_size' ); Und nach dem entfernen auch die relevanten Models neu generieren. Im Wiki wird das auch genauer erklärt. Schöne Grüße, Niklas