Wenn eine Bestellung die "Versandkostenfrei"-Bedingung erfüllt, wird immer die Versandart "Versandkostenfrei" erzwungen.... Obwohl es ja durch aus noch möglich sein muss, z.B. die "Selbstabholung" zu definieren: Beispiel aus "CartShippingCostsControl.inc.php": Wenn der "Versandkostenfrei"-Wert erreicht ist, dann wird die Versandart "Versandkostenfrei" erzwungen... PHP: if ($this->v_shipping_class->is_shipping_free($t_selected_country)) { $coo_lang_file_master->init_from_lang_file('lang/' . $_SESSION['language'] . '/modules/order_total/ot_shipping.php'); $t_modules_array['free' . $this->v_module_method_separator . 'free'] = FREE_SHIPPING_TITLE; $_SESSION['cart_shipping_module'] = 'free'; $_SESSION['cart_shipping_method'] = 'free'; return $t_modules_array; } Erschwerend kommt hier m.E. hinzu, dass es das Versandmodul "free" gar nicht mehr gibt, das heißt jetzt "freeamount": Das Problem ist auch in 2.1 enthalten....
Weiteres Beispiel: in ot_shipping.php PHP: function process() { global $order, $xtPrice; if (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') { switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) { case 'national': if ($order->delivery['country_id'] == STORE_COUNTRY) $pass = true; break; case 'international': if ($order->delivery['country_id'] != STORE_COUNTRY) $pass = true; break; case 'both': $pass = true; break; default: $pass = false; break; } $t_shipping_free_over = (double)MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER; if($_SESSION['customers_status']['customers_status_show_price_tax'] == 0 && (int)MODULE_ORDER_TOTAL_SHIPPING_TAX_CLASS > 0) { $t_shipping_free_over = $t_shipping_free_over / (1 + $xtPrice->TAX[MODULE_ORDER_TOTAL_SHIPPING_TAX_CLASS] / 100); } if ( ($pass == true) && ( ($order->info['total'] - $order->info['shipping_cost']) >= $xtPrice->xtcFormat($t_shipping_free_over,false,0,true)) ) { $order->info['shipping_method'] = $this->title; $order->info['total'] -= $order->info['shipping_cost']; $order->info['shipping_cost'] = 0; } } Auch hier wird die Versandart "Versandkostenfrei" erzwungen.....
Hallo, das sind zwei verschiedene Sachen. Wenn du unter Module -> Zusammenfassung -> Versandkosten eine Versandkostenfreigrenze aktivierst, führt das zu diesem Pseudo-Versandmodul „free“, dessen Verwendung dann auch erzwungen wird. Alternativ kann man unter Module -> Versandarten auch das Versandkostenfrei-Modul (freeamount) konfigurieren, das dem Kunden dann die Wahl zwischen Selbstabholung, versandkostenfreiem Standardversand und z.B. teurerem Premium-Versand lässt. It’s not a bug, it’s a feature.
Richtig, „free“ ist nur eine Pseudo-Versandart. Das ist nur der symbolische Name für den über die Konfiguration von ot_shipping erzwungenen kostenfreien Versand.
Aufgrund dieses Codes wird aber in der Versandkostenermittlung im Warenkorb keine Auswahlmöglichkeit mehr angeboten, es wird zwangsweise "Versandkostenfrei" gewählt. PHP: if ($this->v_shipping_class->is_shipping_free($t_selected_country)) { $coo_lang_file_master->init_from_lang_file('lang/' . $_SESSION['language'] . '/modules/order_total/ot_shipping.php'); $t_modules_array['free' . $this->v_module_method_separator . 'free'] = FREE_SHIPPING_TITLE; $_SESSION['cart_shipping_module'] = 'free'; $_SESSION['cart_shipping_method'] = 'free'; return $t_modules_array; }
is_shipping_free() wird aber nur true, wenn die Versandkostenfreigrenze in ot_shipping aktiv ist. Das darf sie aber gerade nicht sein, wenn man die Wahlmöglichkeit über freeamount bieten will.
Wo finde ich denn dieses "ot_shipping"? Im Gambio Admin-Bereich? Bei uns im Shop wird ebenfalls ab 10 Euro Bestellwert über das Modul "freeamount" der kostenfreie Versand erzwungen. Das soll aber nur für den Versand per DPD gelten. Wir müssen den Paketversand an Packstationen davon ausnehmen, ist das möglich? Und natürlich wäre es toll wenn, trotz Versandkostenfreiheit, der Kunde die Möglichkeit der Selbstabholung auswählen könnte.
Sorry, " Module -> Zusammenfassung -> Versandkosten" hatte ich überlesen. Das bringt uns aber nicht weiter. Die Abfrage der Versandkostenfreigrenze darf ja erst NACH der Auswahl der Versandart erfolgen. Ansonsten hat der Kunde weder die Möglichkeit der Selbstabholung noch des Paketversands an Packstationen. Muss das programmiert werden? Bin ich tatsächlich der erste mit diesem Problem?