Wenn Sie Bestellungen mit Lengows Orders API abrufen, stellen Sie sicher, dass Sie unseren Rat für eine optimale Nutzung befolgen:
Authentifizierungstoken
Das Sitzungs-Token, das von "access/get_token" zurückgegeben wird, ist für eine Stunde gültig. Sie sollten nicht vor jeder Anfrage ein Token anfordern; sonst könnten Sie die Rate Limits erreichen und in Ihren Anfragen blockiert werden.
Um herauszufinden, wie viel Zeit für ein Token noch übrig ist, können Sie die API /me verwenden, die die Ablaufzeit des aktuellen Tokens liefert.
Beispiel:
curl --request GET \
--url 'https://api.lengow.io/me' \
--header 'Authorization: 69946b78-edae-49b8-8874-6fb025e09a58'
{
"token": "69946b78-edae-49b8-8874-6fb025e09a58",
"expire_at": "2022-12-21T13:56:08+00:00",
"account_id": 1,
"scopes": {
"feed_id": "*",
"account_id": 1,
"catalog_id": "*",
"product_id": "*"
}
}
Bestellabruf
Die Order List API verfügt über Filter, die mehrere ergänzende Ansätze ermöglichen.
Finden neuer Bestellungen
Der Filterparameter "merchant_order_id=None" gibt nur Bestellungen zurück, für die die "merchant_order_id" leer ist.
Sie können auch den Suchzeitraum einschränken, um die Abfrage zu beschleunigen (z.B. die letzten drei Stunden).
Beispiel:
curl --request GET \
--url 'https://api.lengow.io/v3.0/orders/?account_id=1&merchant_order_id=None&marketplace_order_date_from=2022-12-21T12%3A22%2B01%3A00' \
--header 'Authorization: 69946b78-edae-49b8-8874-6fb025e09a58'
Jede Bestellung kann dann mit einer händlerspezifischen Kennung als "gesehen" markiert werden, indem die moi API (= merchant order id - Verweis auf unsere API-Dokumentation) verwendet wird. Dadurch werden markierte Bestellungen in der nächsten Abfrage fehlen.
Suche nach Updates
Bestellungen haben ein "updated_at" Feld, das aktualisiert wird, sobald sich Informationen über die Bestellung ändern.
Dieses Datum kann verwendet werden, um aktualisierte Bestellungen abzurufen, indem mit "updated_from" und "updated_to" gefiltert wird.
Beispiel:
curl --request GET \
--url 'https://api.lengow.io/v3.0/orders/?account_id=1&updated_from=2022-12-21T14%3A22%2B01%3A00&updated_to=2022-12-21T15%3A22%2B01%3A00' \
--header 'Authorization: 69946b78-edae-49b8-8874-6fb025e09a58'
Paginierung
Die Liste der Befehle ist auf maximal 100 paginiert.
Wenn eine zusätzliche Seite verfügbar ist, enthält der "next" Schlüssel im JSON-Inhalt die URL der nächsten Seite.
Andernfalls ist der "next" Schlüssel null, was bedeutet, dass die aktuelle Seite die letzte ist.
Stellen Sie daher sicher, dass Sie die nächste Seite nur abfragen, wenn "next" nicht null ist.
Vermeiden Sie es einfach, über die Seitennummer zu iterieren, bis Sie eine 404 (Nicht gefunden) Seite erhalten, was passiert, wenn Sie eine Seite über die vorhandenen hinaus anfordern.
Noch mehr, vermeiden Sie es, über eine endliche Anzahl von Seiten zu iterieren, was nutzlose Anfragen multipliziert, die zu 404-Fehlern führen.
Beispiel für den "next" Schlüssel, der die URL der nächsten Seite enthält:
{
"count": 4481,
"next": "https://api.lengow.io/v3.0/orders/?account_id=1&merchant_order_id=None&page=2",
"previous": null,
"results": [
[...]
Aktionen auf Bestellungen
Bestellaktionen werden asynchron verarbeitet. Das Senden eines Statusupdates erstellt eine Aufgabe, die in die Warteschlange gestellt und dann von einem separaten Prozess verarbeitet wird.
Die Antwort auf den API-Aufruf gibt die Aufgaben-ID zurück, die dann verwendet werden kann, um den Status und das Ergebnis der Aufgabe zu erhalten.
Beispiel für eine Bestellaktion, die verarbeitet wurde:
curl --request GET \
--url 'https://api.lengow.io/v3.0/orders/actions/?account_id=1&id=81982959' \
--header 'Authorization: 69946b78-edae-49b8-8874-6fb025e09a58'
"results": [
{
"id": 81982959,
"marketplace_order_id": "221219V2102418423",
"account_id": 1,
"marketplace": "veepee_pink_fr",
"action_type": "ship",
"processed": true,
"queued": false,
"tracking_number": "8G48609462340",
"tracking_url": "https://www.laposte.fr/outils/suivre-vos-envois?code=8G48609462340",
"carrier": "La Poste",
[...]
"created_at": "2022-12-21T11:17:47.353491Z",
"updated_at": "2022-12-21T11:17:48.408401Z",
[...]
}
]
Sie können den Status jeder Aktion mit den Feldern "queued" und "processed" verfolgen:
- "queued" ist "true", wenn die Aktion auf die Verarbeitung wartet (oder bei einem Fehler erneut versucht wird), und "false", wenn sie behandelt wird;
- "processed" ist "true", wenn die Aktion erfolgreich war.
Anstatt nach vergangenen Aktionen einzeln zu suchen, ist es effizienter, nur die Aktionen abzurufen, die eine Verarbeitung erfordern.
Im folgenden Beispiel suchen wir nach erfolglosen Veepee-Aktionen:
curl --request GET \
--url 'https://api.lengow.io/v3.0/orders/actions/?account_id=1&marketplace=veepee_pink_fr&processe{
"count": 16778,
"next": "https://api.lengow.io/api/v3.0/orders/actions/?account_id=1&marketplace=veepee_pink_fr&page=2&verarbeitet=False&in Warteschlange=False",
"previous": null,
"results": [
{
"id": 81428959,
"marketplace_order_id": "221211V1101346433",
"account_id": 223,
"marketplace": "veepee_pink_fr",
"action_type": "ship",
"verarbeitet": false,
"in Warteschlange": false,
[...]
"Fehler": "Rate limit exceeded.",
Hinweis: Die Antwort ist paginiert wie eine Befehlsliste, verwenden Sie "next" um die nächste Seite zu verfolgen.
Marktplätze API
Die von der Marktplätze API bereitgestellten Daten ändern sich sehr wenig.
Es ist daher nicht notwendig, es mehr als einmal pro Stunde anzufordern, oder sogar weniger.
Anforderungsbegrenzung
Um eine faire Nutzung für alle Benutzer zu gewährleisten, ist die Rate-Limiting Schwelle auf 500 Anfragen pro Minute festgelegt.
Wenn Anfragen mit einer höheren Rate gesendet werden, haben die Antworten den HTTP-Status "429 Zu viele Anfragen", bis die Anzahl der in der letzten Minute erhaltenen Anfragen unter 500 fällt.