Documentación Mercado Libre
Descubre toda la información que debes conocer sobre las APIs de Mercado Libre.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.
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",
"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
"address_line": "Calle 31 Pte 260",
"street_name": "Calle 31 Pte",
"street_number": 260,
"latitude": 21.1637963,
"longitude": -86.8737132,
"city": "Cancún/Benito Juárez",
"state": "Quintana Roo",
"country": "Mexico",
"zip_code": "77518"
},
"tags": [
"stock_location"
],
"network_node_id": "MXP123451"
},
{
"id": "101",
"user_id": "200",
"description": "my store 2",
"status": "active",
"location": {
"address_id": 502
"address_line": "Calle 30 Pte 300",
"street_name": "Calle 30 Pte",
"street_number": 300,
"latitude": 21.1637963,
"longitude": -86.8737132,
"city": "Cancún/Benito Juárez",
"state": "Quintana Roo",
"country": "Mexico",
"zip_code": "77518"
},
"tags": [
"stock_location"
],
"network_node_id": "571615"
}
]
}
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), podrán usar el siguiente recurso que será encargado de la creación del ítem y la asignación stock a tiendas.
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:
- 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.
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
}
]
}
Ante cualquier error que se de en las validaciones, no vamos a persistir la información de stock enviada y vamos a retornar error con el detalle del motivo de fallo de cada una de las tiendas:
Ejemplo error 400 Bad Request:
{
"message": "[store does not belong to seller: 3242,523423 - store not found: 777 - store is not configured to be a stock location: 5344,62222]"
"error": "bad_request",
"status": 400
}
Mensajes de error posibles:
- “store does not belong to seller: {store_id1, store_id2,...}”: Indica que las tiendas no pertenecen al mismo seller del producto.
- “store not found: {store_id1, store_id2,...}”: Indica que las tiendas no existen o están dadas de baja.
- “store is not configured to be a stock location: {store_id1, store_id2,...}”: Indica que las tiendas no se encuentran configuradas para multiorigen.
- “invalid network_node_id for stores: {store_id1, store_id2,...}”: Indica que el nodo enviado no se corresponde con el asignado a la tienda.
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"
}