Kundenimport aus CSV

Hi,

ich habe aus meinem alten WooCommerce Shop eine csv exportiert mit allen Kunden. Diese möchte ich nun in Shopify importieren.

Laut Dokumentation und Meldung beim Anlegen eines Profils gibt es einige Pflichtfelder die importiert werden müssen 

  • id
  • groupId
  • defaultPaymentMethodId
  • salesChannelId
  • languageId
  • defaultBillingAddressId
  • defaultShippingAddressId
  • customerNumber
  • salutationId
  • firstName
  • lastName
  • email
  • createdAt

Firstname, lastname, email, createdat, customernumber ist klar was ich hier in die CSV schreiben muss.

Ich habe allerdings keine Ahnung was in die anderen Felder muss. Wenn ich diese leer lasse, schlägt der import fehl.

Würde mich über etwas Hilfe freuen.

Viele Grüße

Nico

Hi Nico,

ich habe das gleiche Problem - die Felder sind ganz gut dokumentiert. Import/Export

Ich habe Kunden angelegt, mir ein Profil gebastelt und die Kundendaten exportiert.

Problem ist aber, dass ich DefaultBillingAdressIDs als auch DefaultShippingAdressIDs angeben muss. Das kann ich ja nicht - die Adressdatensätze will ich ja durch den Import erst erzeugen. Entweder ich verstehe hier was nicht, oder es handelt sich um einen Bug.

richtig, genau so ergeht es mir auch. Eigentlich sollten die ganzes IDs von Shopware angelegt werden durch den Import der Adressen.

Bin auch den Weg gegangen mir einen Kunden im Backend anzulegen, ein Profil erstellt und dann einen export durchgeführt.

Die exportierte CSV Datei wollte ich dann mit meinen Kundendaten füllen und importieren… eigentlich.

 

Ich möchte Kundendaten als CSV importieren. das Profil habe ich mir angelegt, und alles angegeben was Pflicht ist oder in der Datenbank erscheint beim Anlegen eines neuen Kunden übers Backend.

Ich verstehe auch nicht woher die IDs kommen.

  1. ID ist ein Pflichtfeld im Profil. Das ist die aus der Spalte Customer, gut, die könnte man generieren
  2. Aber wie generiere ich die Customer_address ID? das Feld heißt in der Datenbank unter customer_address ebenfalls ID - aber ich kann nicht beide importieren. Ds wird mir nicht vorgegeben.
    Woher soll er also beim Import wissen welche Straße, Stadt etc zu welcher ID gehört?

Es gibt zu allen anderen Imports eine Beispiel CSV, nur nicht zu den Kunden. Wenn ich eine Exportiere und mit neuen Daten fülle Gibts Fehler…

weiß jemand mehr?
 

Vielleicht sollte sich das mal jemand von Shopware ansehen.

@nico84 schrieb:

Vielleicht sollte sich das mal jemand von Shopware ansehen.

und wie bekommt man jemanden dazu sich das anzuschauen?

ok, hab einen Durchbruch erzielt und konnte neue Daten importieren. Anleitung folgt sowie ich Zeit habe. jetzt muss ich mich erstmal um meinen Import kümmern :wink:

Super, ich hänge noch immer. Bin gespannt auf die Anleitung. Vielen Dank schon mal :9

@belindak schrieb:

ok, hab einen Durchbruch erzielt und konnte neue Daten importieren. Anleitung folgt sowie ich Zeit habe. jetzt muss ich mich erstmal um meinen Import kümmern :wink:

 

Kannst du schon ein paar Infos geben wie es funktioniert?

Ich erstelle eine Export-Datei genau nach Mindest- Vorgaben (siehe Nico) und erhalte immer folgende Fehlermeldung

0: Argument 1 passed to Shopware\Core\Content\ImportExport\Aggregate\ImportExportLog\ImportExportLogEntity::setProfileName() must be of the type string, null given, called in /var/www/shopware/vendor/shopware/core/Content/ImportExport/Service/ImportExportService.php on line 245

Kann damit jemand etwas anfangen?

so, sorry, hat etwas gedauert. also ich habe es geschafft 1500 Kundendaten zu importieren *tschakka*

Folgende Schritte:

  1. einen Testkunden als Vorlage in Shopware  anlegen /übers Backend
  2. Ein Profil anlegen, Bilder mit den erforderlichen Daten hänge ich an
  3. Einen Export des Testkunden / oder aller bsiherigen Kunden machen.
    JETZT GANZ WICHTIG:
  4. in Excel ein neues Blatt / Mappe öffnen, dann Datei/Import und die exportierte CSV Datei importieren (nicht die Datei einfach nur öffnen, der Import ist wichtig!)
    hier angeben UFT8, trennzeichen Semikolon etc. Ich habe auch alle Spalten markiert und als Text einfügen lassen, damit Excel ncith irgendwas damliches aus den Zahlen macht und Datum oder telefonnummern anders formatiert.
  5. in diese jetzt vorhandenen Spalten fürgt ihr eure Kundendaten hinzu. Wichtig sind z.B. die gannzen UUIDs aus eurer Datenbank zu nehmen, also die für Anrede, Zahlungsart, Ländercodes etc, die müsst ihr euch vorher aus der Datenbank rausholen.
  6. Datei speichern und Import mit dem gleichen Profil machen.

