ich habe in den Artikel-Details im Frontend ein zusätzliches Feld hinzugefügt. Der Wert des Feldes soll in der Datenbank ( s_order_basket_attributes und s_order_attributes ) gespeichert. sowie in der Bestätigungsmail wiedergegeben werden. Die entsprechenden Felder in den Tabellen habe ich bereits angelegt.
Per “Shopware_Controllers_Frontend_Checkout::ajaxAddArticleCartAction::after” habe ich den Checket Controller gehookt. Allerdings weiß ich jetzt nicht, wie ich
Textfelder abfange
Werte in s_order_basket_attributes bekomme
Werte bei Bestellabschluss in s_order_attributes bekomme.
Ich habe mich die letzten Tage kreuz und quer durch die Dokumentation gelesen, hänge nun aber seit dem Wochenende an diesem Punkt.
Das Auslesen der Werte für E-Mail Bestätigung und Rechnung/Lieferschein bekomme ich sehr wahrscheinlich hin.
Ich würde mich freuen, wenn jemand ein kleines Beispiel hat, das er mir zur Verfügung stellt.
Ich bin auch für weiterführende Links dankbar. Primär würde ich mich aber, da ich schon so viel Zeit investiert habe, mehr freuen, wenn ich ein Beispiel bekomme.
Dokumentation zu diesem Thema würde ich später lesen (da ich mittlerweile verzweifle).
um die besser Helfen zu können müsste man Wissen ob der Kunde selber eingaben in dem Feld macht oder das Feld vom Shopadmin befüllt wird.
Ich gehe von deiner Beschreibung her davon aus das es der Shopadmin ist
Du bekomsmt in der ajaxAddArticleCartAction als Requestparameter die ordernumber mit die du auslesen kannst, so z.B.:
public function afterAjaxAddArticleCartAction(\Enlight_Hook_HookArgs $args) {
$controller = $args->getSubject();
$ordernumber = $controller->Request()->getParam('sAdd');
}
Anhand der ordernumber kannst du dir dann den passenden Artikel aus der Datenbankziehen inkl. aller Attribute.
Um dir anzuschauen wie der Warenkorbprozess abläuft schau dir die Methoden engine/Shopware/Core/sBasket.php::sAddArticle() und engine/Shopware/Core/sBasket.php::sGetBasket() an.
Noch ein kleiner Ansatz: Wenn dein Artikel hinzugefügt wurde könntest du die Attribute auslesen und einfach ein Update auf den entsprechenden Eintrag in der s_order_attributes machen.
vielen Dank für deine Antwort!
Der Kunde soll das Feld selbst befüllen können - hätte ich erwähnen können
Ich hab immer den Gedanken gehabt mich in den INSERT einzuklinken. An ein UPDATE nach dem INSERT hab ich gar nicht gedacht.
Die Methoden der sBasket.php habe ich mir schon angeguckt.
Da ich gerade unterwegs bin kann ich noch nicht sagen ob dein Ansatz mich zu einer Lösung führt, ich denke aber schon.
Ich werde heute Abend ein Feedback dazu geben.
ich hab durch deinen Ansatz nun den Wert in die Tabelle s_order_basket_attributes bekommen.
Ich werd nach dem Wochenende mal schauen ob ich die Werte auch wieder aus der Datenbank bekomme um sie im weiteren Bestellprozess im Frontend anzeigen zu lassen.