API - Mejores prácticas para la API de pedidos

Si estás recuperando pedidos usando la API de Pedidos de Lengow API de Pedidos, 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 es necesario solicitar un token antes de cada solicitud.

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 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&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 respuesta está paginada como una lista de comandos, usa "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 solicitudes

Para garantizar un uso justo para todos los usuarios, el umbral de limitación de tasa se establece en 500 solicitudes por minuto.

Si las solicitudes se envían a una tasa más alta, 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.

Este artículo ha sido traducido automáticamente. En caso de duda, le agradecemos que consulte las versiones originales en francés o en inglés.

Artículos en esta sección

Nuestros horarios de support:
De 9:00 a 18:30 CET de lunes a viernes