Contenidos

→Identificar una publicación para catálogo
→Filtrar ítems por vendedor
→Tag de elegibilidad para ítems
→Elegibilidad de una publicación existente con catalog_product_id asociado
→Verificar múltiples publicaciones elegibles con multiget


Es importante que antes de publicar, reconozcas qué publicaciones creadas son elegibles o pueden publicarse en catálogo. Para esto, puedes utilizar el tag de catalog_listing_eligible y reconocer las publicaciones fácilmente u optar por los recursos de elegibilidad de una publicación o el de multiget para verificar un conjunto de publicaciones.

Nota:
En este momento sólo pueden participar de catálogo ciertas publicaciones que cumplen con algunos requisitos como ser nuevas y en el dominio CELLPHONES es necesario que el teléfono sea liberado.

Filtrar ítems por vendedor

Este filtro permitirá distinguir las publicaciones de catálogo y aquellas tradicionales. Para eso, debes pasar en la búsqueda el parámetro catalog_listing con el valor true o false, dependiendo de lo que se desee consultar.
En primer lugar, identificamos todos los ítems de catálogo de un vendedor. Ten en cuenta que debes pasar el parámetro de status correspondiente en caso que quieras sumar un filtro como por ejemplo status=“active”.

Llamada:

curl -X GET https://api.mercadolibre.com/users/$USER_ID/items/search?catalog_listing=true&access_token=$ACCESS_TOKEN

Ejemplo:

curl -X GET https://api.mercadolibre.com/users/123456789/items/search?catalog_listing=true&access_token=$ACCESS_TOKEN

Respuesta acotada de ítems de catálogo:

{
  "seller_id": "123456789",
  "query": null,
  "paging": {
    "limit": 50,
    "offset": 0,
    "total": 8
  },
  "results": [
    "MLA123456789",
    "MLA234567890",
    "MLA345678912",
    "MLA456789123",
    "MLA567891234",
    "MLA678912345",
    "MLA789123456",
    "MLA891234567"
  ],
  "filters": [
  ],
  "available_filters": [],
  "orders": [],
  "available_orders": []
}

Por otro lado, puedes realizar el mismo filtro para identificar todos los ítems de un vendedor que no son de catálogo.

Llamada:

curl -X GET https://api.mercadolibre.com/users/$USER_ID/items/search?catalog_listing=false&access_token=$ACCESS_TOKEN

Ejemplo:

curl -X GET https://api.mercadolibre.com/users/123456789/items/search?catalog_listing=false&access_token=$ACCESS_TOKEN

Respuesta acotada de ítems de marketplace:

{
  "seller_id": "123456789",
  "query": null,
  "paging": {
    "limit": 50,
    "offset": 0,
    "total": 2902
  },
  "results": [
    "MLA987654321",
    "MLA123789456",
    "MLA456789123",
    "MLA132465798",
    "MLA978645312",
    "MLA312645978",
    "MLA654987321",
    "MLA123789654",
      ],
  "filters": [
  ],
  "available_filters": [],
  "orders": [],
  "available_orders": []
}

Tag de elegibilidad para ítems

A través del recurso search, podrás identificar todos los ítems de los vendedores que sean elegibles para catálogo con el tag catalog_listing_eligible y que aún no están participando en este. Realiza la siguiente llamada para consultarlos:

Llamada:

curl -X GET https://api.mercadolibre.com/users/$USER_ID/items/search?tags=catalog_listing_eligible&access_token=$ACCESS_TOKEN

Ejemplo:

curl -X GET https://api.mercadolibre.com/users/123456987/items/search?tags=catalog_listing_eligible&access_token=$ACCESS_TOKEN

Respuesta acotada:

{
    "seller_id": "123456987",
    "query": null,
    "paging": {
        "limit": 50,
        "offset": 0,
        "total": 1
    },
    "results": [
        "MLA123456789"
    ],
    "filters": [],
    "available_filters": [
            ]
}

La respuesta del search muestra en results todos los ítems del vendedor con el tag catalog_listing_eligible.

Ejemplo de ítem elegible:

{
  "id": "MLA123456789",
  "site_id": "MLA",
  "title": "Item De Testeo, Por Favor No Ofertar --kc:off",
  "subtitle": null,
  "seller_id": 123456987,
  "category_id": "MLA3530",
  "official_store_id": null,
  "price": 50,
  "base_price": 50,
  "original_price": null,
  "currency_id": "ARS",
  "initial_quantity": 1,
  "available_quantity": 1,
  "sold_quantity": 0,
  "sale_terms": [
  ],
  "buying_mode": "buy_it_now",
  "listing_type_id": "free",
  "start_time": "2020-02-17T16:30:39.000Z",
  "stop_time": "2020-04-17T04:00:00.000Z",
  "condition": "used",
  "permalink": "https://articulo.mercadolibre.com.ar/MLA-839616438-item-de-testeo-por-favor-no-ofertar-kcoff-_JM",
  "thumbnail": "http://mla-s1-p.mlstatic.com/951410-MLA40807113659_022020-I.jpg",
  "secure_thumbnail": "https://mla-s1-p.mlstatic.com/951410-MLA40807113659_022020-I.jpg",
  "pictures": [],
  "video_id": null,
  "descriptions": [
  ],
  "accepts_mercadopago": true,
  "non_mercado_pago_payment_methods": [
  ],
  "shipping": {},
  "international_delivery_mode": "none",
  "seller_address": {},
  "seller_contact": null,
  "location": {
  },
  "geolocation": {},
  "coverage_areas": [
  ],
  "attributes": [],
  "warnings": [
  ],
  "listing_source": "",
  "variations": [
  ],
  "status": "active",
  "sub_status": [
  ],
  "tags": [
    "catalog_listing_eligible",
    "good_quality_picture",
    "test_item",
    "immediate_payment"
  ],
  "warranty": null,
  "catalog_product_id": null,
  "domain_id": "MLA-UNCLASSIFIED_PRODUCTS",
  "parent_item_id": null,
  "differential_pricing": null,
  "deal_ids": [
  ],
  "automatic_relist": false,
  "date_created": "2020-02-17T16:30:40.000Z",
  "last_updated": "2020-02-17T16:34:12.000Z",
  "health": 0.4,
  "catalog_listing": false
}

