Wenn man im Shop einen Mindermengenzuschlag erheben möchte, so wird dieser erst am Ende der Bestellung aufgerechnet. Damit der Kunde aber weiss, dass er etwas mehr bezahlen muss, wenn er Summe XX nicht erreicht hat, dann empfehle ich diese Erweiterung.
Als erstes gehe in den Adminbereich und gehe auf Kundengruppen. Hier gibst Du bei bearbeiten der Gruppe einen Mindestbestellwert von SUMME XX an. Jetzt könnte der Kunde aber erst dann bestellen, wenn er auch die Mindestmenge erreicht hat. Das ändern wir jetzt.
Öffne die Datei shopping_cart.php im Shophauptverzeichnis und suche nach:// minimum/maximum order value
$checkout = true;
if ($_SESSION['cart']->show_total()> 0 ) {
if ($_SESSION['cart']->show_total() <$_SESSION['customers_status']['customers_status_min_order'] ) {
$_SESSION['allow_checkout'] = 'false';
Ändern in:// minimum/maximum order value
$checkout = true;
if ($_SESSION['cart']->show_total()> 0 ) {
if ($_SESSION['cart']->show_total() <$_SESSION['customers_status']['customers_status_min_order'] ) {
// $_SESSION['allow_checkout'] = 'false';
Jetzt kann der Kunde schonmal zur Kasse gehen. Um den Kunden noch einen Hinweis zugeben, erweitern wir die Sprachdatei und das Template.
Die Hinweiserweiterung erreichen wir mit der german.php folgendermaßen:Öffne die german.php im Ordner lang/german und suche:define('MINIMUM_ORDER_VALUE_NOT_REACHED_2', ' leider noch nicht erreicht.<br />Bitte bestellen Sie für mindestens weitere: '); Darunter setzt Du dann:define('MINIMUM_ORDER_VALUE_NOT_REACHED_3', ' HIER DEIN HINWEISE TEXT '); Gehe jetzt wieder in shopping_cart.php und setze unter:$smarty->assign('info_message_3', MINIMUM_ORDER_VALUE_NOT_REACHED_3);
Jetzt noch in templates/modules/shopping_cart.html folgendes suchen.{if $info_message_1!=''}<div class="errormessage">{$info_message_1}{$min_order}{$info_message_2}{$order_amount}</div>{/if}
und damit abändern:{if $info_message_1!=''}<div class="errormessage">{$info_message_1}{$min_order}{$info_message_2}{$order_amount}{$info_message_3}</div>{/if}
FERTIG. Nun hat der Kunde einen Hinweis, dass wenn er die Summe XX nicht erreicht einen Mindermengenzuschlag von XX extra bezahlen muss.
Erweiterung von Darcore:
Sucht mal in der checkout_shipping.php nach:
//BOF - Dokuman - 2009-06-06 - checkout only if minimum order value is reached
if ($_SESSION['cart']->show_total()> 0 ) {
if ($_SESSION['cart']->show_total() <$_SESSION['customers_status']['customers_status_min_order'] ) {
xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART));
}
}
//EOF - Dokuman - 2009-06-06 - checkout only if minimum order value is reached
Und den Redirect raus nehmen... Dann sollte es gehen!!!
//BOF - Dokuman - 2009-06-06 - checkout only if minimum order value is reached
if ($_SESSION['cart']->show_total()> 0 ) {
if ($_SESSION['cart']->show_total() <$_SESSION['customers_status']['customers_status_min_order'] ) {
//xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART));
}
}
//EOF - Dokuman - 2009-06-06 - checkout only if minimum order value is reached
Wer auch noch das ganze auf eine Kundengruppe beschränken möchte ändert noch die ot_loworderfee.php in includes\modules\order_total.
Sucht nach:
function ot_loworderfee
() { global $xtPrice; $this->code = 'ot_loworderfee'; $this->title = MODULE_ORDER_TOTAL_LOWORDERFEE_TITLE
; $this->description = MODULE_ORDER_TOTAL_LOWORDERFEE_DESCRIPTION
; $this->enabled = ((MODULE_ORDER_TOTAL_LOWORDERFEE_STATUS
== 'true') ?
true : false); $this->sort_order = MODULE_ORDER_TOTAL_LOWORDERFEE_SORT_ORDER
; $this->output = array();
und fügt folgendes an:
if ($_SESSION['customers_status']['customers_status_id'] != 3) { // <- Mindermengenzuschlag nur für die Gruppe x zulassen
$this->enabled = false;
}
Linkback: https://www.modified-shop.org/forum/index.php?topic=520.0