/api/v1/search/order - Filtern nach Zahlungs-, oder Lieferstatus (neu)

Hallo Zusammen, 

da die vorherige Frage schon als gelöst markiert ist (aber nicht vollständig gelöst) stelle ich die Frage noch mal spezieller in einer neuen Frage, da ich glaube in die alte schaut keiner mehr rein  Undecided :

Die Lösung von @jaschaLehmann‍ für die Abfrage des Bestellstatus 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 ersten genannten Filter “open” 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 Shopware Backend in der Bestellliste nicht nach Zahlstatus filtern kann und einen 400er mit fehlerhaften Feld Mapping wirft  ;) 

Weiß jemand Rat? 

 

PS: Grundsätzlich finde ich es unheimlich schwer die Filter über den Umweg Datenbank in Kombination mit Orakeln heraus zu finden. Gibt es eine Doku, indem die Filtermöglichkeiten oder richtigen Parameter gelistet sind? 

Danke schon mal… 

Grüße

1 „Gefällt mir“

Hallo, so eine Dokumentation gibt es. Es ist allerdings etwas nervig sie zu bekommen. Es lohnt sich aber sehr, sich einmal damit auseinander zu setzen und es zu verstehen, dann ist die API echt nett :wink:


A list of all routes and registered entities in the system can be read via the /api/v1/_info/* routes:

  • /api/v1/_info/openapi3.json
  • /api/v1/_info/open-api-schema.json
  • /api/v1/_info/entity-schema.json

 

​Die letzte route ist die, die du zum bestimmen der Entitäten und deren feldern brauchst. Die kannst du natürlich nicht einfach so holen (ist TOP SECRET), auch hierfür musst du den ganz normalen weg über die Api gehen und dich authentifizieren.

Ich hätte dir, die Daten hier gerne, der einfachheit halber, als codeschnipsel hinterlegt aber das File dazu ist 7657 zeilen lang.

Ein Kurzer Ausschnitt aus der entität "order"
 

'order': {'entity': 'order',
           'properties': {'addresses': {'entity': 'order_address',
                                        'flags': {'cascade_delete': True},
                                        'localField': 'id',
                                        'referenceField': 'orderId',
                                        'relation': 'one_to_many',
                                        'type': 'association'},
                          'affiliateCode': {'flags': [], 'type': 'string'},
                          'amountNet': {'flags': {'write_protected': [[]]},
                                        'type': 'float'},
                          'amountTotal': {'flags': {'search_ranking': 250,
                                                    'write_protected': [[]]},
                                          'type': 'float'},
                          'autoIncrement': {'flags': {'write_protected': [[]]},
                                            'type': 'int'},
                          'billingAddressId': {'flags': {'required': True},
                                               'type': 'uuid'},
                          'billingAddressVersionId': {'flags': {'required': True},
                                                      'type': 'uuid'},
                          'campaignCode': {'flags': [], 'type': 'string'},
                          'createdAt': {'flags': {'required': True},

Beste Grüße

Dem Fragesteller wird es wohl nicht mehr helfen, aber wer weiß:

oder für den Versandstatus :

2 „Gefällt mir“