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.”
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.
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
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).