API Filter

Hi canetti2,

ich glaube, dass Problem liegt darin, dass das JSON-Feld laut Datenbankschema kein NULL beinhalten darf und das DAL anscheinend ein Problem mit der Abfrage von solchen Werten hat. Bei einfachen JSON-Feldern ohne NotNull-Eigenschaft, wo ein NULL-Wert in der Datenbank vorhanden ist, funktioniert es. Am Besten wäre es, wenn du dazu ein Ticket öffnest mit deinem konkreten Beispiel.

Gruß

Krispin

1 „Gefällt mir“

Hi Krispin,

vielen Dank für Deine Hilfe - ich habe im Issuetracker ein Ticket geöffnet - bitte voten:
Shopware Issuetracker

Viele Grüße
canetti

sorry, wenn ich hier nach einem Jahr noch mal den Thread wiederbelebe, aber ich habe hier eine Frage, wie ich multi filter und einen "single"filter kombiniere:

{
    "filter": [
        {
            "type": "multi",
            "operator": "and",
            "queries": [
                {
                    "type": "range",
                    "field": "stock",
                    "parameters": {
                        "gt": 0
                    }
                },
                {
                    "type": "equals",
                    "field": "isCloseout",
                    "value": true
                },
                {
                    "type": "equals",
                    "field": "isCloseout",
                    "value": false
                }
            ]
        }
    ]
}

Der Filter soll ALLE Produkte anzeigen, welche als „isCloseout“:true versehen sind, jedoch ihr „Bestand >0“ ist, aber auch alle Produkte, die als „isCloseout“:false markiert sind.

Wenn ich diese Abfrage sende, bekomme ich folgende response:

    },
    "meta": {
        "totalCountMode": 0,
        "total": 0
    },
    "aggregations": []
}

Ebenfalls habe ich folgenden Aufbau auch getestet:

{
    "filter": [
        {
            "type": "multi",
            "operator": "and",
            "queries": [
                {
                    "type": "range",
                    "field": "stock",
                    "parameters": {
                        "gt": 0
                    }
                },
                {
                    "type": "equals",
                    "field": "isCloseout",
                    "value": true
                }
            ]
        },
        {
            "type": "equals",
            "field": "isCloseout",
            "value": false
        }
    ]
}

Habe ich hier etwas übersehen? Habe folgende Quellen angeschaut:

für alle die das gleiche problem haben:

{
    "filter": [
        {
            "type": "multi",   
            "operator": "or",
            "queries": [
                {
                    "type": "multi",
                    "operator": "and",
                    "queries": [
                        {
                            "type": "equals",
                            "field": "isCloseout",
                            "value": true
                        },
                        {
                            "type": "range",
                            "field": "stock",
                            "parameters": {
                                "gt":0
                            }
                        }
                    ]
                },
                {
                    "type": "equals",
                    "field": "isCloseout",
                    "value": false
                }
            ]
        }
    ]
}