die API-Filter-Funktion wird hier ja im Ansatz erklärt:
Dort steht:
The list routes supports both data filtering via GET parameter and POST parameter for more complex queries. Simple queries can be made via GET parameters.
Wie funktioniert denn eine Suche über POST? An welche Adresse geht die POST-Suche? Oder mal konkret gefragt: Wie kann ich mir alle Artikel anzeigen lassen, welche KEINE EAN-Nummer haben?
Ich denke, das geht nur über die POST-Suche, oder?
den API-Endpunkt den du suchst lautet: api/v1/search/product
Hier kannst du dann per POST-Request auf die Daten abfragen.
Zum Beispiel dies was du suchst, würde lauten:
Diese Abfragen kannst du natürlich besser über die Shopware-Logik machen, aber per Hand kannst du das JSON natürlich auch erstellen.
Hierfür musst du die Filter einzeln angeben.
Über GET kannst du nur Abfragen stellen, die einen Wert haben, wie z.B. die Abfrage auf eine bestimmte EAN-Nummer:
kein Problem, für solche Anfragen gibt es den RangeFilter (diesen findest du auch im Core unter: Framework/DataAbstractionLayer/Search/Filter/RangeFilter.php).
Diesen kann man dann zum Beispiel so nutzen:
vielen Dank für Deine Nachricht. Nein, leider habe ich das Problem noch nicht lösen können. Da ich genug andere Baustellen habe, die ich gerade beackere, habe ich das Problem erstmal nach hinten geschoben. Es wäre aber super nett, wenn Du Dir Geschichte noch mal anschauen könntest. Vielleicht bekommst Du ein funktionierenden JSON-String mit manufacturerId = ‘12345’ ODER manufacturerId = ‘891011’ hin?
vielen Dank für Deine Nachricht. Nein, leider habe ich das Problem noch nicht lösen können. Da ich genug andere Baustellen habe, die ich gerade beackere, habe ich das Problem erstmal nach hinten geschoben. Es wäre aber super nett, wenn Du Dir Geschichte noch mal anschauen könntest. Vielleicht bekommst Du ein funktionierenden JSON-String mit manufacturerId = ‚12345‘ ODER manufacturerId = ‚891011‘ hin?
@Krispin ich muss diesen alten Thread nochmals aufwärmen - vielleicht kannst Du mir bei einer eigentlich einfachen Frage schnell helfen.
equals bedeutet ja die Prüfung auf GLEICHHEIT.
Wie kann ich denn bitte auf UNGLEICHHEIT prüfen? Ich habe es mit unequal, unequals oder auch not probiert - überall gibt es eine Fehlermeldung. In der sehr “schlanke” Shopware API Dokumentation habe ich auch nichts gefunden.
Konkretes Beispiel: Ich möchte nach allen Bestellungen filtern, bei denen ein Trackingcode hinterlegt ist.
@Krispin erstmal 1000Dank für Deine schnelle Antwort - das ist super nett.
Bzgl. des Links mit dem PHP-Beispielcodes:
Bevor ich da jetzt wieder ewig viel Zeit reininvestiere, erlaube mir bitte noch die Frage, ob ich diesen NotFilter auch in meine API-Anfrage rein basteln kann? Ein entsprechendes Beispiel habe ich in der Shopware 6 API Doku leider nicht gefunden: Shopware 6: Reading entities
@Krispin Dein Beispiel funktioniert in der Tat. Man kann so nach allen Werten filtern, welche vom Datentyp VARCHAR und im Standard mit NULL belegt sind.
Das von mir abgefragte Feld tracking_codes in der Tabelle order_delivery ist aber vom Datentyp json und dann funktioniert die Abfrage nach NULL nicht mehr!