Hallo, wir würden gerne die Kundennummern über die API einspielen. Beim Versuch einzuspielen hat der Shop unsere Kundennummer ignoriert und die aus dem Nummernkreis verwenden. Wie kann man das abschalten!? Danke!
Es gibt 2 Kundennummern. Eine interne und eine sichtbare. Achte da darauf die richtigen Felder zu bespielen. Bei der internen Kundennummer herrscht keine ganz freie Auswahl.
Ich bin mir jetzt nicht ganz sicher, was Wilken mit einer internen und einer sichtbaren Kundennummer meint, aber ich denke er meintg die "id" (dürfte die interne sein) und die "number", das ist wohl die sichtbare. Das Beispiel im Developer Bereich ist wohl etwas irreführend würde ich sagen... (https://developers.gambio.de/docs/3.15.3.0/rest/gambio-gx3-api/reference/customers/create-customers/) Die "id" wird von Gambio gesetzt denke ich, damit würde ich nicht rumspielen. Die "number" kannst Du selbst setzen. Ich würde die Daten des neuen Kunden per API übertragen, dabei die sichtbare Nummer setzen und aus der response die von Gambio gesetzte "id" auslesen, damit diese gleich dem Datensatz in der WaWi mit der Du die API ansteuern willst zugeordnet wird. Die Response ist ja etwa so: Code: { "id": 4, "number": "4", "gender": "m", "firstname": "test", "lastname": "kunde", "dateOfBirth": "1000-01-01", "vatNumber": "", "vatNumberStatus": 0, "telephone": "", "fax": "", "email": "wick.markus@web.de", "statusId": 2, "isGuest": false, "addressId": 4, "addonValues": null, "_links": { "address": "https://www.xxx.com/api.php/v2/addresses/4", "status": "https://www.xxx.com/api.php/v2/customer_groups/2" } } vorher müsstest Du aber wohl erst die Adresse anlegen (https://developers.gambio.de/docs/3.15.3.0/rest/gambio-gx3-api/reference/addresses/create-address/) und aus der Response die adressID auslesen, damit Du dem neuen Kunden auch eine Adresse zuordnen kannst. Oder anders herum... Das Datenbankschema verwirrt mich manchmal ein wenig Code: { "id": 4, "customerId": 4, "gender": "m", "company": "", "firstname": "neuer", "lastname": "kunde", "street": "kundenstrasse", "houseNumber": "8", "additionalAddressInfo": "", "suburb": "", "postcode": "12345", "city": "kundenort", "countryId": 81, "zoneId": 0, "class": "", "b2bStatus": false, "_links": { "country": "https://www.xxx.com/api.php/v2/countries/81", "customer": "https://www.xxx.com/api.php/v2/customers/4" } }
Danke Markus, war richtig so. Ich hab 3 Millionen Sachen auf dem Tisch und war noch nicht zu einer Antwort gekommen...
hallo sorry ich nochmals.er legt immer noch nach den nummerkreisen an. was machen wir hier falsch? Genau das probiere ich auch, nur Gambio ignoriert das tapfer. Ich schicke folgendes an Gambio: [ { "isGuest": false, "statusId": 2, "vatNumber": "", "vatNumberStatus": 0, "telephone": "", "fax": "", "number": "4711", "email": "alice@example.com", "password": "sagichnicht", "gender": "", "firstname": "", "lastname": "", "address": { "company": "Beispielkunde", "street": "", "houseNumber": "", "additionalAddressInfo": "", "suburb": "", "postcode": "", "city": "", "countryId": 14, "zoneId": 97, "b2bStatus": true } } ] Gambio legt den Satz aber mit number = 754 statt 4711 an. Die "number" als Zahl (ohne Anführungszeichen) habe ich auch schon probiert, selbes Ergebnis.
Das heisst in der response, die nach dem "Create" kommt sind "id" und "number" beide "4711"? Bin grade nicht mehr im Büro und kann es mit der 3.14.3.0 nicht testen, die wir laufen haben... Kannst Du die response mal posten?
So, jetzt hänge ich irgendwie fest... Wenn ich, wie bei anderen "Create"-Sachen versuche einen Customer zu erzeugen, wirft mir 3.14.3.0 immer ein Fehlermeldung aus :-( Ich versuche per POST folgendes zu übertragen: [{ "number": "A11", "gender": "m" , "firstname": "testfirst" , "lastname": "testlast" , "dateOfBirth": "1000-01-01" , "vatNumber": "" , "vatNumberStatus": 0, "telephone": "" , "fax": "" , "email": "wick.markus@web.de" , "statusId": 2, "isGuest": 0, "addressId": 4}] Bekomme dann aber einen recht langen Fehler, oben beginnt der mit Code: { "created": [], "errors": [ { "errorMessage": "IntType: Invalid argument value given (expected numeric int got NULL): ", "stacktrace": [ { "file": "/var/www/vhosts/xxx.xxx.de/GXEngine/Shared/Types/IdType.inc.php", "line": 47, "function": "__construct", "class": "IntType", "type": "->", "args": [ null ] Wenn ich die Daten ohne die eckigen Klammern zu übertragen versuche, da ich ja nur einen Customer erzeugen möchte, also { "number": "A11", "gender": "m" , "firstname": "testfirst" , "lastname": "testlast" , "dateOfBirth": "1000-01-01" , "vatNumber": "" , "vatNumberStatus": 0, "telephone": "" , "fax": "" , "email": "wick.markus@web.de" , "statusId": 2, "isGuest": 0, "addressId": 4} kommt als Fehler: Code: { "code": 0, "status": "error", "message": "IntType: Invalid argument value given (expected numeric int got NULL): ", "request": { "method": "POST", "url": "https://www.realrecyclers.com", "path": "/api.php/v2/customers", "uri": { "root": "/api.php", "resource": "/v2/customers" } } } Gibt es noch einen Pflichtparameter, der zwingend mit übertragen werden muss? Oder ist die Developer-Referenz falsch? In der Developer Doku ist ja auch etwas widersprüchlich angegeben z.B. beim Example des Request Body steht: "statusId": "1" -> das wäre also ein String Unten im Example snippet steht: "statusId":0 -> das wäre eine Integer-Zahl. Was stimmt? Habe verschiedene Varianten ausprobiert... Als Routinen zur Übertragung nutze ich dei selben die ich hier auch für das Anlegen von Kategorien und Produkten nutze. Was wäre denn das absokute Minimum das übertragen werden müsste um einen Customer zu erzeugen? number und lastname? Oder welche anderen Felder sind zwingend "required"?
Laut Gambio Support nicht möglich!? Was ich mir eigentlich nicht vorstellen kann, da könnte ja keine WAWI mit GAMBIO arbeiten, wenn so BASICS nicht funktionieren!? ++++++++++++++++++++++++++++++++++++++++++++++ Antwort von GAMBIO. wir haben das geprüft und können die mitteilen, dass die Nummer immer mit der ID überschrieben wird, wenn man den Datensatz importiert, sodass hier die ID und number immer identisch sind. Es ist aktuell nicht möglich über die REST-API eine eigene Kundennummer zu übergeben. Wir werden das aufnehmen und an die Entwicklungsabteilung weitergeben, sodass es geprüft und ggf. mit einem zukünftigen Update implementiert werden kann. Bei weiteren Fragen stehen wir dir gerne zur Verfügung. Bitte behalte bei Antworten auf diese Nachricht die Ticket-ID mit den eckigen Klammern im Betreff.
+++++++++++ Laut Gambio Support nicht möglich!? Was ich mir eigentlich nicht vorstellen kann, da könnte ja keine WAWI mit GAMBIO arbeiten, wenn so BASICS nicht funktionieren!? ++++++++++++++++++++++++++++++++++++++++++++++ Antwort von GAMBIO. wir haben das geprüft und können die mitteilen, dass die Nummer immer mit der ID überschrieben wird, wenn man den Datensatz importiert, sodass hier die ID und number immer identisch sind. Es ist aktuell nicht möglich über die REST-API eine eigene Kundennummer zu übergeben. Wir werden das aufnehmen und an die Entwicklungsabteilung weitergeben, sodass es geprüft und ggf. mit einem zukünftigen Update implementiert werden kann. Bei weiteren Fragen stehen wir dir gerne zur Verfügung. Bitte behalte bei Antworten auf diese Nachricht die Ticket-ID mit den eckigen Klammern im Betreff.
Laut Gambio Support nicht möglich!? Was ich mir eigentlich nicht vorstellen kann, da könnte ja keine WAWI mit GAMBIO arbeiten, wenn so BASICS nicht funktionieren!? ++++++++++++++++++++++++++++++++++++++++++++++ Antwort von GAMBIO. wir haben das geprüft und können die mitteilen, dass die Nummer immer mit der ID überschrieben wird, wenn man den Datensatz importiert, sodass hier die ID und number immer identisch sind. Es ist aktuell nicht möglich über die REST-API eine eigene Kundennummer zu übergeben. Wir werden das aufnehmen und an die Entwicklungsabteilung weitergeben, sodass es geprüft und ggf. mit einem zukünftigen Update implementiert werden kann. Bei weiteren Fragen stehen wir dir gerne zur Verfügung. Bitte behalte bei Antworten auf diese Nachricht die Ticket-ID mit den eckigen Klammern im Betreff.