Liste aller Länder (Länderliste) inkl. Steuerkonfiguration und Übersetzung für den Shopware-Import

Moin Moin Shopware-Community,

da wir in der Vergangenheit schon mehrmals vergeblich nach einer vollständigen und korrekten Länderliste inkl. VAT-Konfiguration für Shopware gesucht haben, stellen wir euch hiermit unsere neu erstellte bereit.

areaID 1 = Deutschland
areaID 2 = Rest der Welt
areaID 3 = Europäische Union

Diese Werte müssen mit den Einträgen der s_core_countries_areas übereinstimmen.
Bei einer frischen Shopware-Instanz ist es ausreichend, eine neue Zone für die europäischen Länder unter Einstellungen => Grundeinstellungen => Shopeinstellungen => Länder-Zonen anzulegen.

Wichtig: Mit dem Update vom 08.01.2018 wurde der SQL-Befehl von insert auf replace geändert. Beim Import der SQL-Datei werden die vorhandenen Einstellungen der Shopware-Länder überschrieben. (siehe untenstehender Kommentarverlauf)

https://internetinnovations.de/s_core_countries.xml
https://internetinnovations.de/s_core_countries.sql

Initial Release: 24.08.2017

Update 04.01.2018:
– added new country (South Sudan)

Update 08.01.2018:
– Changed SQL command from insert to replace

Update 25.09.2018:
– Changed Iceland areaID and taxation

 

Mit dem folgenden PHP-Skript können die internationalen Bezeichnungen automatisiert als Übersetzungen hinterlegt werden. Es wird dafür ein SQL-File erzeugt (insert_translation.sql) welches danach in die DB importiert werden muss.

 

Es müssen in dem Skript die oben angegebenen Konstanten (DB_USER, DB_PASSWORD etc.) mit Werten befüllt werden. Als Shop-IDs müssen die IDs (Primary-Keys in der Tabelle ‘s_core_countries’) der Shops (Sub-Shops bzw. Language-Shops) angegeben werden, für die eine Übersetzung auf Englisch erzeugt werden soll.

Starten des Skripts per Konsole/Terminal mit: php <skript_name></skript_name>

query($sql_shops) as $row_shop) {
        echo "Shop: " . $row_shop['name'] . "\n\n";

        $insert_content_countries = "";
        $num_of_rows = 0;
        $sql_countries = "SELECT * FROM " . $DB_NAME . ".s_core_countries";
        foreach ($pdo->query($sql_countries) as $row_country) {
                $num_of_rows++;
                $countryid = $row_country['id'];
                $countryen = $row_country['countryen'];
                echo $countryid . " - " . $countryen . "\n";

                $insert_content_countries .= 'i:' . $countryid . ';a:2:{s:6:"active";s:1:"1";s:11:"countryname";s:';
                $insert_content_countries .= strlen($countryen) . ':"' . $countryen . '";}';
        }

        $insert_content = "a:" . $num_of_rows . ":{";
        $insert_content .= $insert_content_countries;
        $insert_content .= "}";

        $file_content .= "INSERT INTO " . $DB_NAME . ".s_core_translations (objecttype, objectkey, objectlanguage, dirty, objectdata)\n";
        $file_content .= "VALUES ('config_countries', '1', '" . $row_shop['id'] . "', '1', '" . $insert_content . "');\n\n";

        echo "\n\n";
}


$file = 'insert_translations.sql';
file_put_contents($file, $file_content);


echo "Done!";

?>

Initial Release: 04.01.2018

Update 09.01.2018:
– minor bugfix in php script

Update 10.01.2018:
– added shop-id array

 

Wir freuen uns über jede “Bedankung” :)

1 „Gefällt mir“

Ah cool von euch, Danke :slight_smile:

Ich gleiche die Liste gerade mit den Ländern in die DHL liefert ab.
Süd Sudan könntest du noch hinzufügen da es bei DHL aufgeführt ist.
Südsudan – Wikipedia
 

1 „Gefällt mir“

@Kai23 schrieb:

Ich gleiche die Liste gerade mit den Ländern in die DHL liefert ab.
Süd Sudan könntest du noch hinzufügen da es bei DHL aufgeführt ist.
https://de.wikipedia.org/wiki/Südsudan

Danke für den Tipp. Werden wir mit dem nächsten Update implementieren. Eventuell stellen wir die Liste und den Code als Plugin kostenfrei im Store bereit.

Super nice. Vielen Dank für die Liste.

Allerdings werden diese Länder nicht bei den Zahlungsarten für den Länderaufschlag angezeigt. Ich vermute die liegen in einer anderen Tabelle. Hat hier zufällig jemand auch so eine Liste? :slight_smile:

VG Frank

Moin Frank,

hast du denn unser obenstehendes PHP-Skript genutzt, um die Übersetzungstabelle zu füllen?

 

@Kahmoonb schrieb:

Super nice. Vielen Dank für die Liste.

Allerdings werden diese Länder nicht bei den Zahlungsarten für den Länderaufschlag angezeigt. Ich vermute die liegen in einer anderen Tabelle. Hat hier zufällig jemand auch so eine Liste? :slight_smile:

VG Frank

Ich habe das SQL ( s_core_countries.sql ) direkt in der DB eingefügt. Vermutlich war das der Fehler? :slight_smile:

 

