API - Migliori Pratiche per Orders API

Se stai recuperando gli ordini utilizzando l'API degli ordini di Lengow Ordini API, assicurati di seguire i nostri consigli per un uso ottimale:

Token di autenticazione

La sessione token restituita da "access/get_token" è valida per un'ora. Non c'è bisogno di richiedere un token prima di ogni richiesta.

Per scoprire quanto tempo rimane per un token, puoi utilizzare l'api /me che fornisce il tempo di scadenza del token corrente.

Esempio:

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": "*"
}
}

Recupero dell'ordine

L'API della lista degli ordini presenta filtri che consentono diversi approcci complementari.

Trovare nuovi ordini

Il parametro di filtro "merchant_order_id=None" restituirà solo gli ordini per i quali il "merchant_order_id" è vuoto.
Puoi anche limitare il periodo di ricerca per velocizzare la query (ad es. le ultime tre ore).

Esempio:

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'

Ogni ordine può poi essere contrassegnato come "visto" con un identificatore specifico del commerciante utilizzando l'API moi (= id ordine del commerciante - Consulta la nostra documentazione API). Di conseguenza, gli ordini contrassegnati saranno assenti dalla prossima query.

Ricerca di aggiornamenti

Gli ordini hanno un campo "updated_at" che viene aggiornato non appena viene modificata qualsiasi informazione sull'ordine.
Questa data può essere utilizzata per recuperare gli ordini aggiornati, filtrando con "updated_from" e "updated_to".

Esempio:

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'

Paginazione

L'elenco dei comandi è paginato con un massimo di 100.

Se è disponibile una pagina aggiuntiva, la chiave "next" nel contenuto JSON contiene l'URL della pagina successiva.
Altrimenti, la chiave "next" è null, il che significa che la pagina corrente è l'ultima.

Quindi, assicurati di interrogare la pagina successiva solo se "next" non è null.

 Evita semplicemente di iterare sul numero di pagina fino a quando non ottieni una pagina 404 (Non trovata), che è quello che succede quando richiedi una pagina oltre quelle esistenti.
Ancora di più, evita di iterare su un numero finito di pagine, che moltiplica le richieste inutili che portano a errori 404.

Esempio della chiave "next" che contiene l'URL della pagina successiva:

{
"count": 4481,
"next": "https://api.lengow.io/v3.0/orders/?account_id=1&merchant_order_id=None&page=2",
"previous": null,
"results": [
    [...]

Azioni sugli ordini

Le azioni sugli ordini vengono elaborate in modo asincrono. L'invio di un aggiornamento dello stato crea un compito che viene messo in coda e poi elaborato da un processo separato.

La risposta alla chiamata API restituisce l'identificatore del compito, che può poi essere utilizzato per ottenere lo stato e il risultato del compito.

Esempio di un'azione sull'ordine che è stata elaborata:

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",
[...]
}
]

Puoi monitorare lo stato di ogni azione con i campi "queued" e "processed":

  • "queued" è "true" quando l'azione è in attesa di elaborazione (o tentativo in caso di fallimento), e "false" quando è trattata;
  • "processed" è "true" quando l'azione è stata eseguita con successo.

Piuttosto che cercare azioni passate individualmente, è più efficiente recuperare solo quelle azioni che richiedono elaborazione.

Nell'esempio seguente, stiamo cercando azioni Veepee non riuscite:

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.",

Nota: la risposta è paginata come un elenco di comandi, usa "next" per seguire la pagina successiva.

API di Marketplaces

I dati forniti dall'API di Marketplaces cambiano molto poco.

È quindi inutile richiederlo più di una volta all'ora, o anche meno.

Limitazione delle richieste

Per garantire un uso equo per tutti gli utenti, la soglia di limitazione del tasso è impostata a 500 richieste al minuto.

Se le richieste vengono inviate a un tasso superiore, le risposte avranno lo stato HTTP "429 Too Many Requests", fino a quando il numero di richieste ricevute nell'ultimo minuto scende sotto 500.

Questo articolo è stato tradotto automaticamente. In caso di dubbio, faccia riferimento alle versioni originali in inglese o in francese.

Articoli in questa sezione

I nostri orari di assistenza
Dan Lunedì al Venerdì dalle ore 9:00 alle ore 6:30