Orders einlesen

Hallo Forum,

ich möchte Bestellungen aus dem Webshop in eine externe Datenbank schreiben. Die Bestellungen die bereits eingelesen wurden, sollen nicht erneut eingelesen werden. Ich kann mit dieser Api (/api/orders/2 oder /api/orders/20003?useNumberAsId=true) einzelne Bestellungen holen, ich muß hierfür jedoch eine konkrete ID oder BestellNummer angeben.

Wenn ich in den Beispielen (orders?limit=20) um im Internet suche orders?limit=20&start=0, dann scheint es noch mehr Möglichkeiten zu geben?  Sie funktionieren jedoch nicht.

  1. Wie kann ich alle Bestellungen ab einer bestimmten Bestellnummer in einem Rutsch bekommen?

  2. Die erste Bestellung hat bei Shopware immer die ID 1? Wenn diese noch nicht existiert, dann gibt es im Shop noch keine Bestellungen?

 

Vielen Dank

Kin

Es gibt auch Filter: Status etc. Habe jetzt leider keine Beispiele zu Hand. Aber vielleicht kannst Du danach selbst suchen.

1 „Gefällt mir“

Danke für den Tip :slight_smile:

Ich habe mich geirrt. Wenn der “Filter” nicht korrekt ist, dann werden einfach alle Bestellungen zurück gegeben. Deshalb dachte ich das mein Code funktionieren würde. Könntest du mir einen Tip geben wo ich näheres über diese Filter erfahren könnte?

Den Source Code von Shopware habe ich bereits herunter geladen. Wo finde ich die Stelle wo die Rest Parameter verarbeitet werden? Dann kann ich selber weiter schauen.

Hilft es dir weiter? https://forum.shopware.com/discussion/11318/rest-api-bestellungen-anhand-der-ordertime-ermitteln

 

1 „Gefällt mir“

Ich habe das Beispiel im unteren Posting von _Fabi ausprobiert:
http://$SERVER/api/orders/?filter[0][property]=paymentStatus.id&filter[0][value]=17

Aus dieser Zeile: DotNet.RestRequest(“orders/?filter[0][property]=paymentStatus.id&filter[0][value]=17”, Method.[GET])

GET http://192.168.0.111:81/api/orders/?filter%5B0%5D%5Bproperty%5D=paymentStatus.id&filter%5B0%5D%5Bvalue%5D=17 HTTP/1.1
Content-Type: application/json; charset=utf-8
Accept: application/json, application/xml, text/json, text/x-json, text/javascript, text/xml
User-Agent: RestSharp/105.2.3.0
Host: 192.168.0.111:81
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

Es funktioniert nicht: Errormesage: [Semantical Error] line 0, col 172 near ‘paymentStatus.id’: Error: ‘paymentStatus’ is not defined.

 

Ich habe jetzt dieses Beispielvon Helekia gefunden
DotNet.RestRequest(“orders/?filter[0][property]=orderStatus&filter[0][expression]==&filter[0][value]=0”, Method.[GET])

GET http://192.168.0.111:81/api/orders/?filter%5B0%5D%5Bproperty%5D=orderStatus&filter%5B0%5D%5Bexpression%5D==&filter%5B0%5D%5Bvalue%5D=0 HTTP/1.1
Content-Type: application/json; charset=utf-8
Accept: application/json, application/xml, text/json, text/x-json, text/javascript, text/xml
User-Agent: RestSharp/105.2.3.0
Host: 192.168.0.111:81
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

Jetzt kommen tatsächlich nur noch die offenen (:=0) Bestellungen.

Ich glaube paymentStatus gibt es nicht, soetwas wie “cleared” aber schon.

Hiermit werden Bestellungen der Zahlart 815 im Zahlungsstatus 4711 abgerufen:

/api/orders/?filter[0][property]=paymentId&filter[0][value]=815&filter[1][property]=cleared&filter[1][value]=4711