Admin:Versandarten: Unterschied zwischen den Versionen

Aus WEB-Shop Software Wiki
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: „Im WEB-Shop sind bereits diverse Versandarten vorhanden. Viele Versandarten bieten die Möglichkeit diese auf eine "Steuerzone" zu beschränken. Diese Steuerz…“)
 
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:
 
Im Backend "Module" -> "Versandkosten" erkennst Du in der Spalte "Modulname" den Dateinamen für die Versandart, in unserem Fall also '''table'''.
 
Im Backend "Module" -> "Versandkosten" erkennst Du in der Spalte "Modulname" den Dateinamen für die Versandart, in unserem Fall also '''table'''.
  
Nun möchten sagen wir mal die neue Versandart soll "table_eu" heißen - liegt ja Nahe, table war es vorher und "_eu" als Ergänung zur Unterscheidung. Also kopierst Du die obigen Dateien unter dem neuen Namen "table_eu.php":
+
Nun möchten sagen wir mal die neue Versandart soll "tableeu" heißen - liegt ja Nahe, table war es vorher und "eu" als Ergänung zur Unterscheidung. Bei der Namensgebung sollte man nur Kleinbuchstaben verwenden, ein Unterstrich im Namen führt zu einem Problem beim Checkout! Also kopierst Du die obigen Dateien unter dem neuen Namen "tableeu.php":
* includes/modules/shipping/table_eu.php und
+
* includes/modules/shipping/tableeu.php und
* lang/german/modules/shipping/table_eu.php
+
* lang/german/modules/shipping/tableeu.php
* lang/english/modules/shipping/table_eu.php
+
* lang/english/modules/shipping/tableeu.php
  
 
In diesen Dateien werden diverse Konstanten verwendet nun auch noch geändert werden müssen, aber der Reihe nach.  
 
In diesen Dateien werden diverse Konstanten verwendet nun auch noch geändert werden müssen, aber der Reihe nach.  
  
 
=== Anpassen der Zahlungsklasse ===
 
