Shopware API: Kann keine Kategorien anlegen

Wenn ich über die API eine Kategorie POSTe, um sie neu anzulegen,

        $response = $this->Client->post( Categories::class, [
                'name' => $Resource['cat_name'],
                'description' => $Resource['cat_desc'],
                'attribute' => ['remoteid' => $Resource['cat_id']]
            ]
        );

        $responseArray = $response->toArray();

        if ( 201 != $response->getResponseCode() ) :

            $this->Logger->addRecord( 300, 'Konnte Kategorie nicht via API hinzufügen! ' . $responseArray['message'] );

        endif;

taucht in den Serverlogs folgender Fehler auf:

PHP Fatal error:  Uncaught Error: Call to a member function getId() on null in /myproject/engine/Shopware/Components/Model/CategorySubscriber.php:296

Dies erst seit ein paar Abfragen. “Vorgestern ging es noch.”

Hat jemand eine Idee? Dasselbe Problem: https://forum.jtl-software.de/threads/kategorie-abgleich-wirft-fehler.125840/

 

Paddelboot

 

PS: ich kann mir vorstellen, dass es an einem Freitextfeld liegt, welches ich ebenfalls beschreiben möchte. Doch wenn ich dieses aus dem POST-Statement lösche und auch im Backend entferne, dreht SW völlig durch und lässt mich das Frontend nicht mehr aufrufen. 

Hi @paddelboot‍

 

Und die Lösung des Kollegen aus dem anderen Forum hilft bei dir nicht weiter?

 

Grüße Alex

@MrAle schrieb:

Hi @paddelboot‍

 

Und die Lösung des Kollegen aus dem anderen Forum hilft bei dir nicht weiter?

 

Grüße Alex

k.A., wie ich die Paketgröße manipulieren könnte. Ich verwende den Client von Themepoint: https://github.com/ThemePoint/Shopware-Client. Es sind lediglich 2 Kategorien, die ich anlegen möchte. 

Ich habe dies nun auf verschiedene Arten probiert - einmal mit dem oben verlinkten Client, einmal mit Postman - und auf zwei verschiedenen unabhängigen Shopware-Installationen. Es ist nicht möglich, über die API Kategorien anzulegen. 

Fatal error: Uncaught Error: Call to a member function getId() on null in /xyz/engine/Shopware/Components/Model/CategorySubscriber.php on line 300

Schöner Mist, hat mich bereits Stunden gekostet.

Wenn ich nun versuche, eine Kategorie direkt über den Entity Manager anzulegen, erfolgt exakt derselbe Fehler:
 

        $ShopwareCategory = new CategoryModel();

        $ShopwareCategory->setName( $Resource['cat_name'] );

        $this->Manager->persist( $ShopwareCategory );
        $this->Manager->flush();

Dieser Fehler tritt mittlerweile auf 3 verschiedenen SW-Installationen auf. Weiß hier wirklich niemand etwas?

Das Problem war/ist, dass “parentId” ebenfalls mitgegeben werden muss, und es darf nicht 0 sein. Steht weder in der Dokumentation, noch wird der Fehler entsprechend abgefangen und in den Logs vermerkt (wie es bei fehlendem “name” geschieht).