Seite 1 von 1
Bei Versankostenfreie Lieferung die Versandart auswählen
Verfasst: 07.08.2013, 13:07
von wolfschw
Hallo Ralf,
gibt es die Möglichkeit bei Versandkostenfreie Lieferung, das der Kunden die Versandart auswählen kann?
jetzt wird ja immer die günstigste Versandart ausgewählt.
gruß
Wolfgang
Verfasst: 07.08.2013, 13:50
von r23
Hallo,
Die Logik aus dem Versandkostenfreien Modul müsste in die Versandmodule übernommen werden..
Code: Alles auswählen
if (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') {
switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
case 'national':
if ($oOrder->delivery['country_id'] == STORE_COUNTRY) $pass = true; break;
case 'international':
if ($oOrder->delivery['country_id'] != STORE_COUNTRY) $pass = true; break;
case 'both':
$pass = true; break;
default:
$pass = false; break;
}
if ( ($pass == true) && ( ($oOrder->info['total'] - $oOrder->info['shipping_cost']) >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
$oOrder->info['shipping_method'] = $this->title;
$oOrder->info['total'] -= $oOrder->info['shipping_cost'];
$oOrder->info['shipping_cost'] = 0;
}
}
und eben angepasst...
d.h. im Modul für item... zum Beispiel
Code: Alles auswählen
$this->quotes = array('id' => $this->code,
'module' => $aLang['module_shipping_item_text_title'],
'methods' => array(array('id' => $this->code,
'title' => $aLang['module_shipping_item_text_way'],
'cost' => (MODULE_SHIPPING_ITEM_COST * $total_count) + MODULE_SHIPPING_ITEM_HANDLING)));
müsste man
'cost' => (MODULE_SHIPPING_ITEM_COST * $total_count) + MODULE_SHIPPING_ITEM_HANDLING) ändern...
ich würde evtl. den Inhalt von 'title' => $aLang['module_shipping_item_text_way], noch ändnern in "Versandkostenfrei per'
Beste Grüße
Ralf
Verfasst: 07.08.2013, 18:59
von wolfschw
Hallo Ralf,
in welcher Datei muß wo was geändert werden?
gruß
Wolfgang
Verfasst: 08.08.2013, 03:17
von r23
Hallo,
in
~/shop/inlcudes/pages/checkout_shipping.php
prüft der Shop mit
Code: Alles auswählen
if ( defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') ) {
switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
case 'national':
if ($oOrder->delivery['country_id] == STORE_COUNTRY) $pass = true; break;
case 'international':
if ($oOrder->delivery['country_id] != STORE_COUNTRY) $pass = true; break;
case 'both':
$pass = true; break;
default:
$pass = false; break;
}
$free_shipping = false;
if ( ($pass == true) && ($oOrder->info['subtotal] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
$free_shipping = true;
require 'includes/languages/' . $sLanguage . '/modules/order_total/ot_shipping.php';
}
} else {
$free_shipping = false;
}
ob Versandkostenfrei geliefert werden soll. D.h. aus den o.g. Zeilen wird
Damit der Shop nun Versandkostenfrei leifern kann, muss man die Versandarten bearbeiten. Die Scripte liegen in dem Verzeichnis
~/shop/includes/modules/shipping.php
zum Beispiel itm.php
Dieser Bereich
Code: Alles auswählen
$this->quotes = array('id' => $this->code,
'module' => $aLang['module_shipping_item_text_title],
'methods' => array(array('id' => $this->code,
'title' => $aLang['module_shipping_item_text_way],
'cost' => (MODULE_SHIPPING_ITEM_COST * $total_count) + MODULE_SHIPPING_ITEM_HANDLING)));
ist für die Datestellung und Berechnung der versandkosten verantwortlich.
man füt zuerst für cost und für title einen Sting ein.
Code: Alles auswählen
$cost = (MODULE_SHIPPING_ITEM_COST * $total_count) + MODULE_SHIPPING_ITEM_HANDLING;
$title = $aLang['module_shipping_item_text_way];
$this->quotes = array('id' => $this->code,
'module' => $aLang['module_shipping_item_text_title],
'methods' => array(array('id' => $this->code,
'title' => $title,
'cost' => $cost));
für die Versandkostenfreie Überprüfung erweitern wir die o.g. Zeilen um
Code: Alles auswählen
if (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') {
switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
case 'national':
if ($oOrder->delivery['country_id] == STORE_COUNTRY) $pass = true; break;
case 'international':
if ($oOrder->delivery['country_id] != STORE_COUNTRY) $pass = true; break;
case 'both':
$pass = true; break;
default:
$pass = false; break;
}
if ( ($pass == true) && ( $oOrder->info['total] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
$title = 'Versandkostenfrei mit' . $aLang['module_shipping_item_text_way];
$cost = 0;
} else {
$cost = (MODULE_SHIPPING_ITEM_COST * $total_count) + MODULE_SHIPPING_ITEM_HANDLING;
$title = $aLang['module_shipping_item_text_way];
}
}
$this->quotes = array('id' => $this->code,
'module' => $aLang['module_shipping_item_text_title],
'methods' => array(array('id' => $this->code,
'title' => $title,
'cost' => $cost));
Hoffe die Antwort hilft weiter.
ralf
Verfasst: 09.08.2013, 07:57
von wolfschw
Hallo Ralf,
könntest du bitte die Änderung ab den 02.09.2013 vornehmen ?
mir ist das grad zu viel.
Rechnung dann wie gehabt.
Gruß
Wolfgang
Verfasst: 09.08.2013, 14:49
von r23
Hallo,
danke für den Auftrag! Baue ich dir am 02.09 ein.
Beste Grüße
Ralf
Verfasst: 01.09.2013, 12:03
von r23
Hallo,
Modul ist fertig
und baue ich euch am Montag zwischen 11 und 15 uhr in den Shop ein.
Beste Grüße
Ralf