Elegibilidad de una publicación existente con catalog_product_id asociado

Los siguientes ejemplos muestran cómo validar la elegibilidad de una publicación existente para enlazar una nueva publicación de catálogo con stock sincronizado que cuente con un catalog_product_id asociado.

Llamada:

curl -X GET https://api.mercadolibre.com/items/$ITEM_ID/catalog_listing_eligibility?access_token=$ACCESS_TOKEN

Ejemplo con variaciones:

curl -X GET https://api.mercadolibre.com/items/MLA123456789/catalog_listing_eligibility?access_token=$ACCESS_TOKEN

Respuesta:

{
    "id": "MLA123456789",
    "site_id": "MLA",
    "domain_id": "MLA-CELLPHONES",
    "status": null,
    "buy_box_eligible": null,
    "variations": [
        {
            "id": 1312323,
            "status": "READY_FOR_OPTIN",
            "buy_box_eligible": true
        },
        {
            "id": 1312444,
            "status": "READY_FOR_OPTIN",
            "buy_box_eligible": true
        }
    ]
}

Ejemplo sin variaciones:

curl -X GET https://api.mercadolibre.com/items/MLB1234/catalog_listing_eligibility?access_token=$ACCESS_TOKEN

Respuesta:

{
    "id": "MLB1234",
    "site_id": "MLB",
    "domain_id": "MLB-MICROWAVES",
    "status": "READY_FOR_OPTIN",
    "buy_box_eligible": true,
    "variations": []
}

Consideraciones

  • Si el ítem no posee variaciones la elegibilidad quedará expresada a través del campo buy_box_eligible de primer nivel en el JSON de la respuesta y la sección variations estará vacía.
  • Si el ítem posee variaciones la elegibilidad de cada una de ellas quedará expresada dentro de la sección variations, la cual contendrá un array por variación con un campo buy_box_eligible para cada una de ellas.

Descripción de campos

id: ID de la publicación que estamos consultando.
site_id: ID del sitio al cual corresponde el ítem.
domain_id: ID del dominio al cual pertenece el ítem.
buy_box_eligible: indica si el ítem/variación está habilitado o no para participar de catálogo.
variations: son todas las variaciones que tiene un ítem. Cada una tendrá asociada un status y un valor para el campo buy_box_eligible.
status: define la situación del ítem tradicional con respecto a catálogo. Los diferentes estados podrán ser:

Elegible:

  • READY_FOR_OPTIN: el ítem puede ser publicado en catálogo.

No elegibles:

  • ALREADY_OPTED_IN: el ítem tradicional que se consulta ya tiene un ítem de catálogo asociado.
  • CLOSED: el ítem está en un estado que ya no se puede vender más.
  • PRODUCT_INACTIVE: el ítem está asociado a un producto que todavía no ha sido habilitado para catálogo o el ítem aún no tiene catalog_product_id asignado.
  • NOT_ELIGIBLE: existe una regla de negocio que impide que el ítem aplique a catálogo. (ej: un celular usado, un celular sin liberar).

Si consultas por un ítem de catálogo que se encuentre compitiendo, el estado será COMPETING.


Verificar múltiples publicaciones elegibles con multiget

Para chequear si múltiples publicaciones son elegibles para catálogo realiza una única llamada. Deberás incorporar en la url el parámetro ids, además de realizar el llamado al recurso multiget, de la siguiente manera:

Llamada:

curl -X GET https://api.mercadolibre.com/multiget/catalog_listing_eligibility?ids=$ITEM_ID,$ITEM_ID&access_token=$ACCESS_TOKEN

Ejemplo:

curl -X GET https://api.mercadolibre.com/multiget/catalog_listing_eligibility?ids=MLA818878419,MLA820167922&access_token=$ACCESS_TOKEN

Respuesta:

[
    {
        "code": 200,
        "body": {
            "buy_box_eligible": null,
            "domain_id": "MLA-CELLPHONES",
            "id": "MLA818878419",
            "site_id": "MLA",
            "status": null,
            "variations": [
                {
                    "buy_box_eligible": true,
                    "id": 44612657634,
                    "status": "READY_FOR_OPTIN"
                },
                {
                    "buy_box_eligible": false,
                    "id": 44890704657,
                    "status": "ALREADY_OPTED_IN"
                }
            ]
        }
    },
    {
        "code": 200,
        "body": {
            "buy_box_eligible": null,
            "domain_id": "MLA-CELLPHONES",
            "id": "MLA820167922",
            "site_id": "MLA",
            "status": null,
            "variations": [
                {
                    "buy_box_eligible": true,
                    "id": 44931385066,
                    "status": "READY_FOR_OPTIN"
                },
                {
                    "buy_box_eligible": true,
                    "id": 44931385069,
                    "status": "READY_FOR_OPTIN"
                }
            ]
        }
    }
]

Descripción de campos

code: es el código de estado HTTP que retorna la consulta con cada item_id, si no hay ningún error tiene que ser 200.
body: cuerpo del mensaje que devuelve dicha consulta hacia la API de elegibilidad.


Siguiente: Buscador productos.