Actualizando Inventario en MercadoLibre — API
Este artículo es parte de una serie que tiene como idea el mostrar cómo se puede actualizar la información de un Ecommerce Marketplace desde un sistema de inventarios. En este caso vamos a ver cómo podemos actualizar la información de inventario en MercadoLibre.
La colección de Postman con todos los ejemplos y el programa de prueba están disponible en GitHub.
Mercado Libre Developers
MercadoLibre cuenta con documentación de como utilizar sus APIs en el sitio para Developers. Podemos encontrar todo lo necesario para poder empezar. También cuenta con un foro donde se puede relacionarse con la comunidad.
Nueva Aplicación
Lo primero que tenemos que hacer es crear una nueva aplicación en MercadoLibre. Esto se haces desde el Application Manager. Crear una nueva aplicación requiere que completemos la información y vamos a obtener un app ID y secret key para poder utilizar en nuestras apps.
Después de creada la app, podemos ir a la página Autenticación y Autorización desde donde podemos obtener el access_token
en forma muy fácil para poder probar las API sin requerir nada más. Es una funcionalidad bastante útil que nos permite aprender de las APIs sin tener que implementar nada de código.
Que es lo que usa MercadoLibre para el modelo de autorización? Obviamente, OAuth 2.0 como todas las plataformas digitales. Si completamos nuestro app ID en este formulario y presionamos el botón Muestra mi información, nos va a mostrar un mensaje para autorizar a nuestra app el acceder a nuestra información. Con el valor que nos devuelve en el campo Access Token podemos empezar a llamar a las APIs de MercadoLibre desde nuestro código, cURL o herramientas como Postman.
Hay que tener en cuenta que el
access_token
expira luego de 6 horas. Para desarrollar nuestro programa vamos a necesitar algo más.
Ambiente de pruebas
Algo propio de MercadoLibre es su elección de no tener un ambiente de pruebas o sandbox. Hay que utilizar usuarios y tarjetas de test que viven en el mismo ambiente que el resto de usuarios reales. Todas las pruebas que hagamos serian validas para ambos tipos de usuarios.
Usando la siguiente URL podemos crear un usuario de pruebas.
https://api.mercadolibre.com/users/test_user?access_token={{token}}
La respuesta nos da un usuario que podemos utilizar para conectarnos a MercadoLibre. La documentación tiene más información y reglas para Realizar Pruebas.
Articulo & Publicación
Obviamente podemos utilizar la API de MercadoLibre para crear y actualizar el contenido de nuestra publicación o podemos utilizar la interfaz de usuario.
Actualizar el inventario
Ya estamos listos para actualizar el inventario de nuestra publicación, pero antes, tres detalles a tener en cuenta:
- El primero es que el id del producto que creamos desde la interfaz de usuario podemos obtenerlo de la URL cuando entramos a la publicación con un solo detalle. En la URL el id tiene un guion, como por ejemplo
MLA-723041885
pero cuando usamos el API, el guion no va, quedando el valorMLA723041885
- Lo segundo es que el límite de la cantidad depende del tipo de exposición de la publicación. Para la exposición de nivel gratuito, el máximo es 1 unidad. Para el nivel Gold Pro, el máximo es 99999 unidades. Esto lo tenemos que tener en cuenta cuando creemos el flujo de actualización desde el sistema de inventario.
- Lo último es que si creamos el producto desde la interfaz y luego queremos actualizarlo mediante el API, tenemos que obtener un
access_token
para el usuario de pruebas, ya que no podemos utilizar el que obtuvimos con el usuario que creo la aplicación y el usuario de pruebas. Si no vamos a recibir el siguiente mensaje
El caso de actualizar el inventario de una publicación es tan común que el ejemplo de la documentación de como actualizar un producto muestra como hacerlo. La llamada es muy simple, usando la siguiente URL con el método PUT
.
https://api.mercadolibre.com/users/item{{id}}?access_token=<token>
y en el body de la invocación el siguiente JSON. Tenemos que recordar el HTTP Header Content-Type
igual a application/json
.
{
"available_quantity": 6
}
Si tenemos éxito, vamos a recibir un HTTP 200 OK
y en el body de la respuesta, los datos de nuestra publicación con el nuevo valor de inventario.
Links
Otros Artículos
Todas las opiniones expresadas son mías y no representan opiniones de ninguna entidad con la que he estado, estoy o estaré afiliado.
All views expressed are my own and do not represent opinions of any entity whatsoever with which I have been, am now, or will be affiliated