# Artikel Suchen über Rest API?

**URL:** <https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277>\
**Category:** Programmierung\
**Created:** [23. August 2016 um 14:43 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277 "2016-08-23T14:43:18Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![NoPseudonym](https://avatars.discourse-cdn.com/v4/letter/n/ad7895/32.png) [@NoPseudonym](https://forum.shopware.com/u/NoPseudonym)\
**Post date:** [23. August 2016 um 14:43 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277/1 "2016-08-23T14:43:18Z")

</div>

Hallo,

Gibt es eine Möglichkeit bestimmte Artikel nach bestimmten Kritieren zu suchen über die REST-API Schnitttstelle, ohne alle Artikel zu holen und manuell zu Filtern?

&nbsp;

---

<div class="post-metadata">

**Author:** ![Synonymous](https://avatars.discourse-cdn.com/v4/letter/s/57b2e6/32.png) [@Synonymous](https://forum.shopware.com/u/Synonymous)\
**Post date:** [23. August 2016 um 14:50 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277/2 "2016-08-23T14:50:57Z")

</div>

Nein, Du kannst nur eine eigene API implementieren, die eine Suche auf die Artikel ausführt. Oder - wenn Du sowieso einen internen Request machen möchtest - kannst Du das auch über Models und Resourcen lösen. Eine fertige REST-API Suchfunktion gibt es nicht.

---

<div class="post-metadata">

**Author:** ![hec](https://avatars.discourse-cdn.com/v4/letter/h/e274bd/32.png) [@hec](https://forum.shopware.com/u/hec)\
**Post date:** [23. August 2016 um 15:38 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277/3 "2016-08-23T15:38:00Z")

</div>

Doch, man kann filtern.

Bei der Orders-API ist es dokumentiert, siehe [REST API - Examples using the order resource](https://developers.shopware.com/developers-guide/rest-api/examples/order/#further-examples)

Funktioniert aber auch für Artikel - wir nutzen es z.B., um Artikel ohne Hersteller zu suchen:

```
        $params = [
            'filter' => [
                [
                    'property' => 'supplierId',
                ]
            ]
        ];
        $json = $this->apiClient->get('articles', $params);

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Synonymous](https://avatars.discourse-cdn.com/v4/letter/s/57b2e6/32.png) [@Synonymous](https://forum.shopware.com/u/Synonymous)\
**Post date:** [23. August 2016 um 17:08 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277/4 "2016-08-23T17:08:50Z")

</div>

Das Beispiel ist aber keine Suche so wie ich die Anforderung verstehen würde. Wenn ich Dein Beispiel nehme ist ein GET auf /1 auch eine „Suche“ nach dem Produkt mit ID 1.

Mein Verständnis der Frage war, dass er eine Volltextsuche über die API durchführen möchte. Und dafür ist mir keine Möglichkeit bekannt.

---

<div class="post-metadata">

**Author:** ![steinsoftware](https://avatars.discourse-cdn.com/v4/letter/s/b487fb/32.png) [@steinsoftware](https://forum.shopware.com/u/steinsoftware)\
**Post date:** [24. August 2016 um 06:58 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277/5 "2016-08-24T06:58:16Z")

</div>

Naja aber effektives Filtern ist damit schon möglich. Neben property kann man ja auch expression und value mit angeben und so sehr effektiv die Daten selektieren.

---

<div class="post-metadata">

**Author:** ![Shopwareianer](https://avatars.discourse-cdn.com/v4/letter/s/b4bc9f/32.png) [@Shopwareianer](https://forum.shopware.com/u/Shopwareianer)\
**Post date:** [24. August 2016 um 07:07 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277/6 "2016-08-24T07:07:45Z")

</div>

Du kannst es auch etwas umgehen. Du kannst bspw. den Service von [Algolia](https://www.algolia.com/) nutzen und hier direkt eine Live Suche / [instantsearch.js](https://community.algolia.com/instantsearch.js/)&nbsp;implementieren.

Für Shopware hatte ich hier mal ein Test Plugin geschrieben, welches die Artikel entsprechend über die Shopware Console nach Algolia importiert. Hat hervorragend funktioniert. Und mit Algolia bekommst du Suchergebnisse in 1 bis 2 ms. Ganz egal ob es nun 100, 1000 oder 10.000 Artikel sind.

Abhängig natürlich davon, wovon du die Suche der Artikel überhaupt benötigst.

Hier mal zwei Bildchen der Suche mit Shopware, welche ich damals angefangen habe:

> <https://twitter.com/hostianer/status/638311832655122432>

> <https://twitter.com/hostianer/status/638293362777399296>

> <https://twitter.com/hostianer/status/637222976610562048>

---

<div class="post-metadata">

**Author:** ![hec](https://avatars.discourse-cdn.com/v4/letter/h/e274bd/32.png) [@hec](https://forum.shopware.com/u/hec)\
**Post date:** [24. August 2016 um 07:15 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277/7 "2016-08-24T07:15:48Z")

</div>

> [@Synonymous schrieb:](https://forum.shopware.com/profile/24210/Synonymous "Synonymous")
> 
> Das Beispiel ist aber keine Suche so wie ich die Anforderung verstehen würde. Wenn ich Dein Beispiel nehme ist ein GET auf /1 auch eine „Suche“ nach dem Produkt mit ID 1.
> 
> Mein Verständnis der Frage war, dass er eine Volltextsuche über die API durchführen möchte. Und dafür ist mir keine Möglichkeit bekannt.

Das von mir angegebene Beispiel war sicherlich sehr minimalistisch (und sollte bloß zeigen, dass die Filter-Funktionalität auch bei Artikeln und nicht nur - wie in der verlinkten Dokumentation - bei Bestellungen funktioniert).

Man kann über die API im Standard einzelne Felder nach gewünschten Werten filtern, dabei auch Operatoren nutzen.

Man kann keine Volltextsuche durchführen und auch nicht die Eingabe ins Suchfeld des Shop-Frontends simulieren.

&nbsp;

---

<div class="post-metadata">

**Author:** ![NoPseudonym](https://avatars.discourse-cdn.com/v4/letter/n/ad7895/32.png) [@NoPseudonym](https://forum.shopware.com/u/NoPseudonym)\
**Post date:** [24. August 2016 um 07:31 UTC](https://forum.shopware.com/t/artikel-suchen-uber-rest-api/39277/8 "2016-08-24T07:31:42Z")

</div>

> &nbsp;
> 
> [@hec schrieb:](https://forum.shopware.com/profile/18201/hec "hec")
> 
> Doch, man kann filtern.
> 
> Bei der Orders-API ist es dokumentiert, siehe [https://developers.shopware.com/developers-guide/rest-api/examples/order/#further-examples](https://developers.shopware.com/developers-guide/rest-api/examples/order/#further-examples)
> 
> Funktioniert aber auch für Artikel - wir nutzen es z.B., um Artikel ohne Hersteller zu suchen:
> 
> $params = [  
> ‚filter‘ =\> [  
> [  
> ‚property‘ =\> ‚supplierId‘,  
> ]  
> ]  
> ];  
> $json = $this-\>apiClient-\>get(‚articles‘, $params);
> 
> &nbsp;

Genau sowas meinte/brauch ich vielen dank
