Se stai recuperando gli ordini utilizzando l'API degli ordini di Lengow Orders API, assicurati di seguire i nostri consigli per un utilizzo ottimale:
Token di autenticazione
La sessione token restituita da "access/get_token" è valida per un'ora. Non dovresti richiedere un token prima di ogni richiesta; altrimenti, potresti raggiungere i limiti di frequenza e bloccare le tue richieste.
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 dispone di 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 è ciò che accade 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&processe
{
"count": 16778,
"next": "https://api.lengow.io/api/v3.0/orders/actions/?account_id=1&marketplace=veepee_pink_fr&page=2&elaborato=False&in coda=False",
"previous": null,
"results": [
{
"id": 81428959,
"marketplace_order_id": "221211V1101346433",
"account_id": 223,
"marketplace": "veepee_pink_fr",
"action_type": "ship",
"elaborato": false,
"in coda": false,
[...]
"errori": "Limite di velocità superato.",
Nota: la risposta è paginata come un elenco di comandi, usa "next" per seguire la pagina successiva.
API di mercato
I dati forniti dall'API di mercato 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 della velocità è impostata a 500 richieste al minuto.
Se le richieste vengono inviate a un ritmo superiore, le risposte avranno lo stato HTTP "429 Troppi richieste", fino a quando il numero di richieste ricevute nell'ultimo minuto scende sotto 500.