Alle Länder einfügen

Falls es noch jemand benötigt. Folgendes SQL-Statement weist alle EU-Länder dem Verkaufskanal zu - Achtung SALES_CHANNEL_ID_EINSETZEN entsprechend ersetzen:

INSERT IGNORE INTO sales_channel_country 
(sales_channel_id, country_id)
SELECT UNHEX('SALES_CHANNEL_ID_EINSETZEN'), id FROM country WHERE iso IN('BE','BG','DK','DE','EE','FI','FR','GR','IE','IT','HR','LV','LT','LU','MT','NL','AT','PL','PT','RO','SE','SK','SI','ES','CZ','HU','CY')

Und mit folgendem Statement wird der Versand in alle EU-Länder (außer Deutschland) deaktiviert:

UPDATE country SET shipping_available = 0
WHERE iso IN('BE','BG','DK','EE','FI','FR','GR','IE','IT','HR','LV','LT','LU','MT','NL','AT','PL','PT','RO','SE','SK','SI','ES','CZ','HU','CY')

Damit ist der Verordnung genüge getan. Kann dann natürlich nach Belieben angepasst werden und z.B. bestimmte Länder ergänzt oder für der Versand freigegeben werden.

3 „Gefällt mir“

Danke, das hat mir geholfen! Vorher musste ich nur die 249 unnötigen Länder erst einmal entfernen:

DELETE FROM sales_channel_country

WHERE sales_channel_id = UNHEX('018ddcfed9d5716eb84002847b5cf34b')

AND country_id IN (SELECT id FROM country WHERE iso != 'DE');

Hättest du auch weglassen können, DE wird ja wieder im obigen Befehl hinzugefügt.

Viele Wege führen nach Rom. Man könnte auch einfach nur die nicht EU-Länder löschen. DE habe ich aber drin gelassen, weil mindestens ein Land drin sein muss.