Das ist eine sehr gute Idee. Ich würde dann NN vielleicht wieder einsetzen. Habe es nämlich abgeschafft, da es Leute gibt die einen Artikel für 3,99 EUR bestellen und dafür 8,00 EUR NN-Gebühr zahlen würden und die Annahme dann verweigern. Eigentlich hasse ich NN wie die Pest.
Ich auch jox, und deshalb machen wir es nicht mehr, sondern Kauf auf Rechnung. Gegenüber NN absolut keine Annahmeverweigerungen und keine Nichtabholung von der Post.
Also das Problem ist kleiner als befürchtet! In der "....\includes\modules\payment\cod.php" sind ein paar Zeilen einzufügen und dann kann man einen Mindest- und/oder einen Höchst-Bestellwert eingeben. Außerhalb dieser Grenzwerte wird NN gar nicht im Bezahlvorgang angeboten. Sollte/muss man natürlich in der Beschreibung der Zahlarten drauf hinweisen! Da heute zu faul zum Schreiben, habe ich die geänderte Datei als Anhang beigefügt. Hinweise auf Datensicherung/Gewährleistung/Lizenzgebühren usw. gelten hiermit als bekannt gegeben! Auch dies wäre evtl. noch nett einzubauen - siehe hier...
Hallo Manfred, das ist clever, aber ich befürchte, dass die Leute das nicht blicken und die Bestellung nicht bestätigen.
@Petra@ ... ist auch nur so für den Hinterkopf gedacht .... bei uns gab´s noch keine Verweigerer ... liegt natürlich hauptsächlich an der seriösen Klientel bei K-Müller und dem extremst seriösen Admin!! <Autsch>
@ Manfred Deinen Anpassung ist einfach Super ;-) Hast du rein zufällig auch noch einen Lösung, wie man z.B. für eine bestimmte Versandart Nachnahme komplett deaktivieren kann? In meinem Fall für das Versandmodul "flat". Am liebsten hätte ich es auch, das einen bestimmte Zahlart ab einem bestimmten Warenkorbwert gar nicht erst angezeigt wird ;-)
DU hast aber auch Wünsche! Also ... gleiche Datei unter- oder oberhalb der andere Änderungen dies: Code: // ##### BOF Nachnahme NICHT bei flat ##### if ($_SESSION['shipping']['id'] != 'flat') { $this->enabled = false; } // ##### EOF Nachnahme NICHT bei flat ##### Hinweise auf Datensicherung/Gewährleistung/Lizenzgebühren usw. gelten hiermit als bekannt gegeben!
Hallo Manfred, erst mal RECHT HERZLICHEN DANK für deinen Hilfe ;-) Leider hat diese Änderung zufolge, das bei KEINER Versandart mehr die Zahlart Nachnahme angezeigt wird :-( Hast du einen Idee woran dies liegen könnte ? Hast du einen Vorschlag, wie man z.B. einen Zahlart nur bis xyz Euro einblenden kann und drüber automatisch ausgeblendet wird ?
Ich glaube es muss auch "... == 'flat' sein!? Zahlarten ausblenden ab xx Euronen .... ähm ... nee, keine Idee!
Danke für den Tip Wenn ich jetzt == 'flat' eingebe, wird Nachnahme wieder angezeigt, aber auch bei der Versandart flat !?! hmmm schade eigentlich ...
Ich habe die Lösung ;-) Es muss so lauten: Code: // ##### BOF Nachnahme NICHT bei flat ##### if ($_SESSION['shipping']['id'] == 'flat_flat') { $this->enabled = false; } // ##### EOF Nachnahme NICHT bei flat #####
Hallo Manfred, ist ja schon etwas älter und die orginal cod.php hat sich auch zu deiner alten geändert aber Funktioniert dein Code noch oder hast du evtl. mittlerweile eine andere Lösung um ein Min. bzw. Max wert für Nachnahme zu verwenden?
vllt. bringt`s der Allgemeinheit etwas. Hier eine Anpassung der cod.php, um sie warenwertabhängig freizugeben (lässt sich natürlich problemlos auf andere Zahlungsarten übertragen) /includes/modules/payment/cod.php 1. suche nach PHP: function update_status() { global $order; if ($_SESSION['shipping']['id'] == 'selfpickup_selfpickup') { $this->enabled = false; } füge danach ein PHP: // Modul abhaengig vom Bestellwert freigeben. if ($this->enabled == true) { // Bestellwert kleiner als Vorgabe ? if (intval(MODULE_PAYMENT_COD_MIN_ORDERVALUE) > 0) { if ($order->info['subtotal'] < intval(MODULE_PAYMENT_COD_MIN_ORDERVALUE)) { $this->enabled = false; } } // Bestellwert groesser als Vorgabe ? if (intval(MODULE_PAYMENT_COD_MAX_ORDERVALUE) > 0) { if ($order->info['subtotal'] > intval(MODULE_PAYMENT_COD_MAX_ORDERVALUE)) { $this->enabled = false; } } } 2. suche nach PHP: function install() { xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_PAYMENT_COD_STATUS', 'True', '6', '1', 'gm_cfg_select_option(array(\'True\', \'False\'), ', now())"); xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_COD_ALLOWED', '', '6', '0', now())"); xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_PAYMENT_COD_ZONE', '0', '6', '2', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())"); xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_COD_SORT_ORDER', '0', '6', '0', now())"); xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, set_function, use_function, date_added) values ('MODULE_PAYMENT_COD_ORDER_STATUS_ID', '0','6', '0', 'xtc_cfg_pull_down_order_statuses(', 'xtc_get_order_status_name', now())"); für danach ein PHP: xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_COD_MIN_ORDERVALUE', '0', '6', '0', now())"); xtc_db_query("insert into ".TABLE_CONFIGURATION." ( configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_PAYMENT_COD_MAX_ORDERVALUE', '0', '6', '0', now())"); 3. suche nach PHP: function keys() { return array ('MODULE_PAYMENT_COD_STATUS', 'MODULE_PAYMENT_COD_ALLOWED', 'MODULE_PAYMENT_COD_ZONE', 'MODULE_PAYMENT_COD_ORDER_STATUS_ID', 'MODULE_PAYMENT_COD_SORT_ORDER'); } ersetzen mit PHP: function keys() { return array ('MODULE_PAYMENT_COD_STATUS', 'MODULE_PAYMENT_COD_ALLOWED', 'MODULE_PAYMENT_COD_ZONE', 'MODULE_PAYMENT_COD_ORDER_STATUS_ID', 'MODULE_PAYMENT_COD_SORT_ORDER', 'MODULE_PAYMENT_COD_MIN_ORDERVALUE', 'MODULE_PAYMENT_COD_MAX_ORDERVALUE'); } /lang/german/modules/payment/cod.php vor PHP: ?> das einfügen PHP: define('MODULE_PAYMENT_COD_MAX_ORDERVALUE_TITLE' , 'Maximalbestellwert in Euro'); define('MODULE_PAYMENT_COD_MAX_ORDERVALUE_DESC' , 'Maximalbestellwert für das Nachnahme Modul. Setzen Sie den Eintrag auf Null, um diese Einschränkung abzuschalten.'); define('MODULE_PAYMENT_COD_MIN_ORDERVALUE_TITLE' , 'Mindestbestellwert in Euro'); define('MODULE_PAYMENT_COD_MIN_ORDERVALUE_DESC' , 'Mindestbestellwert für das Nachnahme Modul. Setzen Sie den Eintrag auf Null, um diese Einschränkung abzuschalten.'); In die DB muss folg. einfügt werden (die `configuration_id` kann bei euch abweichend sein, bitte in der Tabelle nachgucken) Code: [FONT=Calibri]INSERT INTO `configuration` (`configuration_id`, `configuration_key`, `configuration_value`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES ('3282', 'MODULE_PAYMENT_COD_MIN_ORDERVALUE', '', '0', NULL, NULL, '0000-00-00 00:00:00', NULL, NULL), ('3283', 'MODULE_PAYMENT_COD_MAX_ORDERVALUE', '', '0', NULL, NULL, '0000-00-00 00:00:00', NULL, NULL);[/FONT] Nun das Zahlungsmodul cod einmal deinstallieren und neuinstallieren. Es stehen nun min und max-Wert zur Verfügung. Funzt bei uns bestens. Alles auf eigene Gefahr, vorher natürlich Backup der entsprechenden Dateien und Tabellen.
Hallo Manuel, super Danke in schritt 2 ist allerdings ein kleiner Fehler, da fehlt was am ende! Hier der richtige schritt 2: