Si estás recuperando pedidos usando la API de Pedidos de Lengow Orders API, asegúrate de seguir nuestros consejos para un uso óptimo:
Token de autenticación
La sesión token devuelta por "access/get_token" es válida por una hora. No deberías solicitar un token antes de cada solicitud; de lo contrario, puedes alcanzar los límites de tasa y ser bloqueado en tus solicitudes.
Para averiguar cuánto tiempo queda para un token, puedes usar la api /me que proporciona el tiempo de expiración del token actual.
Ejemplo:
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": "*"
}
}
Recuperación de pedidos
La API de Lista de Pedidos cuenta con filtros que permiten varios enfoques complementarios.
Encontrar nuevos pedidos
El parámetro de filtro "merchant_order_id=None" solo devolverá pedidos para los cuales el "merchant_order_id" esté vacío.
También puedes limitar el período de búsqueda para acelerar la consulta (por ejemplo, las últimas tres horas).
Ejemplo:
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'
Cada pedido puede entonces ser marcado como "visto" con un identificador específico del comerciante utilizando la API moi (= id de pedido del comerciante - Consulte nuestra documentación de la API). Como resultado, los pedidos marcados estarán ausentes en la próxima consulta.
Buscando actualizaciones
Los pedidos tienen un campo "updated_at" que se actualiza tan pronto como se cambia cualquier información sobre el pedido.
Esta fecha se puede utilizar para recuperar pedidos actualizados, filtrando con "updated_from" y "updated_to".
Ejemplo:
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'
Paginación
La lista de comandos está paginada por un máximo de 100.
Si una página adicional está disponible, la clave "next" en el contenido JSON contiene la URL de la próxima página.
De lo contrario, la clave "next" es null, lo que significa que la página actual es la última.
Por lo tanto, asegúrate de consultar la próxima página solo si "next" no es null.
Evita simplemente iterar sobre el número de página hasta que obtengas una página 404 (No encontrada), que es lo que sucede cuando solicitas una página más allá de las existentes.
Aún más, evita iterar sobre un número finito de páginas, lo que multiplica las solicitudes inútiles que conducen a errores 404.
Ejemplo de la clave "next" que contiene la URL de la próxima página:
{
"count": 4481,
"next": "https://api.lengow.io/v3.0/orders/?account_id=1&merchant_order_id=None&page=2",
"previous": null,
"results": [
[...]
Acciones en pedidos
Las acciones de pedido se procesan de forma asíncrona. Enviar una actualización de estado crea una tarea que se pone en cola y luego es procesada por un proceso separado.
La respuesta a la llamada de la API devuelve el identificador de la tarea, que luego se puede utilizar para obtener el estado y el resultado de la tarea.
Ejemplo de una acción de pedido que ha sido procesada:
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",
[...]
}
]
Puedes seguir el estado de cada acción con los campos "queued" y "processed":
- "queued" es "true" cuando la acción está esperando ser procesada (o reintentando en caso de fallo), y "false" cuando se trata;
- "processed" es "true" cuando la acción ha tenido éxito.
En lugar de buscar acciones pasadas individualmente, es más eficiente recuperar solo aquellas acciones que requieren procesamiento.
En el siguiente ejemplo, estamos buscando acciones de Veepee que no tuvieron éxito:
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&procesado=False&en cola=False",
"previous": null,
"results": [
{
"id": 81428959,
"marketplace_order_id": "221211V1101346433",
"account_id": 223,
"marketplace": "veepee_pink_fr",
"action_type": "ship",
"procesado": false,
"en cola": false,
[...]
"errores": "Se excedió el límite de velocidad.",
Nota: la respuesta está paginada como una lista de comandos, use "next" para seguir la próxima página.
API de Marketplaces
Los datos proporcionados por la API de Marketplaces cambian muy poco.
Por lo tanto, es innecesario solicitarlo más de una vez por hora, o incluso menos.
Limitación de solicitud
Para garantizar un uso justo para todos los usuarios, el umbral de limitación de velocidad se establece en 500 solicitudes por minuto.
Si las solicitudes se envían a una velocidad mayor, las respuestas tendrán el estado HTTP "429 Demasiadas solicitudes", hasta que el número de solicitudes recibidas en el último minuto sea inferior a 500.