Hab jetzt noch mal das PHP Script ausgeführt und danach die erzeugte SQL Datei importiert. Ändert aber bei den Ländern in der “Länder-Aufschlag” Liste nichts.

Sind denn die Übersetzungen an den Ländern gepflegt? Hast du den Backend-Cache geleert? Sind die Länder in der Länder-Auswahl denn da?
Bei unseren Shops hat das Vorgehen bisher geklappt.

 

@Kahmoonb schrieb:

Ich habe das SQL ( s_core_countries.sql ) direkt in der DB eingefügt. Vermutlich war das der Fehler? :)

 

Hab jetzt noch mal das PHP Script ausgeführt und danach die erzeugte SQL Datei importiert. Ändert aber bei den Ländern in der „Länder-Aufschlag“ Liste nichts.

1 „Gefällt mir“

Nachdem ich den Cache zwei mal gelöscht habe waren die Länder da. Alles gut. Danke.

1 „Gefällt mir“

Super, vielen Dank für die Bereitstellung.

Darf ich nach der Quelle für die Informationen bzgl. VAT fragen?

Ich frage auch nach, weil bei einigen europäischen Ländern (Litauen, Malta, Slowenien…) ein Haken bei „Steuerfrei für Unternehmen“ steht, bei anderen europöschen Ländern nicht (Polen, Portugal, Italien…).

Weiterhin ist kein Haken bei „Steuerfrei“ bei z.B. Japan, Brasilien, Australien, wohl aber bei Georgien, Albanien …

1 „Gefällt mir“

Danke für die Überprüfung. Leider können wir die Anmerkungen aber nicht nachvollziehen.
Wir haben uns gerade nochmal die Dateien heruntergeladen und bei den Ländern Litauen, Malta, Slowenien, Polen, Portugal, Italien ist überall 0,1,0 hinterlegt. Es werden also die europäischen Steuerberechnungen herangezogen. Für die anderen Länder (areaID 2) konnten ebenfalls keine Fehler festgestellt werden.

Könnte es sein, dass beim Import bestehende Daten nicht überschrieben wurden?

 

@nordicecom schrieb:

Super, vielen Dank für die Bereitstellung.

Darf ich nach der Quelle für die Informationen bzgl. VAT fragen?

Ich frage auch nach, weil bei einigen europäischen Ländern (Litauen, Malta, Slowenien…) ein Haken bei „Steuerfrei für Unternehmen“ steht, bei anderen europöschen Ländern nicht (Polen, Portugal, Italien…).

Weiterhin ist kein Haken bei „Steuerfrei“ bei z.B. Japan, Brasilien, Australien, wohl aber bei Georgien, Albanien …

Wir mussten auch ein paar Länder diesbezüglich nachjustieren. Kann aber an der von dir genannten Ursache liegen.

VG

Öffnet da gerne einfach die XML im Browser. Wenn ihr einen Fehler findet, werden wir den natürlich sofort korrigieren. :) 

@Kahmoonb schrieb:

Wir mussten auch ein paar Länder diesbezüglich nachjustieren. Kann aber an der von dir genannten Ursache liegen.

VG

1 „Gefällt mir“

Danke, genau das habe ich gesucht :slight_smile:

Wir haben Änderungen vorgenommen, sodass die Standard-Shopware-Einträge bei einem Import unseres SQL-Files überschrieben werden.

1 „Gefällt mir“

Hi,

mir ist gestern etwas aufgefallen…und zwar genau bei den Ländern die hier nachträglich eingefügt werden.

Wenn ich bei Paypal einen Zuschlag für eins der Länder eintrage und speichere bleibt der Zuschlag sichtbar und es kommt “Die Zahlungsart wurde erfolgreich gespeichert.”. Schließe ich das Fenster “Zahlungsarten” und öffne es erneut. Sind diese Länderzuschläge wieder weg.

 

Kann mir jemand weiterhelfen?

 

System läuft auf PHP 7.0 CGI
Shopware 5.4.1

 

VG

Frank

@Kahmoonb schrieb:

Wenn ich bei Paypal einen Zuschlag für eins der Länder eintrage und speichere bleibt der Zuschlag sichtbar und es kommt „Die Zahlungsart wurde erfolgreich gespeichert.“. Schließe ich das Fenster „Zahlungsarten“ und öffne es erneut. Sind diese Länderzuschläge wieder weg.

Kann mir jemand weiterhelfen?

 

Moin Frank,

leider haben wir deinen Post gerade erst durch Zufall entdeckt. Wir haben das Problem bei unseren Systemen nicht.
Konntest du das Problem bereits lösen?

Servus,

ich habe Paypal noch mal komplett neu installiert und alle Zuordnungen entfernt. Irgendwann ging es auf diesem Wege dann. Danke.

 

VG Frank

1 „Gefällt mir“

Hi,

sehe ich das richtig das Island mit “taxfree_ustid = 1” falsch konfiguriert ist? Island ist doch kein EU-Mitgliedstaat.

Herzlichen Gruß

Matthias

1 „Gefällt mir“

@nordicecom schrieb:

Hi,

sehe ich das richtig das Island mit „taxfree_ustid = 1“ falsch konfiguriert ist? Island ist doch kein EU-Mitgliedstaat.

Herzlichen Gruß

Matthias

 Hallo Matthias,

du hast recht. Das ist ein Fehler in der Tabelle. Wir haben ihn in der XML und SQL korrigiert.

1 „Gefällt mir“