Ich versuche gerade Kunden von Magento 2.2 zu Shopware 6 zu migrieren. Bei manchen funktioniert das allerdings nicht.
Für die betroffenen Kunden wird diese Fehlermeldung geloggt:
[warning] SWAG_MIGRATION_EMPTY_NECESSARY_FIELD_CUSTOMER
The customer entity has one or more empty necessary fields
The customer entity with the source id 3 does not have the necessary data for the field(s): address data
Ich habe in der lokalen Mangeto-Datenbank testweise versucht, die Adressfelder zu füllen, jedoch ohne Erfolg.
Dazu hab ich in der Tabelle customer_address_entity eine Adresse angelegt und diese mit einem Customer in customer_entity verlinkt.
Ich hab den Fehler gefunden. Wenn Adressen in customer_address_entity anlegt werden, muss darauf geachtet werden, dass country_id einem ISO-Standard entspricht, z.B. ‚DE‘.
Ich habe zunächst Adressen für alle Kunden erstellt, die noch keine hatten:
INSERT INTO customer_address_entity
(parent_id, city, country_id, firstname, lastname, postcode, street, telephone)
SELECT entity_id, ' ', 'DE', ' ', ' ', ' ', ' ', ' '
FROM customer_entity
WHERE default_billing is null and default_shipping is null
Und dieses dann als Standardadressen zugewiesen:
UPDATE customer_entity
SET
default_billing = (SELECT parent_id FROM customer_address_entity WHERE customer_address_entity.parent_id = customer_entity.entity_id),
default_shipping = (SELECT parent_id FROM customer_address_entity WHERE customer_address_entity.parent_id = customer_entity.entity_id)
WHERE default_billing is null and default_shipping is null