# API Orders filtern nach Attribut

**URL:** <https://forum.shopware.com/t/api-orders-filtern-nach-attribut/36166>\
**Category:** Programmierung\
**Created:** [20. April 2016 um 12:35 UTC](https://forum.shopware.com/t/api-orders-filtern-nach-attribut/36166 "2016-04-20T12:35:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![thetruehunter](https://avatars.discourse-cdn.com/v4/letter/t/87869e/32.png) [@thetruehunter](https://forum.shopware.com/u/thetruehunter)\
**Post date:** [20. April 2016 um 12:35 UTC](https://forum.shopware.com/t/api-orders-filtern-nach-attribut/36166/1 "2016-04-20T12:35:54Z")

</div>

Hallo zusammen,

ich habe eine kurze Frage zum Abrufen von Bestellungen per API.

Ich habe meinen Bestellungen ein zusätzliches Attribut “testattribut” hinzugefügt, welches auch wunderbar über die API für einzelne Bestellabrufe ausgegeben wird und ebenso per API befüllt werden kann. (im Beispiel mit dem WErt “testeintrag”)

Ich möchte dieses Attribut nun gerne verwenden um beim Get auf die Bestellungen zu filtern, welche nicht den Eintrag “testeintrag” in diesem Attribut haben. Folgenden API-URL-Aufruf habe ich dazu erstellt:

[http://localhost/shopware/api/orders?filter[0][property]=attribute.testattribut&filter[0][expression]=≠&filter[0][value]=testeintrag](http://localhost/shopware/api/orders?filter%5B0%5D%5Bproperty%5D=attribute.testattribut&filter%5B0%5D%5Bexpression%5D=%E2%89%A0&filter%5B0%5D%5Bvalue%5D=testeintrag)

&nbsp;

Leider wird mir das ganze quittiert mit folgender Fehlermeldung:

{  
&nbsp; &nbsp; “success”: false,  
&nbsp; &nbsp; “message”: “Errormesage: [Semantical Error] line 0, col 60 near ‘attribute.testattribut’: Error: ‘attribute’ is not defined.”  
}

Es scheint als würde mit meinem URL-Aufruf direkt in der Tabelle s\_order nach dem Attribut gesucht, in der es natürlich nicht existiert.

Lässt sich irgendwie ein Join auf die s\_order\_attributes per API-Abfrage realisieren?

&nbsp;

Grüße

Jens

---

<div class="post-metadata">

**Author:** ![jsdevelopment](https://avatars.discourse-cdn.com/v4/letter/j/858c86/32.png) [@jsdevelopment](https://forum.shopware.com/u/jsdevelopment)\
**Post date:** [20. April 2016 um 22:04 UTC](https://forum.shopware.com/t/api-orders-filtern-nach-attribut/36166/2 "2016-04-20T22:04:49Z")

</div>

Hallo Jens,

ich glaube du musst entweder einen Hook oder ein Dispatch auf die getAction die zur order REST Api gehört machen und dort dann mittels deiner Filter eine SQL Abfrage gestalten.

Beste Grüße

Jens

---

<div class="post-metadata">

**Author:** ![thetruehunter](https://avatars.discourse-cdn.com/v4/letter/t/87869e/32.png) [@thetruehunter](https://forum.shopware.com/u/thetruehunter)\
**Post date:** [21. April 2016 um 11:06 UTC](https://forum.shopware.com/t/api-orders-filtern-nach-attribut/36166/3 "2016-04-21T11:06:15Z")

</div>

ICh habe mir jetzt einfach eine eigene Ressource geschaffen, welche die Standard Order-Ressource nutzt aber dabei beim Listenabruf auf Orders den QueryBuilder der Einzelbestellungen (ohne Filter auf Id) nutzt.

Damit erhalte ich nun direk alle Bestellungen inkl. der Bestelldetails zurück und kann auf mein Attribut filtern.

&nbsp;

Hier die Anpassung in der Order-Ressource dazu:

public function getList($offset = 0, $limit = 25, array $criteria = array(), array $orderBy = array())  
&nbsp; &nbsp; &nbsp;{  
&nbsp; &nbsp; &nbsp; &nbsp; $this-\>checkPrivilege(‘read’);

&nbsp; &nbsp; &nbsp; &nbsp; //$builder = $this-\>getRepository()-\>createQueryBuilder(‘orders’);  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$builder = $this-\>getRepository()-\>getOrdersQueryBuilder();
