Ich versuche gerade, Artikel über /api/articles abzufragen, was auch tadellos klappt. Allerdings möchte ich nur die Artikel abrufen, die einen bestimmten Attributwert haben. Mit Attribut meine ich diese Felder attr1 bis attr20. Ich weiß wie man z.B. nach der Artikelnummer filtert: $params = array( 'filter' =\> array( array( 'property' =\> 'mainDetail.number', 'value' =\> 'foo', ), ), );
Jedoch gelingt mir das nicht mit “attribute.attr1” und zahlreichen Variationen davon, die ich ausprobiert habe. Ist das überhaupt möglich ohne eine Erweiterung?
Hast du dir mal die Resource zu den /api/articles angesehen? Bin jetzt nur kurz drüber geflogen aber scheinbar wird neben dem Article Model nur noch das Detail Model mit einem leftJoin hinzugefügt. Das bedeutet, in der Doctrine Query fehlt die Verbindung zu den Attributes (\Shopware\Models\Attribute\Article). Wenn du weißt was du brauchst, dann schreib dir ein Plugin. Das geht wirklich einfach und schnell. Und so holst du dir auch nur die Daten, die du brauchst.
Ich habe es jetzt anders gelöst. Im Grunde ging es mir nur darum, Artikel eines bestimmten Typs zu ermitteln. Das konnte ich aber nun über die Artikelnummer machen, da diese einen bestimmten Präfix haben, den ich abfragen kann. Schade ist es trotzdem, dass man standardmäßig nicht nach Attributen filtern kann. Ebenso würde ich mir wünschen, bei der Artikelliste auch die Artikelnummer mitgeliefert zu bekommen. Jetzt muss ich nur für diesen Zweck zusätzlich jeden einzelnen Artikel vollständig abrufen. Mit externen Systemen arbeitet man ja doch eher über die Artikelnummer als über die Artikel-ID. Aber das ist jetzt auch etwas für ein anderes Thema.