API - Best Practice für Orders API

Wenn Sie Bestellungen mit Lengows Orders API abrufen, stellen Sie sicher, dass Sie unseren Rat für eine optimale Nutzung befolgen:

Authentifizierungstoken

Das von "access/get_token" zurückgegebene Sitzungstoken ist für eine Stunde gültig. Es ist nicht notwendig, vor jeder Anfrage ein Token anzufordern.

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 bietet 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 - Verweisen Sie auf unsere API-Dokumentation) verwendet wird. Dadurch werden markierte Bestellungen bei der nächsten Abfrage fehlen.

Suche nach Updates

Bestellungen haben ein "updated_at" Feld, das aktualisiert wird, sobald sich eine Information über die Bestellung ändert.
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&processed=False&queued=False' \
--header 'Authorization: 69946b78-edae-49b8-8874-6fb025e09a58'
{
"count": 16778,
"next": "https://api.lengow.io/api/v3.0/orders/actions/?account_id=1&marketplace=veepee_pink_fr&page=2&processed=False&queued=False",
"previous": null,
"results": [
{
"id": 81428959,
"marketplace_order_id": "221211V1101346433",
"account_id": 223,
"marketplace": "veepee_pink_fr",
"action_type": "ship",
"processed": false,
"queued": false,
[...]
"errors": "Rate limit exceeded.",

Hinweis: Die Antwort ist wie eine Befehlsliste paginiert, 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.

Dieser Artikel wurde automatisch übersetzt. Bei Unsicherheiten bitten wir Sie, die Originalversionen auf Französisch oder Englisch zu konsultieren.

Beiträge in diesem Abschnitt

Unsere Supportzeiten:
Montag bis Freitag von 9:00 - 18.30 Uhr