Documentación Mercado Libre
Descubre toda la información que debes conocer sobre las APIs de Mercado Libre.![circulos azuis em degrade](https://http2.mlstatic.com/storage/developers-site-cms-admin/DevImgs/230801158836-ImgMS--1-.png)
Documentación
Stock Multi Origen
En esta documentación, encontrarás información importante para cada uno de los flujos que se verán impactados por esta iniciativa, comenzando por:
- Gestión de ubicaciones
- Gestión de stock por ubicación
Gestión de vendedores
En un principio, hemos seleccionado una lista de vendedores que actualmente operan con múltiples almacenes, quienes tendrán esta experiencia disponible, permitiéndoles así gestionar sus ubicaciones o tiendas.
Para identificar a los usuarios que estén configurados con más de una ubicación o tienda, utilizaremos el tag warehouse_management en user_id.
Adicionalmente, se le permitirá al seller configurar sus ítems para que sean visibles en destinos particulares según zona de cobertura (de flex), estos usuarios tendrán adicionalmente el tag listing_by_warehouse.
Consulta el api de users para saber si un usuario opera en modo multi origen.
Llamada:
curl -X GET https://api.mercadolibre.com/users/$USER_ID -H 'Authorization: Bearer $ACCESS_TOKEN'
Ejemplo:
curl -X GET https://api.mercadolibre.com/users/1008002397 -H 'Authorization: Bearer $ACCESS_TOKEN'
Respuesta:
{
"id": 1008002397,
"nickname": "TETE9326760",
"registration_date": "2021-10-27T14:48:55.000-04:00",
"first_name": "Test",
"last_name": "Test",
"gender": "",
"country_id": "MX",
"email": "test_user_19653740@testuser.com",
"identification": {...},
"address": {...},
"phone": {...},
"alternative_phone": {...},
"user_type": "normal",
"tags": [
"normal",
"warehouse_management",
"listing_by_warehouse",
"mshops",
"messages_as_seller"
],
"logo": null,
"points": 1,
"site_id": "MLM",
"permalink": "http://perfil.mercadolibre.com.mx/TETE9326760",
"seller_experience": "NEWBIE",
"bill_data": {...},
"seller_reputation": {...},
"buyer_reputation": {...},
"status": {...},
"secure_email": "ttest.y25p1f@mail.mercadolibre.com.mx",
"company": {...},
"credit": {...},
"context": {...},
"registration_identifiers": []
}
Gestión de ubicaciones
En un principio, hemos seleccionado una lista de vendedores que actualmente operan con múltiples almacenes, quienes tendrán esta experiencia disponible, permitiéndoles así gestionar sus ubicaciones o tiendas.
Cada vendedor va a mantener una única logística base, es decir, un vendedor que tiene varias ubicaciones todas van a operar por ejemplo en (cross_docking) Mercado Envios Colecta. Por otra parte, el flujo de Stock Multi Origen no aplica para Mercado Envios1.
Búsqueda de tiendas de un usuario
Para identificar las tiendas creadas por cada usuario, podrás utilizar el siguiente endpoint:
Llamada:
curl -X GET https://api.mercadolibre.com/users/$USER_ID/stores/search?tags=stock_location -H 'Authorization: Bearer $ACCESS_TOKEN'
Ejemplo:
curl -X GET https://api.mercadolibre.com/users/1008002397/stores/search?tags=stock_location -H 'Authorization: Bearer $ACCESS_TOKEN'
Respuesta:
{
"paging":
{
"limit": 50,
"total": 2,
},
"results":
[
{
"id": "100",
"user_id": "200",
"description": "my store",
"status": "active",
"location": {
"address_id": 501
},
"tags": [
"stock_location"
],
"network_node_id": "MXP123451"
},
{
"id": "101",
"user_id": "200",
"description": "my store 2",
"status": "active",
"location": {
"address_id": 502
},
"tags": [
"stock_location"
],
"network_node_id": "MXP571615"
}
]
}
Creación de ítems Multiwarehouse
Para la creación de nuevos ítems, tanto tradicionales como de catálogo (ítems con “catalog_listing”:true y “catalog_product_id”), en los vendedores con el tag "warehouse_management" (configuración de multiorigen) o vendedores que tengan los dos tags "warehouse_management" y "listing_by_warehouse" (filtrado de oferta por geolocalización), podrán usar el siguiente recurso que será encargado de la creación del ítem y la asignación stock a tiendas.
Para los vendedores que tengan el tag "listing_by_warehouse" los ítems quedarán con el mismo tag.
Llamada:
curl POST --'https://api.mercadolibre.com/items/multiwarehouse' -H 'Content-Type: application/json' -H 'Authorization: Bearer $ACCESS_TOKEN' -d
{
"title": "Item Lata de tomate ",
"category_id": "MLB455668",
"price": 1000,
"listing_type_id": "gold_special",
"currency_id": "ARS",
...
"channels": [
"marketplace"
],
"stock_locations": [
{
"store_id": "0001",
"network_node_id": "MXP123451",
"quantity": 10
},
{
"store_id": "0002",
"network_node_id": "MXP571615",
"quantity": 5
},
{
"store_id": "0003",
"network_node_id": "MXP725258",
"quantity": 20
}
]
}
Consideraciones:
- Para los ítems con tag “listing_by_warehouse”, si hay al menos una store/tienda activa asignada, el ítem quedará activo.
- Si hay alguna tienda pausada, el ítem quedará activo, pero se devolverá un warning.
- Si todas las stores/tiendas se encuentran pausadas, devolvemos un warning y el ítem quedará pausado.
- Si se crea el ítem, pero falla la asignación a las tiendas. En este escenario retornaremos un status 201, con el ítem en “status”:”paused” y “sub_status”: “missing_coverage”. Reintentaremos la asignación a las tiendas de forma asíncrona y activaremos el ítem ante la creación.
- Tanto el store_id como el network_node_id, van a estar en el response de la búsqueda por las tiendas del vendedor.
Gestión de stock por ubicación
Para modificar el stock por ubicación, utiliza la siguiente llamada, es necesario enviar el user_product_idy el store_id y el network_node_id.
![](https://http2.mlstatic.com/storage/developers-site-cms-admin/185337444348-Captura-de-Tela-2024-07-22-a-s-11.53.22.png)
Si la tienda no tiene stock asignado previamente, se le asignará esta cantidad. Si la tienda ya cuenta con stock asignado, se le asignará la nueva cantidad indicada.
Llamada:
curl -X PUT https://api.mercadolibre.com/user-products/$USER_PRODUCT_ID/stock/type/seller_warehouse -H 'x-version: $HEADER' -H 'Content-Type: application/json' -H 'Authorization: Bearer $ACCESS_TOKEN' -d '{
"locations": [
{
"store_id": "0001",
"network_node_id": "",
"quantity": $STOCK_QUANTITY
},
{
"store_id": "0002",
"network_node_id": "",
"quantity": $STOCK_QUANTITY
},
{
"store_id": "0003",
"network_node_id": "",
"quantity": $STOCK_QUANTITY
}
]
}
Ejemplo:
curl -X PUT https://api.mercadolibre.com/user-products/MLBU206642488/stock/type/seller_warehouse -H 'x-version: 1' -H 'Content-Type: application/json' -H 'Authorization: Bearer $ACCESS_TOKEN' -d '{
{
"locations": [
{
"store_id": "0001",
"network_node_id": "MXP123451",
"quantity": 10
},
{
"store_id": "0002",
"network_node_id": "MXP571615",
"quantity": 5
},
{
"store_id": "0003",
"network_node_id": "MXP725258",
"quantity": 20
}
]
}
Consideraciones:
- Si la tienda no tiene stock asignado previamente, se le asignará esta cantidad. Si la tienda ya cuenta con stock asignado, se le asignará la nueva cantidad indicada.
- Ante cualquier error que se de en las validaciones, no vamos a persistir la información de stock enviada y vamos a retornar un error 400 con el siguiente mensaje “Invalid stores {store_id1, store_id2, store_id3}”.
Obtener detalle de stock
Para consultar el stock de las tiendas puedes utilizar el siguiente endpoint indicando el user product.
Llamada:
curl -X GET https://api.mercadolibre.com/user-products/$USER_PRODUCT_ID/stock -H 'Authorization: Bearer $ACCESS_TOKEN'
Ejemplo:
{
"locations": [
{
"type": "seller_warehouse",
"network_node_id": "MXP123451",
"store_id": 9876543,
"quantity": 15
},
{
"type": "seller_warehouse",
"network_node_id": "MXP571615",
"store_id": 9876553,
"quantity": 15
}
],
"user_id": 1234,
"id": "MLBU206642488"
}
Post-venta
Para conocer las implicaciones que habrá en APIs de Orders y de Shipping te sugerimos revisar las documentaciones correspondientes.