Rest Api: Problem beim Kundenimport

Hallo,

wir versuchen zur Zeit einen alten Shop nach Shopware umzuziehen und hatten dafür ein Transfer-Skript geschrieben.

Die Datenholung funktioniert soweit auch schon und liefert alle relevanten Kundeninformationen zurück.

 

Beim Versenden der Kundendaten an die Api mittels $client->post(„customers“, $array) kommt allerdings immer nur die Meldung „last_json_error: Syntaxerror“ zurück…

 

Hier einmal der Aufbau des Arrays

 $array = array(                     'groupKey'      =\> "EK",                 'encoderName'   =\> "md5",                 'hashPassword'  =\> md5($anz\_customers["passwort"]),                 'active'        =\> true,                 'email'         =\> mask\_file\_variables($anz\_customers["email\_ra"]),                 'salutation'    =\> mask\_file\_variables($anz\_customers["anrede\_ra"]),                 'firstname'     =\> mask\_file\_variables($anz\_customers["vorname\_ra"]),                 'lastname'      =\> mask\_file\_variables($anz\_customers["name\_ra"]),                 'newsletter'    =\> 1,                 'billing'    =\> array (                                 'number'     =\> mask\_file\_variables($anz\_customers["kundennummer"]),                                 'country'    =\> mask\_file\_variables($anz\_customers["land\_ra"]),                                 'company'    =\> mask\_file\_variables($anz\_customers["firma\_ra"]),                                 'salutation' =\> mask\_file\_variables($anz\_customers["anrede\_ra"]),                                 'firstname'  =\> mask\_file\_variables($anz\_customers["vorname\_ra"]),                                 'lastname'   =\> mask\_file\_variables($anz\_customers["name\_ra"]),                                 'street'     =\> mask\_file\_variables($anz\_customers["strasse\_ra"]),                                 'zipCode'    =\> mask\_file\_variables($anz\_customers["plz\_ra"]),                                 'city'       =\> mask\_file\_variables($anz\_customers["ort\_ra"]),                                 'phone'      =\> mask\_file\_variables($anz\_customers["telefon\_ra"]),                                 'fax'        =\> mask\_file\_variables($anz\_customers["fax\_ra"])                             ),                 'shipping'    =\> array (                                 'company'    =\> mask\_file\_variables($anz\_customers["firma\_la"]),                                 'salutation' =\> mask\_file\_variables($anz\_customers["anrede\_la"]),                                 'firstname'  =\> mask\_file\_variables($anz\_customers["vorname\_la"]),                                 'lastname'   =\> mask\_file\_variables($anz\_customers["name\_la"]),                                 'street'     =\> mask\_file\_variables($anz\_customers["strasse\_la"]),                                 'zipCode'    =\> mask\_file\_variables($anz\_customers["plz\_la"]),                                 'city'       =\> mask\_file\_variables($anz\_customers["ort\_la"]),                                 'country'    =\> mask\_file\_variables($anz\_customers["land\_la"])                             )             ); 

Die Funktion mask_file_variables ist selbstgeschrieben und maskiert lediglich Anführungszeichen sowie HTML-Tags neben einer Überführung des Wertes in utf8.

 

Ich hatte schon testweise versucht die „number“, was ja anscheinend der lokalen Kundennummer entspricht, aus dem Bereich „billing“ zu nehmen und in den Hauptstrang zu verschieben.

Auch das Auslassen des „groupKey“ und Newsletters sowie Angabe der Telefonnummer mit und ohne Maskierung des Slash ("/" -> „/“) haben nichts gebracht…

Laut des wirklich sehr kleinen Beispiels eines „Minimalkunden“ in der Api-Beschreibung sollten alle Felder vorhanden und an der richtigen Stelle stehen, aber irgendwie will es nicht funktionieren…?

 

Hat jemand noch eine Idee, woran es hängen könnte ?

Ich habe doch noch eine Lösung für das Problem gefunden…

Bei der Durchsicht bereits erfasster Kunden ging ich davon aus, dass die Anrede ein String/Varchar - Feld mit variablen Inhalten, wie „Herr“ oder „Frau“ ist, dem ist aber nicht so.

Die Api verlangt an dieser Stelle definitiv die Angaben „mr“ oder „mrs“, sobald das geändert war konnten auch die Kunden angelegt werden…

 

Ein Blick in die DB von SW hätte das angezeigt :slight_smile: