Userdaten von OXID nach Shopware übertragen

Hallo, da ich selbst von OXID gerade nach Shopware umziehe, hier eine kleine Anleitung, um die User von Oxid nach Shopware zu übertragen. Ich hoffe es hilft dem einen oder anderen, über Anregungen und Verbesserungen würde ich mich natürlich freuen. Userdaten aus Oxid 4.2 (oder höher) nach Shopware Als erstes einen Kundenaccount in Shopware anlegen, mit einem Password, welches später für alle importierten User aus Oxid gilt. Oxid Datenbank aufrufen und dort unter SQL folgenden Befehl ausführen: SELECT OXCUSTNR,OXUSERNAME,OXACTIVE FROM oxuser WHERE 1 Dann alle anzeigen lassen (Zeige 3000 Datensätze, beginnend ab 0 zum Beispiel, je nachdem, wie viele Kunden vorhanden sind) Dann alle markieren Dann das Exportieren Symbol drücken warten CSV Daten wählen, unten “Senden” anhaken unter Optionen rechts eintragen: Felder getrennt mit: ‘,’ Zeilen getrennt mit: ‘),(’ der Rest bleibt leer die gespeicherte Datei mit einem Editor öffnen, am Anfang eine ( einfügen, am Ende das ,(’ entfernen Dann in die shopware Datenbank einloggen, die s_user aufrufen, auf Anzeigen gehen, dort das verschlüsselte Passwort des oben angelegten Users kopieren. unter Struktur den Eintrag Passwort editieren, dort unter Standart auf einfügen gehen, dann sollte das verschlüsselte Passwort dort stehen, das Ganze speichern. Dann unter Struktur den Standartwert von customergroup auf EK ändern und speichern, den Eintrag language als Standart mit de speichern. Bei subshopID unter Standart eine 1 speichern, fertig. Das Ganze wird am Ende wieder rückgängig gemacht, die Default Werte bitte merken. Jetzt unter SQL folgenden Befehl ins Fenster eintragen: INSERT INTO s_user (id, email, active) VALUES darunter kommt direkt der Inhalt der eben gespeicherten CSV Datei mit dem Komma am Anfang und dem gelöschten ,(’ am Ende Dann auf ok und warten. Sollte es zum Abbruch wegen Time-out kommen, das Ganze splitten. Nach dem Import die Werte unter Struktur wieder auf die ursprünglichen setzen. Jetzt können sich alle User mit dem festgelegten Passwort von oben einloggen, sollten dies natürlich danach ändern. Jetzt fehlen aber noch die Adressdaten, dazu folgendes: In phpmyadmin die Oxiddatenbank aufrufen und unter SQL folgendes eingeben: SELECT OXCUSTNR,OXCUSTNR,OXCOMPANY,OXSAL,OXCUSTNR,OXFNAME,OXLNAME,OXSTREET,OXSTREETNR,OXZIP,OXCITY,OXFON,OXFAX,OXBIRTHDATE FROM oxuser WHERE 1 Dann alle anzeigen lassen (Zeige 3000 Datensätze, beginnend ab 0 zum Beispiel, je nachdem, wie viele Kunden vorhanden sind) Dann alle markieren Dann das Exportieren Symbol drücken warten CSV Daten wählen, unten “Senden” anhaken unter Optionen rechts eintragen: Felder getrennt mit: ‘,’ Zeilen getrennt mit: ‘),(’ der Rest bleibt leer die gespeicherte Datei mit einem Editor öffnen, am Anfang eine ( einfügen, am Ende das ,(’ entfernen Jetzt brauchen wir noch den Suchen und Ersetzen Befehl, um aus den grossen MR und MRS, welches OXID nutzt, ein kleines mr und mrs für die shopware Datenbank zu machen. Dann in die shopware Datenbank einloggen, die s_user_billingaddress aufrufen, unter Struktur die countryID editieren, dort unter Standart 2 eintragen und speichern (das bewirkt, das alle importierten User unter Deutschland gespeichert werden, da die Kunden später ihr Passwort eh ändern müssen, sollten sie das auch bei einem abweichenden Land tun) Danach unter SQL folgendes ins Fenster kopieren: INSERT INTO s_user_billingaddress (id, userID, company, salutation, customernumber, firstname, lastname, street, streetnumber, zipcode, city, phone, fax, birthday) VALUES darunter kommt direkt der Inhalt der eben gespeicherten CSV Datei mit dem Komma am Anfang und dem gelöschten ,(’ am Ende Dann auf ok und warten. Sollte es zum Abbruch wegen Time-out kommen, das Ganze splitten. Nach dem Import die countryID wieder editieren, die 2 dort einfach löschen und speichern. Nun sind alle Kunden deutsche Kunden, können sich aber mit dem oben festgelegten Passwort einloggen und sollten jetzt ihr Land und das Passwort entsprechend ändern.

Super Artikel! :thumbup:

Hi, bei Intresse habe ich noch ein Script der alle Kunden und Artikeldaten importiert. Dieser müsste aber für die neue Version noch etwas angepasst werden. SELECT u.OXCUSTNR as customernumber, 'EK' as customergroup, u.OXCOMPANY as billing\_company, '' as billing\_department, IF(u.OXSAL='Herr','mr','ms') as billing\_salutation, u.OXFNAME as billing\_firstname, u.OXLNAME as billing\_lastname, u.OXSTREET as billing\_street, u.OXSTREETNR as billing\_streetnumber, u.OXZIP as billing\_zipcode, u.OXCITY as billing\_city, u.OXCOUNTRY as billing\_country, IF(u.OXFON='',u.OXMOBFON,u.OXFON) as phone, u.OXFAX as fax, u.OXUSERNAME as email, u.OXBIRTHDATE as birthday, u.OXUSTID as ustid, u.OXADDINFO as billing\_text1, IF(OXDELSAL='Herr','mr','ms') as shipping\_salutation, OXDELFNAME as shipping\_firstname, OXDELLNAME as shipping\_lastname, '' as shipping\_company, '' as shipping\_department, OXDELSTREET as shipping\_street, OXDELSTREETNR as shipping\_streetnumber, OXDELZIP as shipping\_zipcode, OXDELCITY as shipping\_city, OXDELCOUNTRY as shipping\_country, OXDELADDINFO as shipping\_text1, u.OXPASSWORD as password, 'de' as language, u.OXCREATE as firstlogin, IF(o.OXORDERDATE,o.OXORDERDATE,u.OXCREATE) as lastlogin, u.OXCREATE as lastlogin, IF(n.OXID,IF(b2.OXID,0,IF(b.OXID,0,IF(OXACTIV,1,0))),0) as newsletter, IF(b.OXID,0,IF(OXACTIV,1,0)) as active, 5 as paymentID, 1 as newslettergroupID FROM oxuser u LEFT JOIN oxorder o ON o.OXID=(SELECT OXID FROM oxorder WHERE OXUSERID=u.OXID ORDER BY OXORDERDATE DESC LIMIT 1) LEFT JOIN oxobject2group n ON n.OXOBJECTID=u.OXID AND n.OXGROUPSID='oxidnewsletter' LEFT JOIN oxobject2group b ON b.OXOBJECTID=u.OXID AND b.OXGROUPSID='oxidblacklist' LEFT JOIN oxobject2group b2 ON b2.OXOBJECTID=u.OXID AND b2.OXGROUPSID='oxidblocked' WHERE u.OXRIGHTS='user' Man kann übrigens auch mit diesen Befehl im PHPMyAdmin eine komplette Kunden-CSV erstellen und diese dann im Shop importieren. VG Heiner

1 Like

Na super genau was ich brauche :slight_smile: wenn das jetzt alles so klappt wie gesagt *freu* ^^ //edit… okay scheint doch nicht so einfach zu funktionieren… einige oxid tables haben sich geändert… zb oxcountry ist ausgelagert worden… und in der shopware scheinen auch viele tabellen geändert worden zu sein…

Hi, wir bringen in ca. 2 Wochen eh einen Importer für die gängigen Shopsysteme. Evtl. fangen wir einfach mit Oxid an. Also alle, die noch warten können, werden dann nicht enttäuscht werden.:wink: Wer sich hier für ein Betatest-Programm anmelden möchte, schickt mir bitte eine PN. Ich denke, wir werden Ende nächster Woche beginnen, haben aber schon einige individuelle Scripte im Petto, sodass dieses import PlugIn eigentlich schnell geben müsste.

[quote=“Stefan Heyne”]Hi, wir bringen in ca. 2 Wochen eh einen Importer für die gängigen Shopsysteme. Evtl. fangen wir einfach mit Oxid an. Also alle, die noch warten können, werden dann nicht enttäuscht werden.:wink: Wer sich hier für ein Betatest-Programm anmelden möchte, schickt mir bitte eine PN. Ich denke, wir werden Ende nächster Woche beginnen, haben aber schon einige individuelle Scripte im Petto, sodass dieses import PlugIn eigentlich schnell geben müsste.[/quote] Ich bin gerade dabei von XT:commerce (und OXID) zu Shopware zu wechseln und würde mich gerne als Beta-Teste melden. Bzw. falls die Phase bereits abgeschlossen ist, dann würde mich natürlich der Importer an sich sehr interessieren :slight_smile: Grüße Jan

[quote]wir bringen in ca. 2 Wochen eh einen Importer für die gängigen Shopsysteme. Evtl. fangen wir einfach mit Oxid an[/quote] Ein Importmodul für die Übernahme von Oxid wäre perfekt:-)