Hi, ist es möglich den Artikelpreis im Warenkorb zu manipulieren? Hintergrund: Ich möchte den Preis abhängig von Zusatzoptionen neu berechnen. Die Zusatzoptionen soll im listing eingestellt werden und der Artikel dann direkt in den warenkorb gelegt werden können. Hierzu bräuchte ich auch noch das richtige Event für addArticle… Vielen dank für eure Anregungen.
Gibt es hierzu mittlerweile eine Lösung?
Der Warenkorb wird in Shopware über die Session verwaltet. Wenn der Artikelpreis in der manipuliert wird, passt es. Ist ein bisschen hakelig, aber so pushen wir bei elefunds einen Artikel mit variablem Preis in den Warenkorb: https://github.com/elefunds/elefunds-Sh … t.php#L115
hi, ich erinnere mich nicht mehr genau an das Problem, das da damals vorlag aber ist es nicht so, das der Artikelpreis immer wieder aus der Datenbank geholt wird? Ich hatte damals versucht den Artikelpreis, manipuliert in den Warenkorb zu schieben. Das hatte auch geklappt, nur wurde am Ende immer wieder der Original Artikelpreis aus der DB geholt. Ich müsste mir das noch mal genauer ansehen, bedarf an einer Lösung besteht noch.
hier der inhalt vom warenkorb per hook $this-\>subscribeEvent( 'sBasket::sGetBasket::after', 'onBasket' );
artikel bearbeiten (ungetestet) public function onBasket(Enlight\_Hook\_HookArgs $args) { $article = $args-\>getReturn(); foreach($article['content'] as $aK =\> $aV){ $newPrice = $aV['priceNumeric']\*2; $article['content'][$aK]['price'] = Shopware()-\>Modules()-\>Articles()-\>sCalculatingPrice($newPrice, $aV["tax"], $aV["taxID"], $aV); $article['content'][$aK]["priceNumeric"] = floatval(str\_replace(",", ".", $article['content'][$aK]['price'])); ... } $args-\>setReturn($article); }
[quote=“shredding”]https://github.com/elefunds/elefunds-Shopware/blob/master/Events/PreDispatchCheckoutEvent.php#L115[/quote] Danke erstmal hierfür. Das hab ich mir gestern Abend schonmal angesehen und etwas herumprobiert. Plugin geschrieben - Enlight_Controller_Action_PreDispatch_Frontend_Checkout bei der Installation angelegt - in der Funktion selbst sBasket abgeholt und genau wie Du in deinem Code den Wert verändert und zurück in die Session geschrieben Im der Warenkorbansicht hat er keinen Mucks gemacht, obwohl in der Session sogar der neue Wert stand. Wurde die Bestellung abgesendet, war der Warenkorbwert bzw. die Bestellsumme tatsächlich auf 0. Allerdings brauche ich die Veränderung ja schon sichtbar für den Kunden im WK. Des weiteren hat er mir dadurch im Backend die Bestellübersicht zerhauen - die ist jetzt leer. Warum weiß ich aktuell noch nicht. :thumbdown:
ich versteh das mit der session nicht. warum sollte das system den warenkorb in eine session schreiben. es werden ggf. die artikel-ids festgehalten aber bestimmt nicht der atikel selbst. probier mal den hook. es wird dir der gesamte warenkorb zurück gegeben, den du durchgehen und manipulieren kannst.
Werde ich heute mal probieren - bin ich aber noch nicht dazu gekommen - der Post hat sich lediglich auf meine Erfahrungen von gestern bezogen
Hallo Leute
Da die letzte Diskussion zu diesem Thema doch sehr abrupt beendet wurde und ja „offiziell“ auch noch keine Lösung kommuniziert wurde, dachte ich, dass ich dieses Thema noch einmal aufrolle, weil es für mich auch noch im Jahre 2016 sehr aktuell ist.
Und zwar gibt es bei meinem Shop drei Kategorien. Artikel der ersten Kategorie sind ganz normale Shopartikel. Produkte der zweiten und dritten Kategorie bieten wir nur mit monatlicher Ratenzahlung an. Heisst also, dass in der Detailseite der monatliche Preis des jeweiligen Produktes stehen und das Checkout anschliessend mit 0.00 durchgeführt werden soll, weil man ja heute nichts zahlt, sondern erst im Nachhinein mit entsprechendem Ratenvertrag.
Programmiertechnisch habe ich mir das so vorgestellt, dass man im Backend den monatlichen Preis für den Artikel einträgt und der Code beim Checkout prüft, ob der Artikel von der zweiten oder dritten Kategorie stammt (kann ja anhand der Artikelnummer hergeleitet werden) und wenn ja, dass es dann den Preis für das Checkout automatisch auf 0.00 setzt.
Ich weiss, liebe Community, mein Vorhaben klingt ein wenig verrückt. Doch die ganze Ratenzahlung-Thematik kann leider unmöglich umgangen werden. Ich würde mich extrem freuen, wenn sich irgendjemand da draussen die Zeit nehmen würde, um mir ein wenig auf die Sprünge zu helfen. Sei es jetzt nun per Hook, elefunds (oben geposteter Github-Link) oder mit einem anderen Input.