Produkt: Kategoriezuweiesung über API löschen?

Hallo,

hat jemand einen Tipp für mich, wie ich die Kategoriezuordnung von Produkten über die API löschen kann? Die product-category Entität existiert nicht und wenn ich versuche ein über ein Patch-Request auf das Produkt die Kategorien mittels eines leeren Arrays zu löschen, passiert genau gar nichts, selbes Resultat mit „null“.

Mein Problem: ich bin am Programmieren einer Schnittstelle und ein Artikel wurde in der Kunden-ERP in eine andere Kategorie eingeordnet. Bei einem Patch-Request wird zwar die neue Kategorie eingetragen, die alten bleiben jedoch bestehen, was so nicht sein soll.
Mir ist klar, dass / wie ich die Zuordnung in der Datenbank löschen kann, aber das ist nicht die Art und Weise, wie ich das handhaben will.

Hat jemand schon einmal vor dem gleichen Problem gestanden?

Als genereller Rat: schau dir einfach an, was das Shopware Backend macht. Dort kannst du die XHR verfolgen.

@AlexGalax: Wie bereits im Titel erwähnt, möchte ich das über die API lösen und kein Plugin basteln und die Entity existiert in der Admin API leider nicht.

@Max_Shop: Danke, so habe ich es jetzt auch gemacht, ich hatte nur die Hoffnung, das ohne sync API lösen zu können.

Falls jemand das Ganze reproduzieren möchte - meine Lösung sieht nun wie folgt aus:
vor dem Produktupdate (PATCH auf product/id) führe ich ein GET auf product/id aus und suche mir die Kategorien (categoryIds), danach bastele ich mir die Payload zusammen und nutze die Sync-API wie folgt.

{
   "bulkaction":{
      "entity":"product_category",
      "action":"delete",
      "payload":[
         {
            "productId":"d2767a9bdb864ce083f7b5bca6144c89",
            "categoryId":"82bf80e5867d4f828b50e71428b6b382"
         },
         {
            "productId":"d2767a9bdb864ce083f7b5bca6144c89",
            "categoryId":"fc7d743f08fb4163a405553779149f8a"
         }
      ]
   }
}

Anschließend erfolgt das Update (PATCH auf product/id) mit den neuen Kategorie-Ids.

Ja, aber dort wird die Logik beschrieben, wie es funktioniert, die hast du jetzt ja auch herausgefunden. Ob API oder Plugin spielt ja keine Rolle.

Das ganze ist nur sau dumm gelöst weil man per API nicht einfach alles löschen kann sondern man muss wissen welche categorie man löschen… Wieso kann man keinen Kompletten UNSET auf Kategorie, Eigenschaften ect. setzten… Gerade wenn man Shopware von Extern befüllt total umständlich.

da sprichst Du mir aus der Seele … Ist leider ein Design-Konzept, das sich so an vielen Stellen findet.