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” :)