runi0011runi0011 MemberComments: 9 Received thanks: 0 Member since: July 2018

Hallo,

wie kann ich über die API (CURL+JSON) ein Produkt mit einer Kategorie verknüpfen.

Ich habe über die API ein Produkt erstellt und ich habe über die API eine Kategorie erstellt. Wie bringe ich beides jetzt zusammen?

Wenn ich in der Produkt-API das Feld categoryTree mit dem Array aus categoryIds fülle, erhalte ich einen Fehler, dass das Feld schreibgeschützt ist:

FRAMEWORK__WRITE_CONSTRAINT_VIOLATION
This field is write-protected.

In der Categorie-API sehe ich jetzt auch nichts, wo man eine Produktliste angeben könnte.

Über relationships > categoriesRo komme ich zwar zu einem related Link, der mir die von Hand im Backend eingefügten Verknüpfungen anzeigt. Aber ich weiß nicht, wie ich diese über die API erstellen kann :-( Und einen API-Typ relationships habe ich auch nicht gefunden in der swagger.html. 

Bin für jeden Tipp dankbar.

1 Answer

  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 7830 Received thanks: 2292 Member since: September 2013

    Die Shopware6 Administration nutzt konsequent auch unsere API für alle Funktionen, somit ist sichergestellt, dass auch alle Funktionen über die API verfügbar sind. Wenn man so will, ist die Administration auch nur ein Client, welcher die API nutzt.

    Quote
    Accepted Answer
  • Accepted Answer

Answers

  • runi0011runi0011 MemberComments: 9 Received thanks: 0 Member since: July 2018

    Durch kreuz und quer Durchstöbern des Forums bin ich auf einen Tipp gestoßen, der für mich Gold wert ist und der mir so nicht bewusst war. Vielleicht hilft es dem ein oder anderen ja auch weiter.

    Wenn man wie ich z.B. nicht weiß, wie der API-Aufruf bei Zuordnung einer Kategorie zu einem Produkt sein muss, geht man einfach ins Backend und öffnet die Entwickler-Konsole des Browsers (F12). Dann führt man die gewünschte Aktion im Browser aus (z.B. verknüpfe Kategorie 123 mit Produkt & speichere). Dann schaut man in der Entwickler-Konsole unter Network (am Besten noch nach XHR filtern). Dort muss man etwas nach dem passenden API-Aufruf suchen. Den klickt man an und findet  dann den genauen API-Aufruf unter dem Tab "Headers":

    --------------------------

    1. General
      1. Request URL:

        http://develop.shopware6.de/api/v1/product/f63c6b26741d422d962f2...

      2. Request Method:

        PATCH

      3. Status Code:

        .....

    2. Response Headersview source
      1. ......

    3. Request Headersview source
      1. ....

    4. Request Payloadview parsed
      1. {"categories":[{"id":"77b959cf66de4c1590c7f9....."}]}

    ---------------------------------------

    So kann man quasi jede Aktion, die man im Backend ausführt, über die API nachbilden.

    Für mich war das jetzt grad ne Erleuchtung, aber vielleicht ist das ja allen anderen schon klar gewesen .... ?!?

    Also damit konnte ich jetzt jedenfalls mein Problem selbst lösen.

    Viele Grüße

  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 7830 Received thanks: 2292 Member since: September 2013

    Die Shopware6 Administration nutzt konsequent auch unsere API für alle Funktionen, somit ist sichergestellt, dass auch alle Funktionen über die API verfügbar sind. Wenn man so will, ist die Administration auch nur ein Client, welcher die API nutzt.

    Quote
    Accepted Answer
  • runi0011runi0011 MemberComments: 9 Received thanks: 0 Member since: July 2018

    Ja, das habe ich jetzt auch realisiert.

    Aber das theoretisch, abstrakt zu erläutern "Die Shopware6 Administration nutzt konsequent auch unsere API für alle Funktionen, ..." oder zu sagen "Hey Leute, ihr könnt über die Entwickler-Konsole im Browser alles recherchieren und über die API nachbilden. Dazu macht ihr Folgendes: ...." sind wirklich zwei paar Stiefel.

    Mir fehlen hier und auch in der Doku oft praktische Einstiege und Hilfen. Ihr seid manchmal sehr theoretisch und knapp in euren Antworten. Für euch ist das oft sicher ganz logisch und offensichtlich, ihr steckt ja auch bis Oberkante Unterkiefer drin. Aber wir "normale Entwickler", die sich neu damit beschäftigen, brauchen da vielleicht den ein oder anderen praktischen Hinweis zusätzlich. Das vielleicht mal als kleinen Denkanstoß.

    Aber vielleicht gehts ja auch nur mir so? :-(

Sign In or Register to comment.