Guten Abend, es gibt eine Vorgehensweise, die es ermöglicht, die Versandkosten im Bestellprozess zu manipulieren. Das Problem ist nämlich, dass die Versandkosten bei "checkout_shipping" abgefragt werden und danach nicht weiter. Mein folgendes Beispiel ist mit jeder Versandkostenart reproduzierbar, natürlich macht es nur Sinn, wenn die VSK dadurch nach unten manipuliert werden. Ich habe dies am Modul Freeamount, gambioultra oder dem von uns eingesetzten OVERRULE von HolgerNils (welches auf FLAT aufbaut) nachgestellt. Beispiel anhand von Freeamount: Ich lege den Versandkostenfrei-Betrag im Admin auf Bspw. 400€ fest. Im Shop legt der Kunde dann mehrere Artikel mit Gesamtwert über 400€ in den Korb. Die VSK-Art Freeamount wird aktiviert und ist bei "checkout_shipping" auswählbar. Bei der "Checkout_Shipping" Seite wähle ich dann also Versandkostenfrei aus. Dann gehe ich weiter bis zur „Checkout_Confirmation“ und von dort in den Warenkorb. Dann lösche ich alle Artikel und behalte als Kunde nur die, die ich kaufen will (der Wert ist egal, ist im Beispiel jetzt 20€). Nun kommt der Trick: Ich gebe in die Browser-Adresszeile den Link direkt zur „checkout_confirmation.php“ ein. Dort liegen dann meine grade übrig gebliebenen Artikel im Korb, jedoch ist der Versand noch immer mit "Versandkostenfrei" und 0€ hinterlegt obwohl diese eigentliche gar nicht mehr gültig sein dürfte, weil der Betrag unterschritten ist. Lösung? Kann man auf der letzten Seite nochmal eine Prüfung einbauen, ob der aktuelle Korb noch berechtigt ist für die jeweils gewählte Versandart? Das sollte im besten Falle dann für alle möglicherweise installierten Versandarten so ablaufen...
Also ich kann das bei uns (2.0.9) nicht nachvollziehen! Wenn ich den "Trick" anwende, springt er ohne weiteres zutun wieder in die "checkout_shipping.php" und berechnet die VersKosten.
Kann ich in einem Kundenshop V2.0.14.1 bestätigen! Bei www.reifen24.de geht das dank OnePageCheckout nicht!!! Ist aber schon sehr seltsam......
So hier mal ein kleiner Fix für das Problem! Man öffne die /shopping_cart.php mit einem Editor, suche nach: Code: unset($_SESSION['nvpReqArray']); unset($_SESSION['reshash']['FORMATED_ERRORS']); unset($_SESSION['reshash']); unset($_SESSION['tmp_oID']) und füge darunter ein: Code: unset($_SESSION['shipping']); speichern. Fertsch...... Ist nicht updatessicher aber da es von GM sicherlich gelöst wird ist das auch net notwendig!
Prima, so eine Minilösung für ein großes Problem Werde ich heute Abend testen und Rückmeldung geben... Edit: Funktioniert ganz wunderbar! Springt jetzt korrekterweise zur "Checkout_Shipping" Seite, wenn ich nochmal im Warenkorb war und dort was verändert habe. Genial! Ist sichergestellt, dass Artikel auf keinem anderen Wege aus dem WK gelöscht werden können?? Vielen Dank! Werde diesen Thread an das Ticket beim Support hängen, damit Gambio das möglichst zügig einbaut.
Am sichersten ist es, wenn die Zeile in die includes/cart_actions.php eingefügt wird. Dann wird die Versandart auch bei den neuen Ajax-Requests zurückgesetzt. Unter die Zeile PHP: if (isset ($_GET['action'])) { einfügen: PHP: unset($_SESSION['shipping']); Ergebnis: PHP: if (isset ($_GET['action'])) { unset($_SESSION['shipping']); Nehmen wir natürlich ins nächste Update rein!
Eigentlich gibt es bereits einen Mechanismus, der die Manipulation des Warenkorbs im Bestellvorgang verhindern soll, nämlich die cartID. Hier hat sich ein Fehler eingeschlichen, den wir mit dem Service Pack 2.0.14.2 beheben werden. Bis dahin kann weiterhin Nonitos Lösung genutzt werden.
Prima, hat sich die Bugmeldung ja gelohnt. Reicht eigentlich Nonitos Lösung oder muss die von Steffen auch noch dazu?