Weil für einen meiner Shops die Versandkosten für einige EU-Länder exorbitant gestiegen sind, habe ich dafür 3 weitere Module (Pauschale Versandkosten) erstellt.
Damit lässt sich die EU in mehrere Zonen einteilen für die ich dann z.B. 39 Euro (BE,NL,LU,AT,CH = Zone 1), 59 Euro (DK,HU,CZ,FR = Zone 2) , 79 Euro (GB,GR,IT,SE = Zone 3), usw. definieren kann.
Prinzipiell lassen sich mit dieser Methode alle Versandmodule duplizieren, was jedoch in den allermeisten Fällen keinen Sinn macht.
Anleitung am Beispiel der bereits vorhandenen flat.php
Funktioniert ab Version GX 4.1.1.x
Pflicht-Werkzeuge (alle sind Open Source und Multilingual):
Filezilla oder WinSCP
NP++ (Notepad++)
1. Versandmodul als Vorlage kopieren und anpassen
HTML-Code:
/includes/modules/shipping/flat.php
kopieren nach
HTML-Code:
/includes/modules/shipping/flat2.php
flat2.php mit dem Texteditor NP++ öffnen
PHP-Code:
class flat_ORIGIN
ersetzen durch
PHP-Code:
$languageTextManager = MainFactory::create_object('LanguageTextManager', array(), true);
$languageTextManager->init_from_lang_file('flat');
class flat_ORIGIN
STRG+H drücken und flat durch flat2 ersetzen [Alle Ersetzen], Groß-/Kleinschreibung beachten
Anschließend FLAT durch FLAT2 ersetzen [Alle Ersetzen], Groß-/Kleinschreibung beachten
** Anmerkung unten beachten!
2. Deutsche Sprachdatei als Vorlage kopieren und anpassen
HTML-Code:
/lang/german/original_sections/modules/shipping/flat.lang.inc.php
kopieren nach
HTML-Code:
/lang/german/user_sections/modules/shipping/flat2.lang.inc.php
flat2.lang.inc.php mit dem Texteditor NP++ öffnen
STRG+H drücken und FLAT durch FLAT2 ersetzen [Alle Ersetzen], Groß-/Kleinschreibung beachten
Anschließend sollten die Variablen für den Modul-Titel und -Beschreibung angepasst werden
PHP-Code:
'MODULE_SHIPPING_FLAT2_TEXT_DESCRIPTION' => 'Pauschale Versandkosten',
'MODULE_SHIPPING_FLAT2_TEXT_TITLE' => 'Pauschale Versandkosten',
ändern zu
PHP-Code:
'MODULE_SHIPPING_FLAT2_TEXT_DESCRIPTION' => 'Pauschale Versandkosten für Zone 2',
'MODULE_SHIPPING_FLAT2_TEXT_TITLE' => 'Pauschale Versandkosten Zone 2',
3. Englische Sprachdatei als Vorlage kopieren und anpassen
HTML-Code:
/lang/english/original_sections/modules/shipping/flat.lang.inc.php
kopieren nach
HTML-Code:
/lang/english/user_sections/modules/shipping/flat2.lang.inc.php
flat2.lang.inc.php mit dem Texteditor NP++ öffnen
STRG+H drücken und FLAT durch FLAT2 ersetzen [Alle Ersetzen], Groß-/Kleinschreibung beachten
Anschließend sollten die Variablen für den Modul-Titel und -Beschreibung angepasst werden
PHP-Code:
'MODULE_SHIPPING_FLAT2_TEXT_TITLE' => 'Flat Rate',
'MODULE_SHIPPING_FLAT2_TEXT_DESCRIPTION' => 'Flat rate',
ändern zu
PHP-Code:
'MODULE_SHIPPING_FLAT2_TEXT_TITLE' => 'Flat Rate Zone 2',
'MODULE_SHIPPING_FLAT2_TEXT_DESCRIPTION' => 'Flat rate for Zone 2',
4. Zum Schluss Caches leeren
- Cache für Texte leeren
- Cache für Modulinformationen leeren
- Cache für Seitenausgabe leeren
5. Vorsicht beim Modul table.php **
Beim Modul table.php darf man nicht einfach alle Begriffe table mit z.B. table2 ersetzen.
Weil der Begriff table auch in der Programmstruktur verwendet wird, z.B. zur Abfrage der Datenbanktabellen, darf dieser Begriff natürlich nicht geändert werden.
Ein Beispiel aus der [B]table.php[/B
PHP-Code:
$table_cost = preg_split('/[:,]/', MODULE_SHIPPING_TABLE_COST);
$size = sizeof($table_cost);
for ($i = 0, $n = $size; $i < $n; $i += 2) {
if ($order_total <= $table_cost[$i]) {
$shipping = $table_cost[$i + 1];
break;
}
}
Hier darf nur die Variable MODULE_SHIPPING_TABLE_COST z.B. in MODULE_SHIPPING_TABLE2_COST geändert werden
$table_cost darf nicht geändert werden.