Datenabgleich zwischen Gambio und dritt Plattform (API)

Thema wurde von semmelweis, 14. November 2023 erstellt.

  1. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    #1 semmelweis, 14. November 2023
    Zuletzt bearbeitet: 14. November 2023
    Hallo zusammen,

    wir betreiben einen Onlineshop und verkaufen über diesen Artikel sowie über eine weitere Plattform Artikel.
    Zurzeit nutzen beide Plattformen die gleichen Lagerbestände. Was unter ggf. mal zu Überschneidungen führen könnte.

    Sowie Gambio als auch die andere Plattform bietet eine API Schnittstelle an. Könnte man über die API einen Bestandabgleich hinbekommen?

    Wir haben uns die Anleitung der API von Gambio durchgelesen und versuchen dieses nun zu integrieren (wir sind keine Programmierer).

    - Über den Link https://www.your-shop-domain.de/path-to-shop/api.php/v3 können wir auf die API v3 zugreifen.

    2.) Sehen wir es richtig, das über die swagger.json beim Punkt servers die URL des Gambio Shops hinterlegt werden muss?

    "servers": [
    {
    "url": "https://www.gambio-shop.de/shop1"
    }

    was muss anstelle bei shop1 eingetragen werden?

    3.) Wir haben danach die swagger.json im Postman importiert und sehen nun die Gambio REST API v3.

    4.) Wir haben einen bearerAuth Token im Gambio angelegt und im Postman hinterlegt.

    5.) Wir können wir nun im Postman eine Abfrage definieren? Wir haben unter Authorization den Token hinterlegt. Aber wir bekommen immer 404 Not Found

    Unbenannt.PNG


    Wir sind nun einen Schritt weiter und bekommen auch die ersten Informationen von der Gambio Webseite ausgelesen.

    Nun testen wir uns mal vorsicht ran und wollen mal eine Information manipulieren.
     
  2. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    Über eine GET Abfrage ({{baseUrl}}/api.php/v3/customers/:id) haben wir uns nun einen Datensatz anzeigen lassen. Dieses würden wir nun gerne über POST verändern.

    Wie geht man da nun vor wenn man z.B. die Emailadresse einfügen möchte?

    "data": {
    "id": 2,
    "customerGroup": 0,
    "isGuestAccount": false,
    "isFavorite": false,
    "personalInformation": {
    "gender": "f",
    "firstName": "Max",
    "lastName": "Mustermann",
    "dateOfBirth": "1000-01-01 00:00:00",
    "customerNumber": ""
    },
    "contactInformation": {
    "email": "",
    "phoneNumber": "",
    "faxNumber": ""
    },
    "businessInformation": {
    "companyName": "",
    "vatId": "",
    "isTradesperson": false,
    "isValidVatId": false
    },
    "credit": 0
    },
    "_meta": {
    "links": {
    "memos": "https://www.firma.de/api.php/v3/customers/2/memos",
    "addon-values": "https://www.firma.de/api.php/v3/customers/2/addon-values"
    }
    }
    }
     
  3. Anonymous
    Anonymous Administrator
    Mitarbeiter
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    @semmelweis Schau mal in die Dokumentation hier musst du ein PUT senden, nicht POST.

    (Link nur für registrierte Nutzer sichtbar.)

    POST musst du nur senden, wenn du einen neuen Kunden anlegen willst.
     
  4. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    Hallo @Till (Gambio) ich meinte natürlich PUT.

    Ich bekomme mit GET Informationen angezeigt und wollte nun testhalber mal was mit PUT überschreiben:

    get.PNG

    Ich bekomme allerdings immer eine Fehlermeldung im Postman:

    put.PNG

    Sollte man im Postman auf raw / JSON umstellen bzw. was ist der eleganteste und einfachste Weg?

    json.PNG
     
  5. Anonymous
    Anonymous Administrator
    Mitarbeiter
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    Du musst die Daten als JSON wie im Ergebnis übergeben und nicht als Formulardaten.
    Du kannst einfach die GET Antwort als JSON kopieren und die Informationen ändern die du willst und dann als PUT senden. Das sollte problemlos funktionieren.

    Das sind im Postman ja schon fertige Beispiel drin.
     
  6. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    Also ich habe mir die GET Daten aus dem Ergebnis rauskopiert und dann im Body auf raw / JSON gestellt und hineinkopiert. Dann habe ich versucht was anzupassen und bekomme immer den Fehler:

    {
    "error": "An unexpected error occurred.",
    "details": ""
    }
    500 Internal Server Error
     
  7. Anonymous
    Anonymous Administrator
    Mitarbeiter
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    @semmelweis Im Forum ist es extrem schwierig rauszufinden was da schief läuft. Kannst du uns dazu ein Ticket aufmachen und deine Beispiele mit den RAW JSON uns zusenden? Dann schauen wir uns das direkt in deinem Shop an.
     
  8. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    @Till (Gambio) für mich sieht es so aus als ob der Server die Anfragen blockiert.

    1.) GET {{baseUrl}}/api.php/v3/customers/:id (2)
    Daten werden angezeigt

    2.) Inhalt mittels copy paste kopiert

    3.) PUT {{baseUrl}}/api.php/v3/customers/:id (2)
    Auf Body -> raw -> JSON umgestellt und den Inhalt eingefügt. "lastname" angepasst. und auf Send gelickt.

    Es läuft immer in in Status:500 Internal Server Error
    Muss man Berechtigungstechnisch noch was im Shop anpassen?

    Ich werde mal ein Ticket eröffnen. Sehr seltsam das ganze.
     
  9. Dominik Dehning
    Dominik Dehning Aktives Mitglied
    Registriert seit:
    21. März 2023
    Beiträge:
    41
    Danke erhalten:
    30
    Danke vergeben:
    39
    Wenn du die Meldung "An unexpected error occurred." bekommst solltest du mal deine Logdateien überprüfen. Da stehen weitere Informationen, die dir bei der Fehlerbehebung helfen werden.
     
  10. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    Ich konnte den Fehler finden und ich bin nun schon um einiges weiter. Ich habe den API Zugriff auf die Gambio API und auch den Zugriff auf den ENDPUNKT von der weiteren Plattform von wo ich nun die Informationen ziehen und dem Gambio Shop / API zu Verfügung stellen möchte.

    Kann mir einer mal einen kleinen Denkanstoß geben, mit welchem Service ich nun die Daten von der Plattform ziehen könnte und an die Gambio Datenstruktur anpasse und dann an die Gambio API schicken kann?

    Wie schon erwähnt bin ich ein Anfänger was das Thema angeht, aber sehr wissbegirerig und eifrig und auch nicht auf den Kopf gefallen :D
     
  11. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    Guten Abend,

    ich hätte nochmal eine Frage zur API.

    Wir sind nun schon sehr weit was den Zugriff angeht bzw. wir bekommen die gewünschten Informationen die wir benötigen ausgelesen und können diese schon an Gambio mittels API übergeben.

    Uns gelingt es aber nicht die Zusatzfelder anzusprechen. Ist dieses über API v2 überhaupt möglich oder gibt es nur Endpunkte für die Optionen wie Artikelnummer etc?

    Wir haben in den Zusatzfelder sowas stehen wie:

    Altersempfehlung
    Zielgruppe
    Sprache
    Verlag
    etc...
     
  12. Anonymous
    Anonymous Administrator
    Mitarbeiter
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    @semmelweis Schau mal in in die Dokumentation:

    (Link nur für registrierte Nutzer sichtbar.)
    (Link nur für registrierte Nutzer sichtbar.)
    (Link nur für registrierte Nutzer sichtbar.)
     
  13. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    17. Oktober 2018
    Beiträge:
    140
    Danke erhalten:
    78
    Danke vergeben:
    18
    Prinzipiell mit so Automation Tools wie n8n.io / zapier.com / make.com oder einen eigenen Service aufsetzen (programmieren und einrichten) mit PHP / Python / ...

    Habt Ihr da mittlerweile schon eine automatisierte Lösung für Euren Fall? Wie wäre die?
     
  14. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    Hallo Pepe,

    wir haben und benötigen keine automatisierte Lösung. Wir suchen einen Artikel für den wir die Eigenschaften, Bild, Preis etc. benötigen und rufen dieses mittels einer programmierten Java Anwendung vom Endpunkt ab und übergeben dieses dann an die API von Gambio. Das reicht für unsere Zwecke vollkommen aus.
     
  15. markus_wick
    markus_wick Erfahrener Benutzer
    Registriert seit:
    10. Oktober 2018
    Beiträge:
    982
    Danke erhalten:
    222
    Danke vergeben:
    156
    Ich habe das Ganze in Form einer Claris FileMaker Lösung aufgebaut - wenn man mal weiss wie die API dort angesprochen werden kann ist das recht komfortabel.
    https://www.claris.com/filemaker/
     
  16. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    17. Oktober 2018
    Beiträge:
    140
    Danke erhalten:
    78
    Danke vergeben:
    18
    #16 Anonymous, 20. Dezember 2023
    Zuletzt bearbeitet: 20. Dezember 2023
    Ich hatte das so verstanden, dass Ihr für (alle/manche ?) Artikel, die Ihr in Eurem Gambioshop und über eine weitere Plattform anbietet, einen einheitlichen Artikelbestand führen wollt, z.B. um Überverkäufe zu vermeiden. Den systeminternen Artikelbestand der jeweiligen Plattform möchtet Ihr über das API der jeweiligen Plattform (automatisiert) zusammenführen zu einem einheitlichen Artikelbestand für beide Systeme, welcher (bestenfalls) den tatsächlichen Lagerbestand repräsentiert. So dachte ich jedenfalls, dass es gemeint sei.

    Es scheint so als würdet Ihr nun etwas anderes umsetzen wollen, was ich aber nicht verstehe.

    Viel Erfolg bei Eurem Vorhaben.
     
  17. semmelweis
    semmelweis Erfahrener Benutzer
    Registriert seit:
    17. Juli 2020
    Beiträge:
    224
    Danke erhalten:
    18
    Danke vergeben:
    66
    #17 semmelweis, 17. Januar 2024
    Zuletzt bearbeitet: 17. Januar 2024
    Hallo zusammen,

    ich muss mich nun nochmal melden, da wir mit der API bzw. unserer Umsetzung nun an einer Stelle nicht weiterkommen.
    Das Programm was wir nun haben läuft super:

    Wir können super schnell Artikel mittels API in den Gambioshop übertragen. Wir können mit dem Tool für uns die relevanten Daten mittels API abrufen und bereitstellen.

    Wir scheitern aber immer an den Zusatzfeldern / Filtern von Gambio. Für die Kunden soll es eine Möglichkeit geben nach gewissen Kriterien (wie. z.B. Edition, Sprache etc.) zu filtern. Somit würden wir z.B. gerne bei dem Zusatzfeld die passende Edition mittels API mitgeben die wir über die drittplatform ja auch bereitgestellt bekommen.

    Vieleicht gibt es ja auch die Möglichkeit die Suche irgendwie umzubauen?

    Kann hier eventuell ein Gambio Entwickler uns einen Tipp geben?

    Hat sich erledigt.
    Hatte dieses hier irgendwie übersehen:

    @semmelweis Schau mal in in die Dokumentation:

    https://developers.gambio.de/docs/4...tional-fields/get-additional-fields-multiple/
    https://developers.gambio.de/docs/4...ional-fields/create-product-additional-field/
    https://developers.gambio.de/docs/4...ional-fields/update-product-additional-field/