Documentación Mercado Libre
Descubre toda la información que debes conocer sobre las APIs de Mercado Libre.
Documentación
Gestión de stock en convivencia Full/Flex (MLA y MLC)
Ahora en Argentina y Chile, en items con convivencia full y flex, los vendedres pueden administrar el stock en su depósito (selling_address) y el stock en Full (meli_facilty) por separado para tener una mejor experiencia que los ayude a tener más ventas y menos cancelaciones.
Es importante tener en cuenta que para utilizar el recurso de actualización de stock, además de tener ítems en stock Full, debes tener las formas de envío Flex y Fulfillment activos. Para corrborar esto valida que la publicación tenga el logistic_type fulfillment y el tag self_service_in, ya que estos dos campos indican que la publicación está en convivencia de ambas logísticas.
Notificaciones
Próximamente, disponibilizaremos el tópico stock_locations notificaciones para cuando se modifiquen las stock_locations del user_product, ya sea por incremento o decremento el campo quantity.
Obtener el stock de un ítem
Para consultar el stock del ítem, primero debes obtener el user_product_id. Para esto consulta el campo a través del recurso de /ítems. Si el ítem tiene variaciones, se debe obtener el user_product_id dentro del array variations.
Llamada:
curl -X GET -h 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/user-products/$USER_PRODUCT_ID/stock
Ejemplo:
curl -X GET -h 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/user-products/MLAU12345678/stock
Respuesta:
{
"locations":
[
{
"type": "meli_facility",
"quantity": 5
}
{
"type": "selling_address",
"quantity": 9
}
],
"id": "MLAU12345678",
"user_id": 1376088286
}
Campos de la repuesta:
- Type: permite diferenciar las locations del ítem.
- selling_address: stock disponible en el depósito del vendedor (Flex).
- meli_facility: stock gestionado por Fulfillment.
Al consultar el endpoint, retornará un header llamado “x-version” el cual tendrá un valor entero (de tipo long) que representará la versión de la entidad.
Este header debe ser enviado a la hora de realizar modificaciones a las entidades, en caso de no ser enviado se retornará un bad request status code: 400 y en caso de que la versión enviada no sea más la última en la entidad a modificar, se retornará un conflict status code: 409.
En el caso de una respuesta con status code 409, se debe realizar nuevamente un GET a la entidad a modificar, para obtener la versión actualizada del header x-version.
Modificar el stock de un ítem
Llamada:
curl -X PUT -h 'Authorization: Bearer $ACCESS_TOKEN' -h 'x-version:$HEADER -h 'Content-Type: application/json'
https://api.mercadolibre.com/user-products/$USER_PRODUCT_ID/stock/type/selling_address -d
{
"quantity": XX
}
Ejemplo:
curl -X PUT -h 'Authorization: Bearer $ACCESS_TOKEN' -h 'x-version:$HEADER -h 'Content-Type: application/json'
https://api.mercadolibre.com/user-products/MLAU12345678/stock/type/selling_address -d
{
"quantity": 10
}
Códigos de estado de respuesta:
Código | Mensaje | Descripción | Recomendación |
---|---|---|---|
204 | OK | El stock se actualizará de manera asíncrona en todas las condiciones de venta del user product. | |
400 | You cannot modify selling address stock if associated items are fulfillment only or no items are associated. | No es posible modificar el stock de selling_addres si el item sólo está activo en full. | No intentar modificar stock en items que no cuentan con convivencia full/flex. |
400 | You cannot modify selling address stock in items without inventory id. | No es posible modificar el stock de selling_address si no se cuenta con stock en fullfillment. | El seller debe primero enviar stock al depósito de meli antes de modificar el stock de selling address. |
400 | You cannot modify selling address stock because you have to do a full inbound first before modifying. | ||
400 | Missing X-Version header | Debes informar el Header “x-version” | |
409 | Version mismatch | El header “x-version” informado es incorrecto | Haz un GET en /user-product para obtener el header “x-version” actualizado. |