Hallo Leute, Habe eine Frage bezüglich der Restfull API von Woocommerce. Die Doku ist hier zu finden: https://woocommerce.github.io/woocommerce-rest-api-docs/wp-api-v1.html#list-all-orders Verbindung steht. Nun will ich aber z.Bsp. nur alle Items mit dem Status "pending" zurück haben. Wie lautet dann die Abfrage? https://example.com/wp-json/wc/v1/orders?"status":"pending" liefert mir alle zurück :-(
Fred R. schrieb: > Habe eine Frage bezüglich der Restfull API von Woocommerce. > Die Doku ist hier zu finden: > https://woocommerce.github.io/woocommerce-rest-api-docs/wp-api-v1.html#list-all-orders > Die API 1 wird dort als Veraltet angegeben. Ich würde dir daher abraten nach der neues zu schreiben. > Wie lautet dann die Abfrage? > > https://example.com/wp-json/wc/v1/orders?"status":"pending" die Anführungszeichen irritieren mich der Doppelpunkt auch ich würde ein gleich erwarten. Probiere es mal mit: https://example.com/wp-json/wc/v2/orders?status=pending das würde mehr dem entsprechen was ich von einer REST API erwarte.
Imonbln schrieb: > https://example.com/wp-json/wc/v2/orders?status=pending Hat funktioniert :-) Danke :-) Imonbln schrieb: > Die API 1 wird dort als Veraltet angegeben. Ich würde dir daher abraten > nach der neues zu schreiben. Ich kann von Woocommerce V3 derzeit noch abraten. Schwerste Fehler drinnen. Jede Woche ein Update. Daher teilweise wochenweise nicht brauchbar und Existenzgefährdend.
Und wie can ich mit einem PUT den Status einer Bestellung ändern? So? https://example.com/wp-json/wc/v1/orders/1234/Status=Complete
Fred R. schrieb: > https://example.com/wp-json/wc/v1/orders/1234/Stat... das ist ein GET Request du musst ein PUT Request mit JSON im Body senden wie das geht hängt von der Libary ab die du nutzt. mit curl geht das so
1 | curl -X PUT https://example.com/wp-json/wc/v1/orders/1234 \ |
2 | -u consumer_key:consumer_secret \ |
3 | -H "Content-Type: application/json" \ |
4 | -d '{ |
5 | "status": "completed" |
6 | }' |
der Request den Curl Daraus Bastellt ist der:
1 | PUT /wp-json/wc/v1/orders/1234 HTTP/1.1 |
2 | Host: example.com |
3 | Authorization: Basic Y29uc3VtZXJfa2V5OmNvbnN1bWVyX3NlY3JldA== |
4 | User-Agent: curl/7.54.0 |
5 | Accept: */* |
6 | Content-Type: application/json |
7 | Content-Length: 27 |
8 | |
9 | {
|
10 | "status": "completed" |
11 | }
|
Achte auf das PUT in der ersten Zeile. Bei dir kommt da ein GET. HTH Imonbln btw. neue Frage in einen alten Thread ist unschön.
Jetzt hätte ich noch eine Frage: Wie kann ich z.Bsp. Komplette Bestellungen ab einem gewissen Datum anzeigen? Oder ab einer gewissen ID? orders?filter[after]=2017-05-21T10:10:10Z&filter[status]=completed Liefert leider die falschen Ergebnisse zurück (nämlich alle) Was ich auch nicht hinbekomme: Mehrere Statuscodes abfragen. z:Bsp Status ist complete ODER cancelled orders?filter[status]=on-hold&filter[status]=cancelled Geht auch wieder nicht.Liefert wieder alle zurück. orders?status=completed&status=on-hold Liefert nur die on-hold zurück :-(
:
Bearbeitet durch User
Fred R. schrieb: > orders?filter[after]=2017-05-21T10:10:10Z&filter[status]=completed Ohne Jetzt ein Target zu haben mit welchen ich testen kann, kann ich nur raten. Erster Verdächtiger wäre der Doppelpunkt im URL String. Üblicherweise würde man den als %3A Codiert in den Get Request packen. Keine Ahnung wie Tolerant das Framework sonst ist. Ausserdem warum eigentlich das "filter[after]=" ich würde immer noch erwarten: orders?after=2017-05-21T10%3A10%3A10Z&status=completed Fred R. schrieb: > Imonbln schrieb: >> https://example.com/wp-json/wc/v2/orders?status=pending > > Hat funktioniert :-) Danke :-) Hier hast du ja bestätigt das es ohne das Filer['XXX'] geht. Probiere es als mal ohne. Fred R. schrieb: > orders?status=completed&status=on-hold > Liefert nur die on-hold zurück :-( das gibt ggf. das Framework nicht her. Je nach dem wie das Codiert ist wird der zweite filter den ersten überschreiben. Hier wirst du wohl oder übel zwei requests machen müssen und das Ergebnis selbst zusammen mergen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.