REST API - Artikel nach Kategorie filtern

Greetings Community,

gibt es einen “direkten Weg” mithilfe der API (GET-request) die Ausgabe einer Liste aller Artikel , gefiltert nach einer bestimmten Kategorie, zu gewährleisten ? à la …

$params = [
    'filter' => [
        [
            'property' => 'category.id',
            'value' => 8
        ]
    ]
];

$client->get('articles', $params);

Dies scheint zumindest so nicht zu funktionieren, da die s_articles-Tabelle nicht über ein category-Feld verfügt.

Danke im Vorraus.

Shopware Version: 5.4.0

Wo ist dein Problem? ein getList liefert dir innerhalb sehr kurzer Zeit alle Infos. Filtern musst du dann eben im Anschluss.

https://developers.shopware.com/developers-guide/rest-api/api-resource-categories/

Problem = „Filtern musst du dann eben im Anschluss“ :smiley:

Auch in der categories resource gibt es keine direkte Relation zu den entsprechenden Artikeln, oder übersehe ich da was ?

Ich denke dass wir das Thema hier schonmal hatten und da kam auch bei heraus, dass das wohl nicht machbar ist zur Zeit.

Wenn du Zugriff auf die Datenbank hast, so könntest du dir ein Statement zusammenbauen, welches dir die betroffenen Artikel ausliest…
SELECT sa.* FROM s_articles sa LEFT JOIN s_articles_categories sac ON sa.id = sac.articleID WHERE sac.categoryID = 8

ggf. noch die s_articles_details dazunehmen zwecks ordernumbers… oder du durchläufst anschließend die Ergebnisse und rufst die Artikel per Api auf Basis der ID ab

1 „Gefällt mir“

Hi,

man kann nur die Tabellen-Anfragen, die hier stehen:

Wenn du andere Tabellen abfragen willst, musst du wohl ein Plugin schreiben.

Gruß Heiner

1 „Gefällt mir“

Da gibt es wirklich keinen anderen Weg sich die Artikel einer Kategorie auflisten zu lassen? Das ist doch totale Standardfunktionalität? Zum Beispiel wenn ein Nutzer eine Kategorie auswählt dann erwartet er doch, dass alle Artikel dieser Kategorie angezeigt werden und dafür gibt es keine API-Calls die in der Lage sind mir diese Artikel der ausgewählten Kategorie zurückzugeben?

Der einzige Api-Call der einem überhaupt eine Zuordnung von Artikel zu Kategorie wissen lässt ist anscheinen /api/article/{id} also nur wenn man sich die Infos eines einzelnen  Artikels zurück geben lässt. Das ist aber natürlich ein Performance-Albtraum wenn ich jedes mal alle Artikel einzeln abfragen muss um sie dann nach Kategorie zu gruppieren.

@BestShopPossible‍ ich verstehe nicht, was du damit meinst, denn im Category-Model steht keinerlei Information darüber welche Artikel zu dieser Kategorie gehören. getList liefert mir nur alle Kategorien aber nicht die dazugehörigen Artikel.

Genau. Diese Information fehlt beim Abruf der Artikelliste, und deshalb kann man auch nicht danach filtern. Sehr schade!