POST /api/v1/search/order - Filtern nach Bestell-, Zahlungs-, und/oder Lieferungstatus möglich?

Hallo alle zusammen,

Ich versuche gerade herauszufinden, wie ich über die /api/v1/search/order mittels eines POST requests die Bestellungen nach den verschiedenen Status filtern kann? Ich denke, dass der Request irgendwie so aussehen müsst:

{
    "total-count-mode": 1,
    "limit": 10,
    "page": 1,
    "sort": "orderNumber",
    "term": null,
    "filter": [
        {
            "type": "equals",
            "field": "???",
            "value": "???"
        }
    ]
}

Nur weiß ich nicht, was ich hier als field, und was als value übergeben muss. Bitte um hilfe.

 

Hi, der request, den du haben willst sieht so aus :

{"filter": [
            {
             "type": "equals",
             "field": "order.stateMachineState.technicalName",
             "value": "open"
}

 

Hallo Zusammen, 

die Lösung von @jaschaLehmann‍ funktioniert super, nur fehlt mir dort ein weiterer Schritt. 

Die Eingagsfrage von @drazenbebic war: “Bestell-, Liefer-, oder Zahlungsstatus”. 

Wir versuchen gerade offene Bestellungen mit Zahlstatus “paid” zu bekommen. 

Mit dem oben stehenden Filter bekommen wir die offenen, aber wie bekomme ich jetzt die bezahlten Bestellungen? 

Mein Ansatz war, aus der state_machine_state den Status “paid” ebenfalls abzufragen, aber da kommt gar nichts. Weder in Kombination, noch einzeln:

{"filter": [
     {
      "type": "equals",
      "field": "order.stateMachineState.technicalName",
      "value": "paid"
     }

Das “lustige” daran ist, dass selbst das Backend in der Bestellliste nicht nach Zahlstatus filtern kann und einen 400er wirft ;) 

Weiß jemand Rat? 

Danke schon mal… 

Grüße

1 „Gefällt mir“

Hi, kurzer Exkurs. stateMachineState meint „status im Allgemeinen“ order.stateMachineState.technicalName von der Bestellung der status und davon der technische Name.
Shopware teilt das ganze in drei Ebenen: Bestellstatus / Lieferstatus / Zahlungsstatus /

Wenn du nun nach dem Zahlungsstatus filtern möchtest, dann brauchst du folgendes?

{"filter": [
               {
                "type": "equals",
                "field": "transactions.stateMachineState.technicalName",
                "value": "open"
                }
             ]
}

 In deinem Fall steht als value natürlich „paid“.