=== Anpassen der Zahlungsklasse ===
Öffne zunächst die Datei ''includes/modules/shipping/table_eu.php'' und suche dort nach ''class table'' - hier muß table durch table_eu ersetzt werden. Jede Klasse hat einen Constructor, der entweder __construct oder so heißt wie die Klasse - suche also nach 'function table' und ersetzte auch dort '''table''' durch '''table_eu'''. Wenn es keine ''function '''table''''' gibt so prüfe ob es eine ''function _construct'' gibt, wenn ja muß du hier nix anpassen.
+
Öffne zunächst die Datei ''includes/modules/shipping/tableeu.php'' und suche dort nach ''class '''table''''' - hier muss '''table''' durch '''tableeu''' ersetzt werden. Jede Klasse hat einen [http://php.net/manual/de/language.oop5.decon.php Konstruktor], der entweder __construct oder so wie die Klasse genannt ist - suche also nach ''function '''table''''' und ersetzte auch dort '''table''' durch '''__construct''' (da wir PHP V5.x verwenden). Wenn es keine ''function '''table''''' gibt so prüfe ob es eine ''function __construct'' gibt, wenn ja muss du hier nix anpassen.
  
Die Klasse selbst weiß ebenfalls wie sie heißt - und speichert dies in der varibale '''$this->code'''. Suche also nach $this->code und weise dieser ebenfalls den neuen wert '''table_eu''' zu.
+
Die Klasse selbst weiß ebenfalls wie sie heißt - und speichert dies in der Varibale '''$this->code'''. Suche also nach $this->code und weise dieser ebenfalls den neuen Wert '''tableeu''' - da wir PHP V5.x verwenden könnte man hier auch '''[http://de1.php.net/manual/de/function.get-class.php get_class($this)]''' verwenden, welches ebenfalls den Namen der Klasse zurückliefert.
  
Nun müssen wir noch die Konstanten ändern. In der Klasse wird ganz oft '''MODULE_SHIPPING_TABLE_''' verwendet, wobei dahinter noch diverse namen kommen. Diese müssen auch alle in den neuen Wert '''MODULE_SHIPPING_TABLE_EU_''' geändert werden.
+
Nun müssen wir noch die Konstanten ändern. In der Klasse wird ganz oft '''MODULE_SHIPPING_TABLE_''' verwendet, wobei dahinter noch diverse namen kommen. Diese müssen auch alle in den neuen Wert '''MODULE_SHIPPING_TABLEEU_''' geändert werden.
  
 
=== Anpassung der Sprachdateien ===
 
=== Anpassung der Sprachdateien ===
Zeile 33: Zeile 33:
  
 
Vor dem Testen sollte man wie immer eine Sicherung anfertigen (Dateien & Datenbank)
 
Vor dem Testen sollte man wie immer eine Sicherung anfertigen (Dateien & Datenbank)
 +
 +
=== Steuerzone anpassen ===
 +
Um nun die richtige Steuerung zu implementieren überprüfe die vorhandenen Steuerzonen. Für unseren Fall erzeugen wir eine Steuerzone "Versand DE" welcher wir nur das Land "Germany" zuweisen. Anschließend erstellen wir eine Steuerzone "Versand EU" welcher wir alle EU-Länder mit Ausnahme von Deutschland hinzufügen.
 +
 +
Nun weisen wir der jeweiligen Versandart die entsprechende Steuerzone zu und haben für Deutschland die eine und für die EU die anderen Versandkosten.
 +
Das ganze kann man natürlich beliebig wiederholen...

Aktuelle Version vom 12. November 2012, 08:03 Uhr

Im WEB-Shop sind bereits diverse Versandarten vorhanden.

Viele Versandarten bieten die Möglichkeit diese auf eine "Steuerzone" zu beschränken. Diese Steuerzone hat nix mit der deutschen Steuer zu tun, sondern es handelt sich vielmehr um eine Kontrollzone. Diese "Zonen" können im Backend unter "Land/Steuer" -> Steuerzonen angelegt und bearbeitet werden.

Häufig benötigt man mehrere Versandarten, insbesondere wenn man ins In- und Ausland verschickt. Anstatt sich nun auf die "vorhandenen" Versandarten zu beschränken kann man auch eine Versandart "duplizieren" indem man den Code vervielfältigt.

Versandart duplizieren

Eine Versandart besteht immer aus einer Code- und mehreren Spachdateien. Diese befinden sich unter

  • includes/modules/shipping/versandart.php und
  • lang/Sprache/modules/shipping/versandart.php

Bei einer Standardinstallation sind es also zwei Sprachdateien (german / english).

Nehmen wir mal an Du möchtest die "Tabellarischen Versandkosten" sowohl für Deutschland als auch für EU (ohne D) verwenden. Im Backend "Module" -> "Versandkosten" erkennst Du in der Spalte "Modulname" den Dateinamen für die Versandart, in unserem Fall also table.

Nun möchten sagen wir mal die neue Versandart soll "tableeu" heißen - liegt ja Nahe, table war es vorher und "eu" als Ergänung zur Unterscheidung. Bei der Namensgebung sollte man nur Kleinbuchstaben verwenden, ein Unterstrich im Namen führt zu einem Problem beim Checkout! Also kopierst Du die obigen Dateien unter dem neuen Namen "tableeu.php":

  • includes/modules/shipping/tableeu.php und
  • lang/german/modules/shipping/tableeu.php
  • lang/english/modules/shipping/tableeu.php

In diesen Dateien werden diverse Konstanten verwendet nun auch noch geändert werden müssen, aber der Reihe nach.

Anpassen der Zahlungsklasse

Öffne zunächst die Datei includes/modules/shipping/tableeu.php und suche dort nach class table - hier muss table durch tableeu ersetzt werden. Jede Klasse hat einen Konstruktor, der entweder __construct oder so wie die Klasse genannt ist - suche also nach function table und ersetzte auch dort table durch __construct (da wir PHP V5.x verwenden). Wenn es keine function table gibt so prüfe ob es eine function __construct gibt, wenn ja muss du hier nix anpassen.

Die Klasse selbst weiß ebenfalls wie sie heißt - und speichert dies in der Varibale $this->code. Suche also nach $this->code und weise dieser ebenfalls den neuen Wert tableeu - da wir PHP V5.x verwenden könnte man hier auch get_class($this) verwenden, welches ebenfalls den Namen der Klasse zurückliefert.

Nun müssen wir noch die Konstanten ändern. In der Klasse wird ganz oft MODULE_SHIPPING_TABLE_ verwendet, wobei dahinter noch diverse namen kommen. Diese müssen auch alle in den neuen Wert MODULE_SHIPPING_TABLEEU_ geändert werden.

Anpassung der Sprachdateien

In den Sprachdateien wird diversen Konstanten der entsprechende Text zugewiesen, auch diese müssen wie oben beschrieben auf den neuen Modulnamen angepasst werden.

Vor dem Testen sollte man wie immer eine Sicherung anfertigen (Dateien & Datenbank)

Steuerzone anpassen

Um nun die richtige Steuerung zu implementieren überprüfe die vorhandenen Steuerzonen. Für unseren Fall erzeugen wir eine Steuerzone "Versand DE" welcher wir nur das Land "Germany" zuweisen. Anschließend erstellen wir eine Steuerzone "Versand EU" welcher wir alle EU-Länder mit Ausnahme von Deutschland hinzufügen.

Nun weisen wir der jeweiligen Versandart die entsprechende Steuerzone zu und haben für Deutschland die eine und für die EU die anderen Versandkosten. Das ganze kann man natürlich beliebig wiederholen...