Fehler bei versandkostenfreier Bestellung beheben
Bei dem Open Source Onlineshop System „osCommerce“ sind wir auf eine erhebliche Schwachstelle aufmerksam geworden.
Wenn für den Onlineshop eingestellt wurde, dass dem Kunden ab einem bestimmten Einkaufspreis die Versandkosten erlassen werden, kann man durch die folgende Vorgehensweise versandkostenfrei bestellen:
- Artikel zum Warenkorb hinzufügen, sodass die Grenze, bei der die Versandkosten erlassen werden, erreicht bzw. überschritten wird
- Zur Kasse gehen
- Es wird angezeigt, dass die Bestellung versandkostenfrei verschickt wird
- Ein neues Fenster oder Tab des Warenkorbs öffnen
- Dort soviele Artikel wieder entfernen oder die Stückzahl soweit verringern, sodass die Grenze unterschritten wird
- Wieder zum ersten Fenster oder Tab (Kasse) wechseln und dort mit „Weiter“ bestätigen
- In der Versandinformation wird angezeigt, dass die Ware versandkostenfrei verschickt wird (obwohl die Grenze unterschritten wurde)
Fehlerbehebung:
- Im Hauptverzeichnis des Onlineshops die Datei „checkout_shipping.php“ öffnen
- Folgende Stelle im Quellcode suchen…
if ($shipping == ‚free_free‘) {
$quote[0][‚methods‘][0][‚title‘] = FREE_SHIPPING_TITLE;
$quote[0][‚methods‘][0][‚cost‘] = ‚0‘;
}
- … und mit diesem Quellcode ersetzen:
if ($shipping == ‚free_free‘) {
if ($order->info[‚total‘] < MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, “, ‚SSL‘));
}
$quote[0][‚methods‘][0][‚title‘] = FREE_SHIPPING_TITLE;
$quote[0][‚methods‘][0][‚cost‘] = ‚0‘;
}
Dadurch wird nach dem Klicken auf den Button „Weiter“ nochmals überprüft, ob die Grenze unterschritten wurde.
Ggf. wird die Seite neu geladen und die Versandkosten werden berechnet und angezeigt.