Compatibilidades entre ítems y productos de Autopartes
Verificar compatibilidad entre dominios
Antes de crear compatibilidades entre ítems y productos, debes verificar que los dominios y catagorías de ítems y productos sean compatibles.
Consultando el siguiente dump, obtienes el listado de dominios y categorías en los cuales puede o necesita informar compatibilidades por site.
Llamada:
curl -X GET http://api.mercadolibre.com/catalog/dumps/domains/$SITE_ID/compatibilities
Ejemplo llamada:
curl -X GET https://api.mercadolibre.com/catalog/dumps/domains/MLM/compatibilities
Ejemplo respuesta:
[
{
"domain_id": "MLM-AUTOMOTIVE_SHOCK_ABSORBERS",
"main": false,
"compatibilities": [
{
"compatible_domain_id": "MLM-CARS_AND_VANS_FOR_COMPATIBILITIES",
"type": "EXTENSION",
"required": false,
"restrictions": [],
"categories": [
{
"id": "MLM45878",
"required": true,
"note_status": "ENABLED",
"restrictions_status": "DISABLED",
"universal_status": "DISABLED"
}
]
}
]
},
…
}]
Los nuevos campos indican:
- categories: categorías que admiten la carga de compatibilidades.
- required: categorías en las que es obligatorio cargar compatibilidades.
- type: tipo de compatibilidad. Solo el tipo EXTENSION admite carga de compatibilidades.
- note_status y restrictions_status: indican si la categoría permite informar notas y restricciones de posición.
- universal_status: indica si la categoría permite informar compatibilidades universales. ENABLED: permite informar compatibilidades universales o DISABLED: no permite informar compatibilidades universales.
Múltiples publicaciones elegibles con multiget
Obtén más información de dominios, productos y atributos de autopartes.
Contar productos de un dominio
Para consultar la cantidad de productos existentes por dominio (familia de producto) que cumplen con determinados atributos y valores puedes realizar el siguiente POST. Esto te permitirá validar, previo a asociar las compatibilidades, la cantidad de productos y evitar errores en la asignación de compatibilidades.
Esto es importante ya que solo se pueden asignar un máximo de 200 productos por llamado.
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/catalog_compatibilities/products_search/count_family_products
{
"domain_id": "$domainId",
"attributes": [{
"id": "$attributeId1",
"value_id": "$valueId1"
}, {
"id": "$attributeId2",
"value_name": "$valueName2"
}]
}
Ejemplo:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/catalog_compatibilities/products_search/count_family_products
{
"domain_id": "MLM-CARS_AND_VANS_FOR_COMPATIBILITIES",
"attributes": [{
"id": "BRAND",
"value_name": "Volkswagen"
},
{
"id": "CAR_AND_VAN_MODEL",
"value_name": "VENTO"
}
]
}
Respuesta:
{
"count":141
}
Asociar compatibilidades
Para asociar compatibilidades de un ítem con un producto y/o dominio podrás consultar hasta un máximo de 200 productos por llamado (incluidos los definidos en los dominios) y hacerlo de 3 maneras diferentes:
- Por producto: para agregar nuevas compatibilidades a un ítem debes enviar las compatibilidades que quieras añadir. No es necesario enviar las existentes para mantener las actuales.
- Por dominio de producto: puedes especificar un conjunto de atributos que definen el dominio de productos. Para cada dominio, debes especificar su dominio y para cada atributo, un value conformado por id y/o name.
- Por producto y dominio: puedes asociar compatibilidades a un ítem publicado de otro producto y una dominio de productos, es decir, te permite asociar de manera conjunta las 2 primeras.
Valores posibles para una restricción de posición
Al asociar una compatibilidad también podrás indicar la restricción de posición de la misma, con la siguiente llamada podrás conocer los valores posibles para informarla.
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/catalog_compatibilities/restrictions/values?main_domain_id=MLA-CARS_AND_VANS&secondary_domain_id=MLA-VEHICLE_SHOCK_ABSORBERS
Respuesta:
{
"attributes_values": [
{
"attribute_id": "POSITION",
"values":
[
{
"value_id": "23536",
"value_name": "Superior",
},
{
"value_id": "23537",
"value_name": "Inferior"
}
]
}
]
}
Asociar compatibilidad por producto
Para asociar una compatibilidad a uno o varios productos individuales, puedes utilizar el product search.
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
{
"products": [{
"id": "$PRODUCT_ID",
"note": "texto",
"restrictions": [{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
},
{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"},
{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
}
]
}]
}]
}'
Ejemplo:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
{
"products": [{
"id": "MLB155254",
"note": "Modelos posteriores a Mayo de 2018",
"restrictions": [{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "12456","value_name": "Delantero"}]
},
{
"values":[{"value_id": "65432","value_name": "Trasero"},
{"value_id": "87675","value_name": "Inferior"}]
}
]
}]
}]
}
Respuesta:
{
"created_compatibilities_count": 72
}
También es posible asociar una nota y restricción de posición a más de una compatibilidad, para esto es necesario reemplazar el nodo products por products_group, ejemplo:
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
{
"products_group": [{
"ids": ["MLB155254", "MLB155255"],
"note": "texto",
"restrictions": [{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
},
{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"},
{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
}
]
}]
}]
}
Asociar compatibilidad por dominio
Para asociar compatibilidades definidas por los atributos que determinan un dominio, conoce los dominios y atributos de autopartes.
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
{
"products_families": [{
"domain_id": "$DOMAIN_ID",
"attributes": [{
"id": "$ATTRIBUTE_ID",
"value_id": "$VALUE_ID"
},
{
"id": "$ATTRIBUTE_ID",
"value_id": "$VALUE_ID"
},
],
"note": "Texto",
"restrictions":
[{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
},
{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"},
{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
}
]
}]
}
Ejemplo (excepto MLM):
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLA794706391/compatibilities
{
"products_families": [{
"domain_id": "MLA-CARS_AND_VANS",
"attributes": [{
"id": "BRAND",
"value_id": "60249"
},
{
"id": "YEAR",
"value_name": "2010"
},
],
"note": "Solamente para vehículos de fabricación Europea",
"restrictions":
[{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "12456","value_name": "Delantero"}]
},
{
"values":[{"value_id": "65432","value_name": "Trasero"},
{"value_id": "87675","value_name": "Inferior"}]
}
]
}]
}
Respuesta:
{
"created_compatibilities_count": 23
}
Ejemplo MLM:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM794706391/compatibilities
{
"products_families": [{
"domain_id": "MLM-CARS_AND_VANS_FOR_COMPATIBILITIES",
"attributes": [{
"id": "DRIVE_TYPE",
"value_id": "8182649"
},
{
"id": "CAR_AND_VAN_BODY_TYPE",
"value_id": "8183109"
},
{
"id": "YEAR",
"value_name": "2010"
}
],
"note": "Solamente para vehículos de fabricación Europea",
"restrictions":
[{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "12456","value_name": "Delantero"}]
},
{
"values":[{"value_id": "65432","value_name": "Trasero"},
{"value_id": "87675","value_name": "Inferior"}]
}
]
}
]
}
Respuesta:
{
"created_compatibilities_count": 23
}
Asociar por producto y dominio de productos
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
{
"products": [{
id": "$PRODUCTIID",
"note": "texto",
"restrictions": [{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
},
{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"},
{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
}
]
}],
"products_families": [{
"domain_id": "$DOMAIN_ID",
"attributes": [{
"id": "ATTRIBUTE_ID",
"value_id": "$VALUE_ID"
},
{
"id": "ATTRIBUTE_ID",
"value_id": "$VALUE_ID"
},
],
"note": "Texto",
"restrictions":
[{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
},
{
"values":[{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"},
{"value_id": "$VALUE_ID","value_name": "$VALUE_NAME"}]
}
]
}]
}
Ejemplo:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM794706391/compatibilities
{
"products": [{
"id": "MLB155254",
"note": "Modelos posteriores a Mayo de 2018",
"restrictions": []
}],
"products_families": [{
"domain_id": "MLB-CARS_AND_VANS",
"attributes": [{
"id": "BRAND",
"value_id": "60249"
},
{
"id": "YEAR",
"value_name": "2010"
},
],
"note": "Solamente para vehículos de fabricación Europea",
"restrictions":
[{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "12456","value_name": "Delantero"}]
},
{
"values":[{"value_id": "65432","value_name": "Trasero"},
{"value_id": "87675","value_name": "Inferior"}]
}
]
}]
}
En el campo note permitimos hasta 500 caracteres y el texto es moderado.
Respuesta:
{
"created_compatibilities_count": 23
}
Posibles errores
400: validaciones de consistencia:
- Los campos obligatorios están incompletos.
- El formato de los ids es incorrecto.
- Se encontraron y/o especificaron más de 200 productos para los dominios de productos.
- Se especificaron más de 10 dominios de productos.
- Los productos y/o dominios no pertenecen al mismo site que el ítem.
- Los productos deben ser todos hijos.
- El dominio del ítem es compatible con los dominios de los productos especificados y/o con los dominios especificados en los dominos de productos especificadas.
- No puede haber más de 4 posiciones configuradas en una restricción de posición.
- Cada restricción puede tener máximo 4 ids.
- Los ids deben pertenecer al conjunto cerrado de ids definidos.
- La combinación de valores debe ser única, es decir no puede haber dos listas de ids iguales dentro de una restricción.
- La categoría del ítem debe tener habilitadas las notas y restricciones.
- La nota no puede superar los 500 caracteres.
403: token inválido o falta de permisos sobre el ítem.
404: no existe el ítem, los productos o los dominios especificados.
Asociar una compatibilidad universal
Para indicar que un ítem es compatible con cualquier producto, dentro de la petición, se cuenta con el campo universal, el cual deberá ser informado en true. Lo anterior indica que este ítem es universal (por lo tanto no se le debe de asociar compatibilidades dado que es compatible con todos los productos dentro del mismo dominio).
Al indicar una compatibilidad universal, no es posible especificar productos ni familias. En caso de que se envíen ambos campos se obtendrá un error.
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
{
"products": [],
"products_families": [],
"products_group": [],
"universal": true
}
Ejemplo:
curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM12456789/compatibilities
{
"products": [],
"products_families": [],
"products_group": [],
"universal": true,
}
Respuesta:
{
"created_compatibilities_count": 1
}
Posibles errores al asignar compatibilidades universales
400: validaciones de consistencia:
- Message: "Invalid arguments for specific request. Please check details to satisfy validations".
- Details: "at least one of products, products_groups, products_families or universal must be specified, if universal no products can be specified".
- Message: Item has compatibilities and these must be removed before setting it as universal.
- Message: There is no configured compatibility for the category $CATEGORY_ID
- Message: Item has universal setting and must be removed before creating compatibilities.
403: token inválido o falta de permisos sobre el ítem.
404: no existe el ítem.
Modificar o eliminar notas y restricciones de posición
Para modificar o eliminar una nota y restricción de posición, ejecuta un PUT en el recurso de informar compatibilidades cambiando la información que necesitas en el campo update. Para borrar una o ambas, basta enviar el campo note y/o el array restrictions vacíos, como en el ejemplo que se muestra a continuación, donde se eliminan ambos campos.
Ejemplo:
curl -X PUT -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
{
"update": {
"products": [{
"id": "MLB155254",
"note": "",
"restrictions":[]
}
]
}
}
Listar compatibilidades
Con este recurso, puedes listar todas las compatibilidades para un ítem particular. El atributo products contiene las compatibilidades del vendedor y catalog_compatibilities_count, la cantidad de compatibilidades del catálogo de Mercado Libre, es decir, estas últimas compatibilidades no estarán listadas debido a limitantes en licencias de propiedad intelectual.
Obtener todas compatibilidades de un ítem
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities?extended=true
Ejemplo llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM794706391/compatibilities?extended=true
Ejemplo respuesta:
{
"products": [
{
"id": "bcbd413f-cd65-0e0f-88c9-5eb4aebb5372",
"domain_id": "MLM-CARS_AND_VANS_FOR_COMPATIBILITIES",
"catalog_product_id": "MLM15847548",
"catalog_product_name": "Volkswagen Jetta 2010 GLI Manual 5",
"source": "SELLER",
"note": "Solo modelos de caja automática"
},
{
"id": "58bd413f-cd65-a719-9570-2ca8f2b528af",
"domain_id": "MLM-CARS_AND_VANS_FOR_COMPATIBILITIES",
"catalog_product_id": "MLM15847546",
"catalog_product_name": "Volkswagen Jetta 2010 GLI Automática 6",
"source": "SELLER",
"note": "Modelos posteriores a Junio 2010",
"restrictions":
[{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "12456","value_name": "Delantero"}]
},
{
"values":[{"value_id": "65432","value_name": "Trasero"},
{"value_id": "87675","value_name": "Inferior"}]
}]
}]
}
],
"catalog_compatibilities_count": 15
}
Un error 404 significa que el ítem no existe.
Obtener compatibilidades de un ítem universal
En el caso de que el ítem esté configurado como universal, en la respuesta se agrega un campo adicional llamado universal que contiene una lista de dominios principales con los cuales es compatible el ítem.
Ejemplo respuesta:
{
"universal": {
“domain_ids”: [“MLM_CARS_AND_VANS_FOR_COMPATIBILITIES”]
}
}
Obtener una compatibilidad particular de un ítem mediante su id
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities/$COMPATIBILITY_ID
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM794706391/compatibilities/$COMPATIBILITY_ID
Respuesta:
{
"id": "bcbd413f-cd65-0e0f-88c9-5eb4aebb5372",
"domain_id": "MLM-CARS_AND_VANS_FOR_COMPATIBILITIES",
"catalog_product_id": "MLM15847548",
"catalog_product_name": "Volkswagen Jetta 2010 GLI Manual 5",
"note": "Solo para versiones con frenos a disco en las ruedas traseras",
"note_status": "PENDING",
"restrictions": [{
"attribute_id": "POSITION",
"attribute_values":
[{
"values":[{"value_id": "12456","value_name": "Delantero"}]
}]
}]
}
Las notas solo figuran en el front del ítem en los status APPROVED o CHECKED.
Un error 404 significa que el ítem o la compatibilidad no existen.
Obtener la nota de una compatibilidad
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities/$COMPATIBILITY_ID/note
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM12456789/compatibilities/bcbd413f-cd65-0e0f-88c9-5eb4aebb5372/note
Respuesta:
{
"note": "Solo para versiones con frenos a disco en las ruedas traseras"
}
Eliminar compatibilidades
En caso de haber asociado una compatibilidad incorrecta con el ítem, podrás eliminarla siempre que haya sido realizada por el vendedor.
Eliminar una compatibilidad específica para el ítem indicado
Llamada:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities/$COMPATIBILITY_ID
Ejemplo:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM794706391/compatibilities/4cb9af35-8e9b-ebfd-9e7f-2245ac363d10
La respuesta será un http 200.
Eliminar compatibilidades para un ítem
Llamada:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
Ejemplo:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM794706391/compatibilities
Respuesta:
{
"deleted_compatibilities": [
"d0ba2aeb-7409-0037-7b23-0b91266fd00e",
"72ba233d-16d8-218b-4062-7a97dab166c8"
]
}
Eliminar compatibilidades para un dominio de un ítem
Llamada:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$ITEM_ID/compatibilities
{
"products_families": [{
"domain_id": "$domain_id",
"attributes": [{
"id": "$attribute_id1",
"values":[{
"id": "$value_id1",
"name": "$value_name1"
}]
},{
"id": "$attribute_id2",
"values":[{
"id": "$value_id1",
"name": "$value_name1"
}]
}]
}]
}
Ejemplo:
curl -X DELETE -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLM794706391/compatibilities
{
"products_families": [{
"domain_id": "MLM-CARS_AND_VANS_FOR_COMPATIBILITIES",
"attributes": [{
"id": "DRIVE_TYPE",
"value_id": "8182649"
},
{
"id": "CAR_AND_VAN_BODY_TYPE",
"value_id": "8183109"
},
{
"id": "YEAR",
"value_name": "2010"
}]
}]
}
Respuesta:
{
"deleted_compatibilities": [
"d0ba2aeb-7409-0037-7b23-0b91266fd00e",
"72ba233d-16d8-218b-4062-7a97dab166c8"
]
}
Posibles errores
400: formato incorrecto / más de 200 productos para el dominio especificado / más de 10 dominios especificados.
403: token inválido o falta de permisos sobre el ítem.
404: el ítem o la compatibilidad no existen.
Cómo informar excepciones
En casos de autopartes en que la categoría exige la información de compatibilidades, pero no encuentra ningún vehículo, modelo o versión disponible en el catálogo. Estos ítems hacen parte del flujo de excepciones y para informarlos disponibilizamos el siguiente recurso.
Llamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$item_id/compatibilities/exception
{
"comment": “texto libre con máximo 255 caracteres”
}
Ejemplo:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLB12345678/compatibilities/exception
{
"comment": “texto libre con máximo 255 caracteres” [Requerido]
}
Respuesta:
200 OK
Posibles errores
400: el ítem está cerrado o inactivo.
400: el ítem tiene compatibilidades existentes.
400: la categoría del ítem no tiene compatibilidades.
400: el ítem tiene una excepción de compatibilidad existente.
400: se requiere comentario.
Consultar si un ítem tiene excepción
Llamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/$item_id/compatibilities/exception
Ejemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/items/MLB12345678/compatibilities/exception
Respuesta:
{
"has_exception": true/false
}
Siguiente:Referencias de dominios, productos y atributos para Autopartes.