Als Info: Ich habe es lediglich mit Rechnungsadressen gemacht. Dann ist Rechnungsadresse gleich Lieferadresse. Leider legt der Shop jedesmal wenn man einen Kunden wieder importiert mit einer anderen Adresse die direkt als zusätzliche Lieferadresse an. Dann könnte man abweichende Lieferadressen noch hinterher importieren. Passwörter habe ich nicht mit importiert. Ist sicher auch möglich, aber so können die Kunden ja ein neues Passwort anfordern, die anderen Daten sind ja da.
Auf jeden fall kann man darauf aufbauen wenn man es überhaupt schafft schonmal was zu importieren. Am besten an eienr Testinstallation testen…

Wer nicht weiß wie man die Kundendaten aufbereitet in Excel um das dann gescheit zu importieren kann mir schreiben, ich kann mir das gerne ansehen und euch ein faires Angebot machen.

1 „Gefällt mir“

ach so, ID einfach leerlassen, das wird generiert, ebenso adressid und shippingid
wichtig sind das eben alle anderen Daten gefüllt werden, mit den IDs aus der Datenbank (Also für Country, Anrede,Group,PaymentMethod etc)

You, sir, are my hero!

Hat gut funktioniert, nur das Billingaddress.countryID hast Du vergessen oder ich habs übersehen ist auch Pflicht

 

Moin, kann mir jemand sagen unter welchem Eintrag die “ID” in der Datenbank zu finden ist? Alle anderen habe ich gefunden, es scheitert nun leider nur noch an der einen :confused:

hat sich bereits geklärt - nun geht es. Vielen Dank für die Anleitung :slight_smile:

Nur der Vollständigkeit halber: Passwörter können mit importiert werden und funktionieren auch

ja, ich habe nur die Pflichteinträge angegeben damit es überhaupt funktioniert. alles andere kann natürlich hinzugefügt werden.
Freue mich wenn meine Stundenlange tüftelei doch noch einigen geholfen hat

2 „Gefällt mir“

Noch einen Tipp, der mich gestern Stunden gekostet hat: Ich hatte folgenden Fehler:
CONTENT__IMPORT_FILE_HAS_UNEXPECTED_TYPE: Given file does not match MIME-Type for selected profile. Given: application/vnd.ms-excel. Expected: text/csv

Ich hatte die CSV-Datei als UTF-8 CSV aus Excel heraus gespeichert. Der unglaubliche witzige Grund für diesen Fehler ist:

Excel speichert die CSV als .CSV (mit Großbuchstaben). Dieses Dateiformat ist auf meinem PC von Excel registriert und wird damit wohl als MIME-Type an den Browser weitergegeben.

Ich musste nur die Datei in .csv umbenennen (kleingeschrieben), dann klappt es sofort.

Hoffe ich kann damit jemandem Zeit sparen.

Sonst ist der Import relativ einfach, die Reihenfolge der Spalten spielt z.B. keine Rolle, solange sie den richtigen Header haben.

Und noch ein zweiter Tipp … für das Mapping von Ländern, Bundesländern, Ansprache etc. braucht ihr die IDs (UUID) aus der Datenbank des Shops. Man kann natürlich entsprechende Kunden anlegen und exportieren, um die IDs zu bekommen.

Man kann aber auch in phpmyadmin die entsprechenden Datenbanktabellen suchen z.B. salutation oder country und dann die Daten daraus exportieren.

Um z.B. die IDs der Bundesländer (gibt es für UK, US und DE) zu bekommen, nutzt ihr folgendes Script in phpmyadmin:

SELECT lower(hex(id)) ID, short_code FROM country_state WHERE 1

Jetzt müsst die diese Daten nur noch exportieren z.B. als CSV und ein Mapping in Excel dazu bauen z.B. über einen SVERWEIS.

Für die Bundesländer habe ich das z.B. so gemacht:

  • Liste der Kunden mit Postleitzahl
  • SVERWEIS-Mapping von Postleitzahl zu Bundesland (dazu gibt es Excel-Zuordnungen, wenn ihr in Google sucht)
  • SVERWEIS-Mapping von Bundesland zu Short-Code
  • SVERWEIS-Mapping von Short-Code zu ID

Liste dann aufbereiten und als CSV UTF8 exportieren (ACHTUNG .csv eventuell klein schreiben).

Das ging ziemlich gut.