Hallo zusammen. Wir wollen demnächst mal Gutscheine zum Kaufen in unserem Shop anbieten. Der Gutschein in Shopware lässt sich ja nicht verrechnen, was ich sehr Benutzerunfreundlich finde. Gibt es eine Möglichkeit, das zu ändern? Kann man es irgendwie hinkriegen/einstellen, dass mehrere Gutscheine pro Bestellung benutzt werden können? Danke im Voraus!
Mein letzter Stand war, dass die Gutscheine nicht kumulierbar sind. soweit ich weiß hat sich daran noch nichts geändert. LG
Gutscheine sind aktuell nicht kombinierbar.
Könnte uns Shopware verraten ob es mit ein paar Kniffen möglich wäre mehrere Gutscheine zuzulassen? Oder würde dies eine umfangreiche Umprogrammierung erfordern? Grüße Frank
Wäre schön wenn es hierzu ein kurzes Statement geben würde :thumbup:
Eine Kombination mehrerer Gutscheine wäre für uns auch sehr interessant…
Ich hol das Thema noch einmal hoch, da uns hier eine Lösung sehr wichtig wäre.
Mehrere Voucher zuzulassen ist theoretisch mit einigen Änderungen an Core (!) Dateien möglich und daher möchte ich davon auch absolut abraten. Folgende Änderungen beziehen sich auf Shopware 3.5.6 und wurden von mir auf einem Testsystem getestetet. Ich empfehle diese Änderungen nicht in Live-Shops einzusetzen. Alle Zeilennummern beziehen sich auf die unveränderte Originaldatei. engine/core/class/sBasket.php Zeile 438 bis 447 müssen entfernt oder auskommentiert werden:// Check if any voucher is already in basket $chkBasket = $this-\>sSYSTEM-\>sDB\_CONNECTION-\>GetRow(" SELECT id FROM s\_order\_basket WHERE sessionID='".$this-\>sSYSTEM-\>sSESSION\_ID."' AND modus=2 "); if (count($chkBasket)){ $sErrorMessages[] = $this-\>sSYSTEM-\>sCONFIG['sErrors']['sVoucherOnlyOnePerOrder']; return array("sErrorFlag"=\>$sErrorFlag,"sErrorMessages"=\>$sErrorMessages); }
engine/core/class/sBasket.php Zeilen 955 bis 959 müssen durch Folgendes ersetzt werden:if($this-\>sSYSTEM-\>\_GET['sDelete'] != $getArticles[$key]["id"]) { $this-\>sAddVoucher($ticketResult["vouchercode"]); $insert\_id = $this-\>sSYSTEM-\>sDB\_CONNECTION-\>Insert\_ID(); if (is\_numeric($insert\_id)) { $getArticles[$key]["id"] = $insert\_id; // ID aktualisieren } }
engine/core/class/sBasket.php Zeilen 1115 bis 1120 müssen durch Folgendes ersetzt werden:$getArticles[$key]["linkDelete"] = $this-\>sSYSTEM-\>sCONFIG['sBASEFILE']."?sViewport=basket&sDelete=".$getArticles[$key]["id"];
Damit haben wir einen korrekt funktionierenden Lösch-Link für den Warenkorb. templates/_default/frontend/checkout/cart_item.tpl Zeile 145 muss durch Folgendes ersetzt werden:[ ]({url action='deleteArticle' sDelete=$sBasketItem.id sTargetAction=$sTargetAction} "{s name='CartItemLinkDelete '}{/s}")
Wird ein eigenes Template verwendet muss der Voucher-Lösch-Link im eigenen Template entsprechend ersetzt werden. Jetzt lassen sich mehrere Gutscheine zum Warenkorb hinzufügen und vom Benutzer auch einzeln wieder herauslöschen. Wie immer: wer das im Live-Shop einsetzt, tut das auf EIGENE GEFAHR und ich rate ganz ehrlich davon ab! Viele Grüße [color=gray]P.s. kleines Schmankerl aus der sBasket.php: Da hat der Praktikant wohl mit echo debugged, oder? //echo $getArticles[$key]["amountnet"]."|". round($getArticles[$key]["amountnet"],2)."\n"; //echo $getArticles[$key]["quantityInfo"]; //echo "Before $netprice
"; //echo "After $netprice
";
usw. usf.[/color]
vielen dank. wie kann ich aber jetzt die beiden gekauften (insofern der Kunde zwei kauft) Voucher im backend managen? ich kann dem Kunden immer nur einen erstellten Voucher zusenden und nicht zwei (wie bestellt)