Zum Hauptinhalt springen
Die Konfiguration country.dat bestimmt, welche Länder der Käufer bei der Bestellung für seine Rechnungsadresse auswählen kann. Was hier nicht steht, kann er nicht wählen und nicht abschicken. Soll für die abweichende Lieferadresse eine andere Länderliste gelten, legen Sie diese in der zusätzlichen Datei country_deliv.dat fest. Das ist der übliche Weg für Shops, die weltweit Rechnungen stellen, aber nur in bestimmte Länder versenden. Konfig Land Wegweiser: Grundeinstellungen für Rechnungs- und Lieferadresse festlegen, Auswahllisten der Adressdaten · Grundlagen: Grundlagen zu Konfigurationen

Wo die Dateien liegen

Beide Dateien liegen im Konfigurationsverzeichnis des Subshops, und dort getrennt je Sprache:
Ein mehrsprachiger Shop pflegt die Listen also mehrfach. Das ist auch der Sinn der Trennung, denn die Ländernamen in der Datei sind der Anzeigetext, den der Käufer im Auswahlfeld liest.
Die country.dat ist eine Pflichtdatei. Fehlt sie oder lässt sie sich nicht lesen, bricht der Shop mit einer Fehlermeldung ab. Die country_deliv.dat ist dagegen optional. Fehlt sie, verwendet der Shop für die Lieferadresse dieselbe Liste wie für die Rechnungsadresse.Dass die `country.

Aufbau

Beide Dateien sind gleich aufgebaut, im TSV-Format mit tabulatorgetrennten Spalten. Die erste Zeile enthält die Spaltennamen, ab der zweiten Zeile folgen die Daten. Auszug aus einer country.dat oder country_deliv.dat. Das Tabulatorzeichen ist hier als (TAB) dargestellt:

Wie der Shop die Datei liest

Drei Regeln bestimmen, was aus Ihrer Datei tatsächlich im Shop ankommt. Die Kopfzeile wird übersprungen, ihr Inhalt wird nicht ausgewertet. Der Shop überliest die erste Zeile unabhängig davon, was darin steht. Die Spaltenzuordnung ergibt sich aus der Position, nicht aus dem Namen in der Kopfzeile. Die erste Spalte ist immer der Name, die zweite immer der ISO-Code. Der ISO-Code wird hart auf drei Zeichen gekürzt. Steht in der zweiten Spalte etwas Längeres, schneidet der Shop stillschweigend ab. Das ist kein Fehler, sondern Absicht, denn am Ende des Codes stehen in der Praxis oft Leerzeichen. Die Reihenfolge der Zeilen ist die Reihenfolge im Auswahlfeld. Der Shop sortiert nicht. Wenn die wichtigsten Länder oben stehen sollen, sortieren Sie die Datei entsprechend. Im Auszug oben stehen deshalb Deutschland, Österreich und die Schweiz vor der alphabetischen Liste.
Die Spaltenreihenfolge dürfen Sie nicht vertauschen. Der Shop liest streng nach Position. Das Modul für Formulare und Anfragen dagegen sucht die Spalten über die Namen Name und Iso in der Kopfzeile und bricht mit einer Warnung ab, wenn eine davon fehlt.Halten Sie sich deshalb an beides: die Spaltenreihenfolge Name, dann ISO, und eine Kopfzeile, die genau diese beiden Namen enthält.
Der Auszug oben enthält Österreich zweimal, einmal als ÖSTERREICH und einmal als AUSTRIA, beide mit dem ISO-Code AUT. Im Auswahlfeld erscheinen dann auch beide Einträge.Für die Rückübersetzung eines ISO-Codes in einen Ländernamen, etwa in Bestätigungsmails oder auf der Rechnung, gewinnt der erste passende Eintrag in der Datei. Wenn Sie doppelte ISO-Codes vermeiden wollen, löschen Sie den jeweils unerwünschten Eintrag.

Worauf die Listen sonst noch wirken

Die Länderlisten sind nicht nur die Quelle für zwei Auswahlfelder. Sie wirken an mehreren Stellen weiter, und das erklärt einige Effekte, die sonst überraschen. Eingabeprüfung. Der Shop prüft das übermittelte Land gegen die Liste. Ein Land, das nicht darin steht, wird abgewiesen, auch wenn es über einen manipulierten Formularwert hereinkommt. Für die Lieferadresse prüft der Shop gegen die country_deliv.dat, sofern diese existiert. Ländernamen in Ausgaben. Gespeichert wird der ISO-Code. Überall dort, wo stattdessen der Ländername erscheint, löst der Shop ihn über die Liste auf. Fehlt der Code in der Liste, bleibt die Ausgabe leer. Grundgesamtheit für Liefer- und Zahlungsregeln. Wenn Sie in der shop.config für eine Versandart oder eine Zahlungsart eine Länderregel hinterlegen, baut der Shop die Gegenliste, also “alle übrigen Länder”, aus der country_deliv.dat auf. Ein Land, das dort fehlt, taucht deshalb auch in der automatisch erzeugten Gegenliste nicht auf. Referenz: shop.config, Zahlungsarten · shop.config, Versand und Lieferung Für die Umrechnung zwischen dem dreistelligen ISO-Code, dem zweistelligen Code und dem numerischen Ländercode verwendet der Shop eine eingebaute Tabelle, nicht die country.dat. Ein selbst erfundener dreistelliger Code lässt sich deshalb nicht umrechnen. Verwenden Sie ausschließlich echte Codes nach ISO 3166.

Änderungen an der Länderliste

Ein Land, das Sie aus der Datei entfernen, verschwindet aus allen Auswahlfeldern. Umgekehrt erscheint ein neu eingetragenes Land überall, auch dort, wo Sie vielleicht gar nicht liefern wollen. Wenn Sie Rechnungs- und Lieferländer unterschiedlich führen wollen, ist die country_deliv.dat dafür der richtige Ort und nicht eine Einschränkung in der country.dat. Der Shop liest beide Dateien einmal je Aufruf. Änderungen wirken also mit dem nächsten Seitenaufruf, ein Neustart ist nicht nötig.