RestAPI Artikel Update

Thema wurde von Rheingauer, 15. Juni 2019 erstellt.

  1. Rheingauer

    Rheingauer Mitglied

    Registriert seit:
    22. August 2011
    Beiträge:
    17
    Danke erhalten:
    1
    Danke vergeben:
    7
    Hallo,

    beim Update eines bestehenden Artikels über die RestAPI stehe ich momentan etwas auf dem Schlauch, vielleicht hat jemand den entscheidenden Tipp für mich:
    Zum Upload der neuen Daten wird die product_id benötigt. Nur, die sehe ich ja normalerweie nicht, weil die nur in der SQL-Datenbank existiert.
    Momentan erkenne ich nur den Weg, die product_id zuerst über einen Search zu ermitteln, dann in die WaWi zu übernehmen und anschliessend das Update durchzuführen.
    Oder gibt es dafür eine andere Lösung, die es etwas einfacher macht?
    Ideal wäre es, wenn das Update z. B. über die productModel Prop. möglich wäre, weil diese die eindeutige Artikelnummer aus der WaWi beinhaltet.

    Beim Upload von neuen Artikeln über diesen Parameter könnte außerdem geprüft werden, ob der Artikel im Shop bereits existiert. Derzeit ist es ja so, dass bei jedem Upload alle übertragenen Artikel ohne Nachfrage immer wieder neu hinzugefügt werden.

    Noch eine andere Frage:
    Beim Upload von neuen Artikeln kann keine Kategorie mit übergeben werden, d.h. die neuen Artikel landen zunächst alle im Hauptverzeichnis. Ist diesbezüglich eine Erweiterung der RestAPI in Sicht? Das wäre toll.

    Viele Grüße
    Matthias
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.570
    Danke erhalten:
    11.312
    Danke vergeben:
    1.614
    Im Quick Edit kannst Du die auch sehen,
    Für den Shop ist die Artikelnummer nicht zwingend erforderlich und sie muss auch nicht eindeutig sein, im Gegensatz zur Artikel-ID. Deshalb nutzt der Shop da die ID zur Zuordnung der Artikel
     
  3. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.310
    Danke vergeben:
    2.208
    An der product_id hängen wir, ich glaub nicht dass wir da was machen. Dein ganzes Problem kommt im Prinzip daher, dass du einen Patch ohne Vorwissen machen willst. Wir gehen quasi davon aus, dass die Gegenseite den Katalog des Shops kennt und damit auch die Product IDs. Ist das bei dir nicht der Fall? Du kommst ohne Vorwissen und hast 0 Mapping?

    Ja, da muss man 2 Requests machen. Die API geht da weit auf das Techniklevel runter, und ein Artikel im Shop weiss nicht in welchen Kategorien er ist. Die Daten dafür liegen im Kategoriedienst, nichtim Produktdient. Die Frage wäre nun ob die beiden verknüpfen da Sinn machen würde und gewollt ist.
     
  4. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.761
    Danke erhalten:
    1.372
    Danke vergeben:
    305
    Hi,

    beim Anlegen von neuen Artikeln, kannst du categoryId angeben, wenn du die kennst. Oder du machst einen 2. Request mit ProductLink wenn du nach dem Anlegen die ProductId kennst:

    (Link nur für registrierte Nutzer sichtbar.)
     
  5. Rheingauer

    Rheingauer Mitglied

    Registriert seit:
    22. August 2011
    Beiträge:
    17
    Danke erhalten:
    1
    Danke vergeben:
    7
    Hallo Barbara, Wilken und Till,

    @barbara:
    Habe ich gerade gefunden. Bei mir war die ID im Quick-Edit ausgeblendet. Danke für den Tipp!

    @Wilken:
    Ich muss da etwas ausholen: Wir planen, für die Anwender unserer WaWi in Kürze ein Shop-Portal auf der Basis von Gambio als Erweiterung anzubieten, das auf Mietbasis läuft. Gestaltung, Einrichtung und Updates der Shops erledigen wir, die Pflege der Artikel sollen die Nutzer unserer WaWi möglichst in eigener Regie übenehmen können. Die Anwenderklientel unserer Software steht im Regelfall mit der EDV eher auf Kriegsfuß, deswegen soll das Ganze möglichst unkompliziert und "fehlertolerant" sein. Dies ist auch der Grund, warum es kein Vorwissen zu den product_ID's gibt und deswegen auch der Wunsch nach einer Überprüfung auf bereits existierende Artikel im Shop.
    Wir haben bereits seit einigen Jahren eine Schnittstelle zu einem fremden Shopbetreiber, dessen System die Artikelnummer aus der jeweiligen WaWi als eindeutige Produktkennung verwendet. von daher kommt mein Ansatz mit der "productModel" Prop.

    Aber mir fällt gerade was ein:
    Mit jeder Bestellung eines Kunden bekomme ich ja die product-ID zu jedem bestellten Artikel übermittelt. Die kann ich auslesen und im Artikelstamm für künftige Updates "verewigen". Damit wäre dieses Problem einfach und auch relativ zeitnah nach dem Anlegen eines neuen Artikels beseitigt. Das ungewollte mehrfache hochladen neuer Artikel in der WaWi durch Setzen eines Flags abzufangen ist auch kein Akt. Damit sieht alles wieder vielversprechend gut aus.

    @Till:
    Der Hinweis ist super! Mit den Functions zu den Kategorien kann ich die Kategorie-ID's einmal "händisch" in die WaWi holen und damit stehen die ID's künftig zur Verfügung. Das passt.

    Viele Grüße
    Matthias
     
  6. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.570
    Danke erhalten:
    11.312
    Danke vergeben:
    1.614
    Nur so ein Gedanke....wäre es nicht möglich die Artikel Nummer als beim anlegen der Artikel über die Wawi als ID zu übergeben? Es dürften nur keine Leerzeichen und Buchstaben in der Artikelnummer sein,....
     
  7. Rheingauer

    Rheingauer Mitglied

    Registriert seit:
    22. August 2011
    Beiträge:
    17
    Danke erhalten:
    1
    Danke vergeben:
    7
    Hallo Barbara,

    diesen Gedanken hatte ich auch schon. Dafür wäre in der WaWi ein eigenes Feld "ID" anzulegen und das wäre in der Tat die Ideallösung, nach der ich suche.
    Allerdings ist die ID laut Doku zur RestAPI ein read-only Parameter und darf nicht mit übertragen werden.
    Um dies wiederum zu ermöglichen, müsste in Gambio eine Routine zur Überprüfung jeder übermittelzen ID enthalten sein, die den (versehentlichen) Versuch blockt, mehrfach den gleichen Artikel über die RestAPI neu anzulegen, um ein Zerschiessen der SQL-Datenbank zu verhindern.
    Oder meintest Du etwas vollkommen Anderes?

    Gruß
    Matthias
     
  8. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    976
    Danke erhalten:
    217
    Danke vergeben:
    153
    #8 markus_wick, 16. Juni 2019
    Zuletzt bearbeitet: 16. Juni 2019
    Die ID wird meines Wissens beim Anlegen des Artikels vom Shop vergeben, ich denke nicht dass man diese selbst vergeben kann oder können sollte.
    Die IDs kann man aber ja auf vielfältige Weise bekommen:

    - Beim Anlegen eines Artikels über die REST API wird die ID ja in der Response zurückgegeben, kann also nach dem Request aus der Response ausgelesen werden.

    - Wenn es um bestehende Shops geht, könnte ein CSV Export und ein Abgleich dieses Exports in der WaWi ale bestehenden IDs abgleichen.

    - Man kann auch die ID im QuickEdit einblenden, eine Inventarliste erstellen und diese dann zum Abgleich der IDs nutzen.

    - Über die REST Api kann man ja auch alle Artikel holen, je nach Artikelanzahl paginiert oder einfach mit entsprechend großer Anzahl der per_page zu holenden Artikel:
    Code:
    https://www.gambio-shop.de/shop1/api.php/v2/products?per_page=5000
    holt z.B. bis zu 5000 Artikel in die response. Das lässt sich dann ja einfach auswerten.
     
  9. Rheingauer

    Rheingauer Mitglied

    Registriert seit:
    22. August 2011
    Beiträge:
    17
    Danke erhalten:
    1
    Danke vergeben:
    7
    Hallo Markus,

    den Response hatte ich gar nicht auf dem Schirm. Damit haben sich gerade alle Probleme in Luft aufgelöst. Vielen Dank für Deinen wertvollen Hinweis!

    Gruß
    Matthias
     
  10. markus_wick

    markus_wick Erfahrener Benutzer

    Registriert seit:
    10. Oktober 2018
    Beiträge:
    976
    Danke erhalten:
    217
    Danke vergeben:
    153
    Na aber gerne doch :)