Mensagens de pós venda

O recurso da API do sistema de Mensagens vai permitir que você obtenha mensagens de uma ordem em particular, crie novas mensagens no sistema e envie ou receba anexos. Vamos ver como usá-la!

Conteúdos:

Descrição de parâmetros

message_id Id de mensagem
date_created Data de criação
date Data em que a mensagem é salva
date_received Data de recepção da mensagem
date_availableData em que a mensagem passou por moderação
date_notified Data em que a contraparte foi notificada da mensagem
date_read Data em que a contraparte leu a mensagem

from Quem envia a mensagem
user_id ID do usuário que enviou a mensagem
email Email do usuário que enviou a mensagem (secure email da ordem)
name Nome do usuário que enviou a mensagem

to Quem recebe a mensagem
user_id ID do usuário que recebeu a mensagem
email Email do usuário que recebeu a mensagem (secure email da ordem)

subject Assunto do email
text Texto da mensagem
plain Texto plano da mensagem

attachments Anexos
attachments_validations Validações de anexos
invalid_size Tamanho de anexo inválido
invalid_extension Extensão de anexo inválida
internal_error Erro interno

site_id Site do Mercado Livre (MLA, MLB, etc.)
resource Relativo à ordem a que pertence (orders)
resource_id ID da ordem
status Status da mensagem
moderation_status Status de moderação da mensagem

Obter mensagens

Para obter mensagens de uma ordem em particular, você deverá associar o order_id com este recurso realizando um GET.

Chamada:

GET ".../messages/orders/$order_id"

Exemplo:

 curl -X GET “https://api.mercadolibre.com/messages/orders/{resource_id}?access_token=$ACCESS_TOKEN”

Possíveis parâmetros extra:

Estes parâmetros podem ser utilizados para determinar a quantidade de mensagens recuperadas no GET.

&limit={límite} >> número inteiro positivo

Exemplo:

curl -X GET “https://api.mercadolibre.com/messages/orders/{order_id}?access_token=$ACCESS_TOKEN&limit=10”

&offset={compensação} >> número inteiro positivo

Exemplo:

curl -X GET “https://api.mercadolibre.com/messages/orders/{order_id}?access_token=$ACCESS_TOKEN&limit=10&offset=1”

Resposta:

{
    "paging": {
        "limit": 2,
        "offset": 1,
        "total": 270
    },
    "results": [
        {
            "_id": "43b450d6bd3f47fb94394041b26c519f",
            "message_id": "43b450d6bd3f47fb94394041b26c519f",
            "date_received": "2016-11-07T15:03:14.978Z",
            "date": "2016-11-07T15:03:14.978Z",
            "date_available": "2016-11-07T15:03:14.978Z",
            "date_notified": "2016-11-07T15:05:50.179Z",
            "date_read": "2016-11-08T22:43:17.767Z",
            "from": {
                "user_id": "76601286",
                "email": "mailfrom.3fd70y+2-ogeytenjqgi3tombx@mail.mercadolibre.com",
                "name": null
            },
            "to": [
                {
                    "user_id": "106459677",
                    "email": "mailto.lj36rj8+2-ogeytenjqgi3tomjw@test.mercadolibre.com"
                }
            ],
            "subject": null,
            "text": {
                "plain": "Mensaje de pruebas desde api publica con attachment. Multiples 'to' "
            },
            "attachments": [
                {
                    "size": "103584",
                    "type": "image/png",
                    "date": "Tue, 25 Oct 2016 22:56:47 GMT",
                    "filename": "76601286_51a2e39b-7ff6-48ef-85f8-3025676db43e.png",
                    "original_filename": "Captura de pantalla 2016-10-20 a las 2.26.09 p.m..png"
                }
            ],
            "attachments_validations": null,
            "headers": null,
            "site_id": "MLA",
            "resource": "orders",
            "resource_id": "1125027671",
            "status": "available",
            "moderation_status": "non_moderated",
            "moderation": {
                "status": "non_moderated"
            },
            "client_id": 1000
        },
        {
            "_id": "37befd545a2d436f89e672b33990ef8b",
            "message_id": "37befd545a2d436f89e672b33990ef8b",
            "date_received": "2016-11-07T14:56:02.500Z",
            "date": "2016-11-07T14:56:02.500Z",
            "date_available": "2016-11-07T14:56:02.500Z",
            "date_notified": "2016-11-07T14:57:46.659Z",
            "date_read": "2016-11-07T15:19:08.967Z",
            "from": {
                "user_id": "76601286",
                "email": "mailfrom.3fd70y+2-ogeytenjqgi3tombx@mail.mercadolibre.com",
                "name": null
            },
            "to": [
                {
                    "user_id": "106459677",
                    "email": "mailto.lj36rj8+2-ogeytenjqgi3tomjw@test.mercadolibre.com"
                }
            ],
            "subject": null,
            "text": {
                "plain": "Mensaje de pruebas desde api publica con attachment. Multiples 'to' "
            },
            "attachments": [
                {
                    "size": "103584",
                    "type": "image/png",
                    "date": "Tue, 25 Oct 2016 22:56:47 GMT",
                    "filename": "76601286_51a2e39b-7ff6-48ef-85f8-3025676db43e.png",
                    "original_filename": "Captura de pantalla 2016-10-20 a las 2.26.09 p.m..png"
                }
            ],
            "attachments_validations": null,
            "headers": null,
            "site_id": "MLA",
            "resource": "orders",
            "resource_id": "1125027671",
            "status": "available",
            "moderation_status": "non_moderated",
            "moderation": {
                "status": "non_moderated"
            },
            "client_id": 1000
        }
    ]
}

Notas:

  • Por cada venda que você tiver de um comprador, terá um email mascarado diferente. Isto é, se o mesmo comprador comprar dois produtos diferentes em diversos momentos, um email será gerado para cada venda.
  • Os emails de contato do comprador começarão a ser visualizados de forma mascarada, aumentando o número de caracteres (entre 55 e 60).

Obter mensagens por ID

Request:

GET “https://api.mercadolibre.com/messages/{message_id}?access_token=$ACCESS_TOKEN”

Exemplo de resposta:

{
  "message_id": "0033b582a1474fa98c02d229abcec43c",
  "date_received": "2016-09-01T05:15:25.821Z",
  "date": "2016-09-01T05:15:25.821Z",
  "date_available": "2016-09-01T05:15:25.821Z",
  "date_notified": "2016-09-01T05:17:42.945Z",
  "date_read": "2016-09-01T21:31:19.606Z",
  "from": {
    "user_id": "123456789",
    "email": "userfrom.n4tx9d+2-ogeytenjqgi3tomjw@mail.mercadolibre.com",
    "name": "User from"
  },
  "to": [
    {
      "user_id": "123456780",
      "email": "userto.3fd70y+2-ogeytenjqgi3tombx@mail.mercadolibre.com"
    }
  ],
  "subject": "Test Item subject",
  "text": {
    "plain": "Ejemplo de texto"
  },
  "attachments": [
    {}
  ],
  "attachments_validations": {
    "invalid_size": [
    ],
    "invalid_extension": [
    ],
    "forbidden": [
    ],
    "internal_error": [
    ]
  },
  "site_id": "MLA",
  "resource": "orders",
  "resource_id": "1234567871",
  "status": "available",
  "moderation": {
    "status": "non_moderated"
  }
}

Criar mensagens

Se o from for o vendedor, o seller.id da ordem será passado em from.user_id.

Chamada:

POST “https://api.mercadolibre.com/messages?access_token=$ACCESS_TOKEN&application_id=$APPLICATION_ID” 

Nota: O “application_id” apenas é requerido quando o Access Token não tem o APP ID incorporado.

Exemplo:

curl -i -X POST -H "Content-Type: application/json" -H “X-Client-Id: {application id}” -d
'{
    "from": {
        "user_id": 123435,
    },
    "to": [
        {
            "user_id": 9191923,
            "resource": "orders",
            "resource_id": 2223213,
            "site_id": "MLA"
        }
    ],
    "text": {
        "plain": "Plain text message here"
    }
}’ https://api.mercadolibre.com/messages?access_token=$ACCESS_TOKEN&application_id=$APPLICATION_ID

Nota: O atributo attachments se obtém da resposta do POST de attachments. (Ver seção anexos).

Enviar anexos

Para anexar um arquivo na mensagem, deverá ser, primeiramente, salvo.
Depois, quando um anexo é enviado, a id do anexo é retornada como resposta.

Chamada:

POST “https://api.mercadolibre.com/messages/attachments?access_token=$ACCESS_TOKEN”

Notas:

  • O POST deve ser realizado como form.data com key: value > file = referência ao file (isto é, o próprio arquivo).
  • O arquivo deve ter um tamanho máximo de 25 MB.
  • Poderão ser trocadas fotos, manuais de instruções, notas fiscais e outros arquivos anexados em formato JPG, PNG, PDF e TXT de até 25 MB.

Exemplo:

curl-i-XPOST-H"Content-Type: multipart/form-data"-F"file=@/home/user/file""https://api.mercadolibre.com/messages/attachments?access_token=$ACCESS_TOKEN"

Neste caso, o servidor responderá com um JSON contendo a id do arquivo se o request foi bem-sucedido.

Nota: A resposta obtida deverá ser anexada na mensagem desejada.

Resposta:

{
  "id": "210438685_59f0f034-db1b-4ea6-8c5e-1d34e2092482.jpg"
}

Obter anexos

Para obter um anexo deverá realizar uma chamada GET.

Chamada:

GET “https://api.mercadolibre.com/messages/attachments/{attachment_id}?access_token=$ACCESS_TOKEN” 

Exemplo:

https://api.mercadolibre.com/messages/attachments/76601286_5946e4c4-168a-45fd-945e-b8f0c306c58d.png?access_token=$ACCESS_TOKEN

Resposta:
Se o request for bem-sucedido, a chamada retornará o arquivo solicitado.
Caso não seja possível acessar o arquivo, a resposta do servidor será a seguinte:

{
    "message": "File can not be accessed, try it later",
    "error": null,
    "status": 500,
    "cause": []
}


Caso o access token não seja enviado, a mensagem será:

{
    "message": "Access token is required",
    "error": "bad_request",
    "status": 400,
    "cause": []
}


Para finalizar, seguindo todos esses passos, o POST deverá ficar da seguinte maneira…

Exemplo:

{
    "from": {
      "user_id": 123455677
    },
    "to": [
        {
            "user_id": 72345286,
            "resource": "orders",
            "resource_id": 1234567671,
            "site_id": "MLA"
        }
    ],
    "text": {
      "plain" : "Mensaje de pruebas"
    },
  	"attachments" : ["76602286_52a2e39b-7ff6-48ef-85f8-3025676db43a.png" ]


}

Resposta:

[
    {
        "message_id": "d2345e6e7bb844469ae79623018223af",
        "date_received": "2016-11-14T20:46:49.678Z",
        "date": "2016-11-14T20:46:49.678Z",
        "date_available": "2016-11-14T20:46:49.678Z",
        "date_notified": null,
        "date_read": null,
        "from": {
            "user_id": "123455677",
            "email": "userseller.n4tx9d+2-ogeytenjqgi3tomjw@mail.mercadolibre.com",
            "name": null
        },
        "to": [
            {
                "user_id": "72345286",
                "email": "userbuyer.3fd70y+2-ogeytenjqgi3tombx@mail.mercadolibre.com"
            }
        ],
        "subject": null,
        "text": {
            "plain": "Mensaje de pruebas"
        },
        "attachments": [
            {
                "size": "103584",
                "type": "image/png",
                "date": "Tue, 25 Oct 2016 22:56:47 GMT",
                "filename": "76602286_52a2e39b-7ff6-48ef-85f8-3025676db43a.png",
                "original_filename": "Captura de pantalla 2016-10-20 a las 2.26.09 p.m..png"
            }
        ],
        "attachments_validations": null,
        "site_id": "MLA",
        "resource": "orders",
        "resource_id": "1125027671",
        "status": "available",
        "moderation": {
            "status": "non_moderated"
        }
    }
]

Mensagens ainda não lidas

Esta opção vai lhe permitir obter as mensagens ainda não lidas no Mercado Livre de todas as ordens existentes ou somente daquelas especificadas.

Além disso, você também vai poder definir o role (função) de usuário para cada caso, comprador ou vendedor.

Para obter essas informações, você terá que realizar o GET abaixo.

Chamada:

GET https://api.mercadolibre.com/messages/pending_read?access_token=$ACCESS_TOKEN

Parâmetros (opcionais):

Para receber uma lista de ordens específicas, você deverá enviar os IDs separados por vírgula (…&orders_id=id1,id2,…,):
orders_id=$ORDERS_ID

Além disso, para receber o role (função) de usuário na ordem. Exemplo comprador: …&role=buyer – Exemplo vendedor: …&role=seller) deverá utilizar o seguinte parâmetro: role=$ROLE

Modos de uso

Caso você queira obter todas as ordens com mensagens ainda não lidas como vendedor, deverá realizar a invocação abaixo:

Sem role:

CURL -X GET https://api.mercadolibre.com/messages/pending_read?access_token=$ACCESS_TOKEN

Aclaração: Em caso de não especificar um role ou se este for inválido (diferente de “buyer” ou “seller”), por padrão, o recurso assumirá que o role é “seller”.

Com role:

CURL -X GET https://api.mercadolibre.com/messages/pending_read?access_token=$ACCESS_TOKEN&role=seller

Para obter todas as ordens com mensagens ainda não lidas como comprador, você deverá realizar a invocação abaixo:

CURL -X GET https://api.mercadolibre.com/messages/pending_read?access_token=$ACCESS_TOKEN&role=buyer

Caso você queira obter a quantidade de mensagens ainda não lidas para as ordens, deverá fazer conforme detalhado abaixo:

CURL -X GET https://api.mercadolibre.com/messages/pending_read?access_token=$ACCESS_TOKEN&orders_id=123,124,125

Resposta:
Se a resposta da api for satisfatória, retornará um JSON similar ao seguinte:

{
    "user_id": "1234512314",
    "results": [
        {
            "order_id": "19912312312”
            "count": 1
        }
    ]
}

Nessa resposta você verá:

  • ID do usuário que realizou a solicitação (“user_id”).
  • Mensagens ainda não lidas (“count”).
  • Cada ordem disponível (“order_id”).

Por último, se não houver mensagens ainda não lidas, quer para todas as ordens do usuário ou para as ordens que o usuário especificar) ou se o usuário especificar dentro do parâmetro “orders_id” ordens das quais não faz parte, a resposta será similar à seguinte:

{
    "user_id": "1234512314",
    "results": []
}

Nota: Este é um recurso privado, portanto, se você realizar uma invocação sem access_token, vai obter um erro 400.

Solicitação sem access token:

{
    "message": "Access token required",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

Marcar mensagens como lidas

Com a chamada PUT, você poderá marcar as mensagens como lidas no Mercado Livre passando os IDs que quiser ler na URL.

Nota: As mensagens devem ser separadas por vírgula (,); caso contrário, não serão reconhecidas como mensagens diferentes.

Chamada:

PUT /messages/mark_as_read/:messages_id

Exemplo:

https://api.mercadolibre.com/messages/mark_as_read/id1,id2,id3?access_token=$ACCESS_TOKEN

Resposta:

{
    "message": "Messages marked as read successfully",
    "status": 200
}

Revisar mensagens bloqueadas

Visando diminuir o spam e as mensagens desnecessárias, dentro das mensagens pós-venda há a possibilidade de bloquear mensagens devido a que:

  • O comprador bloqueou o envio de mensagens.
  • Após um período de tempo, o envio da mensagem é automaticamente bloqueado.

Via API você poderá encontrá-las sob o status “Bloqueada” em uma nova seção chamada “conversation”:

Chamada:

https://api.mercadolibre.com/messages/orders/{resource_id}?access_token=$ACCESS_TOKEN

Resposta:

{
  "paging": {...},
  "results": [{...},{...}],
  "conversation": {
"status": "blocked",
"substatus": "blocked_by_buyer",
      "status_date": "2017-05-26T13:17:23.511-04:00"
   }
}

status: This field allows two values:

  • active: conversation is open for sending/receiving messages
  • – substatus: null

  • blocked: conversation is closed to sending/receiving messages
  • – substatus: Blocked_by_time: Conversation has been blocked automatically after 60 days.
    – substatus: Blocked_by_buyer: Conversation has been blocked due to buyer request.

status_date: Represents the date when conversation status was recorded.

Possíveis erros

Erros comuns

Request sem access token:

{
  "message": "Access token is required",
  "error": "bad_request",
  "status": 400,
  "cause": [ ]
}

Erros na obtenção de mensagens por id

Usuário sem acesso a uma determinada mensagem:

{
  "message": "Access denied for user 30265782 to message with id 006b9b2df38f452b80402041ae86f6d4",
  "error": "forbidden",
  "status": 403,
  "cause": [ ]
}

A mensagem solicitada não existe:

{
    "message": "The specified message id does not exists",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

Erros post

Mensagem sem receptor (falta adicionar “to”):
400: The field ‘to.user_id’ is required

User id “to” inválido:
400: Invalid ‘to’ user id

User “from” e user “to” são iguais:
400: Sender and received must not be equals

User “from” não tem acesso à ordem:
403: Access denied for user {from.user_id} to order {to.resource_id}

Se o user_id for 0 e o email não for um secure_email:
400: The field ‘to.email’ must be a secure email

O receptor da mensagem não pertence à ordem:
403: Receiver does not belong to order {to.resource_id}

O atributo “resource” não é achado:
400: The field ‘to.resource’ is required

Atributo resource inválido:
400: Invalid field ‘to.resource’

Request sem site_id:
400:The field ‘to.site_id’ is required

Atributo site_id inválido:
400: The field ‘to.site_id’ has an invalid value

Post sem Json body:
400: A JSON body is required

Mensagem sem “from”:
400: The field ‘from’ is required

Request sem access token:
400: Access token is required

Access Token sem application_id:
400: Application id is required

Messaging is blocked:
403: You can not send the message because the conversation is blocked by buyer.

403: You can not send the message because the conversation has been blocked by time.

Erros GET mensagens por ordem

Usuário sem acesso à ordem:
403: User access token invalid for resource {resource_id}”

O parâm “limit” do request deve ser maior de 0:
400: The limit param must be greater than 0

Parâm “offset” inválido:
400: Invalid offset param

Parâm “limit” inválido:
400: Invalid limit param

Erros GET attachments

O arquivo solicitado não pode ser obtido:
500: File can not be accessed, try it later

Erros Post attachments

Problemas no armazenamento do arquivo:
500: File can not be saved, try it later

Attachment vazio ou nulo:
400: File attached is empty

O nome do arquivo não pode conter caracteres como: /, \
400: File name cannot include characters like /, \

O tamanho de arquivo ultrapassa os 25 Mb.
400: File attachment is bigger than 25 Mb.

A mensagem ultrapassa a quantidade permitida de anexos: 25
400: The message exceeds the allowed number of attachments: 25

Erros PUT mensagens marcadas como não lidas

IDs de mensagens inválidas ou vazias

{
    "message": "Messages id empty or invalid.",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

ID de mensagens inexistente

{
    "message": "The specified message id: a does not exists",
    "error": "bad_request",
    "status": 400,
    "cause": []
}

ID de mensagens que corresponder a diferentes orders

{
    "message": "Not allowed messages from multiple orders",
    "error": "bad_request",
    "status": 400,
    "cause": []
}



Para mais informações sobre como utilizar este serviço sem sair do Mercado Livre clique aqui.


Próximo:
Recebimento de notificações.

Please rate this

Ofertas

Os vendedores que recebem assessoramento por parte da equipe comercial do Mercado Livre são convidados periodicamente a participar de diferentes campanhas de ofertas que se realizam no site. Se recebeu o convite para alguma campanha pontual e quer se somar, segue este tutorial para conhecer os passos básicos de como sugerir seus produtos em oferta.

Conteúdos:

Importante:

  • Para realizar testes, você deverá utilizar um usuário de teste. Isto garante que você tenha sempre uma oferta (campanha) disponível para os itens sugeridos. Em teste, as campanhas para um item nunca chegarão a ser aprovadas, ficarão em status pending_approval, isto é, o preço com oferta não será exibido.
  • Para acessar essa API, você precisa de uma senha de acesso.

Consultar as campanhas para as quais fui convidado

Este recurso chama as campanhas de ofertas associadas a um user_id [id de usuário]. Pode haver mais de uma campanha por usuário.

Exemplo:

curl -X GET https://api.mercadolibre.com/users/{User_id}/deals/search?access_token=$ACCESS_TOKEN

Resposta:

{
  "paging": {
    "total": 2,
    "offset": 0,
    "limit": 0
  },
  "filters": {
    "site_id": "MLA"
  },
  "results": [
    {
      "id": "MLA90",
      "name": "pruebaIntegracion",
      "description": "Prueba Integracion",
      "site_id": "MLA",
      "status": "test",
      "offers_reception_deadline": "2016-08-30T23:00:00-04:00",
      "start_time": "2016-08-18T03:00:00.000Z",
      "end_time": "2016-08-19T02:59:00.000Z",
      "requisites": [
        {
          "name": "RequisiteDiscount",
          "criteria": "original_price",
          "categories": [
            "MLA1144"
          ],
          "parameters": {
            "value": "20",
            "type": "gold_special"
          },
          "description": "Items with listing gold_special type must have at least 20% off"
        },
        {
          "name": "RequisiteDiscount",
          "criteria": "original_price",
          "categories": [
            "MLA1144"
          ],
          "parameters": {
            "value": "15",
            "type": "gold_premium"
          },
          "description": "Items with listing type gold_premium must have at least 15% off"
        },
        {
          "name": "CATEGORIES_REQUISITE",
          "criteria": "NA",
          "categories": [
            "MLA5726",
            "MLA1276",
            "MLA1384"
          ],
          "parameters": {
          },
          "description": "Items must belong to the specified categories"
        },
        {
          "name": "RequisiteFreeShipping",
          "criteria": "retail_price",
          "categories": [
            "MLA5725"
          ],
          "parameters": {
            "currency": "ARS",
            "value": "500"
          },
          "description": "Items in the specified categories and with price higher than ARS 500 must have free shipping"
        }
      ]
    }
  ]
}

Um campo importante a se levar em conta nesta resposta é o campo “dead_line” [“prazo”], que informa até quando você poderá sugerir seus produtos. Após esse tempo, você não poderá sugerir itens para a campanha.
O campo “requisites” [“requisitos”] contém um conjunto de requisitos que seus itens sugeridos devem atender para poder ser incluídos na campanha. Esses requisitos são definidos pelo Mercado Livre para cada campanha.

Os itens propostos por você têm status associado. No início, esse status é “pending_approval”. Quando a equipe comercial valida a oferta, esta pode ser rejeitada e o status passa para “rejected” (o item não entra no deal) ou pode ser aprovado (o item entra no deal).

Sugerir um produto para a campanha

Após ter sido convidado para uma campanha de ofertas, você pode escolher quais produtos quer incluir na campanha e sugeri-los. Você pode ter que detalhar as condições em que seus produtos vão participar da campanha (isto é, preço de desconto para a campanha, estoque para a campanha, etc.).

Pedido (exemplo):

curl -X POST -d '{"item_id":"MLA632979587","deal_price":149,"regular_price":200,"declared_stock":8,"declared_free_shipping":true, "brand":"brand1","model":"model1","declared_oro_premium_full":true}' 'https://api.mercadolibre.com/users/{User_id}/deals/{Deal_id}/proposed_items?access_token=$ACCESS_TOKEN'

Resposta (exemplo):

{
  "item_id": "MLA633000763",
  "regular_price": 200,
  "deal_price": 149,
  "declared_stock": 8,
  "declared_free_shipping": true,
  "declared_oro_premium_full": true,
  "category_l1": "MLA1953",
  "category_l2": "MLA3530",
  "brand": "brand1",
  "model": "model1",
  "date_created": "2016-08-29T14:08:10.902-04:00",
  "last_updated": "2016-08-29T14:08:10.902-04:00",
  "status": "pending_approval",
  "title": "Item De Testeo, Por Favor No Ofertar --kc:off"
}

Modificar um produto sugerido para uma campanha

Pedido:

curl -X PUT -d '{"deal_price":150}' 'https://api.mercadolibre.com/users/{User_id}/deals/{Deal_id}/proposed_items/{Item_id}?access_token=$ACCESS_TOKEN'

Resposta:

{
  "item_id": "MLA633000763",
  "regular_price": 200,
  "deal_price": 152,
  "declared_stock": 8,
  "declared_free_shipping": true,
  "declared_oro_premium_full": true,
  "category_l1": "MLA1953",
  "category_l2": "MLA3530",
  "brand": "brand1",
  "model": "model1",
  "date_created": "2016-08-29T14:08:11.000-04:00",
  "last_updated": "2016-08-29T14:34:53.662-04:00",
  "status": "pending_approval",
  "title": "Item De Testeo, Por Favor No Ofertar --kc:off"
}

Remover um produto de uma campanha

Pedido:

curl -X DELETE
https://api.mercadolibre.com/users/{User_id}/deals/{Deal_id}/proposed_items/{Item_id}?access_token=$ACCESS_TOKEN

Resposta:

{O
"item_id": "MLA632979587",
"current_price": null,
"regular_price": 200,
"deal_price": 170,
"declared_stock": 8,
"declared_free_shipping": true,
"declared_oro_premium_full": true,
"category_l1": "MLA1953",
"category_l2": "MLA3530",
"brand": "brand1",
"model": "model1",
"date_created": "2016-08-29T11:52:01.000-04:00",
"last_updated": "2017-08-03T16:15:32.344-04:00",
"status": "rejected",
"title": "Item De Testeo, Por Favor No Ofertar --kc:off",
"processed_by": "$user_id",
"source": "public_api",
"discount": 26,
"rejections": [
{
"comment": null,
"requisite_rejection": null,
"reason": [
"El seller quitó al item del deal"
]
}
]
}

Os status HTTP da resposta é 200.
Nota: Lembre que as seguintes ações poderão ser realizadas antes que o prazo que aparece em offers_reception_deadline seja cumprido. Após essa data, só poderá ser feito através de seu assessor comercial (ver exemplo Consultar campanhas às quais você foi convidado).

Obter meus produtos em uma campanha

Você poderá obter os produtos sugeridos para uma campanha.

Pedido:

curl -X GET https://api.mercadolibre.com/users/{User_id}/deals/{Deal_id}/proposed_items/search?access_token=$ACCESS_TOKEN

Resposta:

{
  "paging": {
    "total": 2,
    "offset": 0,
    "limit": 50
  },
  "filters": {
    "deal_id": "MLA90",
    "seller_id": "210456151"
  },
  "results": [
    {
      "item_id": "MLA632979587",
      "current_price": 170,
      "regular_price": 200,
      "deal_price": 149,
      "declared_stock": 8,
      "declared_free_shipping": true,
      "declared_oro_premium_full": true,
      "category_l1": "MLA1953",
      "category_l2": "MLA3530",
      "brand": "brand1",
      "model": "model1",
      "date_created": "2016-08-29T11:52:01.000-04:00",
      "last_updated": "2016-08-29T11:52:01.000-04:00",
      "status": "pending_approval",
      "title": "Item De Testeo, Por Favor No Ofertar --kc:off",
      "discount": 26
    },
    {
      "item_id": "MLA632632625",
      "current_price": 200,
      "regular_price": null,
      "deal_price": 100,
      "declared_stock": 50,
      "declared_free_shipping": false,
      "declared_oro_premium_full": false,
      "category_l1": "MLA1953",
      "category_l2": "MLA3530",
      "brand": "Prueba",
      "model": "Cool",
      "date_created": "2016-08-26T10:34:04.000-04:00",
      "last_updated": "2016-08-26T10:34:04.000-04:00",
      "status": "pending_approval",
      "title": "Item De Testeo, Por Favor No Ofertar --kc:off",
      "discount": 50
    }
  ]
}

Please rate this

Programa de Proteção à Propriedade Intelectual (PPPI)

Nosso Programa permite somente aos titulares ou mandatários de um direito de propriedade intelectual denunciar e solicitar baixa de publicações que infrinjam seus direitos.

Para poder denunciar publicações é imprescindível que estejam aderidos ao Programa.

Já sendo membros do PPPI, deverão solicitar as instruções da Api de denúncia a través do seguinte formulário. Nelas encontrarão todas as informações necessárias para realizar a integração.

Se os membros precisarem de maiores informações sobre o programa, deverão escrever no formulário.

Caso tenha qualquer problema ou dúvida sobre o funcionamento da Api, entre em contato.

Please rate this

Tutorial tipos de publicação e atualização de anúncios

Dependendo do nível de exposição que você deseja para seus artigos, você poderá escolher entre diferentes tipos de publicação. Cada tipo de publicação tem suas próprias caraterísticas e feeds. Vejamos como trabalhar corretamente com eles.

Assuntos:

Tipos de anúncios por site

Você precisa que ter em conta que cada site tem seus próprios tipos de publicação. Para ver todos os tipos de publicação de um site, você deve realizar uma chamada GET aos recursos listing_types com o Site_id:

Exemplo:

https://api.mercadolibre.com/sites/MLC/listing_types

Resposta:

[
  {
    "site_id": "MLC",
    "id": "gold_pro",
    "name": "Premium"
  },
  {
    "site_id": "MLC",
    "id": "gold_premium",
    "name": "Oro Premium"
  },
  {
    "site_id": "MLC",
    "id": "gold_special",
    "name": "Clásica"
  },
  {
    "site_id": "MLC",
    "id": "gold",
    "name": "Oro"
  },
  {
    "site_id": "MLC",
    "id": "silver",
    "name": "Plata"
  },
  {
    "site_id": "MLC",
    "id": "bronze",
    "name": "Bronce"
  },
  {
    "site_id": "MLC",
    "id": "free",
    "name": "Gratuita"
  }
]

Em determinados sites os tipos de anúncios sofreram mudanças, para saber quais são sugerimos revisar a seguinte novidade.
Na API ainda pode se ver os anteriores, que serão mapeados automaticamente para que não tenha erros em sua integração.
Sugerimos publicar da seguinte forma:

MLA, MLB, MLC, MLM, MCO

gold_pro: Premium
gold_special: Clássico
free: Grátis

MPE, MLV, MLU

gold_special: Premium
bronze: Clasica
free: Grátis
Notas:

  • Nos outros sites pode se utilizar qualquer dos listings da API.

Especificações do tipo de anuncio

Você precisa que ter em conta que cada site tem seus próprios tipos de publicação. Para ver todos os tipos de publicação de um site, você deve realizar uma chamada GET aos recursos listing_types com o Site_id:
Exemplo:

https://api.mercadolibre.com/sites/MLA/listing_types/bronze

Resposta:

{
  "id": "bronze",
  "not_available_in_categories": [
    "MLA1743",
    "MLA1459"
  ],
  "configuration": {
    "name": "Bronce",
    "listing_exposure": "low",
    "requires_picture": false,
    "max_stock_per_item": 9999,
    "deduction_profile_id": null,
    "differential_pricing_id": null,
    "duration_days": {
      "buy_it_now": 60,
      "auction": 7,
      "classified": null
    },
    "immediate_payment": {
      "buy_it_now": false,
      "auction": false,
      "classified": false
    },
    "mercado_pago": "mandatory",
    "listing_fee_criteria": {
      "min_fee_amount": 0,
      "max_fee_amount": 0,
      "percentage_of_fee_amount": 0,
      "currency": "ARS"
    },
    "sale_fee_criteria": {
      "min_fee_amount": 0,
      "max_fee_amount": 100000000000000000,
      "percentage_of_fee_amount": 11,
      "currency": "ARS"
    }
  },
  "exceptions_by_category": [
    {
      "category_id": "MLA1540",
      "category_name": "Servicios",
      "configuration": {
        "name": "Básico 90",
        "listing_exposure": "mid",
        "requires_picture": false,
        "max_stock_per_item": 999,
        "deduction_profile_id": null,
        "differential_pricing_id": null,
        "duration_days": {
          "buy_it_now": null,
          "auction": null,
          "classified": 90
        },
        "immediate_payment": {
          "buy_it_now": false,
          "auction": false,
          "classified": false
        },
        "mercado_pago": "not_available",
        "listing_fee_criteria": {
          "min_fee_amount": 347,
          "max_fee_amount": 347,
          "percentage_of_fee_amount": 0,
          "currency": "ARS"
        },
        "sale_fee_criteria": {
          "min_fee_amount": 0,
          "max_fee_amount": 0,
          "percentage_of_fee_amount": 0,
          "currency": null
        }
      },
      "exceptions_by_category": [
      ]
    }
  ]
}



Os itens Clássico e Premium terão duração ilimitada; você pode consultar no campo stop_time:

curl -X GET https://api.mercadolibre.com/items/MCO415406202?attributes=stop_time

Além disso, esses anúncios serão pausados caso o estoque for 0 e serão ativados quando uma nova quantidade for adicionada. Você vai visualizar o item assim:

"status": "paused",
  "sub_status": [
    "out_of_stock"
  ]

Se você quiser adicionar estoque e ativar novamente o item, deverá fazer o seguinte:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
{
  "available_quantity": 1
}
https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN

Lembre que o tipo de anúncio Gratuito vai manter o fluxo atual.

O vendedor poderá trocar entre os tipos de anúncio Clássico e Premium toda vez que desejar sem custo algum, e poderá pausar e finalizar os itens da mesma maneira em que funciona agora.

Se você quiser trocar de Premium para Clássico, deverá seguir estes passos:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d
{
  "id": "gold"
}
https://api.mercadolibre.com/items/{Item_id}/listing_type?access_token=$ACCESS_TOKEN

Tipos de anúncios disponíveis

Você pode consultar os tipos de publicação disponíveis por usuário e para um category_id determinado.
Exemplo:

https://api.mercadolibre.com/users/{Cust_id}/available_listing_types?category_id={Category_id}&access_token=$ACCESS_TOKEN

Resposta:

{
  "category_id": "MLC3530",
  "available": [
            {
            "site_id": "MLC",
            "id": "gold_premium",
            "name": "Oro Premium",
            "remaining_listings": null
            },
            {
            "site_id": "MLC",
            "id": "gold",
            "name": "Oro",
            "remaining_listings": null
            },
            {
            "site_id": "MLC",
            "id": "silver",
            "name": "Plata",
            "remaining_listings": null
            },
            {
            "site_id": "MLC",
            "id": "bronze",
            "name": "Bronce",
            "remaining_listings": null
            },
            {
            "site_id": "MLC",
            "id": "free",
            "name": "Gratuita",
            "remaining_listings": null
            }
  ]
}

Se você não consegue publicar em certos tipo de anúncio e quer saber porque não consegue, você pode realizar uma chamada GET para verificar o motivo.
Exemplo:

https://api.mercadolibre.com/users/{Cust_id}/available_listing_type/free?category_id={Category_id}&access_token=$ACCESS_TOKEN

Resposta:

{
  "available": false,
  "cause": "You have more than 5 transactions in the last year.",
  "code": "list.transactions.exceeded"
}

Nota:

  • Os upgrades só estão disponíveis em MLB; para os outros sites, você deverá finalizar o anúncio e publicar novamente com o listing type desejado.

Exposições das publicações

Este recurso da nossa API devolve informação sobre os níveis de exposição associados a todos os tipos de publicações no Mercado Livre.
Você pode consultar todas as exposições disponíveis para as publicações por site, com uma chamada GET simples.
Exemplo:

https://api.mercadolibre.com/sites/MLA/listing_exposures

Resposta:

{[
  {
            "id": "lowest",
            "name": "Última",
            "home_page": false,
            "category_home_page": false,
  "advertising_on_listing_page": true,
            "priority_in_search": 4
  },
  {
            "id": "low",
            "name": "Inferior",
            "home_page": false,
            "category_home_page": false,
  "advertising_on_listing_page": false,
            "priority_in_search": 3
  },
  {
            "id": "mid",
            "name": "Media",
            "home_page": false,
            "category_home_page": true,
            "advertising_on_listing_page": false,
            "priority_in_search": 2
  },
  {
            "id": "high",
            "name": "Alta",
            "home_page": false,
            "category_home_page": true,
  "advertising_on_listing_page": false,
            "priority_in_search": 1
  },
  {
            "id": "highest",
            "name": "Superior",
            "home_page": true,
            "category_home_page": true,
  "advertising_on_listing_page": false,
            "priority_in_search": 0
  }
]

E fazer uma consulta por seu ID:
Exemplo:

https://api.mercadolibre.com/sites/MLA/listing_exposures/high

Resposta:

{
  "id": "high",
  "name": "Alta",
  "home_page": false,
  "category_home_page": true,
  "advertising_on_listing_page": false,
  "priority_in_search": 1
}

Atualizações disponíveis

Você pode atualizar seu anúncio para uma exposição maior apenas uma vez.
Se precisa realizar outras atualizações, você pode ver que tipos de exposição estão disponíveis para seu anúncio.
Exemplo:

https://api.mercadolibre.com/items/{Item_id}/available_upgrades?access_token=$ACCESS_TOKEN

Resposta:

[
  {
            "site_id": "MLC",
            "id": "gold_premium",
            "name": "Oro Premium"
  },
  {
            "site_id": "MLC",
            "id": "gold",
            "name": "Oro"
  },
  {
            "site_id": "MLA",
            "id": "silver",
            "name": "Plata"
  }
]

Muito bem! Agora você está pronto para acessar a exposições corretas para seus produtos e realizar atualizações.
Como sabemos que às vezes você precisa mais de uma tentativa para realizar sua publicação, te oferecemos a possibilidade de validar o seu artigo antes de tentar uma publicação. Por favor, leia este artigo para mais informações sobre o nosso validador de publicações.

Baixar um anúncio a um tipo de publicação inferior (downgrades)

Downgrade é reduzir a exposição de um anúncio ao atualizá-lo em um tipo de publicação inferior. Está disponível para alguns casos particulares:

  • Em MLB (Brasil) está permitido realizar downgrades nos anúncios entre gold_pro a gold_special
  • Antes de começar, você pode realizar downgrades para as publicações em payment_required.
  • Não está permitido realizar downgrade de um anúncio gratuito.

Please rate this

Gerencie seu aplicativo

Assuntos:

Acessar suas aplicações

Para acessar uma lista de seus aplicativos, faça uma busca de recursos de aplicativos com seu user_id.

Exemplo:

 curl -X GET https://api.mercadolibre.com/applications/search?owner_id={Owner_id}?access_token=$ACCESS_TOKEN

Resposta:

 {
    "id": 2342346600929988,
    "site_id": "MLB",
    "name": "ML TEST",
    "description": "ML TEST APP",
    "thumbnail": null,
    "owner_id": 18731523,
    "catalog_product_id": null,
    "item_id": null,
    "price": null,
    "currency_id": null,
    "need_authorization": true,
    "short_name": "polipartes",
    "url": "http://apps.mercadolivre.com.br/polipartes",
    "callback_url": "http://www.vtexml.com.br/",
    "sandbox_mode": true,
    "is_public": true,
    "project_id": null,
    "active": true,
    "max_requests_per_hour": 18000,
    "scopes": [
      "write",
      "read",
      "offline_access"
    ],
    "domains": [
    ]
  }

Acessar os detalhes das aplicações

Para acessar todos os detalhes de um de seus aplicativos, basta incluir o app_id na chamada à API.

Exemplo:

 curl -X GET https://api.mercadolibre.com/applications/213123928883922

Resposta:

 {
  "id": 213123928883922,
  "site_id": "MLB",
  "name": "ML Test",
  "description": "ML Test APP",
  "thumbnail": null,
  "owner_id": 18731523,
  "catalog_product_id": null,
  "item_id": null,
  "price": null,
  "currency_id": null,
  "need_authorization": true,
  "short_name": "polipartes",
  "url": "http://apps.mercadolivre.com.br/polipartes",
  "callback_url": "http://www.vtexml.com.br/",
  "sandbox_mode": true,
  "is_public": true,
  "project_id": null,
  "active": true,
  "max_requests_per_hour": 18000,
  "scopes": [],
  "domains": [
  ]
}

Acessar as aplicações autorizadas por usuário

Para acessar todos os aplicativos autorizados por um usuário, basta enviar uma solicitação GET com o user_id e o token de acesso.

GET https://api.mercadolibre.com/users/{user_id}/applications?access_token={...}

A resposta será um conjunto de aplicativos no seguinte formato:

 [
  - {
    "user_id": "26317316",
    "app_id": "13795",
    "date_created": "2012-12-20T15:38:27.000-04:00",
    "scopes": - [
      "read",
      "write",
    ],
   },
]

Tenha acesso aos usuários que outorgaram licenças a seu aplicativo

Para acessar a lista de usuários que outorgaram licenças a seu aplicativo, simplesmente realize o GET a seguir:

Exemplo:

curl -X GET 'https://api.mercadolibre.com/applications/{app_id}/grants?access_token=$ACCESS_TOKEN' 

Resposta:

{
    "paging": {
        "total": 1,
        "limit": 50,
        "offset": 0
    },
    "grants": [
        {
            "user_id": {user_id},
            "app_id": {app_id},
            "date_created": "2012-05-19T01:00:54.000-04:00",
            "scopes": [
                "read",
                "offline_access",
                "write"
            ]
        }
    ]
}

Descrição de campos

  • user_id – identificador do usuário.
  • app_id – Identificador do aplicativo.
  • date_created – data em que a autorização foi criada.
  • scopes – permissões concedidas ao aplicativo: leitura, gravação e offline_access.

Revogar autorização do usuário

Para eliminar qualquer aplicativo, é preciso especificar seu ID, o ID do usuário e o token de acesso. Basta enviar uma solicitação DELETE utilizando a consulta abaixo:

 DELETE https://api.mercadolibre.com/users/{user_id}/applications/{app_id}?access_token={...}

A resposta deve ser:

 {
	"user_id":"{user_id}",
	"app_id":"{app_id}",
	"msg":"Autorización eliminada"
}

Please rate this

Dump de categorias

O que é a árvore de categorias?

A árvore de categorias é uma estrutura na qual o Mercado Livre organiza suas listagens. Cada um dos países tem sua própria árvore de categorias que é diferente das outras. As listagens só podem ser realizadas nas categorias folha da árvore.

Mudanças na árvore de categorias

Às vezes, há mudanças na árvore de categorias, seja porque uma nova categoria é criada, seja porque uma categoria existente é dividida em duas ou mais categorias. Todos os anúncios incluídos na categoria anterior são automaticamente deslocados para a nova.

Por que devo sincronizar a árvore de categorias?

Recomenda-se realizar diariamente um dump de toda a árvore de categorias para o site de um determinado país destinado ao processamento off-line. Assim, é possível estar atualizado com as novas categorias. É muito útil oferecer a seu usuário a chance de fazer um mapeamento de categorias de seu lado para a árvore de categorias do Mercado Livre.

Trabalhar com o dump da árvore de categorias

A API retorna a árvore de categorias no formato JSON dentro de uma resposta codificada com gzip.
Por exemplo, para obter as categorias do Brasil, ele utiliza a seguinte URL:

 curl https://api.mercadolibre.com/sites/MLB/categories/all  > categoriesMLB.gz 

Essa URL contém dois cabeçalhos que podem ser utilizados para verificar quando foi gerado o último dump.

  • X-Content-Created: contém a data da última geração.
  • X-Content-MD5: contém a soma de verificação MD5 da última geração.
 ~$ curl -I  https://api.mercadolibre.com/sites/MLB/categories/all
HTTP/1.1 200 OK
Server: nginx/1.0.4
Date: Tue, 24 Jul 2012 15:14:58 GMT
Content-Type: application/json;charset=UTF-8
Connection: keep-alive
X-MLAPI-Version: 1.9.5
Content-Encoding: gzip
X-Content-Created: 2012-07-24T14:00:59.716Z
X-Content-MD5: 943541196986770119b4af1e66bda2dc

Trabalhar com o dump da árvore de categorias con atributos

Conforme que as categorias tem atributos proprios é precisso fazer a seguente chamada para baixar um arquivo que contém a árvore de categorias com cada um de seus atributos.

Exemplo:

curl https://api.mercadolibre.com/sites/MLA/categories/all?withAttributes=true > mla.gz


Please rate this

Categorização de produtos

As categorias são um conjunto hierárquico de grupos nos quais os produtos de natureza semelhante são enumerados, denominados “árvore de categorias”. As categorias ajudam os compradores a encontrar o tipo de produto que desejam, já que o comprador somente deve buscar em uma ou poucas categorias para encontrar o que interessa. Os vendedores aproveitam as categorias para incrementar suas chances de venda graças aos compradores que acessam os produtos mais rapidamente.
Cada site tem seu próprio conjunto de categorias, isto é, a Argentina terá um conjunto de categorias único, diferente do conjunto das categorias do Brasil. https://api.mercadolibre.com/sites/MLB/categories
Antes de publicar um anúncio, você deve explorar a estrutura de categorias e escolher em qual delas quer publicar. Como ajuda, você pode baixar a hierarquia completa de categorias, com ID e nomes simples, de nossa API.

Assuntos

Categorias por site

O recurso Sites pode oferecer a estrutura de categorias de um país em particular, nesse caso, da Argentina.

 https://api.mercadolibre.com/sites/MLA/categories
"categories": [
    {
    "id": "MLA5725",
    "name": "Accesorios para Vehiculos",
    },
    {
    "id": "MLA1071",
    "name": "Animales y Mascotas",
    },
    {
    "id": "MLA1367",
    "name": "Antigüedades",
    },
    {
    "id": "MLA1743",
    "name": "Autos, Motos y Otros",
},

Para categorias do segundo nível ou informações relacionadas com categorias específicas, você deve utilizar o recurso Categories e enviar o ID da categoria como parâmetro URL.
O exemplo abaixo mostra a categoria “Animales y Mascotas”:

 https://api.mercadolibre.com/categories/MLA1071
{
    "id": "MLA1071",
    "name": "Animales y Mascotas",
    "permalink": "http://home.mercadolibre.com.ar/animales-y-mascotas",
    "total_items_in_this_category": "30434",
    "path_from_root": [
        {
            "id": "MLA1071",
            "name": "Animales y Mascotas",
        },
    ],
    "children_categories": [
        {
            "id": "MLA1100",
            "name": "Aves",
            "total_items_in_this_category": "1430",
        },
        {
            "id": "MLA1117",
            "name": "Caballos",
            "total_items_in_this_category": "1092",
        },
    .
    .

Como pode observar, você obtém os atributos “path_from_root” e children_categories. Utilize esses atributos quando explorar a árvore de categorias para encontrar a categoria específica de seu produto.

Categorias JSON

Fazer uma chamada para uma categoria específica permitirá saber as informações e descrições específicas dela. A seguir, você encontrará a descrição de alguns desses atributos.

 curl https://api.mercadolibre.com/categories/MLA9558
{
  "id": "MLA9558",
  "name": "Givenchy",
  "picture": null,
  "permalink": null,
  "total_items_in_this_category": 706,
  "path_from_root": [
    {
      "id": "MLA1246",
      "name": "Salud y Belleza"
    },
    {
      "id": "MLA1271",
      "name": "Perfumes y Fragancias"
    },
    {
      "id": "MLA1273",
      "name": "Mujer"
    },
    {
      "id": "MLA9558",
      "name": "Givenchy"
    }
  ],
  "children_categories": [
  ],
  "attribute_types": "none",
  "settings": {
    "adult_content": false,
    "buying_allowed": true,
    "buying_modes": [
      "buy_it_now",
      "auction"
    ],
    "coverage_areas": "not_allowed",
    "currencies": [
      "ARS"
    ],
    "fragile": false,
    "immediate_payment": "optional",
    "item_conditions": [
      "used",
      "not_specified",
      "new"
    ],
    "items_reviews_allowed": false,
    "max_description_length": 50000,
    "max_pictures_per_item": 12,
    "max_sub_title_length": 70,
    "max_title_length": 60,
    "price": "required",
    "restrictions": [
    ],
    "rounded_address": false,
    "seller_contact": "not_allowed",
    "shipping_modes": [
      "custom",
      "not_specified",
      "me2",
      "me1"
    ],
    "shipping_options": [
      "custom",
      "carrier"
    ],
    "shipping_profile": "optional",
    "show_contact_information": false,
    "simple_shipping": "optional",
    "stock": "required",
    "tags": [
    ],
    "vip_subdomain": "articulo",
    "mirror_category": null,
    "listing_allowed": true,
    "maximum_price": null,
    "minimum_price": null
  },
  "meta_categ_id": 38838,
  "attributable": false
}

Nome

Esse atributo mostra uma etiqueta simples. Você não pode usar essa etiqueta para buscar produtos. Caso você queira buscar usando ID de categorias, poderá usar o pedido a seguir:

 curl https://api.mercadolibre.com/sites/MLA/search?category=MLA5726

Acesse mais informações no produto busca de produtos por categoria.

Rota da raiz

Quando você está posicionado em uma categoria, pode saber qual é a rota da raiz para a categoria selecionada.
Veja como o Mercado Livre usa a rota para mostrar a categoria do produto:
image-category (1)

Encontrar a melhor categoria para seu produto

A categoria folha é a última categoria da árvore e a única em que você pode publicar produtos.
A escolha da categoria certa para seu produto determinará a rapidez com que ele será encontrado pelos compradores, melhorando suas chances de venda. Por isso, nós recomendamos utilizar a nossa ferramenta de predição de Categorias antes de publicar um produto.

Talvez algumas das categorias não tenham boas sugestões, por isso, você deverá fazer com que o usuário de seu sistema realize um mapeamento das categorias manualmente para encontrar seus produtos. Um processo mais simples poderia ser a utilização da API de Categorias e a navegação pela árvore de categorias, para detectar qual é a melhor opção. Você deve usar só aquelas categorias recuperadas da API que não tenham subcategorias relacionadas.

Outra opção poderia ser encontrar produtos similares no Mercado Livre para usar a categoria deles.



Próximo:
Publicação de produtos.

Please rate this

Envio de produto

O departamento de envios do Mercado Livre lida com todas as informações relativas ao modo como um produto passa de um usuário para outro.

Assuntos

Modos de envio

Em poucas palavras, as publicações no Mercado Livre contam com quatro modos diferentes de envio (consulte as modalidades disponibilizadas em seu país):

  • not_specified: isso quer dizer que o vendedor não especificou nenhum preço de frete para seus produtos, e o comprador deve entrar em contato com o vendedor para combinar uma opção de envio e o preço.
  • custom: os vendedores podem incluir uma tabela com até 10 valores de frete para um produto, e o comprador deve fornecer esse número ao finalizar o processo.
  • me1: (Mercado Envios modo 1) Esta modalidade oferece uma calculadora de fretes para calcular o custo do envio de cada pedido permitindo que o vendedor selecione o serviço de envios de sua preferência, mas escolhendo uma transportadora. O vendedor é encarregado de fazer o gerenciamento do número de rastreamento.
  • me2: (Mercado Envios modo 2) Esta modalidade oferece ao vendedor uma etiqueta pré-paga e um número de rastreamento com uma transportadora local pré-definida para cada país. O vendedor não precisará se preocupar em escolher uma transportadora nem com o número de rastreamento. É o modo mais recomendável, pois oferece uma excelente experiência tanto para compradores quanto para vendedores. O ML escolhe a transportadora.

Especificações relativas a cada país

Brasil Argentina México Colômbia Chile
Modos

ME2, ME1, custom, not_specified ME2, ME1, custom, not_specified ME2, custom, not_specified ME2, custom, not_specified ME2, custom, not_specified
Frete Grátis Sim Sim Sim Sim Sim
Exclusão regional para Frete Grátis Sim, Norte e Nordeste Não Não Não Não
Transportadora Correios Oca DHL ServiEntrega Chilexpress
Restrições nas dimensões (C) Mínimo 16cm Máximo 105cm – (L) Mínimo 11cm Máximo 105cm – (A) Mínimo 2cm Máximo 105 cm* Sem restrições 250,250,250cm 40x40x40cm 80x80x120cm
Peso máximo 30kg 25kg 70kg 30kg 50kg

*(C) Comprimento (L) Largura (A) Altura

Importante

O Mercado Envios modo 2 é disponibilizado para vendedores da Argentina, Brasil, Colômbia e México que tenham optado por fazer parte do programa.
O Mercado Envios modo 1 só é disponibilizado para vendedores selecionados da Argentina e do Brasil que tenham feito acordo comercial com o Mercado Livre e estejam integrados.

Como obter o modo de um usuário?

Você pode verificar se o usuário já foi autorizado a publicar no modo de envio ME1 ou ME2 fazendo uma solicitação GET para a API do usuário.

 GET https://api.mercadolibre.com/users/:user_id?access_token=

Isto retornará um grande volume de informações sobre o usuário autenticado, incluindo o atributo shipping_modes.
Resposta

 "shipping_modes":[
    "custom",
    "not_specified",
    "me1"
]

Além disso, existem algumas restrições em certas categorias. Utilize o recurso shipping_modes para verificar se um comprador pode publicar um produto no modo de envio me2 para uma determinada categoria. A resposta indicará se o modo me2 é disponibilizado e quais métodos de envio podem ser utilizados.
URL

 https://api.mercadolibre.com/users/:user_id/shipping_modes?category_id=MLB39373

Resposta

 [
  {
    "mode": "custom",
    "shipping_attributes": {
      "dimensions": "optional",
      "costs": "required",
      "free": {
        "methods": "not_allowed",
        "accepted_methods": [
        ],
        "rules": [
        ]
      },
      "local_pick_up": "optional"
    }
  },
  {
    "mode": "not_specified",
    "shipping_attributes": {
      "dimensions": "optional",
      "costs": "not_allowed",
      "free": {
        "methods": "not_allowed",
        "accepted_methods": [
        ],
        "rules": [
        ]
      },
      "local_pick_up": "optional"
    }
  },
  {
    "mode": "me2",
    "shipping_attributes": {
      "dimensions": "optional",
      "costs": "not_allowed",
      "free": {
        "methods": "optional",
        "accepted_methods": [
          73328,
          73330
        ],
        "rules": [
          {
            "free_mode": "country",
            "value": null,
            "default": true,
            "free_shipping_flag": true
          }
        ]
      },
      "local_pick_up": "optional"
    }
  }
]

Os usuários podem publicar frete “não especificado” e “personalizado” por padrão. Caso um usuário seja identificado com modo me1 ou me2, você poderá visualizá-lo como uma opção nos modos de envio.

Preferências de envio

Existe também um recurso público que permitirá saber as preferências de envio de qualquer usuário, caso seja necessário. Basta realizar a seguinte chamada:

 curl -X GET https://api.mercadolibre.com/users/:user_id/shipping_preferences
{
  "local_pick_up": false,
  "modes": [
    "custom",
    "not_specified",
    "me1",
    "me2"
  ],
  "free_configurations": [
    {
      "condition": {
        "value": null,
        "type": "all"
      },
      "rule": {
        "default": true,
        "free_shipping_flag": true,
        "free_mode": "country",
        "value": null
      }
    },
    {
      "condition": {
        "value": null,
        "type": "all"
      },
      "rule": {
        "default": false,
        "free_shipping_flag": true,
        "free_mode": "exclude_region",
        "value": [
          "BR-NO",
          "BR-NE"
        ]
      }
    }
  ],
  "trusted_user": false,
  "mandatory_settings": {},
  "custom_calculator": false,
  "picking_type": null,
  "thermal_printer": null,
  "option": "in",
  "site_id": "MLB",
  "tags": [
    "optional_me2_allowed"
  ],
  "carrier_pickup": false,
  "history": [
    {
      "option": "in",
      "date": "2017-11-13T16:24:30.000-04:00",
      "mode": "me1"
    }
  ],
  "items_combination": "forbidden",
  "logistics": [
    {
      "mode": "me1",
      "types": [
        {
          "type": "default",
          "carrier_pickup": [],
          "services": [
            21,
            23,
            22,
            11
          ],
          "default": true
        }
      ]
    },
    {
      "mode": "me2",
      "types": [
        {
          "type": "drop_off",
          "carrier_pickup": [],
          "services": [
            21,
            23,
            22
          ],
          "default": true
        }
      ]
    },
    {
      "mode": "custom",
      "types": [
        {
          "type": "custom",
          "carrier_pickup": [],
          "services": null,
          "default": true
        }
      ]
    },
    {
      "mode": "not_specified",
      "types": [
        {
          "type": "not_specified",
          "carrier_pickup": [],
          "services": null,
          "default": true
        }
      ]
    }
  ],
  "services": [
    11,
    21,
    22,
    23
  ],
  "conciliation": {
    "type": null
  }
}

Você poderá consultar as configurações do frete grátis (apresentaremos mais informações posteriormente), tipos etc.

Métodos de envio

Cada local tem um conjunto de métodos de envio habilitado. Eles apresentam tempos e custos de frete diferentes. Os vendedores podem oferecer frete grátis em um ou ambos os métodos.
Existe um recurso especial para ver quais são os métodos habilitados por local.
URL para o Brasil

 https://api.mercadolibre.com/sites/MLB/shipping_methods

Resposta JSON

 {
    "id": 500645,
    "name": "Expresso",
    "status": "active",
    "site_id": "MLB",
    "free_options": [
        "country"
    ]
},
{
    "id": 501548,
    "name": "CBT MLB",
    "status": "active",
    "site_id": "MLB",
    "free_options": [
        "country"
    ]
},
{
    "id": 100009,
    "name": "Normal",
    "status": "active",
    "site_id": "MLB",
    "free_options": [
        "country"
    ]
},
{
    "id": 182,
    "name": "Expresso",
    "status": "active",
    "site_id": "MLB",
    "free_options": [
        "country"
    ]
}

Resposta:

  • id – o ID do método de envio é utilizado ao publicar um produto com frete incluído.
  • name – nome do método de envio
  • site_id – o ID do local ao qual pertence o método de envio.
  • free_options – (Opções grátis),

    Status do envio

    O status do envio pode variar no pedido dependendo do modo selecionado para o produto. Nas modalidades que aceitam rastreamento automático e monitoramento dos números de rastreamento, como Mercado Envios modo 2 e modo 1 em certas configurações, o ML atualizará o status do envio, enquanto para o modo de frete personalizado e outras configurações do Mercado Envios modo 1, você será responsável pelo envio de um número de rastreamento e pela atualização do status do envio. Apesar de não ser obrigatório, sugerimos fazê-lo para melhorar suas chances de receber um melhor feedback dos compradores.
    Status:
    to_be_agreed
    O envio será combinado entre o vendedor e o comprador.
    pending
    Os envios são criados com este status.
    handling
    O pagamento do frete já foi recebido.
    ready_to_ship
    O código de autorização da transportadora foi recebido.
    shipped
    A transportadora já informou sobre o despacho.
    delivered
    A transportadora já informou sobre a chegada do item.
    not_delivered
    A transportadora não conseguiu fazer a entrega.
    cancelled
    O envio foi cancelado.

    Visão geral do Mercado Envios

    Mercado Envios é a unidade de negócios do ML que ajuda vendedores, oferecendo várias facilidades para eles enviarem seus produtos. No momento, ele se encontra ativo no MLA, MLB, MLM, MLC e MCO. Como já foi especificado acima, existem duas opções do Mercado Envios que podem ser escolhidas: modo 1 e modo 2.

    Diferenças entre ME1 e ME2

    ME1 ME2
    Ideal para grandes vendedores que já estão trabalhando com uma transportadora preferencial e têm um processo encarregado de calcular custos de envio, cobrança e impressão de etiquetas de envio com as informações da venda e do envio. A melhor opção para vendedores de médio e grande portes que precisam de um intermediário para lidar com a transportadora; ela ajuda vendedores e compradores a fazer o rastreamento do produto, calcula os custos do envio e faz o gerenciamento de todo o processo do envio, cobrança e impressão das etiquetas de envio com todas as informações da venda e do envio.
    Somente em MLA, MLC e no MLB. Somente em MLA, MLB, MLM, MLC e MCO.
    Os vendedores escolhem a transportadora. O ML tem acordos com as transportadoras mais confiáveis de cada país e oferece aos vendedores etiquetas de envio pré-pagas.
    Os vendedores entregam as dimensões do pacote ou utilizam as dimensões padrão da categoria. Os vendedores trabalham usando as dimensões padrão de cada categoria.
    O ML calcula e fixa os custos de envio com base em origem, destino e dimensões do pacote. O ML calcula e fixa o custo de envio com base em origem, destino, preço do produto e dimensões do pacote.
    O vendedor recebe o pagamento pelo frete imediatamente e é encarregado de fazer o pagamento da etiqueta e da transportadora. O ML é encarregado de fazer a cobrança e o pagamento do frete.
    Aceita frete grátis. O vendedor é encarregado de fazer o envio do produto. Aceita frete grátis. O ML envia a nota fiscal pelo pagamento do frete.
    Os vendedores devem realizar o rastreamento do produto e informar o status do envio aos compradores. O ML realiza o rastreamento do produto e atualiza automaticamente o status do envio para vendedores e compradores.

    Não especificado

    Ao fazer uma POSTAGEM enviando Mercado Envio, quando a categoria não aceitar e o usuário não o tiver ativo, mas, mesmo assim, esta opção é adicionada por default, o item é publicado como shipping modes “not_specified”.
    Caso você não mande as informações de envio do produto, ele será “not_specified” por padrão. Além disso, caso não existam modos que aceitem as dimensões de seu produto, você deverá publicar usando esse modo.
    Você pode realizar uma chamada a nossa API com seu user_id, a categoria na qual você deseja publicar e as dimensões de seu produto para saber os modos de envio habilitados; caso as dimensões não sejam aceitas, você só obterá o modo de envio “not_specified” como resposta.

    Importante: Se a categoria tem ME2 serão ignoradas as dimensões enviadas já que se tem em conta as dimensões estabelecidas na categoria.

    Exemplo:

     curl -X GET https://api.mercadolibre.com/users/:user_id/shipping_modes?category_id=MLB74723&dimensions=10x50x100,30001

    Resposta:

     [
       {
          "mode":"not_specified",
          "shipping_attributes":{
             "dimensions":"optional",
             "costs":"not_allowed",
             "accepted_methods":[
    
             ]
          }
       }
    ]

    Retirada na loja

    O atributo local_pick_up permite aos compradores ter a opção de retirar o produto na loja sem ter despesas de envio. Configure local_pick_up como verdadeiro para que os vendedores ofereçam esta opção aos compradores.


    Artigos relacionados :



    Próximo:
    Sincronização de publicações.

    Please rate this

Guia para produtos

No Mercado Livre, você pode publicar sob diversas condições para depois alterar, pausar, publicar novamente e finalizar as publicações quando quiser, bem como salvar publicações de outros vendedores nos favoritos, fazer e responder perguntas, compartilhar nas redes etc.

Existem diferentes tipos de publicações. De um lado, existem produtos que você pode oferecer. Você oferece o produto, uma ordem de compra é criada, as contrapartes trocam dados de contato, um pagamento é gerado, o produto é entregue, ambas as partes qualificam e pronto.

Publicando esse tipo de produto, você poderá trabalhar com sistemas de gerenciamento de buscas, perguntas e respostas, gerenciar inventário, variações do mesmo produto, gerenciar vendas, envio e qualificações.


Próximo:
Autorização.

Please rate this

Qualificação automática

Segundo as regras de negócios do Mercado Livre, uma vez completada a venda (ou compra), comprador e vendedor devem dar feedback sobre a transação e qualificar mutuamente. Compradores e vendedores consolidam suas reputações com base nas qualificações de seus parceiros comerciais.

Assuntos

Descrição de recursos

Atributo Descrição
fulfilled Verdadeiro ou Falso. Indica se o pedido foi finalizado ou não. Obrigatório.
message Cadeia com menos de 160 caracteres. Obrigatório.
rating Os valores possíveis são: “negative”, “neutral”, caso tenha sido “fulfilled”: “false” ou “positive”’, caso tenha sido “fulfilled”’: “true”. Obrigatório.
reason Campo obrigatório caso tenha sido “fulfilled”: “false”.
restock_item Só para vendedores, caso tenha sido “fulfilled”: “false”. Caso seja “restock_item”: “true”, significa que o pedido não foi finalizado e o produto deve ir para reposição de estoque. A única restrição para a reposição é que o estado do produto não pode ser ”closed”.
has_seller_refunded_money Só para vendedores, quando o pedido é “fulfilled”: “false” e existe um pagamento associado ao pedido. Indica se o usuário emitiu um reembolso para o comprador.

Valores possíveis para motivo

VENDEDOR (Todos os sites, exceto MLB, MPA, MRD e MPT):

  • SELLER_OUT_OF_STOCK
  • SELLER_DIDNT_TRY_TO_CONTACT_BUYER
  • BUYER_NOT_ENOUGH_MONEY
  • BUYER_REGRETS

VENDEDOR (MPA, MRD e MPT):

  • SELLER_REGRETS
  • THEY_DIDNT_ANSWER
  • BUYER_REGRETS
  • SELLER_OUT_OF_STOCK
  • SELLER_DIDNT_TRY_TO_CONTACT_BUYER
  • BUYER_NOT_ENOUGH_MONEY
  • THEY_NOT_HONORING_POLICIES
  • OTHER_MY_RESPONSIBILITY
  • OTHER_THEIR_RESPONSIBILITY

COMPRADOR:

  • SELLER_OUT_OF_STOCK
  • BUYER_PAID_BUT_DID_NOT_RECEIVE
  • OTHER_MY_RESPONSIBILITY

Publicação de feedback

Para associar um feedback a um pedido, envie uma solicitação POST para o pedido, conforme o exemplo a seguir:

 curl -X POST -H "Content-Type: application/json" -d
'{
  "fulfilled": false,
  "rating": "neutral",
  "message": "Operation not completed",
  "reason": "THEY_DIDNT_ANSWER",
  "restock_item": false,
  "has_seller_refunded_money": true
}'

"https://api.mercadolibre.com/orders/{order_Id}/feedback?access_token=$ACCESS_TOKEN"

Resposta ao feedback

Você pode responder ao feedback recebido de seus parceiros comerciais para explicar quais são seus motivos ou apresentar mais informações com uma solicitação POST para a API, incluindo o feedback_id, conforme descrito a seguir:

 curl -X POST -H "Content-Type: application/json" -d'{
"reply":"COMMENT 2."
}' "https://api.mercadolibre.com/feedback/{feedback_Id}/reply?access_token=$ACCESS_TOKEN"

Como verifico o ID de feedback da outra parte?

As informações podem ser obtidas fazendo uma solicitação GET para pedidos. Se você já tiver feito isso, não será necessário fazer novamente, pois o feedback_id está incluído na resposta GET:

 curl -X GET "https://api.mercadolibre.com/orders/{order_Id}?access_token=$ACCESS_TOKEN"

Resposta:

 {
  "id": 825103323,
  "status": "confirmed",
  "status_detail": {
    "code": null,
    "description": null
  },
  "date_created": "2014-03-17T23:27:53.000-04:00",
  "date_closed": "2014-03-17T23:27:53.000-04:00",
  "last_updated": "2014-06-01T16:36:28.000-04:00",
  "order_items": [
    {
      "item": {
        "id": "MLA494467937",
        "title": "Tag Heuer Aquaracer Automatico 43mm Cal16 Day-d Linea Nueva",
        "variation_id": null,
        "variation_attributes": []
      },
      "quantity": 1,
      "unit_price": 24100,
      "currency_id": "ARS"
    }
  ],
  "total_amount": 24100,
  "currency_id": "ARS",
  "buyer": {
    "id": 9981145,
    "nickname": "CARLITOS8665",
    "email": "carlitos8665@gmail.com",
    "phone": {
      "area_code": "011",
      "number": "1544706706",
      "extension": null
    },
    "alternative_phone": {
      "area_code": "011",
      "number": "48027618",
      "extension": null
    },
    "first_name": "Carlos",
    "last_name": "Acuña",
    "billing_info": {
      "doc_type": null,
      "doc_number": null
    }
  },
  "seller": {
    "id": 114499680,
    "nickname": "WATCHES-LUXURY2",
    "email": "watches-luxury2@hotmail.com",
    "phone": {
      "area_code": null,
      "number": "( 011) 1552490473",
      "extension": null
    },
    "alternative_phone": {
      "area_code": null,
      "number": "",
      "extension": null
    },
    "first_name": "carolina soledad",
    "last_name": "casares"
  },
  "payments": [],
  "feedback": {
    "purchase": {
      "id": 5040068164512,
      "date_created": "2014-04-07T11:20:00.000-04:00",
      "fulfilled": true,
      "rating": "positive",
      "status": "active"
    },
    "sale": {
      "id": 5040068160032,
      "date_created": "2014-04-07T11:20:57.000-04:00",
      "fulfilled": true,
      "rating": "neutral",
      "status": "active"
    }
  },
  "shipping": {
    "status": "to_be_agreed"
  },
  "tags": [
    "paid",
    "not_delivered"
  ],
  "mediations": [],
  "application_id": "2568868276694852",
  "hidden_for_seller": false,
  "buying_mode": "buy_it_now"
}

Existe um par de feedback_ids para cada transação: compra e venda. Neste exemplo, o “id”: 5040103892781 é o feedback_id da venda, enquanto o “id”: 5040103885872 corresponde à compra.

Alteração do feedback anterior

Você já aprendeu a realizar uma solicitação GET para obter o feedback_id da outra parte realizando apenas uma solicitação POST para a API, conforme mostrado a seguir:

 curl -X PUT -H "Content-Type: application/json" -d '{
  "fulfilled": true,
  "rating": "positive",
  "message": "It’s ok.",
}' "https://api.mercadolibre.com//feedback/{feedback_id}?access_token=$ACCESS_TOKEN" 



Próximo:
Consultar usuários avançados.

Please rate this

Mercado Envios 1

Este guia explica como trabalhar com todos os recursos oferecidos por nossa API para publicar e gerenciar publicações com sucesso usando a modalidade de envio me1. Ele também explica como publicar números de rastreamento para apresentar informações de rastreamento aos compradores.

Assuntos

Opção pelo ME1

Para começar a utilizar o Mercado Envios modo 1, você deve entrar em contato com seu consultor comercial do Mercado Livre, pois esse modo só é disponibilizado para usuários VIP e é ativado por nossa equipe de desenvolvedores da área Envio para cada caso individual.

Oferecer ME1 em seus produtos

Publicar um anúnco com o me1 é bem fácil. Publique opções de frete grátis e as dimensões do pacote, quando estiverem disponíveis.
Caso os vendedores não tenham incluído as dimensões do pacote na publicação, as dimensões padrão da categoria serão usadas.
URL para POST

 https://api.mercadolibre.com/items?access_token=

JSON para o corpo

 {
   "title":"Item de teste",
   "category_id":"MLA48786",
   "price":1200,
   "currency_id":"ARS",
   "available_quantity":2,
   "buying_mode":"buy_it_now",
   "listing_type_id":"bronze",
   "condition":"new",
   "description":"test",
   "pictures":[
      {
         "source":"http://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg"
      },
      {
         "source":"http://en.wikipedia.org/wiki/File:Teashades.gif"
      }
   ],
   "shipping":{
      "local_pick_up":false,
      "mode": "me1",
      "dimensions":"10x10x20,700"
   }
}

Dimensões

Depois de ter colocado a identificação do modo me1, você pode adicionar dimensões em suas publicações existentes. A alteração das dimensões de um produto não afeta sua relevância nos resultados de busca, e não há nenhuma restrição para alterar as dimensões se o produto tiver vendas.
Apesar de cada categoria ter suas próprias dimensões padrão, você poderá acrescentar os valores que quiser, desde que se encontrem dentro da faixa de valores permitidos. Consulte a tabela para saber os valores autorizados para cada site.

Conhecer as dimensões padrão de uma determinada categoria

Exemplo

 curl -X GET https://api.mercadolibre.com/categories/MLM165702/shipping

Adicionar dimensões

 curl -X PUT -H "Content-Type: application/json" -d ‘{
   "shipping":{
      "dimensions":"10x10x20,700",
      "mode": "me1"
   }
}’ https://api.mercadolibre.com/items/:item_id?access_token=

Frete grátis

Os vendedores podem optar pela publicação de produtos oferecendo um dos modos de frete grátis.
Consulte essa entrada para obter mais detalhes e para saber publicar com frete grátis.

Calcular o custo do envio

Nossa API tem um recurso para calcular o custo do frete para uma dimensão, categoria e CEP determinados.
A calculadora de fretes pode escolher entre dois recursos para melhor se adaptar as seus parâmetros disponíveis; ambos vão retornar o mesmo resultado.
URL

 https://api.mercadolibre.com/users/:user_id/shipping_options?category_id=:category_id&dimensions=:dim&zip_code=13565905
 https://api.mercadolibre.com/items/:item_id/shipping_options?zip_code=13565905

Resposta

 {
  "destination": - {
    "zip_code": "01001000",
    "city": - {
      "id": "BR-SP-44",
      "name": "São Paulo",
    },
    "state": - {
      "id": "BR-SP",
      "name": "São Paulo",
    },
    "country": - {
      "id": "BR",
        "name": "Brasil",
    },
    "extended_attributes": - {
      "address": "Praça da Sé",
      "owner_name": null,
      "zip_code_type": - {
        "type": "LO",
        "description": "Logradouro",
      },
      "city_type": "CP",
      "city_name": "São Paulo",
      "version": 6,
    },
  },
  "options": - [
    - {
      "id": 18310062,
      "name": "Normal",
      "currency_id": "BRL",
      "list_cost": 13.86,
      "cost": 13.86,
      "tracks_shipments_status": "not_verified",
      "display": "recommended",
      "speed": - {
        "shipping": 72,
        "handling": 24,
      },
    },
    - {
      "id": 18310061,
      "name": "Expresso",
      "currency_id": "BRL",
      "list_cost": 14.88,
      "cost": 14.88,
      "tracks_shipments_status": "not_verified",
      "display": "always",
      "speed": - {
        "shipping": 24,
        "handling": 24,
      },
    },
  ],
}

Descrição de atributos

  • currency_id: moeda na qual o preço é cobrado.
  • list cost: custo para essa opção de frete.
  • cost: custo real a ser pago; o custo do “frete grátis” é 0.
  • tracks_shipments_status: indica como poderá ser feito o rastreamento desse modo.
  • tracks_shipments_status. verified: é possível realizar o rastreamento internamente.
  • tracks_shipments_status.not_verified: as informações de rastreamento devem ser fornecidas pelo vendedor.
  • tracks_shipments_status.no: não pode ser rastreado.
  • speed.shipping: promessa de tempo de entrega, expressa em horas.
  • speed.handling: promessa de tempo de processamento, expressa em horas.

Status do envio

Algumas configurações do modo ME1 aceitam rastreamento automático, por isso, atualizaremos o status do envio. Se esse for o caso, você será responsável por enviar um número de rastreamento e atualizar o status do envio. Apesar de não ser obrigatório, sugerimos fazer isso para melhorar suas possibilidades de receber um melhor feedback dos compradores.
Status:
pending
O envio é criado com esse status.
handling
O pagamento para o envio foi recebido.
shipped
A transportadora informou que o envio foi despachado.

Adicionar um número de rastreamento

É fundamental que os vendedores forneçam o número de rastreamento de seus envios para que os compradores possam saber o status de seus pacotes e o tempo de entrega estimado.
Você só deve realizar uma solicitação PUT ao envio com os atributos service_id e tracking_number.

 curl -X PUT -H "Content-Type: application/json" -d  ‘{
  "tracking_number": "TR1234567891",
  "service_id": 1
}’  https://api.mercadolibre.com/shipments/:shipment_id?access_token=&ACCESS_TOKEN

Atualizar o status do envio

Para atualizar o status do envio no pedido, é preciso fazer uma solicitação PUT ao envio.
Para conhecer o shipment_id, você pode fazer uma chamada para pedidos deste modo:

Exemplo

 curl -X GET https://api.mercadolibre.com/orders/{Order_id}/shipments

O status inicial do envio é “pending”. Assim que for identificado o shipping_id, ele poderá ser atualizado para outro status.

Atualizar o status para handling

Exemplo

 curl -X PUT -H "Content-Type: application/json" -d '{"status": "handling"}' https://api.mercadolibre.com/shipments/{Shipment_id}

Atualizar o estado para shipped

Exemplo

 curl -X PUT -H "Content-Type: application/json" -d '{shipping_option: {id:27569508},receiver_address: {"contact":"Roberto Gomez Bolaño","phone":"12345", address_line:"Avenida siempre viva updated", comment:"Casa azul.",zip_code:"90040060", "city": {"id": "TUxCQ1BPUjgwZTJl","name": "Porto Alegre"}, "state": {"id": "BR-RS","name": "Rio Grande do Sul"}, country: {id:"BR", name:"Argentina"}}}' https://api.mercadolibre.com/shipments/{Shipment_id}

Please rate this

Autenticação e Autorização

A plataforma do Mercado Livre permite trabalhar com recursos públicos e privados da API através de chamadas HTTP com os verbos GET, PUT, POST, DELETE e OPTIONS.
O acesso a recursos públicos, como sites e categories disponíveis, pode ser feito de forma anônima, mas os recursos privados e as ações próprias dos usuários, como anunciar um item, responder perguntas ou ver informações de vendas/compras, precisam de autorização mediante um aplicativo.
Por isso, no seguinte guia explicaremos o significado de autenticação e o fluxo de autorização que deve ser aplicado para ter um access_token (senha de acesso a recursos privados por cada usuário que o aplicativo autorizar -válida por 6 horas).
Por exemplo:
Sem access_token (Recurso público)

https://api.mercadolibre.com/users/226384143/

{
  "id": 226384143,
  "nickname": "TETE9928972",
  "registration_date": "2016-08-25T11:36:00.000-04:00",
  "country_id": "AR",
  "address": {
    "state": "AR-C",
    "city": "Palermo"
  },
  "user_type": "normal",
  "tags": [
    "normal",
    "test_user",
    "user_info_verified"
  ],
  "logo": null,
  "points": 100,
  "site_id": "MLA",
  "permalink": "http://perfil.mercadolibre.com.ar/TETE9928972",
  "seller_reputation": {
    "level_id": null,
    "power_seller_status": null,
    "transactions": {
      "period": "historic",
      "total": 1,
      "completed": 1,
      "canceled": 0,
      "ratings": {
        "positive": 0,
        "negative": 0,
        "neutral": 1
      }
    }
  },
  "buyer_reputation": {
    "tags": [
    ]
  },
  "status": {
    "site_status": "active"
  }
}


Com access_token (Recurso privado)

 
 https://api.mercadolibre.com/users/226384143?access_token=$ACCESS_TOKEN

{
  "id": 226384143,
  "nickname": "TETE9928972",
  "registration_date": "2016-08-25T11:36:00.000-04:00",
  "first_name": "Test",
  "last_name": "Test",
  "country_id": "AR",
  "email": "test_user_38730994@testuser.com",
  "identification": {
    "type": "DNI",
    "number": "1111111"
  },
  "address": {
    "state": "AR-C",
    "city": "Palermo",
    "address": "Test Address 123",
    "zip_code": "1414"
  },
  "phone": {
    "area_code": "01",
    "number": "1111-1111",
    "extension": "",
    "verified": false
  },
  "alternative_phone": {
    "area_code": "",
    "number": "",
    "extension": ""
  },
  "user_type": "normal",
  "tags": [
    "normal",
    "test_user",
    "user_info_verified"
  ],
  "logo": null,
  "points": 100,
  "site_id": "MLA",
  "permalink": "http://perfil.mercadolibre.com.ar/TETE9928972",
  "shipping_modes": [
    "custom",
    "not_specified"
  ],
  "seller_experience": "ADVANCED",
  "bill_data": {
    "accept_credit_note": null
  },
  "seller_reputation": {
    "level_id": null,
    "power_seller_status": null,
    "transactions": {
      "period": "historic",
      "total": 1,
      "completed": 1,
      "canceled": 0,
      "ratings": {
        "positive": 0,
        "negative": 0,
        "neutral": 1
      }
    }
  },
  "buyer_reputation": {
    "canceled_transactions": 0,
    "transactions": {
      "period": "historic",
      "total": null,
      "completed": null,
      "canceled": {
        "total": null,
        "paid": null
      },
      "unrated": {
        "total": null,
        "paid": null
      },
      "not_yet_rated": {
        "total": null,
        "paid": null,
        "units": null
      }
    },
    "tags": [
    ]
  },
  "status": {
    "site_status": "active",
    "list": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "buy": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "sell": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "billing": {
      "allow": true,
      "codes": [
      ]
    },
    "mercadopago_tc_accepted": true,
    "mercadopago_account_type": "personal",
    "mercadoenvios": "not_accepted",
    "immediate_payment": false,
    "confirmed_email": false,
    "user_type": "simple_registration",
    "required_action": ""
  },
  "credit": {
    "consumed": 101.1,
    "credit_level_id": "MLA1"
  }
}

Conteúdos:

Autenticação

Autenticação é o ato ou processo para o estabelecimento ou confirmação de algo ou alguém como real.
A autenticação de uma pessoa consiste na verificação de sua identidade em função de um ou vários fatores, garantindo que os dados enviados sejam corretos.

Alguns métodos de autenticação são:

  • Biomédicos, digitais, retina do olho, etc.
  • Cartões inteligentes contendo informações dos certificados de um usuário.
  • Métodos clássicos baseados em senha.
  • Por exemplo, para acessar o Mercado Livre a autenticação é feita através do login (usuário e senha).

login

Autorização

Autorização é o processo pelo qual é permitido que alguém ou algo acesse recursos privados.
Dentro da autorização deverão ser definidos os recursos e operações que podem ser realizados, pois não é o mesmo outorgar permissões de somente leitura, leitura ou escrita.

Como conseguir a autorização? Através do Protocolo OAuth 2.0, um dos mais utilizados em plataformas abertas (Twitter, Facebook, etc.) e método seguro para trabalhar com recursos privados.

OAuth oferece:

  • Confidencialidade, o usuário não deverá revelar sua senha em momento nenhum.
  • Integridade, só aplicativos que tiverem a permissão poderão ver dados privados.
  • Disponibilidade, os dados sempre estarão disponíveis no momento em que forem necessários.

Dentro deste protocolo há 4 modos de funcionamento possíveis denominados Grant Types:

– The Authorization Code Grant Type (Server Side)
– The Implicit Grant Type (Client Side)
– The Password Credentials Grant Type
– The Client Credentials Grant Type

Embora cada um destes seja utilizado para diferentes finalidades, dependendo do serviço que esteja sendo construído, a seguir só explicaremos os dois primeiros, pois eles permitem trabalhar com nossos recursos e gerar ferramentas para todos os usuários do Mercado Livre.

Client-side

O fluxo de autorização Client side é o adequado para os aplicativos que executam código do lado do cliente, por exemplo, aplicativos desenvolvidos em linguagem javascript/ajax, Angular ou aplicativos mobile.
Para conhecer mais detalhes sobre este fluxo, recomendamos ver o tutorial “Autorização Client-Side”.

Server-side

O fluxo de autorização Server side é o mais adequado para os aplicativos que executam código do lado do servidor, por exemplo, aplicativos desenvolvidos em linguagem Java, Grails, Go, etc.
Notas: Esta opção será útil para aplicativos que executam cron jobs para atualizar estoque de produtos ou operar sem que um usuário esteja interagindo diretamente com o aplicativo.
Para conhecer mais detalhes sobre este fluxo, recomendamos ver o tutorial “Autorização Server-Side”.

Tenha seu access_token!

Introduza o ID do aplicativo criado:

*Favor, coloque um ID valido do aplicativo
User informationJSON Response

-

Uso dos nossos SDK

Mediante o uso dos nossos SDKs, o processo de autorização será mais simples, pois poupará a codificação de todo o protocolo OAuth de zero.
Nossa comunidade já está utilizando!
Oferecemos SDK para:

Se você descobrir uma melhoria ou tiver uma sugestão, pode compartilhá-la com a comunidade, gerando um Pull Request dentro do nosso repositório GitHub.

Considerações

Validade e expiração de tokens
Quando você obtém um access_token, este terá validade imediatamente e poderá ser utilizado para realizar solicitações para a API durante um período limitado de 6 horas.
Alguns eventos podem invalidar um access_token antes do tempo de expiração. Por exemplo: alteração de senha pelo usuário, atualização do App Secret por um aplicativo e, obviamente, a revogação de permissões do seu aplicativo pelo usuário.

Referências de código de erro

Error_code Mensagem de erro Possível solução
invalid_client

client_id ou client_secret inválido.

O client_id e/ou client_secret fornecido não é válido. Verifique as informações de seu aplicativo e os parâmetros client_id e client_secret.
invalid_grant

Para criar um token de acesso, o usuário deverá ter uma sessão ativa ou seu aplicativo deverá solicitar autorização para o escopo offline_access.

A concessão de autorização fornecida não é válida, expirou, foi revogada ou não corresponde à URL de redirecionamento usada na solicitação de autorização. Verifique se o parâmetro redirect_uri é igual ao configurado em seu aplicativo (Gerenciador de Aplicações); caso isso não resolva o problema, faça envie nova solicitação para obter um novo código.
invalid_grant

Erro na validação da concessão. Pode ser que o código de autorização ou o token de atualização tenha expirado ou já tenha sido usado.

Expirou ou já foi usado. Envie uma nova solicitação para obter um novo código ou refresh_token.
invalid_grant

client_id não corresponde ao original.

O ID do client não coincide. Não foi encontrado o parâmetro client_id; para obter seu client_id, consulte seu aplicativo (Gerenciador de Aplicações).
invalid_grant

redirect_url não corresponde à original.

URL de redirecionamento não corresponde à original. Parâmetro redirect_url diferente do configurado em seu aplicativo; para obter redirect_url, consulte o aplicativo (Gerenciador de Aplicações)
invalid_scope

Scope inválido.

O escopo solicitado não é válido, é desconhecido ou é mal formado. Os valores permitidos para o escopo do parâmetro são: “offline_access”, “write”, “read”.
invalid_request

Quantidade incorreta de parâmetros com valores duplicados.

A solicitação não inclui um parâmetro obrigatório, inclui um parâmetro ou valor de parâmetro não aceito ou está mal formada. Verifique se os parâmetros enviados são válidos e não são duplicados.
unsupported_grant_type

Tipo de concessão não aceito: ${0}.

O servidor de autorização não aceita o tipo de concessão. Os valores permitidos para grant_type são “authorization_code” ou “refresh_token”.
forbidden

A chamada não autoriza o acceso ao recurso.

A chamada não autoriza o acceso Se utiliza o token de outro usuário.



Artigos relacionados :
Consulta de usuários.


Próximo:
Server side.
Client side.

Please rate this

Análise e Benchmarking

Se sua intenção é que os vendedores usem o aplicativo que você desenvolveu para potencializar seus negócios, leve em conta que existem muitíssimas informações e que elas serão úteis para ajudar vendedores a criar estratégias de venda e tomar decisões certas em tempo hábil.

Considere que, usando nossa API, você poderá realizar as seguintes ações:

Métricas de vendas

A esta altura, você já deve saber que as vendas no Mercado Livre estão no recurso Orders, o qual você poderá utilizar para medir o volume de vendas de um produto, saber o número de vendas mensais de seu vendedor, o resultado de cada uma delas e o valor gerado para poder oferecê-los a seus vendedores a fim de que conheçam os dados exatos sobre o desempenho de seus negócios no Mercado Livre.

Acompanhe o guia do recurso Orders e saiba tomar métricas de vendas.

Métricas de visitantes e perguntas

Pode ser útil manter métricas de visitantes e perguntas para poder utilizar tais informações para agir a respeito da reação dos compradores diante dos anúncios que você publicou. Por exemplo, você pode testar produtos ou imagens e observar se há aumento ou diminuição no número de visitantes e pode testar diversas planilhas de descrições e especificações para verificar se os usuários precisam fazer muitas perguntas antes de fazer uma oferta por seus produtos, ou se eles compram rápido. Também será útil para saber quais as perguntas mais frequentes e desenvolver um recurso que sugira respostas para elas.
Para isso, você pode usar nosso recurso de visitas e de busca de perguntas.

Métricas de reputação

A reputação é o rosto público que cada usuário do Mercado Livre tem. Por isso, os vendedores com melhor reputação aumentarão suas chances de vender em relação a outros usuários. Lembre-se disso e faça com que seus vendedores saibam da importância de dar e receber feedback. Consulte este guia para saber como trabalhar com o recurso de feedback.

Tendências do mercado

Ajude os vendedores que usam seu aplicativo a saber quais são as palavras mais buscadas em nosso Marketplace. Leia este artigo para usar nosso recurso de tendências.

Comparação de preços

Com seu sistema, você pode sugerir aos vendedores o melhor preço para vender seus produtos para manter sua competitividade analisando o preço do mesmo tipo de produto publicado no Mercado Livre. Para isso, é conveniente aprender a buscar produtos por categoria, consultar o campo de preço desses produtos e calcular a média.



Próximo:
MercadoLíderes e Lojas Oficiais.

Please rate this

Consulta de usuários

Caso você já tenha conseguido registrar seu aplicativo, tenha feito a autenticação e gerado um usuário de teste, você deverá aprender a trabalhar com usuários (vendedores e compradores):

O tutorial abaixo o ensinará a realizar as seguintes ações:

Consultar meus dados pessoais

Se você já tiver feito login no Mercado Livre e tiver um token, poderá fazer a seguinte chamada para saber quais são as informações relacionadas a seu usuário:

Exemplo:

 curl  - X GET https://api.mercadolibre.com/users/me?access_token=$ACCESS_TOKEN

Resposta:

 {
  "id": 202593498,
  "nickname": "TETE2870021",
  "registration_date": "2016-01-06T11:31:42.000-04:00",
  "first_name": "Test",
  "last_name": "Test",
  "country_id": "AR",
  "email": "test_user_50698062@testuser.com",
  "identification": {
    "type": "DNI",
    "number": "1111111"
  },
  "address": {
    "state": "AR-C",
    "city": "Palermo",
    "address": "Test Address 123",
    "zip_code": "1414"
  },
  "phone": {
    "area_code": "01",
    "number": "1111-1111",
    "extension": "",
    "verified": false
  },
  "alternative_phone": {
    "area_code": "",
    "number": "",
    "extension": ""
  },
  "user_type": "real_estate_agency",
  "tags": [
    "real_estate_agency",
    "test_user",
    "user_info_verified"
  ],
  "logo": null,
  "points": 100,
  "site_id": "MLA",
  "permalink": "http://perfil.mercadolibre.com.ar/TETE2870021",
  "shipping_modes": [
    "custom",
    "not_specified"
  ],
  "seller_experience": "ADVANCED",
  "seller_reputation": {
    "level_id": null,
    "power_seller_status": null,
    "transactions": {
      "period": "historic",
      "total": 0,
      "completed": 0,
      "canceled": 0,
      "ratings": {
        "positive": 0,
        "negative": 0,
        "neutral": 0
      }
    }
  },
  "buyer_reputation": {
    "canceled_transactions": 0,
    "transactions": {
      "period": "historic",
      "total": null,
      "completed": null,
      "canceled": {
        "total": null,
        "paid": null
      },
      "unrated": {
        "total": null,
        "paid": null
      },
      "not_yet_rated": {
        "total": null,
        "paid": null,
        "units": null
      }
    },
    "tags": [
    ]
  },
  "status": {
    "site_status": "active",
    "list": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "buy": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "sell": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "billing": {
      "allow": true,
      "codes": [
      ]
    },
    "Mercado Pago_tc_accepted": true,
    "Mercado Pago_account_type": "personal",
    "Mercado Envios": "not_accepted",
    "immediate_payment": false,
    "confirmed_email": false,
    "user_type": "eventual",
    "required_action": ""
  },
  "credit": {
    "consumed": 100,
    "credit_level_id": "MLA1"
  }
}

Consultar dados de terceiros

Se você quiser consultar dados de usuários, terceiros poderá identificar dois níveis de informações: dados públicos, aqueles que podem ser encontrados navegando pelo perfil no Mercado Livre de qualquer outro usuário, Ex.: http://perfil.mercadolibre.com.ar/TETE2870021 e dados privados, que não poderão ser visualizados, a menos que você tenha permissões de usuário e um token válido para trabalhar em nome dele.
Em ambos os casos, a primeira coisa que você deverá conhecer é o id do usuário.

Obter o Id de usuário

Caso você não conheça o id, mas saiba o apelido e o site ao qual pertence um usuário, poderá obter seu Id fazendo a seguinte busca:

Chamada:

 https://api.mercadolibre.com/sites/{Site_id}/search?nickname={Nickname}

Exemplo:

 https://api.mercadolibre.com/sites/MLA/search?nickname=TETE2870021

Resposta:

 {
  "site_id": "MLA",
  "seller": {
    "id": 202593498,
    "seller_reputation": {
      "power_seller_status": null
    },
    "real_estate_agency": false,
    "car_dealer": false,
    "tags": [
    ]
  },
  "paging": {
    "total": 2,
    "offset": 0,
    "limit": 50
  },
  "results": [
    {
      "id": "MLA598903377",
      "site_id": "MLA",
      "title": "Test Item - Nao Ofertar",
      "subtitle": null,
      "seller": {
        "id": 202593498,
        "power_seller_status": null,
        "car_dealer": false,
        "real_estate_agency": false,
        "tags": [
        ]
      },
      "price": 200,
      "currency_id": "ARS",
      "available_quantity": 1,
      "sold_quantity": 0,
      "buying_mode": "buy_it_now",
      "listing_type_id": "bronze",
      "stop_time": "2016-03-06T17:16:49.000Z",
      "condition": "new",
      "permalink": "http://articulo.mercadolibre.com.ar/MLA-598903377-test-item-nao-ofertar-_JM",
      "thumbnail": "http://mla-s2-p.mlstatic.com/546311-MLA20539702714_012016-I.jpg",
      "accepts_Mercado Pago": true,
      "installments": {
        "quantity": 6,
        "amount": 42.33,
        "currency_id": "ARS"
      },
      "address": {
        "state_id": "AR-C",
        "state_name": "Capital Federal",
        "city_id": "",
        "city_name": "Palermo"
      },
      "shipping": {
        "free_shipping": false,
        "mode": "not_specified"
      },
      "seller_address": {
        "id": 175597910,
        "comment": "",
        "address_line": "",
        "zip_code": "",
        "country": {
          "id": "AR",
          "name": "Argentina"
        },
        "state": {
          "id": "AR-C",
          "name": "Capital Federal"
        },
        "city": {
          "id": "",
          "name": "Palermo"
        },
        "latitude": -34.571148,
        "longitude": -58.423298
      },
      "attributes": [
      ],
      "original_price": null,
      "category_id": "MLA374515",
      "official_store_id": null
    },
    {
      "id": "MLA599121050",
      "site_id": "MLA",
      "title": "Item De Test - No Ofertar",
      "subtitle": null,
      "seller": {
        "id": 202593498,
        "power_seller_status": null,
        "car_dealer": false,
        "real_estate_agency": false,
        "tags": [
        ]
      },
      "price": 1000,
      "currency_id": "ARS",
      "available_quantity": 1,
      "sold_quantity": 0,
      "buying_mode": "buy_it_now",
      "listing_type_id": "bronze",
      "stop_time": "2016-03-07T20:12:41.000Z",
      "condition": "new",
      "permalink": "http://articulo.mercadolibre.com.ar/MLA-599121050-item-de-test-no-ofertar-_JM",
      "thumbnail": "http://mla-s2-p.mlstatic.com/493311-MLA20538550251_012016-I.jpg",
      "accepts_Mercado Pago": true,
      "installments": {
        "quantity": 6,
        "amount": 211.65,
        "currency_id": "ARS"
      },
      "address": {
        "state_id": "AR-C",
        "state_name": "Capital Federal",
        "city_id": "",
        "city_name": "Palermo"
      },
      "shipping": {
        "free_shipping": false,
        "mode": "not_specified"
      },
      "seller_address": {
        "id": 175597910,
        "comment": "",
        "address_line": "",
        "zip_code": "",
        "country": {
          "id": "AR",
          "name": "Argentina"
        },
        "state": {
          "id": "AR-C",
          "name": "Capital Federal"
        },
        "city": {
          "id": "",
          "name": "Palermo"
        },
        "latitude": -34.571148,
        "longitude": -58.423298
      },
      "attributes": [
      ],
      "original_price": null,
      "category_id": "MLA90105",
      "official_store_id": null
    }
  ],
  "secondary_results": [
  ],
  "related_results": [
  ],
  "sort": {
    "id": "relevance",
    "name": "More relevant"
  },
  "available_sorts": [
    {
      "id": "price_asc",
      "name": "Lower price"
    },
    {
      "id": "price_desc",
      "name": "Higher price"
    }
  ],
  "filters": [
  ],
  "available_filters": [
    {
      "id": "category",
      "name": "Categories",
      "type": "text",
      "values": [
        {
          "id": "MLA1648",
          "name": "Computación",
          "results": 1
        },
        {
          "id": "MLA1430",
          "name": "Ropa y Accesorios",
          "results": 1
        }
      ]
    },
    {
      "id": "state",
      "name": "Location",
      "type": "text",
      "values": [
        {
          "id": "TUxBUENBUGw3M2E1",
          "name": "Capital Federal",
          "results": 2
        }
      ]
    },
    {
      "id": "accepts_Mercado Pago",
      "name": "Mercado Pago filter",
      "type": "boolean",
      "values": [
        {
          "id": "yes",
          "name": "With Mercado Pago",
          "results": 2
        }
      ]
    },
    {
      "id": "installments",
      "name": "Pago",
      "type": "text",
      "values": [
        {
          "id": "yes",
          "name": "Installments",
          "results": 2
        },
        {
          "id": "no_interest",
          "name": "Sin interés",
          "results": 0
        }
      ]
    },
    {
      "id": "condition",
      "name": "Condition filter",
      "type": "text",
      "values": [
        {
          "id": "new",
          "name": "New",
          "results": 2
        }
      ]
    },
    {
      "id": "buying_mode",
      "name": "Buying mode filter",
      "type": "text",
      "values": [
        {
          "id": "buy_it_now",
          "name": "Buy it now",
          "results": 2
        }
      ]
    },
    {
      "id": "has_pictures",
      "name": "Items with images filter",
      "type": "boolean",
      "values": [
        {
          "id": "yes",
          "name": "With pictures",
          "results": 2
        }
      ]
    }
  ]
}

Consultar informações públicas

Desse modo, você já conhece o Id do usuário, portanto pode realizar a chamada ao recurso users da seguinte maneira, obtendo as informações públicas do usuário que quiser:

Chamada:

 curl GET -X  https://api.mercadolibre.com/users/{User_id}

Exemplo:

 GET -X  https://api.mercadolibre.com/users/202593498

Resposta:

 {
  "id": 202593498,
  "nickname": "TETE2870021",
  "registration_date": "2016-01-06T11:31:42.000-04:00",
  "country_id": "AR",
  "address": {
    "state": "AR-C",
    "city": "Palermo"
  },
  "user_type": "normal",
  "tags": [
    "normal",
    "test_user",
    "user_info_verified"
  ],
  "logo": null,
  "points": 100,
  "site_id": "MLA",
  "permalink": "http://perfil.mercadolibre.com.ar/TETE2870021",
  "seller_reputation": {
    "level_id": null,
    "power_seller_status": null,
    "transactions": {
      "period": "historic",
      "total": 0,
      "completed": 0,
      "canceled": 0,
      "ratings": {
        "positive": 0,
        "negative": 0,
        "neutral": 0
      }
    }
  },
  "buyer_reputation": {
    "tags": [
    ]
  },
  "status": {
    "site_status": "active"
  }
}

Consultar informações privadas de um usuário que aceitou o uso de meu aplicativo

Para obter os dados privados de um usuário, você apenas deve adicionar o ACCESS_TOKEN do usuário ao final da chamada que fez anteriormente.

Chamada:

 curl GET -X  https://api.mercadolibre.com/users/{User_id}?access_token=¢ACCESS_TOKEN

Exemplo:

 curl GET -X  https://api.mercadolibre.com/users/202593498?access_token=¢ACCESS_TOKEN

Resposta:

 {
  "id": 202593498,
  "nickname": "TETE2870021",
  "registration_date": "2016-01-06T11:31:42.000-04:00",
  "first_name": "Test",
  "last_name": "Test",
  "country_id": "AR",
  "email": "test_user_50698062@testuser.com",
  "identification": {
    "type": "DNI",
    "number": "1111111"
  },
  "address": {
    "state": "AR-C",
    "city": "Palermo",
    "address": "Test Address 123",
    "zip_code": "1414"
  },
  "phone": {
    "area_code": "01",
    "number": "1111-1111",
    "extension": "",
    "verified": false
  },
  "alternative_phone": {
    "area_code": "",
    "number": "",
    "extension": ""
  },
  "user_type": "normal",
  "tags": [
    "normal",
    "test_user",
    "user_info_verified"
  ],
  "logo": null,
  "points": 100,
  "site_id": "MLA",
  "permalink": "http://perfil.mercadolibre.com.ar/TETE2870021",
  "shipping_modes": [
    "custom",
    "not_specified"
  ],
  "seller_experience": "ADVANCED",
  "seller_reputation": {
    "level_id": null,
    "power_seller_status": null,
    "transactions": {
      "period": "historic",
      "total": 0,
      "completed": 0,
      "canceled": 0,
      "ratings": {
        "positive": 0,
        "negative": 0,
        "neutral": 0
      }
    }
  },
  "buyer_reputation": {
    "canceled_transactions": 0,
    "transactions": {
      "period": "historic",
      "total": null,
      "completed": null,
      "canceled": {
        "total": null,
        "paid": null
      },
      "unrated": {
        "total": null,
        "paid": null
      },
      "not_yet_rated": {
        "total": null,
        "paid": null,
        "units": null
      }
    },
    "tags": [
    ]
  },
  "status": {
    "site_status": "active",
    "list": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "buy": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "sell": {
      "allow": true,
      "codes": [
      ],
      "immediate_payment": {
        "required": false,
        "reasons": [
        ]
      }
    },
    "billing": {
      "allow": true,
      "codes": [
      ]
    },
    "Mercado Pago_tc_accepted": true,
    "Mercado Pago_account_type": "personal",
    "Mercado Envios": "not_accepted",
    "immediate_payment": false,
    "confirmed_email": false,
    "user_type": "eventual",
    "required_action": ""
  },
  "credit": {
    "consumed": 100,
    "credit_level_id": "MLA1"
  }
}

Como pode ver, dessa vez você obteve uma quantidade maior de dados do usuário: nome e sobrenome, e-mail, telefone, endereço etc. Solicitamos que não revele esses dados publicamente, pois isso pode prejudicar o usuário.

Atualizar dados de usuário

Você pode utilizar nossos recursos para atualizar suas informações de usuário depois do cadastramento. Isso é feito normalmente, porque nessa instância ninguém solicitará que você preencha seu endereço ou identificação pessoal, mas você deverá mantê-los completos, ou não poderá publicar produtos no Mercado Livre.
Para atualizar suas informações de usuário, veja o exemplo abaixo:

 curl -X PUT -H "Content-Type: application/json" -d
{
"identification_type": "DNI",
"identification_number": "33333333",
"address": "Triunvirato 5555",
"state":"AR-C",
"city":"Capital Federal",
"zip_dode": "1431",
"phone":{
        "area_code":"011",
        "number":"4444-4444",
        "extension":"001"
        },
"first_name":"Pedro",
"last_name": "Picapiedras",
"company":{
          "corporate_name":"Acme",
          "brand_name":"Acme Company"
          },
"Mercado Envios": "accepted"
}

https://api.mercadolibre.com/users/{User_id}?access_token= 

Parabéns! Você atualizou suas informações de usuário! Lembre-se de enviar somente os campos que quiser atualizar.

Usuario Vendedor com Mercado Pago obrigatório

Se você deseja que todas suas operações sejam exclusivamente a través de Mercado Pago deverão indicar na informação de seu usuário que só aceita essa modalidade. Deste jeito ficará desabilitado a opção “Acordar com o vendedor”.

PUT:

 curl -XPUT -H "Content-type: application/json" -d 

'{
    "reason": "by_user"
}'

https://api.mercadolibre.com/users/{user_id}/immediate_payment?access_token=$ACCESS_TOKEN

Se quiser deixar de aceitar como única opção Mercado Pago, pode apagar a marca do seguinte jeito:

 curl -XDELETE 

'https://api.mercadolibre.com/users/{user_id}/immediate_payment/by_user?access_token=$ACCESS_TOKEN

Códigos de erro comuns

206 – Partial content: muitas vezes, o recurso Users API retorna um código 206 – Partial content. Isso ocorrerá quando a solicitação de alguns dos dados falhar (por exemplo, reputação do usuário) informando que você receberá uma resposta incompleta.



Próximo:
Lojas oficiais.

Please rate this

Variações

Conteúdos:

O que é uma variação?

Neste guia, comentaremos o que você deve fazer, por exemplo, no caso de querer anunciar um mesmo modelo de Sapatos mas em diversas Cores e Tamanhos.
Com variações, você poderá ter todas as variantes do produto em um mesmo anúncio, inclusive tendo um estoque diferencial para cada um. Assim, quando você receber uma compra, poderá ver na ordem de compra a cor e o tamanho escolhido pelo comprador, facilitando o processo de pós-venda.
Levando em conta que na VIP do produto anunciado o acima mencionado será visualizado da seguinte maneira:

Boas novas! As variações não só estão disponíveis em vestuário, você também pode utilizá-las em outras categorias. Por exemplo, Furadeiras Elétricas, variando produtos conforme a tensão. Assim, será possível vender em um mesmo anúncio furadeiras de 110V e 220V.

Benefícios

  • O comprador pode ver dentro de um mesmo anúncio as diferentes variantes e a disponibilidade de cada uma.
  • Diminui as consultas entre comprador e vendedor.
  • Na ordem de compra aparecerá a cor e o tamanho escolhido pelo comprador, facilitando o processo de pós-venda e evitando reclamações.
  • Permite maior controle e organização do estoque.
  • Além disso, é possível enviar o código interno de inventário (SKU) para cada variante. Isto será de grande utilidade para os vendedores que monitoram o estoque por inventário.

Considerações

  • O preço deverá ser o mesmo para cada variação. Embora via API é permitido colocar diferentes preços para cada variação, na VIP só será visualizado o preço mais alto, o qual também será considerado no momento do pagamento.

Anunciar produtos com variações

Para anunciar produtos com variações, você deve escolher a categoria em que quiser anunciar; pode identificá-la quando o campo attribute_types conter variations. Depois, você deverá consultar a API de atributos e identificar os atributos segundo os quais seus produtos podem variar através da tag allow_variations.
Além disso, lembre que você pode enviar a propriedade attributes para cada variação, especificando características do produto próprias de cada variante do seu produto. Os atributos disponíveis nesta seção serão identificados na API pela tag variation_attribute. Por exemplo, se você estiver vendendo um celular em diversas cores, e cada um deles tiver seu código de barras, poderá carregá-lo para cada variante na seção attributes.
Para saber quais são os atributos obrigatórios de uma variação, devem ser procurados aqueles contendo a tag required = true, se houver uma categoria allow variation mas sem atributos com esta tag, quer dizer que podem ser criados produtos sem variações.

Atualmente, os atributos com a tag variation_attribute não são mostrados na VIP, mas estarão disponíveis no futuro. Convidamos você a começar a completá-los a fim de se preparar para as novas funcionalidades relacionadas com esses atributos!
Vamos supor que você quer vender um ventilador variando as cores Marrom e Preto, mas também carregar o código de barras (EAN); para isso, você terá que ir para a API de atributos dessa categoria e corroborar se os atributos Cor e EAN têm as tags allow_variations e variation_attribute respectivamente.

Exemplo

https://api.mercadolibre.com/categories/MLA126186/attributes

Resposta

[
  {
    "id": "BRAND",
    "name": "Marca",
    "tags": {
      "fixed": true
    },
    "value_type": "string",
    "value_max_length": 60,
    "values": [
      {
        "id": "5601",
        "name": "BGH"
      }
    ],
    "attribute_group_id": "MAIN",
    "attribute_group_name": "Atributos Principales"
  },
  {
    "id": "COLOR",
    "name": "Color",
    "tags": {
      "allow_variations": true,
      "hidden": true
    },
    "type": "color",
    "value_type": "list",
    "values": [
      {
        "id": "52049",
        "name": "Negro",
        "metadata": {
          "rgb": "000000"
        }
      },
      {
        "id": "51993",
        "name": "Rojo",
        "metadata": {
          "rgb": "FF0000"
        }
      },
      {
        "id": "52035",
        "name": "Violeta",
        "metadata": {
          "rgb": "9F00FF"
        }
      },
      {
        "id": "52028",
        "name": "Azul",
        "metadata": {
          "rgb": "1717FF"
        }
      },
      {
        "id": "52005",
        "name": "Marrón",
        "metadata": {
          "rgb": "A0522D"
        }
      },
      {
        "id": "52051",
        "name": "Gris oscuro",
        "metadata": {
          "rgb": "666666"
        }
      },
      {
        "id": "52000",
        "name": "Naranja",
        "metadata": {
          "rgb": "FF8C00"
        }
      },
      {
        "id": "52014",
        "name": "Verde",
        "metadata": {
          "rgb": "0DA600"
        }
      },
      {
        "id": "51994",
        "name": "Rosa",
        "metadata": {
          "rgb": "FCB1BE"
        }
      },
      {
        "id": "283164",
        "name": "Dorado",
        "metadata": {
          "rgb": "FFD700"
        }
      },
      {
        "id": "52007",
        "name": "Amarillo",
        "metadata": {
          "rgb": "FFED00"
        }
      },
      {
        "id": "52053",
        "name": "Plateado",
        "metadata": {
          "rgb": "CBCFD0"
        }
      },
      {
        "id": "283165",
        "name": "Gris claro",
        "metadata": {
          "rgb": "E1E1E1"
        }
      },
      {
        "id": "52021",
        "name": "Celeste",
        "metadata": {
          "rgb": "83DDFF"
        }
      },
      {
        "id": "52055",
        "name": "Blanco",
        "metadata": {
          "rgb": "FFFFFF"
        }
      },
      {
        "id": "51998",
        "name": "Bordó",
        "metadata": {
          "rgb": "830500",
          "parent_id": "51993"
        }
      },
      {
        "id": "51996",
        "name": "Terracota",
        "metadata": {
          "rgb": "C63633",
          "parent_id": "51993"
        }
      },
      {
        "id": "283149",
        "name": "Coral",
        "metadata": {
          "rgb": "FA8072",
          "parent_id": "51993"
        }
      },
      {
        "id": "283148",
        "name": "Coral claro",
        "metadata": {
          "rgb": "F9AC95",
          "parent_id": "51993"
        }
      },
      {
        "id": "52047",
        "name": "Violeta oscuro",
        "metadata": {
          "rgb": "4E0087",
          "parent_id": "52035"
        }
      },
      {
        "id": "283162",
        "name": "Índigo",
        "metadata": {
          "rgb": "7A64C6",
          "parent_id": "52035"
        }
      },
      {
        "id": "52038",
        "name": "Lila",
        "metadata": {
          "rgb": "CC87FF",
          "parent_id": "52035"
        }
      },
      {
        "id": "52036",
        "name": "Lavanda",
        "metadata": {
          "rgb": "D9D2E9",
          "parent_id": "52035"
        }
      },
      {
        "id": "52033",
        "name": "Azul oscuro",
        "metadata": {
          "rgb": "013267",
          "parent_id": "52028"
        }
      },
      {
        "id": "283161",
        "name": "Azul marino",
        "metadata": {
          "rgb": "0F5299",
          "parent_id": "52028"
        }
      },
      {
        "id": "52031",
        "name": "Azul acero",
        "metadata": {
          "rgb": "6FA8DC",
          "parent_id": "52028"
        }
      },
      {
        "id": "52029",
        "name": "Azul claro",
        "metadata": {
          "rgb": "DCECFF",
          "parent_id": "52028"
        }
      },
      {
        "id": "283155",
        "name": "Marrón oscuro",
        "metadata": {
          "rgb": "5D3806",
          "parent_id": "52005"
        }
      },
      {
        "id": "283154",
        "name": "Marrón claro",
        "metadata": {
          "rgb": "AF8650",
          "parent_id": "52005"
        }
      },
      {
        "id": "283153",
        "name": "Suela",
        "metadata": {
          "rgb": "FAEBD7",
          "parent_id": "52005"
        }
      },
      {
        "id": "52001",
        "name": "Beige",
        "metadata": {
          "rgb": "F5F3DC",
          "parent_id": "52005"
        }
      },
      {
        "id": "283152",
        "name": "Chocolate",
        "metadata": {
          "rgb": "9B3F14",
          "parent_id": "52000"
        }
      },
      {
        "id": "283151",
        "name": "Naranja oscuro",
        "metadata": {
          "rgb": "D2691E",
          "parent_id": "52000"
        }
      },
      {
        "id": "283150",
        "name": "Naranja claro",
        "metadata": {
          "rgb": "FDAF20",
          "parent_id": "52000"
        }
      },
      {
        "id": "52003",
        "name": "Piel",
        "metadata": {
          "rgb": "FFE4C4",
          "parent_id": "52000"
        }
      },
      {
        "id": "52019",
        "name": "Verde oscuro",
        "metadata": {
          "rgb": "003D00",
          "parent_id": "52014"
        }
      },
      {
        "id": "283158",
        "name": "Verde musgo",
        "metadata": {
          "rgb": "3F7600",
          "parent_id": "52014"
        }
      },
      {
        "id": "283157",
        "name": "Verde limón",
        "metadata": {
          "rgb": "73E129",
          "parent_id": "52014"
        }
      },
      {
        "id": "52015",
        "name": "Verde claro",
        "metadata": {
          "rgb": "9FF39F",
          "parent_id": "52014"
        }
      },
      {
        "id": "52042",
        "name": "Fucsia",
        "metadata": {
          "rgb": "FF00EC",
          "parent_id": "51994"
        }
      },
      {
        "id": "283163",
        "name": "Rosa chicle",
        "metadata": {
          "rgb": "FF51A8",
          "parent_id": "51994"
        }
      },
      {
        "id": "52045",
        "name": "Rosa pálido",
        "metadata": {
          "rgb": "D06EA8",
          "parent_id": "51994"
        }
      },
      {
        "id": "52043",
        "name": "Rosa claro",
        "metadata": {
          "rgb": "FADBE2",
          "parent_id": "51994"
        }
      },
      {
        "id": "52012",
        "name": "Dorado oscuro",
        "metadata": {
          "rgb": "BF9000",
          "parent_id": "52007"
        }
      },
      {
        "id": "52010",
        "name": "Ocre",
        "metadata": {
          "rgb": "EACB53",
          "parent_id": "52007"
        }
      },
      {
        "id": "283156",
        "name": "Caqui",
        "metadata": {
          "rgb": "F0E68C",
          "parent_id": "52007"
        }
      },
      {
        "id": "52008",
        "name": "Crema",
        "metadata": {
          "rgb": "FFFFE0",
          "parent_id": "52007"
        }
      },
      {
        "id": "52024",
        "name": "Azul petróleo",
        "metadata": {
          "rgb": "1E6E7F",
          "parent_id": "52021"
        }
      },
      {
        "id": "283160",
        "name": "Turquesa",
        "metadata": {
          "rgb": "40E0D0",
          "parent_id": "52021"
        }
      },
      {
        "id": "52022",
        "name": "Agua",
        "metadata": {
          "rgb": "E0FFFF",
          "parent_id": "52021"
        }
      },
      {
        "id": "283159",
        "name": "Cyan",
        "metadata": {
          "rgb": "00FFFF",
          "parent_id": "52021"
        }
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "PACKAGE_HEIGHT",
    "name": "Altura del paquete",
    "tags": {
      "hidden": true,
      "read_only": true,
      "variation_attribute": true
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "mm",
        "name": "mm"
      },
      {
        "id": "cm",
        "name": "cm"
      },
      {
        "id": "in",
        "name": "in"
      },
      {
        "id": "pulgadas",
        "name": "pulgadas"
      },
      {
        "id": "ft",
        "name": "ft"
      },
      {
        "id": "m",
        "name": "m"
      },
      {
        "id": "km",
        "name": "km"
      }
    ],
    "default_unit": "mm",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "PACKAGE_WIDTH",
    "name": "Ancho del paquete",
    "tags": {
      "hidden": true,
      "read_only": true,
      "variation_attribute": true
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "mm",
        "name": "mm"
      },
      {
        "id": "cm",
        "name": "cm"
      },
      {
        "id": "in",
        "name": "in"
      },
      {
        "id": "pulgadas",
        "name": "pulgadas"
      },
      {
        "id": "ft",
        "name": "ft"
      },
      {
        "id": "m",
        "name": "m"
      },
      {
        "id": "km",
        "name": "km"
      }
    ],
    "default_unit": "mm",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "TURNTABLE",
    "name": "Bandeja Giratoria",
    "tags": {
    },
    "value_type": "boolean",
    "values": [
      {
        "id": "242084",
        "name": "No",
        "metadata": {
          "value": false
        }
      },
      {
        "id": "242085",
        "name": "Sí",
        "metadata": {
          "value": true
        }
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "NUMBER_OF_PROGRAMS",
    "name": "Cantidad de Programas",
    "tags": {
      "hidden": true
    },
    "value_type": "number",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "VOLUME_CAPACITY",
    "name": "Capacidad",
    "tags": {
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "l",
        "name": "l"
      },
      {
        "id": "cc",
        "name": "cc"
      },
      {
        "id": "ft³",
        "name": "ft³"
      },
      {
        "id": "ml",
        "name": "ml"
      },
      {
        "id": "mm³",
        "name": "mm³"
      }
    ],
    "default_unit": "l",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "CONVECTION",
    "name": "Convección",
    "tags": {
    },
    "value_type": "boolean",
    "values": [
      {
        "id": "242084",
        "name": "No",
        "metadata": {
          "value": false
        }
      },
      {
        "id": "242085",
        "name": "Sí",
        "metadata": {
          "value": true
        }
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "TURNTABLE_DIAMETER",
    "name": "Diámetro de Bandeja Giratoria",
    "tags": {
      "hidden": true
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "mm",
        "name": "mm"
      },
      {
        "id": "cm",
        "name": "cm"
      },
      {
        "id": "ft",
        "name": "ft"
      },
      {
        "id": "in",
        "name": "in"
      },
      {
        "id": "km",
        "name": "km"
      },
      {
        "id": "m",
        "name": "m"
      },
      {
        "id": "pulgadas",
        "name": "pulgadas"
      }
    ],
    "default_unit": "mm",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "EAN",
    "name": "EAN",
    "tags": {
      "hidden": true,
      "multivalued": true,
      "variation_attribute": true
    },
    "type": "product_identifier",
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "FREQUENCY",
    "name": "Frecuencia",
    "tags": {
      "hidden": true
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "hz",
        "name": "hz"
      },
      {
        "id": "ghz",
        "name": "ghz"
      },
      {
        "id": "khz",
        "name": "khz"
      },
      {
        "id": "mhz",
        "name": "mhz"
      },
      {
        "id": "rpm",
        "name": "rpm"
      }
    ],
    "default_unit": "hz",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "MICROWAVE_FUNCTIONS",
    "name": "Funciones",
    "tags": {
      "hidden": true,
      "multivalued": true
    },
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "GRILL",
    "name": "Grill",
    "tags": {
    },
    "value_type": "boolean",
    "values": [
      {
        "id": "242084",
        "name": "No",
        "metadata": {
          "value": false
        }
      },
      {
        "id": "242085",
        "name": "Sí",
        "metadata": {
          "value": true
        }
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "GTIN",
    "name": "GTIN",
    "tags": {
      "hidden": true,
      "multivalued": true,
      "variation_attribute": true
    },
    "type": "product_identifier",
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "JAN",
    "name": "JAN",
    "tags": {
      "hidden": true,
      "variation_attribute": true
    },
    "type": "product_identifier",
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "LINE",
    "name": "Línea",
    "tags": {
      "hidden": true
    },
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "PACKAGE_LENGTH",
    "name": "Longitud del paquete",
    "tags": {
      "hidden": true,
      "read_only": true,
      "variation_attribute": true
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "mm",
        "name": "mm"
      },
      {
        "id": "cm",
        "name": "cm"
      },
      {
        "id": "in",
        "name": "in"
      },
      {
        "id": "pulgadas",
        "name": "pulgadas"
      },
      {
        "id": "ft",
        "name": "ft"
      },
      {
        "id": "m",
        "name": "m"
      },
      {
        "id": "km",
        "name": "km"
      }
    ],
    "default_unit": "mm",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "DIMENSIONS",
    "name": "Medidas",
    "tags": {
    },
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "MODEL",
    "name": "Modelo",
    "tags": {
    },
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "MAIN",
    "attribute_group_name": "Atributos Principales"
  },
  {
    "id": "ALPHANUMERIC_MODEL",
    "name": "Modelo Alfanumérico",
    "tags": {
      "hidden": true
    },
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "DETAILED_MODEL",
    "name": "Modelo Detallado",
    "tags": {
      "hidden": true
    },
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "MPN",
    "name": "MPN",
    "tags": {
      "hidden": true,
      "multivalued": true,
      "variation_attribute": true
    },
    "type": "product_identifier",
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "POWER_LEVELS",
    "name": "Niveles de Potencia",
    "tags": {
      "hidden": true
    },
    "value_type": "number",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "PACKAGE_WEIGHT",
    "name": "Peso del paquete",
    "tags": {
      "hidden": true,
      "read_only": true,
      "variation_attribute": true
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "mcg",
        "name": "mcg"
      },
      {
        "id": "mg",
        "name": "mg"
      },
      {
        "id": "g",
        "name": "g"
      },
      {
        "id": "oz",
        "name": "oz"
      },
      {
        "id": "lb",
        "name": "lb"
      },
      {
        "id": "kg",
        "name": "kg"
      }
    ],
    "default_unit": "mcg",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "POWER",
    "name": "Potencia",
    "tags": {
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "w",
        "name": "w"
      },
      {
        "id": "btu/h",
        "name": "btu/h"
      },
      {
        "id": "cv",
        "name": "cv"
      },
      {
        "id": "fg",
        "name": "fg"
      },
      {
        "id": "hp",
        "name": "hp"
      },
      {
        "id": "kcal/h",
        "name": "kcal/h"
      },
      {
        "id": "kw",
        "name": "kw"
      },
      {
        "id": "mw",
        "name": "mw"
      },
      {
        "id": "tfr",
        "name": "tfr"
      },
      {
        "id": "va",
        "name": "va"
      }
    ],
    "default_unit": "w",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "GRILL_POWER",
    "name": "Potencia de Grill",
    "tags": {
      "hidden": true
    },
    "value_type": "number_unit",
    "value_max_length": 60,
    "allowed_units": [
      {
        "id": "w",
        "name": "w"
      },
      {
        "id": "btu/h",
        "name": "btu/h"
      },
      {
        "id": "cv",
        "name": "cv"
      },
      {
        "id": "fg",
        "name": "fg"
      },
      {
        "id": "hp",
        "name": "hp"
      },
      {
        "id": "kcal/h",
        "name": "kcal/h"
      },
      {
        "id": "kw",
        "name": "kw"
      },
      {
        "id": "mw",
        "name": "mw"
      },
      {
        "id": "tfr",
        "name": "tfr"
      },
      {
        "id": "va",
        "name": "va"
      }
    ],
    "default_unit": "w",
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "MIRRORED_DOOR",
    "name": "Puerta Espejada",
    "tags": {
      "hidden": true
    },
    "value_type": "boolean",
    "values": [
      {
        "id": "242084",
        "name": "No",
        "metadata": {
          "value": false
        }
      },
      {
        "id": "242085",
        "name": "Sí",
        "metadata": {
          "value": true
        }
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "PROGRAMMABLE_KEYS",
    "name": "Teclas Programables",
    "tags": {
      "hidden": true
    },
    "value_type": "boolean",
    "values": [
      {
        "id": "242084",
        "name": "No",
        "metadata": {
          "value": false
        }
      },
      {
        "id": "242085",
        "name": "Sí",
        "metadata": {
          "value": true
        }
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "MICROWAVE_TYPE",
    "name": "Tipo",
    "tags": {
    },
    "value_type": "list",
    "values": [
      {
        "id": "289784",
        "name": "De Apoyo"
      },
      {
        "id": "289785",
        "name": "De Embutir"
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "CHILD_SAFETY_LOCK",
    "name": "Traba de Seguridad para Niños",
    "tags": {
      "hidden": true
    },
    "value_type": "boolean",
    "values": [
      {
        "id": "242084",
        "name": "No",
        "metadata": {
          "value": false
        }
      },
      {
        "id": "242085",
        "name": "Sí",
        "metadata": {
          "value": true
        }
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "UPC",
    "name": "UPC",
    "tags": {
      "hidden": true,
      "multivalued": true,
      "variation_attribute": true
    },
    "type": "product_identifier",
    "value_type": "string",
    "value_max_length": 60,
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  },
  {
    "id": "VOLTAGE",
    "name": "Voltaje",
    "tags": {
      "hidden": true
    },
    "value_type": "list",
    "values": [
      {
        "id": "198812",
        "name": "110V / 220V"
      },
      {
        "id": "198813",
        "name": "220V"
      },
      {
        "id": "198814",
        "name": "110V"
      }
    ],
    "attribute_group_id": "DFLT",
    "attribute_group_name": "Otros"
  }
]

Depois de checar a configuração na API de atributos, você deverá criar um JSON de anúncio como o seguinte.
Exemplo

curl -X POST -d '
{  
   "listing_type_id":"gold_special",
   "pictures":[  
      {  
         "id":"553111-MLA20482692355_112015"
      }
   ],
   "title":"Item de testeo",
   "available_quantity":4,
   "category_id":"MLA378496",
   "buying_mode":"buy_it_now",
   "currency_id":"ARS",
   "condition":"not_specified",
   "site_id":"MLA",
   "price":100,
   "variations":[  
      {  
         "attribute_combinations":[  
            {  
               "name":"Color",
               "value_id":"52049",
               "value_name":"Negro"
            }
         ],
         "price":100,
         "available_quantity":4,
         "attributes":[  
            {  
               "id":"EAN",
               "value_name":"4006381333931"
            }
         ],
         "sold_quantity":0,
         "picture_ids":[  
            "553111-MLA20482692355_112015"
         ]
      },
      {  
         "attribute_combinations":[  
            {  
               "name":"Color",
               "value_id":"52005",
               "value_name":"Marrón"
            }
         ],
         "price":100,
         "available_quantity":4,
         "attributes":[  
            {  
               "id":"EAN",
               "value_name":"9780471117094"
            }
         ],
         "sold_quantity":0,
         "picture_ids":[  
            "553111-MLA20482692355_112015"
         ]
      }
   ]
}' 'http://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN '

Resposta

{  
   "id":"MLA657381404",
   "site_id":"MLA",
   "title":"Item De Testeo",
   "subtitle":null,
   "seller_id":222576250,
   "category_id":"MLA378496",
   "official_store_id":null,
   "price":100,
   "base_price":100,
   "original_price":null,
   "currency_id":"ARS",
   "initial_quantity":8,
   "available_quantity":8,
   "sold_quantity":0,
   "buying_mode":"buy_it_now",
   "listing_type_id":"gold_special",
   "start_time":"2017-03-10T21:18:09.588Z",
   "stop_time":"2037-03-05T21:18:09.588Z",
   "end_time":"2037-03-05T21:18:09.588Z",
   "expiration_time":"2017-05-29T21:18:09.651Z",
   "condition":"not_specified",
   "permalink":"http://articulo.mercadolibre.com.ar/MLA-657381404-item-de-testeo-_JM",
   "thumbnail":"http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
   "secure_thumbnail":"https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
   "pictures":[  
      {  
         "id":"553111-MLA20482692355_112015",
         "url":"http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
         "secure_url":"https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
         "size":"320x320",
         "max_size":"320x320",
         "quality":""
      }
   ],
   "video_id":null,
   "descriptions":[  

   ],
   "accepts_mercadopago":true,
   "non_mercado_pago_payment_methods":[  

   ],
   "shipping":{  
      "mode":"not_specified",
      "local_pick_up":false,
      "free_shipping":false,
      "methods":[  

      ],
      "dimensions":null,
      "tags":[  
         "me2_available"
      ],
      "logistic_type":"not_specified"
   },
   "international_delivery_mode":"none",
   "seller_address":{  
      "id":189626559,
      "comment":"",
      "address_line":"santa fe 1000",
      "zip_code":"1641",
      "city":{  
         "id":"",
         "name":"Acassuso"
      },
      "state":{  
         "id":"AR-B",
         "name":"Buenos Aires"
      },
      "country":{  
         "id":"AR",
         "name":"Argentina"
      },
      "latitude":-34.4817565,
      "longitude":-58.5056779,
      "search_location":{  
         "neighborhood":{  
            "id":"TUxBQkFDQTMyNzNa",
            "name":"Acassuso"
         },
         "city":{  
            "id":"TUxBQ1NBTjg4ZmJk",
            "name":"San Isidro"
         },
         "state":{  
            "id":"TUxBUEdSQWU4ZDkz",
            "name":"Bs.As. G.B.A. Norte"
         }
      }
   },
   "seller_contact":null,
   "location":{  

   },
   "geolocation":{  
      "latitude":-34.4817565,
      "longitude":-58.5056779
   },
   "coverage_areas":[  

   ],
   "attributes":[  
      {  
         "id":"FAN_TYPE",
         "name":"Tipo de Ventilador",
         "value_id":"291719",
         "value_name":"De Techo",
         "attribute_group_id":"DFLT",
         "attribute_group_name":"Otros"
      },
      {  
         "id":"BRAND",
         "name":"Marca",
         "value_id":"86416",
         "value_name":"Eiffel",
         "attribute_group_id":"MAIN",
         "attribute_group_name":"Atributos Principales"
      }
   ],
   "warnings":[  

   ],
   "listing_source":"",
   "variations":[  
      {  
         "id":14979332589,
         "attribute_combinations":[  
            {  
               "id":"COLOR",
               "name":"Color",
               "value_id":"52049",
               "value_name":"Negro"
            }
         ],
         "price":100,
         "available_quantity":4,
         "sold_quantity":0,
         "picture_ids":[  
            "553111-MLA20482692355_112015"
         ],
         "seller_custom_field":null,
         "catalog_product_id":null,
         "attributes":[  
            {  
               "id":"EAN",
               "name":"EAN",
               "value_id":null,
               "value_name":"4006381333931"
            }
         ]
      },
      {  
         "id":14979332592,
         "attribute_combinations":[  
            {  
               "id":"COLOR",
               "name":"Color",
               "value_id":"52005",
               "value_name":"Marrón"
            }
         ],
         "price":100,
         "available_quantity":4,
         "sold_quantity":0,
         "picture_ids":[  
            "553111-MLA20482692355_112015"
         ],
         "seller_custom_field":null,
         "catalog_product_id":null,
         "attributes":[  
            {  
               "id":"EAN",
               "name":"EAN",
               "value_id":null,
               "value_name":"9780471117094"
            }
         ]
      }
   ],
   "status":"active",
   "sub_status":[  

   ],
   "tags":[  
      "immediate_payment"
   ],
   "warranty":null,
   "catalog_product_id":null,
   "domain_id":null,
   "seller_custom_field":null,
   "parent_item_id":null,
   "differential_pricing":null,
   "deal_ids":[  

   ],
   "automatic_relist":false,
   "date_created":"2017-03-10T21:18:09.763Z",
   "last_updated":"2017-03-10T21:18:09.763Z"
}

Já anunciado o produto, este será visualizado na VIP da seguinte maneira:

Notas:

  • Há propriedades obrigatórias a serem enviadas em cada variação. Elas são: price, available_quantity, pictures e attribute_combinations.
  • A quantidade máxima de imagens que podem ser enviadas por variação é definida pelo campo max_pictures_per_item_var na API de Categorias: https://api.mercadolibre.com/categories/MLA1577
  • Os attribute_combinations de todas as variações devem conter os mesmos atributos, mas combinações de valores não devem se repetir. A única exceção é Cor Secundária em Roupas e acessórios. Para essas categorias, em attribute_combinations de diferentes variações, você poderá enviar, de maneira opcional, Cor Secundária.
  • Se você enviar um atributo que não pertece à categoria, será ignorado, o qual pode gerar que duas variações fiquem com os mesmos atributos e apresentar variações duplicadas.
  • Se você enviar um atributo com a tag allow_variations na propriedade attributes do produto, nós reorganizaremos as informações, gerando a variação com o atributo pertinente.
  • Se você enviar um atributo com a tag variation_attribute na propriedade attributes do produto, nós reorganizaremos as informações, deslocando este atributo para a seção attributes dentro de cada variação.
  • Se você precisa enviar um atributo cujos valores são de tipo “lista” (value_type = list) e o valor não existe, deverá ser carregado como “value_name”.

EXEMPLO: se você quer utilizar o tamanho 46 e ele não está entre os valores possíveis para o atributo Tamanho da categoria MLU185734, mesmo assim, pode utilizá-lo como “value_name”: “46”, como mostrado abaixo:

    "variations": [{
    "attribute_combinations": [{
      "id": "103000",
      "value_id": "4883e91"     --> value_id que corresponde al talle: 38
    }, {
      "id": "11000",
      "value_id": "10295e4"
    }],
    "available_quantity": 17,
    "price": 1299.0,
    "seller_custom_field": "611111",
    "picture_ids": ["https://s-media-cache-ak0.pinimg.com/736x/63/9c/a0/639ca03b5ca79e73002b4f2d4776d03b.jpg",
    ]
  }, {
    "attribute_combinations": [{
      "id": "103000",
      "value_id": "86e5356"     --> value_id que corresponde al talle: 44
    }, {
      "id": "11000",
      "value_id": "10295e4"
    }],
    "available_quantity": 12,
    "price": 1299.0,
    "seller_custom_field": "6131111",
    "picture_ids": ["https://s-media-cache-ak0.pinimg.com/736x/63/9c/a0/639ca03b5ca79e73002b4f2d4776d03b.jpg",
      ]
  }, {
    "attribute_combinations": [{
      "id": "103000",
      "value_name": "46"     --> value_name que agregamos para el talle 46
    }, {
      "id": "11000",
      "value_id": "10295e4"
    }],
    "available_quantity": 21,
    "price": 1299.0,
    "seller_custom_field": "611111”,
    "picture_ids": ["https://s-media-cache-ak0.pinimg.com/736x/63/9c/a0/639ca03b5ca79e73002b4f2d4776d03b.jpg",
      ]
  }]

Para maiores informações, sugerimos revisar a documentação de Atributos.

Consultar variações

Parabéns, você já anunciou seu produto com variações! Agora vamos lhe ensinar as duas formas que existem para consultá-las.
Uma delas é olhando a seção variations nas informações do produto:
Chamada

curl -X GET https://api.mercadolibre.com/items/{ITEM_ID}

Exemplo

curl -X GET https://api.mercadolibre.com/items/MLA658778048?attributes=variations

Resposta

{
    "variations": [
        {
            "id": 15093610263,
            "attribute_combinations": [
                {
                    "id": "COLOR",
                    "name": "Color",
                    "value_id": "52000",
                    "value_name": "Naranja"
                }
            ],
            "price": 100,
            "available_quantity": 4,
            "sold_quantity": 0,
            "picture_ids": [
                "553111-MLA20482692355_112015"
            ],
            "seller_custom_field": null,
            "catalog_product_id": null
        }
    ]
}

Ou com a seguinte chamada, com a qual a resposta anterior será diretamente filtrada para mostrar apenas as variações:

Chamada

curl -X GET https://api.mercadolibre.com/items/{ITEM_ID}/variations

Exemplo

curl -X GET https://api.mercadolibre.com/items/MLA658778048/variations

Resposta

[
  {
    "id": 15092589430,
    "attribute_combinations": [
      {
        "id": "COLOR",
        "name": "Color",
        "value_id": "52005",
        "value_name": "Marrón"
      }
    ],
    "price": 100,
    "available_quantity": 4,
    "sold_quantity": 0,
    "picture_ids": [
      "553111-MLA20482692355_112015"
    ],
    "seller_custom_field": null,
    "catalog_product_id": null
  },
  {
    "id": 15092589427,
    "attribute_combinations": [
      {
        "id": "COLOR",
        "name": "Color",
        "value_id": "52049",
        "value_name": "Negro"
      }
    ],
    "price": 100,
    "available_quantity": 4,
    "sold_quantity": 0,
    "picture_ids": [
      "553111-MLA20482692355_112015"
    ],
    "seller_custom_field": null,
    "catalog_product_id": null
  }
]

Quando você já tiver os Ids de cada variação, uma forma de consultar uma em particular é adicionando variation_id no final da chamada anterior, como é mostrado a seguir.
Chamada

curl -X GET https://api.mercadolibre.com/items/{Item_id}/variations/{Variation_id}

Exemplo

curl -X GET https://api.mercadolibre.com/items/MLA658778048/variations/15092589430

Resposta

{
  "id": 15092589430,
  "attribute_combinations": [
    {
      "id": "COLOR",
      "name": "Color",
      "value_id": "52028",
      "value_name": "Celeste Oscuro"
    }
  ],
  "price": 100,
  "available_quantity": 4,
  "sold_quantity": 0,
  "picture_ids": [
    "553111-MLA20482692355_112015",
    "629425-MLA25446587248_032017"
  ],
  "seller_custom_field": null,
  "catalog_product_id": null,
  "attributes": [
    {
      "id": "EAN",
      "name": "EAN",
      "value_id": null,
      "value_name": "7794940000796"
    },
    {
      "id": "UPC",
      "name": "UPC",
      "value_id": null,
      "value_name": "7792931000015"
    }
  ]
}

Considerações:

  • Para ver a propriedade attributes dentro de cada variação, terá que adicionar o parâmetro include_attributes=all à URL de consulta.

Exemplo

https://api.mercadolibre.com/items/MLA640992661?include_attributes=all

Adicionar novas variações

Se você adicionou uma nova variante do seu produto ao estoque já anunciado, poderá adicionar uma nova variação.
Exemplo

curl -H 'Content-Type: application/json' -X POST https://api.mercadolibre.com/items/MLA658778048/variations?access_token=$ACCESS_TOKEN -d '{
    "attribute_combinations": [
       {
          "id": "COLOR",
          "value_id": "52035"
        }
    ],
    "price": 100,
    "available_quantity": 10,
    "sold_quantity": 0,
    "picture_ids": [
      "553111-MLA20482692355_112015"
    ]
  }'

Resposta

[
 {
   "id": 15092589430,
   "attribute_combinations": [
     {
       "id": "COLOR",
       "name": "Color",
       "value_id": "52028",
       "value_name": "Celeste Oscuro"
     }
   ],
   "price": 100,
   "available_quantity": 4,
   "sold_quantity": 0,
   "picture_ids": [
     "553111-MLA20482692355_112015",
     "629425-MLA25446587248_032017"
   ],
   "seller_custom_field": null,
   "catalog_product_id": null,
   "attributes": [
     {
       "id": "EAN",
       "name": "EAN",
       "value_id": null,
       "value_name": "7794940000796"
     },
     {
       "id": "UPC",
       "name": "UPC",
       "value_id": null,
       "value_name": "7792931000015"
     }
   ]
 },
 {
   "id": 15094538043,
   "attribute_combinations": [
     {
       "id": "COLOR",
       "name": "Color",
       "value_id": "52035",
       "value_name": "Violeta"
     }
   ],
   "price": 100,
   "available_quantity": 10,
   "sold_quantity": 0,
   "picture_ids": [
     "553111-MLA20482692355_112015"
   ],
   "seller_custom_field": null,
   "catalog_product_id": null,
   "attributes": []
 }
]

Muito bem! Você poderá ver anunciada a nova variante no produto.
Outra forma de adicionar uma variação é fazer um PUT no produto, listando na propriedade variations os Ids das variações já existentes, bem como a variação a ser criada.

Exemplo

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
"variations": [
    {
      "id": 15092589430    
    },
    {
      "id": "15092589427",
    },
    {
      "attribute_combinations": [
        {
          "id": "COLOR",
          "value_id": "52000"
        }
      ],
      "price": 100,
      "available_quantity": 4,
      "picture_ids": [
        "553111-MLA20482692355_112015"
      ]
    }
  ],
}'  

Modificar variações

Agora que você já aprendeu a anunciar e consultar produtos com variações, pode acontecer que, em algum momento, tenha que realizar alterações a fim de atualizar estoque, preços, adicionar variantes do seu produto ou alterar o valor de algum atributo anunciado.

Adicionar ou modificar atributos por causa dos quais o produto varia

É possível que, em algum caso, você queira adicionar um novo atributo a suas variações.
Continuando com o exemplo de Ventiladores, acima mostramos como anunciar um Ventilador variando segundo a Cor. Agora imagine que, além de variar a Cor, você quer que varie segundo a Tensão; para isso, deve fazer um PUT como no exemplo abaixo, enviando todas as variações e adicionando o atributo Tensão no campo attribute_combinations de cada variação.

Exemplo

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
"variations": [
    {
      "id": 15092589430,
      "attribute_combinations": [
        {
          "id": "COLOR",
          "value_id": "52005"
        },
        {
          "id": "VOLTAGE",
          "value_id": "198812"
        }
      ]
    },
    {
      "id": 15093506680,
      "attribute_combinations": [
        {
          "id": "COLOR",
          "value_id": "52035"
        },
        {
          "id": "VOLTAGE",
          "value_id": "198813"
        }
      ]
    }
  ]
}' 

Também pode acontecer que você queira modificar um atributo, por causa do qual o seu produto varia.
Partindo do exemplo de Ventiladores, vamos supor que seu Ventilador não é Azul, mas Celeste Escuro; para fazer essa alteração você deverá fazer um PUT, como no exemplo abaixo, enviando a variação pertinente para a cor Azul e trocando o value_name por Celeste Escuro.

Exemplo

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048/variations/15092589430?access_token=$ACCESS_TOKEN  -d '{
      "attribute_combinations": [
        {
          "id": "COLOR",
          "value_id": "52028",
          "value_name": "Celeste Oscuro"
        }
      ]
    }

Resposta

[
 {
   "id": 15092589430,
   "attribute_combinations": [
     {
       "id": "COLOR",
       "name": "Color",
       "value_id": "52028",
       "value_name": "Celeste Oscuro"
     }
   ],
   "price": 100,
   "available_quantity": 4,
   "sold_quantity": 0,
   "picture_ids": [
     "553111-MLA20482692355_112015",
     "629425-MLA25446587248_032017"
   ],
   "seller_custom_field": null,
   "catalog_product_id": null,
   "attributes": [
     {
       "id": "EAN",
       "name": "EAN",
       "value_id": null,
       "value_name": "7794940000796"
     },
     {
       "id": "UPC",
       "name": "UPC",
       "value_id": null,
       "value_name": "7792931000015"
     }
   ]
 }
]

Adicionar ou modificar atributos próprios de cada variação

Além disso, é possível que, a qualquer momento, você queira adicionar mais atributos próprios de uma ou diversas variações em particular.
Ainda no exemplo de Ventiladores, até agora, cada variação tem as informações do código de barras (EAN). Vamos supor que agora temos as informações de outro código de barras, o UPC para algumas variações, e queremos adicioná-lo.
Para isso há duas opções: fazer um PUT, como no exemplo abaixo, enviando todas as variações mas adicionando o campo attributes nas variações em que queremos adicionar o atributo UPC.

Exemplo

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
"variations": [
    {
      "id": "15092589430",
       "attributes": [{ "id": "EAN", "name": "EAN", "value_name": "7794940000796"}, 
{ "id": "UPC", "name": "UPC", "value_name": "7792931000015"}]
      }
  ],
}' 

Resposta

{
    "id": "MLA658778048",
    "site_id": "MLA",
    "title": "Item De Testeo",
    "subtitle": null,
    "seller_id": 247212006,
    "category_id": "MLA378496",
    "official_store_id": null,
    "price": 100,
    "base_price": 100,
    "original_price": null,
    "currency_id": "ARS",
    "initial_quantity": 4,
    "available_quantity": 4,
    "sold_quantity": 0,
    "buying_mode": "buy_it_now",
    "listing_type_id": "gold_special",
    "start_time": "2017-03-20T15:44:00.000Z",
    "stop_time": "2037-03-15T15:44:00.000Z",
    "end_time": "2037-03-15T15:44:00.000Z",
    "expiration_time": "2017-06-17T14:50:42.000Z",
    "condition": "not_specified",
    "permalink": "http://articulo.mercadolibre.com.ar/MLA-658778048-item-de-testeo-_JM",
    "thumbnail": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
    "secure_thumbnail": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
    "pictures": [
        {
            "id": "553111-MLA20482692355_112015",
            "url": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
            "secure_url": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
            "size": "320x320",
            "max_size": "320x320",
            "quality": ""
        },
        {
            "id": "629425-MLA25446587248_032017",
            "url": "http://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
            "secure_url": "https://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
            "size": "384x500",
            "max_size": "922x1200",
            "quality": ""
        }
    ],
    "video_id": null,
    "descriptions": [],
    "accepts_mercadopago": true,
    "non_mercado_pago_payment_methods": [],
    "shipping": {
        "mode": "not_specified",
        "local_pick_up": false,
        "free_shipping": false,
        "methods": null,
        "dimensions": null,
        "tags": [],
        "logistic_type": "not_specified"
    },
    "international_delivery_mode": "none",
    "seller_address": {
        "id": 265953311,
        "comment": "",
        "address_line": "Test Address 123",
        "zip_code": "1414",
        "city": {
            "id": "",
            "name": "Palermo"
        },
        "state": {
            "id": "AR-C",
            "name": "Capital Federal"
        },
        "country": {
            "id": "AR",
            "name": "Argentina"
        },
        "latitude": "",
        "longitude": "",
        "search_location": {
            "neighborhood": {
                "id": "TUxBQlBBTDI1MTVa",
                "name": "Palermo"
            },
            "city": {
                "id": "TUxBQ0NBUGZlZG1sYQ",
                "name": "Capital Federal"
            },
            "state": {
                "id": "TUxBUENBUGw3M2E1",
                "name": "Capital Federal"
            }
        }
    },
    "seller_contact": null,
    "location": {},
    "geolocation": {
        "latitude": "",
        "longitude": ""
    },
    "coverage_areas": [],
    "attributes": [
        {
            "id": "FAN_TYPE",
            "name": "Tipo de Ventilador",
            "value_id": "291719",
            "value_name": "De Techo",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "HEIGHT_ADJUSTABLE",
            "name": "Altura Regulable",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "LATERAL_OSCILLATION",
            "name": "Oscilación Lateral",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "REMOTE_CONTROL",
            "name": "Control Remoto",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "WITH_LIGHT",
            "name": "Con Luz",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "BRAND",
            "name": "Marca",
            "value_id": "86416",
            "value_name": "Eiffel",
            "attribute_group_id": "MAIN",
            "attribute_group_name": "Atributos Principales"
        }
    ],
    "warnings": [],
    "listing_source": "",
    "variations": [
        {
            "id": 15092589430,
            "attribute_combinations": [
                {
                    "id": "COLOR",
                    "name": "Color",
                    "value_id": "52005",
                    "value_name": "Marrón"
                },
                {
                    "id": "VOLTAGE",
                    "name": "Voltaje",
                    "value_id": "198812",
                    "value_name": "110V/220V (Bivolt)"
                }
            ],
            "price": 100,
            "available_quantity": 4,
            "sold_quantity": 0,
            "picture_ids": [
                "553111-MLA20482692355_112015",
                "629425-MLA25446587248_032017"
            ],
            "seller_custom_field": null,
            "catalog_product_id": null,
            "attributes": [
                {
                    "id": "EAN",
                    "name": "EAN",
                    "value_id": null,
                    "value_name": "7794940000796"
                },
                {
                    "id": "UPC",
                    "name": "UPC",
                    "value_id": null,
                    "value_name": "7792931000015"
                }
            ]
        }
    ],
    "status": "active",
    "sub_status": [],
    "tags": [
        "poor_quality_picture",
        "immediate_payment"
    ],
    "warranty": null,
    "catalog_product_id": null,
    "domain_id": "MLA-FANS",
    "seller_custom_field": null,
    "parent_item_id": null,
    "differential_pricing": null,
    "deal_ids": [],
    "automatic_relist": false,
    "date_created": "2017-03-20T15:44:01.000Z",
    "last_updated": "2017-03-29T14:51:54.627Z"
}

Ou também pode fazer um PUT, como no exemplo abaixo, para cada variação separadamente.
Exemplo

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048/variations/15092589430?access_token=$ACCESS_TOKEN  -d '{
    "attributes": [{ "id": "EAN", "name": "EAN", "value_name": "7794940000796"},
{ "id": "UPC", "name": "UPC", "value_name": "7793704000225"}]
  }'

Resposta

[
    {
        "id": 15092589430,
        "attribute_combinations": [
            {
                "id": "COLOR",
                "name": "Color",
                "value_id": "52005",
                "value_name": "Marrón"
            },
            {
                "id": "VOLTAGE",
                "name": "Voltaje",
                "value_id": "198812",
                "value_name": "110V/220V (Bivolt)"
            }
        ],
        "price": 100,
        "available_quantity": 4,
        "sold_quantity": 0,
        "picture_ids": [
            "553111-MLA20482692355_112015",
            "629425-MLA25446587248_032017"
        ],
        "seller_custom_field": null,
        "catalog_product_id": null,
        "attributes": [
            {
                "id": "EAN",
                "name": "EAN",
                "value_id": null,
                "value_name": "7794940000796"
            },
            {
                "id": "UPC",
                "name": "UPC",
                "value_id": null,
                "value_name": "7793704000225"
            }
        ]
    }
]

Também pode acontecer que você queira alterar o valor de um atributo próprio de cada variação. Vamos supor que queremos alterar o valor do atributo EAN de uma variação em particular. Para isso deve fazer um PUT, como no exemplo abaixo, especificando a variação que você quer alterar e, no campo attributes, deverá enviar todos os atributos, e para o atributo EAN o campo value_name modificado.

Exemplo

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
"variations": [
    {
       "id": "15092589430",
       "attributes": [{ "id": "EAN", "name": "EAN", "value_name": "7792931000015"},
{ "id": "UPC", "name": "UPC", "value_name": "7792931000015"}]
    }
  ],
}' 

Resposta

{
    "id": "MLA658778048",
    "site_id": "MLA",
    "title": "Item De Testeo",
    "subtitle": null,
    "seller_id": 247212006,
    "category_id": "MLA378496",
    "official_store_id": null,
    "price": 100,
    "base_price": 100,
    "original_price": null,
    "currency_id": "ARS",
    "initial_quantity": 4,
    "available_quantity": 4,
    "sold_quantity": 0,
    "buying_mode": "buy_it_now",
    "listing_type_id": "gold_special",
    "start_time": "2017-03-20T15:44:00.000Z",
    "stop_time": "2037-03-15T15:44:00.000Z",
    "end_time": "2037-03-15T15:44:00.000Z",
    "expiration_time": "2017-06-17T14:55:54.306Z",
    "condition": "not_specified",
    "permalink": "http://articulo.mercadolibre.com.ar/MLA-658778048-item-de-testeo-_JM",
    "thumbnail": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
    "secure_thumbnail": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
    "pictures": [
        {
            "id": "553111-MLA20482692355_112015",
            "url": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
            "secure_url": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
            "size": "320x320",
            "max_size": "320x320",
            "quality": ""
        },
        {
            "id": "629425-MLA25446587248_032017",
            "url": "http://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
            "secure_url": "https://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
            "size": "384x500",
            "max_size": "922x1200",
            "quality": ""
        }
    ],
    "video_id": null,
    "descriptions": [],
    "accepts_mercadopago": true,
    "non_mercado_pago_payment_methods": [],
    "shipping": {
        "mode": "not_specified",
        "local_pick_up": false,
        "free_shipping": false,
        "methods": null,
        "dimensions": null,
        "tags": [],
        "logistic_type": "not_specified"
    },
    "international_delivery_mode": "none",
    "seller_address": {
        "id": 265953311,
        "comment": "",
        "address_line": "Test Address 123",
        "zip_code": "1414",
        "city": {
            "id": "",
            "name": "Palermo"
        },
        "state": {
            "id": "AR-C",
            "name": "Capital Federal"
        },
        "country": {
            "id": "AR",
            "name": "Argentina"
        },
        "latitude": "",
        "longitude": "",
        "search_location": {
            "neighborhood": {
                "id": "TUxBQlBBTDI1MTVa",
                "name": "Palermo"
            },
            "city": {
                "id": "TUxBQ0NBUGZlZG1sYQ",
                "name": "Capital Federal"
            },
            "state": {
                "id": "TUxBUENBUGw3M2E1",
                "name": "Capital Federal"
            }
        }
    },
    "seller_contact": null,
    "location": {},
    "geolocation": {
        "latitude": "",
        "longitude": ""
    },
    "coverage_areas": [],
    "attributes": [
        {
            "id": "FAN_TYPE",
            "name": "Tipo de Ventilador",
            "value_id": "291719",
            "value_name": "De Techo",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "HEIGHT_ADJUSTABLE",
            "name": "Altura Regulable",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "LATERAL_OSCILLATION",
            "name": "Oscilación Lateral",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "REMOTE_CONTROL",
            "name": "Control Remoto",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "WITH_LIGHT",
            "name": "Con Luz",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "BRAND",
            "name": "Marca",
            "value_id": "86416",
            "value_name": "Eiffel",
            "attribute_group_id": "MAIN",
            "attribute_group_name": "Atributos Principales"
        }
    ],
    "warnings": [],
    "listing_source": "",
    "variations": [
        {
            "id": 15092589430,
            "attribute_combinations": [
                {
                    "id": "COLOR",
                    "name": "Color",
                    "value_id": "52005",
                    "value_name": "Marrón"
                },
                {
                    "id": "VOLTAGE",
                    "name": "Voltaje",
                    "value_id": "198812",
                    "value_name": "110V/220V (Bivolt)"
                }
            ],
            "price": 100,
            "available_quantity": 4,
            "sold_quantity": 0,
            "picture_ids": [
                "553111-MLA20482692355_112015",
                "629425-MLA25446587248_032017"
            ],
            "seller_custom_field": null,
            "catalog_product_id": null,
            "attributes": [
                {
                    "id": "EAN",
                    "name": "EAN",
                    "value_id": null,
                    "value_name": "7792931000015"
                },
                {
                    "id": "UPC",
                    "name": "UPC",
                    "value_id": null,
                    "value_name": "7792931000015"
                }
            ]
        }
    ],
    "status": "active",
    "sub_status": [],
    "tags": [
        "poor_quality_picture",
        "immediate_payment"
    ],
    "warranty": null,
    "catalog_product_id": null,
    "domain_id": "MLA-FANS",
    "seller_custom_field": null,
    "parent_item_id": null,
    "differential_pricing": null,
    "deal_ids": [],
    "automatic_relist": false,
    "date_created": "2017-03-20T15:44:01.000Z",
    "last_updated": "2017-03-29T14:55:54.337Z"
}

Nota Caso não quer conservar as imagens anteriores, não devem ser enviadas no Json e serão apagadas automaticamente.

Modificar preço

Se você quiser mudar o preço de um produto com variações, deverá fazê-lo para cada uma delas.
Para isso, só terá que fazer um PUT na API de produtos, incluindo a propriedade variations, listando com seu Id e o novo preço.
Exemplo

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
"variations": [
    {
      "id": 15092589430,
      "price": 300
  ],
}'

Resposta

{
    "id": "MLA658778048",
    "site_id": "MLA",
    "title": "Item De Testeo",
    "subtitle": null,
    "seller_id": 247212006,
    "category_id": "MLA378496",
    "official_store_id": null,
    "price": 300,
    "base_price": 300,
    "original_price": null,
    "currency_id": "ARS",
    "initial_quantity": 8,
    "available_quantity": 8,
    "sold_quantity": 0,
    "buying_mode": "buy_it_now",
    "listing_type_id": "gold_special",
    "start_time": "2017-03-20T15:44:00.000Z",
    "stop_time": "2037-03-15T15:44:00.000Z",
    "end_time": "2037-03-15T15:44:00.000Z",
    "expiration_time": "2017-06-17T15:03:02.581Z",
    "condition": "not_specified",
    "permalink": "http://articulo.mercadolibre.com.ar/MLA-658778048-item-de-testeo-_JM",
    "thumbnail": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
    "secure_thumbnail": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
    "pictures": [
        {
            "id": "553111-MLA20482692355_112015",
            "url": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
            "secure_url": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
            "size": "320x320",
            "max_size": "320x320",
            "quality": ""
        },
        {
            "id": "629425-MLA25446587248_032017",
            "url": "http://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
            "secure_url": "https://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
            "size": "384x500",
            "max_size": "922x1200",
            "quality": ""
        }
    ],
    "video_id": null,
    "descriptions": [],
    "accepts_mercadopago": true,
    "non_mercado_pago_payment_methods": [],
    "shipping": {
        "mode": "not_specified",
        "local_pick_up": false,
        "free_shipping": false,
        "methods": null,
        "dimensions": null,
        "tags": [],
        "logistic_type": "not_specified"
    },
    "international_delivery_mode": "none",
    "seller_address": {
        "id": 265953311,
        "comment": "",
        "address_line": "Test Address 123",
        "zip_code": "1414",
        "city": {
            "id": "",
            "name": "Palermo"
        },
        "state": {
            "id": "AR-C",
            "name": "Capital Federal"
        },
        "country": {
            "id": "AR",
            "name": "Argentina"
        },
        "latitude": "",
        "longitude": "",
        "search_location": {
            "neighborhood": {
                "id": "TUxBQlBBTDI1MTVa",
                "name": "Palermo"
            },
            "city": {
                "id": "TUxBQ0NBUGZlZG1sYQ",
                "name": "Capital Federal"
            },
            "state": {
                "id": "TUxBUENBUGw3M2E1",
                "name": "Capital Federal"
            }
        }
    },
    "seller_contact": null,
    "location": {},
    "geolocation": {
        "latitude": "",
        "longitude": ""
    },
    "coverage_areas": [],
    "attributes": [
        {
            "id": "FAN_TYPE",
            "name": "Tipo de Ventilador",
            "value_id": "291719",
            "value_name": "De Techo",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "HEIGHT_ADJUSTABLE",
            "name": "Altura Regulable",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "LATERAL_OSCILLATION",
            "name": "Oscilación Lateral",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "REMOTE_CONTROL",
            "name": "Control Remoto",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "WITH_LIGHT",
            "name": "Con Luz",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "BRAND",
            "name": "Marca",
            "value_id": "86416",
            "value_name": "Eiffel",
            "attribute_group_id": "MAIN",
            "attribute_group_name": "Atributos Principales"
        }
    ],
    "warnings": [],
    "listing_source": "",
    "variations": [
        {
            "id": 15092589430,
            "attribute_combinations": [
                {
                    "id": "COLOR",
                    "name": "Color",
                    "value_id": "52005",
                    "value_name": "Marrón"
                },
                {
                    "id": "VOLTAGE",
                    "name": "Voltaje",
                    "value_id": "198812",
                    "value_name": "110V/220V (Bivolt)"
                }
            ],
            "price": 300,
            "available_quantity": 8,
            "sold_quantity": 0,
            "picture_ids": [
                "629425-MLA25446587248_032017"
            ],
            "seller_custom_field": null,
            "catalog_product_id": null,
            "attributes": [
                {
                    "id": "EAN",
                    "name": "EAN",
                    "value_id": null,
                    "value_name": "7792931000015"
                },
                {
                    "id": "UPC",
                    "name": "UPC",
                    "value_id": null,
                    "value_name": "7792931000015"
                }
            ]
        }
    ],
    "status": "active",
    "sub_status": [],
    "tags": [
        "poor_quality_picture",
        "immediate_payment"
    ],
    "warranty": null,
    "catalog_product_id": null,
    "domain_id": "MLA-FANS",
    "seller_custom_field": null,
    "parent_item_id": null,
    "differential_pricing": null,
    "deal_ids": [],
    "automatic_relist": false,
    "date_created": "2017-03-20T15:44:01.000Z",
    "last_updated": "2017-03-29T15:03:02.744Z"
}

Modificar estoque

Como na modificação de preço, só terá que fazer um PUT na API de produtos, incluindo a propriedade variations, listando cada uma delas com seu id e o novo available_quantity das variações para as quais quiser modificar o estoque.

Exemplo

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
"variations": [
    {
      "id": 15092589430,
      "available_quantity": 10
    }
  ],
}'

Resposta

{
    "id": "MLA658778048",
    "site_id": "MLA",
    "title": "Item De Testeo",
    "subtitle": null,
    "seller_id": 247212006,
    "category_id": "MLA378496",
    "official_store_id": null,
    "price": 100,
    "base_price": 100,
    "original_price": null,
    "currency_id": "ARS",
    "initial_quantity": 10,
    "available_quantity": 10,
    "sold_quantity": 0,
    "buying_mode": "buy_it_now",
    "listing_type_id": "gold_special",
    "start_time": "2017-03-20T15:44:00.000Z",
    "stop_time": "2037-03-15T15:44:00.000Z",
    "end_time": "2037-03-15T15:44:00.000Z",
    "expiration_time": "2017-06-17T15:00:27.592Z",
    "condition": "not_specified",
    "permalink": "http://articulo.mercadolibre.com.ar/MLA-658778048-item-de-testeo-_JM",
    "thumbnail": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
    "secure_thumbnail": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
    "pictures": [
        {
            "id": "553111-MLA20482692355_112015",
            "url": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
            "secure_url": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
            "size": "320x320",
            "max_size": "320x320",
            "quality": ""
        },
        {
            "id": "629425-MLA25446587248_032017",
            "url": "http://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
            "secure_url": "https://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
            "size": "384x500",
            "max_size": "922x1200",
            "quality": ""
        }
    ],
    "video_id": null,
    "descriptions": [],
    "accepts_mercadopago": true,
    "non_mercado_pago_payment_methods": [],
    "shipping": {
        "mode": "not_specified",
        "local_pick_up": false,
        "free_shipping": false,
        "methods": null,
        "dimensions": null,
        "tags": [],
        "logistic_type": "not_specified"
    },
    "international_delivery_mode": "none",
    "seller_address": {
        "id": 265953311,
        "comment": "",
        "address_line": "Test Address 123",
        "zip_code": "1414",
        "city": {
            "id": "",
            "name": "Palermo"
        },
        "state": {
            "id": "AR-C",
            "name": "Capital Federal"
        },
        "country": {
            "id": "AR",
            "name": "Argentina"
        },
        "latitude": "",
        "longitude": "",
        "search_location": {
            "neighborhood": {
                "id": "TUxBQlBBTDI1MTVa",
                "name": "Palermo"
            },
            "city": {
                "id": "TUxBQ0NBUGZlZG1sYQ",
                "name": "Capital Federal"
            },
            "state": {
                "id": "TUxBUENBUGw3M2E1",
                "name": "Capital Federal"
            }
        }
    },
    "seller_contact": null,
    "location": {},
    "geolocation": {
        "latitude": "",
        "longitude": ""
    },
    "coverage_areas": [],
    "attributes": [
        {
            "id": "FAN_TYPE",
            "name": "Tipo de Ventilador",
            "value_id": "291719",
            "value_name": "De Techo",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "HEIGHT_ADJUSTABLE",
            "name": "Altura Regulable",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "LATERAL_OSCILLATION",
            "name": "Oscilación Lateral",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "REMOTE_CONTROL",
            "name": "Control Remoto",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "WITH_LIGHT",
            "name": "Con Luz",
            "value_id": "242084",
            "value_name": "No",
            "attribute_group_id": "DFLT",
            "attribute_group_name": "Otros"
        },
        {
            "id": "BRAND",
            "name": "Marca",
            "value_id": "86416",
            "value_name": "Eiffel",
            "attribute_group_id": "MAIN",
            "attribute_group_name": "Atributos Principales"
        }
    ],
    "warnings": [],
    "listing_source": "",
    "variations": [
        {
            "id": 15092589430,
            "attribute_combinations": [
                {
                    "id": "COLOR",
                    "name": "Color",
                    "value_id": "52005",
                    "value_name": "Marrón"
                },
                {
                    "id": "VOLTAGE",
                    "name": "Voltaje",
                    "value_id": "198812",
                    "value_name": "110V/220V (Bivolt)"
                }
            ],
            "price": 100,
            "available_quantity": 10,
            "sold_quantity": 0,
            "picture_ids": [
                "629425-MLA25446587248_032017"
            ],
            "seller_custom_field": null,
            "catalog_product_id": null,
            "attributes": [
                {
                    "id": "EAN",
                    "name": "EAN",
                    "value_id": null,
                    "value_name": "7792931000015"
                },
                {
                    "id": "UPC",
                    "name": "UPC",
                    "value_id": null,
                    "value_name": "7792931000015"
                }
            ]
        }
    ],
    "status": "active",
    "sub_status": [],
    "tags": [
        "poor_quality_picture",
        "immediate_payment"
    ],
    "warranty": null,
    "catalog_product_id": null,
    "domain_id": "MLA-FANS",
    "seller_custom_field": null,
    "parent_item_id": null,
    "differential_pricing": null,
    "deal_ids": [],
    "automatic_relist": false,
    "date_created": "2017-03-20T15:44:01.000Z",
    "last_updated": "2017-03-29T15:00:27.650Z"
}

Trabalhar com imagens em variações

Para que as diferentes imagens de cada variação fiquem visíveis, é importante levar em conta que o atributo que as determina é aquele que tem a tag defines_picture: true.
Todas as variações que compartilharem o mesmo valor no atributo com a tag define_picture devem SEMPRE ter as mesmas imagens.
Exemplo

  • vermelho/32 e vermelho/28 devem ter as mesmas imagens
  • vermelho/32 e verde /32 devem ter imagens diferentes

Ou seja:

  • Todas as variações com o mesmo valor no atributo com a tag “defines_picture” devem ter as mesmas imagens.
  • Todas as variações com diferente valor no atributo com a tag “defines_picture” devem ter imagens diferentes.
  • Todas as variações devem ter uma imagem associada.
  • Levando em conta os pontos acima, você também conseguirá que as imagens em miniatura sejam corretamente visualizadas, como mostrado na seguinte captura:
  • Modificar imagens

    Se você quiser adicionar uma imagem a uma variação existente, deberá enviar a URL ou o picture_id, caso a imagem já estiver carregada, na lista de pictures geral do produto e na de pictures da variação. Ao mesmo tempo, como a atualização será realizada sobre o recurso de produtos, é importante você enviar os IDs de cada variação existente no JSON. Caso contrário, a API interpretará que você não quer conservá-las no anúncio.

    Exemplo

    curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
      "pictures": [{
          "source": "http://www.apertura.com/export/sites/revistaap/img/Tecnologia/Logo_ML_NUEVO.jpg_33442984.jpg"
        },
        {
          "source": "http://static.ellahoy.es/ellahoy/fotogallery/1200X0/371265/falda-plisada-rosa.jpg"
        },
        {
          "id": "553111-MLA20482692355_112015"
        },
        {
          "id": "629425-MLA25446587248_032017"
        }
      ],
      "variations": [{
          "id": 18200178910,
          "picture_ids": [
            "http://static.ellahoy.es/ellahoy/fotogallery/1200X0/371265/falda-plisada-rosa.jpg",
            "553111-MLA20482692355_112015"
          ]
        },
        {
          "id": 18200178913,
          "picture_ids": [
            "http://www.apertura.com/export/sites/revistaap/img/Tecnologia/Logo_ML_NUEVO.jpg_33442984.jpg",
            "629425-MLA25446587248_032017"
          ]
        }
      ]
    }'
    

    Resposta

    {
        "id": "MLA689372871",
        "site_id": "MLA",
        "title": "Test Item - No Ofertar",
        "subtitle": null,
        "seller_id": 235461680,
        "category_id": "MLA374515",
        "official_store_id": null,
        "price": 200,
        "base_price": 200,
        "original_price": null,
        "currency_id": "ARS",
        "initial_quantity": 2,
        "available_quantity": 2,
        "sold_quantity": 0,
        "sale_terms": [],
        "buying_mode": "buy_it_now",
        "listing_type_id": "gold_special",
        "start_time": "2017-10-26T13:03:44.000Z",
        "historical_start_time": "2017-10-26T13:03:44.000Z",
        "stop_time": "2037-10-21T13:03:44.000Z",
        "end_time": "2037-10-21T13:03:44.000Z",
        "expiration_time": "2018-01-14T16:32:57.725Z",
        "condition": "new",
        "permalink": "http://articulo.mercadolibre.com.ar/MLA-689372871-test-item-no-ofertar-_JM",
        "thumbnail": "http://mla-s1-p.mlstatic.com/942947-MLA26244780225_102017-I.jpg",
        "secure_thumbnail": "https://mla-s1-p.mlstatic.com/942947-MLA26244780225_102017-I.jpg",
        "pictures": [
            {
                "id": "942947-MLA26244780225_102017",
                "url": "http://mla-s1-p.mlstatic.com/942947-MLA26244780225_102017-O.jpg",
                "secure_url": "https://mla-s1-p.mlstatic.com/942947-MLA26244780225_102017-O.jpg",
                "size": "500x228",
                "max_size": "625x285",
                "quality": ""
            },
            {
                "id": "837548-MLA26244864461_102017",
                "url": "http://www.mercadolibre.com/jm/img?s=STC&v=O&f=proccesing_image_es.jpg",
                "secure_url": "https://www.mercadolibre.com/jm/img?s=STC&v=O&f=proccesing_image_es.jpg",
                "size": "500x500",
                "max_size": "500x500",
                "quality": ""
            },
            {
                "id": "553111-MLA20482692355_112015",
                "url": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
                "secure_url": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
                "size": "320x320",
                "max_size": "320x320",
                "quality": ""
            },
            {
                "id": "629425-MLA25446587248_032017",
                "url": "http://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
                "secure_url": "https://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
                "size": "384x500",
                "max_size": "922x1200",
                "quality": ""
            }
        ],
        "video_id": null,
        "descriptions": [
            {
                "id": "MLA689372871-1476963486"
            }
        ],
        "accepts_mercadopago": true,
        "non_mercado_pago_payment_methods": [],
        "shipping": {
            "mode": "not_specified",
            "local_pick_up": false,
            "free_shipping": false,
            "methods": [],
            "dimensions": null,
            "tags": [
                "me2_available"
            ],
            "logistic_type": "not_specified",
            "store_pick_up": false
        },
        "international_delivery_mode": "none",
        "seller_address": {
            "id": 206175834,
            "comment": "",
            "address_line": "sssss 111",
            "zip_code": "5000",
            "city": {
                "id": "",
                "name": "Cordoba"
            },
            "state": {
                "id": "AR-X",
                "name": "Córdoba"
            },
            "country": {
                "id": "AR",
                "name": "Argentina"
            },
            "latitude": -32.8224655,
            "longitude": -63.8666332,
            "search_location": {
                "neighborhood": {
                    "id": "",
                    "name": ""
                },
                "city": {
                    "id": "TUxBQ0NBUGNiZGQx",
                    "name": "Córdoba"
                },
                "state": {
                    "id": "TUxBUENPUmFkZGIw",
                    "name": "Córdoba"
                }
            }
        },
        "seller_contact": null,
        "location": {},
        "geolocation": {
            "latitude": -32.8224655,
            "longitude": -63.8666332
        },
        "coverage_areas": [],
        "attributes": [
            {
                "id": "GENDER",
                "name": "Género",
                "value_id": "female",
                "value_name": "Mujer",
                "value_struct": null,
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "Season",
                "name": "Season",
                "value_id": "Season-All-Season",
                "value_name": "All-Season",
                "value_struct": null,
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            }
        ],
        "warnings": [],
        "listing_source": "",
        "variations": [
            {
                "id": 18200178910,
                "attribute_combinations": [
                    {
                        "id": "83000",
                        "name": "Color Primario",
                        "value_id": "92028",
                        "value_name": "Blanco",
                        "value_struct": null
                    },
                    {
                        "id": "93000",
                        "name": "Talle",
                        "value_id": "101994",
                        "value_name": "S",
                        "value_struct": null
                    }
                ],
                "price": 200,
                "available_quantity": 1,
                "sold_quantity": 0,
                "sale_terms": [],
                "picture_ids": [
                    "837548-MLA26244864461_102017",
                    "553111-MLA20482692355_112015"
                ],
                "seller_custom_field": null,
                "catalog_product_id": null,
                "attributes": []
            },
            {
                "id": 18200178913,
                "attribute_combinations": [
                    {
                        "id": "83000",
                        "name": "Color Primario",
                        "value_id": "91994",
                        "value_name": "Rosa",
                        "value_struct": null
                    },
                    {
                        "id": "93000",
                        "name": "Talle",
                        "value_id": "101995",
                        "value_name": "M",
                        "value_struct": null
                    }
                ],
                "price": 200,
                "available_quantity": 1,
                "sold_quantity": 0,
                "sale_terms": [],
                "picture_ids": [
                    "942947-MLA26244780225_102017",
                    "629425-MLA25446587248_032017"
                ],
                "seller_custom_field": null,
                "catalog_product_id": null,
                "attributes": []
            }
        ],
        "status": "active",
        "sub_status": [],
        "tags": [
            "test_item",
            "only_html_description",
            "good_quality_thumbnail",
            "unknown_quality_picture",
            "immediate_payment"
        ],
        "warranty": null,
        "catalog_product_id": null,
        "domain_id": null,
        "seller_custom_field": null,
        "parent_item_id": null,
        "differential_pricing": null,
        "deal_ids": [],
        "automatic_relist": false,
        "date_created": "2017-10-26T13:03:44.000Z",
        "last_updated": "2017-10-26T16:32:57.945Z",
        "total_listing_fee": null
    }
    

    Nota: Caso você não queira conservar as imagens anteriores, não envie no JSON e elas serão automaticamente desvinculadas.

    Reativar variações

    Se seu anúncio estiver pausado por falta de estoque e você quiser reativá-lo, mas só com as variações disponíveis no estoque atual, deve enviar a quantidade disponível de cada uma.
    Lembre que o produto conterá unicamente as variações enviadas no último PUT.

    Exemplo

    curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
    "variations": [
        {
          "id": 15092589430,
          "price": 350,
          "available_quantity": 8
        "status": "active"
        }
      ]
    }'

    Resposta

    {
        "id": "MLA658778048",
        "site_id": "MLA",
        "title": "Item De Testeo",
        "subtitle": null,
        "seller_id": 247212006,
        "category_id": "MLA378496",
        "official_store_id": null,
        "price": 350,
        "base_price": 350,
        "original_price": null,
        "currency_id": "ARS",
        "initial_quantity": 8,
        "available_quantity": 8,
        "sold_quantity": 0,
        "buying_mode": "buy_it_now",
        "listing_type_id": "gold_special",
        "start_time": "2017-03-20T15:44:00.000Z",
        "stop_time": "2037-03-15T15:44:00.000Z",
        "end_time": "2037-03-15T15:44:00.000Z",
        "expiration_time": "2017-06-17T15:01:21.418Z",
        "condition": "not_specified",
        "permalink": "http://articulo.mercadolibre.com.ar/MLA-658778048-item-de-testeo-_JM",
        "thumbnail": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
        "secure_thumbnail": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
        "pictures": [
            {
                "id": "553111-MLA20482692355_112015",
                "url": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
                "secure_url": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
                "size": "320x320",
                "max_size": "320x320",
                "quality": ""
            },
            {
                "id": "629425-MLA25446587248_032017",
                "url": "http://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
                "secure_url": "https://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
                "size": "384x500",
                "max_size": "922x1200",
                "quality": ""
            }
        ],
        "video_id": null,
        "descriptions": [],
        "accepts_mercadopago": true,
        "non_mercado_pago_payment_methods": [],
        "shipping": {
            "mode": "not_specified",
            "local_pick_up": false,
            "free_shipping": false,
            "methods": null,
            "dimensions": null,
            "tags": [],
            "logistic_type": "not_specified"
        },
        "international_delivery_mode": "none",
        "seller_address": {
            "id": 265953311,
            "comment": "",
            "address_line": "Test Address 123",
            "zip_code": "1414",
            "city": {
                "id": "",
                "name": "Palermo"
            },
            "state": {
                "id": "AR-C",
                "name": "Capital Federal"
            },
            "country": {
                "id": "AR",
                "name": "Argentina"
            },
            "latitude": "",
            "longitude": "",
            "search_location": {
                "neighborhood": {
                    "id": "TUxBQlBBTDI1MTVa",
                    "name": "Palermo"
                },
                "city": {
                    "id": "TUxBQ0NBUGZlZG1sYQ",
                    "name": "Capital Federal"
                },
                "state": {
                    "id": "TUxBUENBUGw3M2E1",
                    "name": "Capital Federal"
                }
            }
        },
        "seller_contact": null,
        "location": {},
        "geolocation": {
            "latitude": "",
            "longitude": ""
        },
        "coverage_areas": [],
        "attributes": [
            {
                "id": "FAN_TYPE",
                "name": "Tipo de Ventilador",
                "value_id": "291719",
                "value_name": "De Techo",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "HEIGHT_ADJUSTABLE",
                "name": "Altura Regulable",
                "value_id": "242084",
                "value_name": "No",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "LATERAL_OSCILLATION",
                "name": "Oscilación Lateral",
                "value_id": "242084",
                "value_name": "No",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "REMOTE_CONTROL",
                "name": "Control Remoto",
                "value_id": "242084",
                "value_name": "No",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "WITH_LIGHT",
                "name": "Con Luz",
                "value_id": "242084",
                "value_name": "No",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "BRAND",
                "name": "Marca",
                "value_id": "86416",
                "value_name": "Eiffel",
                "attribute_group_id": "MAIN",
                "attribute_group_name": "Atributos Principales"
            }
        ],
        "warnings": [],
        "listing_source": "",
        "variations": [
            {
                "id": 15092589430,
                "attribute_combinations": [
                    {
                        "id": "COLOR",
                        "name": "Color",
                        "value_id": "52005",
                        "value_name": "Marrón"
                    },
                    {
                        "id": "VOLTAGE",
                        "name": "Voltaje",
                        "value_id": "198812",
                        "value_name": "110V/220V (Bivolt)"
                    }
                ],
                "price": 350,
                "available_quantity": 8,
                "sold_quantity": 0,
                "picture_ids": [
                    "629425-MLA25446587248_032017"
                ],
                "seller_custom_field": null,
                "catalog_product_id": null,
                "attributes": [
                    {
                        "id": "EAN",
                        "name": "EAN",
                        "value_id": null,
                        "value_name": "7792931000015"
                    },
                    {
                        "id": "UPC",
                        "name": "UPC",
                        "value_id": null,
                        "value_name": "7792931000015"
                    }
                ]
            }
        ],
        "status": "active",
        "sub_status": [],
        "tags": [
            "poor_quality_picture",
            "immediate_payment"
        ],
        "warranty": null,
        "catalog_product_id": null,
        "domain_id": "MLA-FANS",
        "seller_custom_field": null,
        "parent_item_id": null,
        "differential_pricing": null,
        "deal_ids": [],
        "automatic_relist": false,
        "date_created": "2017-03-20T15:44:01.000Z",
        "last_updated": "2017-03-29T15:01:21.506Z"
    }

    Para reactivar una variación existen 2 posibilidades:

    1) Enviar en variations el id de la variación y “status”:”active”.

    PUT https://api.mercadolibre.com/items/{item_id}
     { 
    "variations":[
    {
      "id": 16683296031,    -> Variación reactivada
        "status":"active"
    },
    {
      "id": 16683258955   -> Variación existente para mantenerla activa.
    }
    ]
    }

    2) Enviar en una nueva variación los mismos atributos, con los mismos valores en los attributes_combinations de una variación borrada anteriormente, hará que se active la misma variación eliminada manteniendo su ID.

    Remover variações

    Caso você queira remover uma variação, poderá fazê-lo como no exemplo abaixo.

    Exemplo

    curl -X DELETE 'https://api.mercadolibre.com/items/MLA599099879/variations/10449631060?access_token=¢ACCESS_TOKEN

    Resposta

    {
        "id": "MLA658778048",
        "site_id": "MLA",
        "title": "Item De Testeo",
        "subtitle": null,
        "seller_id": 247212006,
        "category_id": "MLA378496",
        "official_store_id": null,
        "price": 300,
        "base_price": 300,
        "original_price": null,
        "currency_id": "ARS",
        "initial_quantity": 8,
        "available_quantity": 8,
        "sold_quantity": 0,
        "buying_mode": "buy_it_now",
        "listing_type_id": "gold_special",
        "start_time": "2017-03-20T15:44:00.000Z",
        "stop_time": "2037-03-15T15:44:00.000Z",
        "end_time": "2037-03-15T15:44:00.000Z",
        "expiration_time": "2017-06-17T15:03:02.000Z",
        "condition": "not_specified",
        "permalink": "http://articulo.mercadolibre.com.ar/MLA-658778048-item-de-testeo-_JM",
        "thumbnail": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
        "secure_thumbnail": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
        "pictures": [
            {
                "id": "553111-MLA20482692355_112015",
                "url": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
                "secure_url": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
                "size": "320x320",
                "max_size": "320x320",
                "quality": ""
            },
            {
                "id": "629425-MLA25446587248_032017",
                "url": "http://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
                "secure_url": "https://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
                "size": "384x500",
                "max_size": "922x1200",
                "quality": ""
            }
        ],
        "video_id": null,
        "descriptions": [],
        "accepts_mercadopago": true,
        "non_mercado_pago_payment_methods": [],
        "shipping": {
            "mode": "not_specified",
            "local_pick_up": false,
            "free_shipping": false,
            "methods": null,
            "dimensions": null,
            "tags": [],
            "logistic_type": "not_specified"
        },
        "international_delivery_mode": "none",
        "seller_address": {
            "id": 265953311,
            "comment": "",
            "address_line": "Test Address 123",
            "zip_code": "1414",
            "city": {
                "id": "",
                "name": "Palermo"
            },
            "state": {
                "id": "AR-C",
                "name": "Capital Federal"
            },
            "country": {
                "id": "AR",
                "name": "Argentina"
            },
            "latitude": "",
            "longitude": "",
            "search_location": {
                "neighborhood": {
                    "id": "TUxBQlBBTDI1MTVa",
                    "name": "Palermo"
                },
                "city": {
                    "id": "TUxBQ0NBUGZlZG1sYQ",
                    "name": "Capital Federal"
                },
                "state": {
                    "id": "TUxBUENBUGw3M2E1",
                    "name": "Capital Federal"
                }
            }
        },
        "seller_contact": null,
        "location": {},
        "geolocation": {
            "latitude": "",
            "longitude": ""
        },
        "coverage_areas": [],
        "attributes": [
            {
                "id": "FAN_TYPE",
                "name": "Tipo de Ventilador",
                "value_id": "291719",
                "value_name": "De Techo",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "HEIGHT_ADJUSTABLE",
                "name": "Altura Regulable",
                "value_id": "242084",
                "value_name": "No",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "LATERAL_OSCILLATION",
                "name": "Oscilación Lateral",
                "value_id": "242084",
                "value_name": "No",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "REMOTE_CONTROL",
                "name": "Control Remoto",
                "value_id": "242084",
                "value_name": "No",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "WITH_LIGHT",
                "name": "Con Luz",
                "value_id": "242084",
                "value_name": "No",
                "attribute_group_id": "DFLT",
                "attribute_group_name": "Otros"
            },
            {
                "id": "BRAND",
                "name": "Marca",
                "value_id": "86416",
                "value_name": "Eiffel",
                "attribute_group_id": "MAIN",
                "attribute_group_name": "Atributos Principales"
            }
        ],
        "warnings": [],
        "listing_source": "",
        "variations": [
            {
                "id": 15092589430,
                "attribute_combinations": [
                    {
                        "id": "COLOR",
                        "name": "Color",
                        "value_id": "52005",
                        "value_name": "Marrón"
                    },
                    {
                        "id": "VOLTAGE",
                        "name": "Voltaje",
                        "value_id": "198812",
                        "value_name": "110V/220V (Bivolt)"
                    }
                ],
                "price": 300,
                "available_quantity": 8,
                "sold_quantity": 0,
                "picture_ids": [
                    "629425-MLA25446587248_032017"
                ],
                "seller_custom_field": null,
                "catalog_product_id": null,
                "attributes": [
                    {
                        "id": "EAN",
                        "name": "EAN",
                        "value_id": null,
                        "value_name": "7792931000015"
                    },
                    {
                        "id": "UPC",
                        "name": "UPC",
                        "value_id": null,
                        "value_name": "7792931000015"
                    }
                ]
            }
        ],
        "status": "active",
        "sub_status": [],
        "tags": [
            "poor_quality_picture",
            "immediate_payment"
        ],
        "warranty": null,
        "catalog_product_id": null,
        "domain_id": "MLA-FANS",
        "seller_custom_field": null,
        "parent_item_id": null,
        "differential_pricing": null,
        "deal_ids": [],
        "automatic_relist": false,
        "date_created": "2017-03-20T15:44:01.000Z",
        "last_updated": "2017-03-29T15:04:20.999Z"
    }

    Outra forma de remover variações é enviar um PUT para a API de produtos com a propriedade variations, listando somente os Ids das variações que quer manter.

    Exemplo

    curl -H 'Content-Type: application/json' -X DELETE https://api.mercadolibre.com/items/MLA658778048/variations/15092589430?access_token=$ACCESS_TOKEN

    Característica personalizada

    Embora para grande quantidade de categorias são identificados atributos pelos quais você pode variar seu produto, é provável que você precise gerar variantes com características personalizadas não definidas na API de atributos por categoria.
    Por exemplo, um vendedor de capas para celulares pode querer variar seu produto segundo o “Design” a fim de oferecer em um mesmo anúncio as variantes Flamingo, Crocodilo e Coruja. Como a categoria não tem esse atributo disponível, podemos enviar a característica personalizada no attribute_combinations da variação.

    Considerações:

    • No momento de anunciar um produto com características personalizadas, você deverá se certificar de que os atributos na categoria em que quiser publicar são diferentes daqueles que você quer adicionar.
    • Além disso, deverá ter em conta que só poderá variar o seu produto por uma única característica personalizada.
    • As características personalizadas deverão estar dentro da seção attribute_combinations em variations.

    Anunciar ou modificar produtos com variações com características personalizadas

    Adicionar ou modificar os atributos personalizados é igual que com os definidos na API de atributos por categoria; você só deve especificar o name do atributo e o value_name do valor a ser carregado. Lembre de ser consistente com o name definido para o atributo, e modifique seu value_name da mesma forma em que faria com qualquer outro.
    O name do atributo é o que os compradores verão na VIP. Para o exemplo anterior, o name que utilizaremos é “Design”. Já criada a variação utilizando esta característica personalizada, a VIP será visualizada assim:

    Exemplo

    curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
    "variations": [
    {
    	"attribute_combinations": [
    	      {
    	        "name": "Diseño",
    	        "value_name": "Buho"
    	      }
    	    ],
    	    "price": 100,
    	    "available_quantity": 10
        },
        {
    	"attribute_combinations": [
    	      {
    	        "name": "Diseño",
    	        "value_name": "Flamenco"
    	      }
    	    ],
    	    "price": 100,
    	    "available_quantity": 10
        },
        {
    	"attribute_combinations": [
    	      {
    	        "name": "Diseño",
    	        "value_name": "Cocodrilo"
    	      }
    	    ],
    	    "price": 100,
    	    "available_quantity": 10
        }
      ]
    }' 

    Resposta

    {
      "id": "MLA658778048",
      "site_id": "MLA",
      "title": "Item De Testeo",
      "subtitle": null,
      "seller_id": 247212006,
      "category_id": "MLA378496",
      "official_store_id": null,
      "price": 100,
      "base_price": 100,
      "original_price": null,
      "currency_id": "ARS",
      "initial_quantity": 30,
      "available_quantity": 30,
      "sold_quantity": 0,
      "buying_mode": "buy_it_now",
      "listing_type_id": "gold_special",
      "start_time": "2017-03-20T15:44:00.000Z",
      "stop_time": "2037-03-15T15:44:00.000Z",
      "end_time": "2037-03-15T15:44:00.000Z",
      "expiration_time": "2017-06-26T16:55:52.935Z",
      "condition": "not_specified",
      "permalink": "http://articulo.mercadolibre.com.ar/MLA-658778048-item-de-testeo-_JM",
      "thumbnail": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
      "secure_thumbnail": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-I.jpg",
      "pictures": [
        {
          "id": "553111-MLA20482692355_112015",
          "url": "http://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
          "secure_url": "https://mla-s2-p.mlstatic.com/553111-MLA20482692355_112015-O.jpg",
          "size": "320x320",
          "max_size": "320x320",
          "quality": ""
        },
        {
          "id": "629425-MLA25446587248_032017",
          "url": "http://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
          "secure_url": "https://mla-s2-p.mlstatic.com/629425-MLA25446587248_032017-O.jpg",
          "size": "384x500",
          "max_size": "922x1200",
          "quality": ""
        }
      ],
      "video_id": null,
      "descriptions": [],
      "accepts_mercadopago": true,
      "non_mercado_pago_payment_methods": [],
      "shipping": {
        "mode": "not_specified",
        "local_pick_up": false,
        "free_shipping": false,
        "methods": null,
        "dimensions": null,
        "tags": [],
        "logistic_type": "not_specified"
      },
      "international_delivery_mode": "none",
      "seller_address": {
        "id": 265953311,
        "comment": "",
        "address_line": "Test Address 123",
        "zip_code": "1414",
        "city": {
          "id": "",
          "name": "Palermo"
        },
        "state": {
          "id": "AR-C",
          "name": "Capital Federal"
        },
        "country": {
          "id": "AR",
          "name": "Argentina"
        },
        "latitude": "",
        "longitude": "",
        "search_location": {
          "neighborhood": {
            "id": "TUxBQlBBTDI1MTVa",
            "name": "Palermo"
          },
          "city": {
            "id": "TUxBQ0NBUGZlZG1sYQ",
            "name": "Capital Federal"
          },
          "state": {
            "id": "TUxBUENBUGw3M2E1",
            "name": "Capital Federal"
          }
        }
      },
      "seller_contact": null,
      "location": {},
      "geolocation": {
        "latitude": "",
        "longitude": ""
      },
      "coverage_areas": [],
      "attributes": [
        {
          "id": "FAN_TYPE",
          "name": "Tipo de Ventilador",
          "value_id": "291719",
          "value_name": "De Techo",
          "attribute_group_id": "DFLT",
          "attribute_group_name": "Otros"
        },
        {
          "id": "HEIGHT_ADJUSTABLE",
          "name": "Altura Regulable",
          "value_id": "242084",
          "value_name": "No",
          "attribute_group_id": "DFLT",
          "attribute_group_name": "Otros"
        },
        {
          "id": "REMOTE_CONTROL",
          "name": "Control Remoto",
          "value_id": "242084",
          "value_name": "No",
          "attribute_group_id": "DFLT",
          "attribute_group_name": "Otros"
        },
        {
          "id": "WITH_LIGHT",
          "name": "Con Luz",
          "value_id": "242084",
          "value_name": "No",
          "attribute_group_id": "DFLT",
          "attribute_group_name": "Otros"
        },
        {
          "id": "BRAND",
          "name": "Marca",
          "value_id": "86416",
          "value_name": "Eiffel",
          "attribute_group_id": "MAIN",
          "attribute_group_name": "Atributos Principales"
        }
      ],
      "warnings": [],
      "listing_source": "",
      "variations": [
        {
          "id": 15311871917,
          "attribute_combinations": [
            {
              "id": null,
              "name": "Diseño",
              "value_id": null,
              "value_name": "Buho"
            }
          ],
          "price": 100,
          "available_quantity": 10,
          "sold_quantity": 0,
          "picture_ids": [],
          "seller_custom_field": null,
          "catalog_product_id": null,
          "attributes": []
        },
        {
          "id": 15313572235,
          "attribute_combinations": [
            {
              "id": null,
              "name": "Diseño",
              "value_id": null,
              "value_name": "Flamenco"
            }
          ],
          "price": 100,
          "available_quantity": 10,
          "sold_quantity": 0,
          "picture_ids": [],
          "seller_custom_field": null,
          "catalog_product_id": null,
          "attributes": []
        },
        {
          "id": 15313572237,
          "attribute_combinations": [
            {
              "id": null,
              "name": "Diseño",
              "value_id": null,
              "value_name": "Cocodrilo"
            }
          ],
          "price": 100,
          "available_quantity": 10,
          "sold_quantity": 0,
          "picture_ids": [],
          "seller_custom_field": null,
          "catalog_product_id": null,
          "attributes": []
        }
      ],
      "status": "active",
      "sub_status": [],
      "tags": [
        "poor_quality_picture",
        "immediate_payment"
      ],
      "warranty": null,
      "catalog_product_id": null,
      "domain_id": "MLA-FANS",
      "seller_custom_field": null,
      "parent_item_id": null,
      "differential_pricing": null,
      "deal_ids": [],
      "automatic_relist": false,
      "date_created": "2017-03-20T15:44:01.000Z",
      "last_updated": "2017-04-07T16:55:52.996Z"
    }

    Muito bem! Agora que você já conhece a utilidade das variações, não terá necessidade de repetir informações para os produtos que só se diferenciam por este atributo. Convidamos você a levar isto à prática.

    Please rate this

Atributos

Conteúdos

O que é um atributo?

Um atributo serve para representar uma característica do seu item, por exemplo, Marca e Modelo de Micro-ondas. Estes podem ser adicionados no momento da postagem e depois podem ser modificados ou adicionados novos atributos.
Lembre que os atributos variam dependendo da categoria e você poderá consultá-los através da seguinte url:

curl -X GET https://api.mercadolibre.com/categories/{CATEGORY_ID}/attributes
[
 {
   "id": "HEADPHONE_FORMAT",
   "name": "Formato",
   "tags": {
     "fixed": true
   },
   "value_type": "list",
   "values": [
     {
       "id": "182349",
       "name": "In-Ear"
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "BRAND",
   "name": "Marca",
   "tags": {
     "fixed": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "values": [
     {
       "id": "15438",
       "name": "Shure"
     }
   ],
   "attribute_group_id": "MAIN",
   "attribute_group_name": "Atributos Principales"
 },
 {
   "id": "COLOR",
   "name": "Color",
   "tags": {
     "allow_variations": true,
     "hidden": true
   },
   "type": "color",
   "value_type": "list",
   "values": [
     {
       "id": "52049",
       "name": "Negro",
       "metadata": {
         "rgb": "000000"
       }
     },
     {
       "id": "51993",
       "name": "Rojo",
       "metadata": {
         "rgb": "FF0000"
       }
     },
     {
       "id": "52035",
       "name": "Violeta",
       "metadata": {
         "rgb": "9F00FF"
       }
     },
     {
       "id": "52028",
       "name": "Azul",
       "metadata": {
         "rgb": "1717FF"
       }
     },
     {
       "id": "52005",
       "name": "Marrón",
       "metadata": {
         "rgb": "A0522D"
       }
     },
     {
       "id": "52051",
       "name": "Gris oscuro",
       "metadata": {
         "rgb": "666666"
       }
     },
     {
       "id": "52000",
       "name": "Naranja",
       "metadata": {
         "rgb": "FF8C00"
       }
     },
     {
       "id": "52014",
       "name": "Verde",
       "metadata": {
         "rgb": "0DA600"
       }
     },
     {
       "id": "51994",
       "name": "Rosa",
       "metadata": {
         "rgb": "FCB1BE"
       }
     },
     {
       "id": "283164",
       "name": "Dorado",
       "metadata": {
         "rgb": "FFD700"
       }
     },
     {
       "id": "52007",
       "name": "Amarillo",
       "metadata": {
         "rgb": "FFED00"
       }
     },
     {
       "id": "52053",
       "name": "Plateado",
       "metadata": {
         "rgb": "CBCFD0"
       }
     },
     {
       "id": "283165",
       "name": "Gris claro",
       "metadata": {
         "rgb": "E1E1E1"
       }
     },
     {
       "id": "52021",
       "name": "Celeste",
       "metadata": {
         "rgb": "83DDFF"
       }
     },
     {
       "id": "52055",
       "name": "Blanco",
       "metadata": {
         "rgb": "FFFFFF"
       }
     },
     {
       "id": "51998",
       "name": "Bordó",
       "metadata": {
         "rgb": "830500",
         "parent_id": "51993"
       }
     },
     {
       "id": "51996",
       "name": "Terracota",
       "metadata": {
         "rgb": "C63633",
         "parent_id": "51993"
       }
     },
     {
       "id": "283149",
       "name": "Coral",
       "metadata": {
         "rgb": "FA8072",
         "parent_id": "51993"
       }
     },
     {
       "id": "283148",
       "name": "Coral claro",
       "metadata": {
         "rgb": "F9AC95",
         "parent_id": "51993"
       }
     },
     {
       "id": "52047",
       "name": "Violeta oscuro",
       "metadata": {
         "rgb": "4E0087",
         "parent_id": "52035"
       }
     },
     {
       "id": "283162",
       "name": "Índigo",
       "metadata": {
         "rgb": "7A64C6",
         "parent_id": "52035"
       }
     },
     {
       "id": "52038",
       "name": "Lila",
       "metadata": {
         "rgb": "CC87FF",
         "parent_id": "52035"
       }
     },
     {
       "id": "52036",
       "name": "Lavanda",
       "metadata": {
         "rgb": "D9D2E9",
         "parent_id": "52035"
       }
     },
     {
       "id": "52033",
       "name": "Azul oscuro",
       "metadata": {
         "rgb": "013267",
         "parent_id": "52028"
       }
     },
     {
       "id": "283161",
       "name": "Azul marino",
       "metadata": {
         "rgb": "0F5299",
         "parent_id": "52028"
       }
     },
     {
       "id": "52031",
       "name": "Azul acero",
       "metadata": {
         "rgb": "6FA8DC",
         "parent_id": "52028"
       }
     },
     {
       "id": "52029",
       "name": "Azul claro",
       "metadata": {
         "rgb": "DCECFF",
         "parent_id": "52028"
       }
     },
     {
       "id": "283155",
       "name": "Marrón oscuro",
       "metadata": {
         "rgb": "5D3806",
         "parent_id": "52005"
       }
     },
     {
       "id": "283154",
       "name": "Marrón claro",
       "metadata": {
         "rgb": "AF8650",
         "parent_id": "52005"
       }
     },
     {
       "id": "283153",
       "name": "Suela",
       "metadata": {
         "rgb": "FAEBD7",
         "parent_id": "52005"
       }
     },
     {
       "id": "52001",
       "name": "Beige",
       "metadata": {
         "rgb": "F5F3DC",
         "parent_id": "52005"
       }
     },
     {
       "id": "283152",
       "name": "Chocolate",
       "metadata": {
         "rgb": "9B3F14",
         "parent_id": "52000"
       }
     },
     {
       "id": "283151",
       "name": "Naranja oscuro",
       "metadata": {
         "rgb": "D2691E",
         "parent_id": "52000"
       }
     },
     {
       "id": "283150",
       "name": "Naranja claro",
       "metadata": {
         "rgb": "FDAF20",
         "parent_id": "52000"
       }
     },
     {
       "id": "52003",
       "name": "Piel",
       "metadata": {
         "rgb": "FFE4C4",
         "parent_id": "52000"
       }
     },
     {
       "id": "52019",
       "name": "Verde oscuro",
       "metadata": {
         "rgb": "003D00",
         "parent_id": "52014"
       }
     },
     {
       "id": "283158",
       "name": "Verde musgo",
       "metadata": {
         "rgb": "3F7600",
         "parent_id": "52014"
       }
     },
     {
       "id": "283157",
       "name": "Verde limón",
       "metadata": {
         "rgb": "73E129",
         "parent_id": "52014"
       }
     },
     {
       "id": "52015",
       "name": "Verde claro",
       "metadata": {
         "rgb": "9FF39F",
         "parent_id": "52014"
       }
     },
     {
       "id": "52042",
       "name": "Fucsia",
       "metadata": {
         "rgb": "FF00EC",
         "parent_id": "51994"
       }
     },
     {
       "id": "283163",
       "name": "Rosa chicle",
       "metadata": {
         "rgb": "FF51A8",
         "parent_id": "51994"
       }
     },
     {
       "id": "52045",
       "name": "Rosa pálido",
       "metadata": {
         "rgb": "D06EA8",
         "parent_id": "51994"
       }
     },
     {
       "id": "52043",
       "name": "Rosa claro",
       "metadata": {
         "rgb": "FADBE2",
         "parent_id": "51994"
       }
     },
     {
       "id": "52012",
       "name": "Dorado oscuro",
       "metadata": {
         "rgb": "BF9000",
         "parent_id": "52007"
       }
     },
     {
       "id": "52010",
       "name": "Ocre",
       "metadata": {
         "rgb": "EACB53",
         "parent_id": "52007"
       }
     },
     {
       "id": "283156",
       "name": "Caqui",
       "metadata": {
         "rgb": "F0E68C",
         "parent_id": "52007"
       }
     },
     {
       "id": "52008",
       "name": "Crema",
       "metadata": {
         "rgb": "FFFFE0",
         "parent_id": "52007"
       }
     },
     {
       "id": "52024",
       "name": "Azul petróleo",
       "metadata": {
         "rgb": "1E6E7F",
         "parent_id": "52021"
       }
     },
     {
       "id": "283160",
       "name": "Turquesa",
       "metadata": {
         "rgb": "40E0D0",
         "parent_id": "52021"
       }
     },
     {
       "id": "52022",
       "name": "Agua",
       "metadata": {
         "rgb": "E0FFFF",
         "parent_id": "52021"
       }
     },
     {
       "id": "283159",
       "name": "Cyan",
       "metadata": {
         "rgb": "00FFFF",
         "parent_id": "52021"
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "WIRELESS_RANGE",
   "name": "Alcance Inalámbrico",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "km",
       "name": "km"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     }
   ],
   "default_unit": "cm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PACKAGE_HEIGHT",
   "name": "Altura del paquete",
   "tags": {
     "hidden": true,
     "read_only": true,
     "variation_attribute": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "km",
       "name": "km"
     }
   ],
   "default_unit": "mm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PACKAGE_WIDTH",
   "name": "Ancho del paquete",
   "tags": {
     "hidden": true,
     "read_only": true,
     "variation_attribute": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "km",
       "name": "km"
     }
   ],
   "default_unit": "mm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "BLUETOOTH",
   "name": "Bluetooth",
   "tags": {
     "hidden": true
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "BATTERY_LIFE",
   "name": "Duración de la Batería",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "h",
       "name": "h"
     },
     {
       "id": "años",
       "name": "años"
     },
     {
       "id": "d",
       "name": "d"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "meses",
       "name": "meses"
     },
     {
       "id": "ms",
       "name": "ms"
     },
     {
       "id": "s",
       "name": "s"
     }
   ],
   "default_unit": "h",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "EAN",
   "name": "EAN",
   "tags": {
     "multivalued": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "GTIN",
   "name": "GTIN",
   "tags": {
     "hidden": true,
     "multivalued": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "IMPEDANCE",
   "name": "Impedancia",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "ω",
       "name": "ω"
     }
   ],
   "default_unit": "ω",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "JAN",
   "name": "JAN",
   "tags": {
     "hidden": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "LINE",
   "name": "Línea",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "CABLE_LENGTH",
   "name": "Longitud del Cable",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "km",
       "name": "km"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     }
   ],
   "default_unit": "cm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PACKAGE_LENGTH",
   "name": "Longitud del paquete",
   "tags": {
     "hidden": true,
     "read_only": true,
     "variation_attribute": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "km",
       "name": "km"
     }
   ],
   "default_unit": "mm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MICROPHONE_INCLUDED",
   "name": "Micrófono Incluido",
   "tags": {
     "hidden": true
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MODEL",
   "name": "Modelo",
   "tags": {
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "MAIN",
   "attribute_group_name": "Atributos Principales"
 },
 {
   "id": "ALPHANUMERIC_MODEL",
   "name": "Modelo Alfanumérico",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "DETAILED_MODEL",
   "name": "Modelo Detallado",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MPN",
   "name": "MPN",
   "tags": {
     "hidden": true,
     "multivalued": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PACKAGE_WEIGHT",
   "name": "Peso del paquete",
   "tags": {
     "hidden": true,
     "read_only": true,
     "variation_attribute": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mcg",
       "name": "mcg"
     },
     {
       "id": "mg",
       "name": "mg"
     },
     {
       "id": "g",
       "name": "g"
     },
     {
       "id": "oz",
       "name": "oz"
     },
     {
       "id": "lb",
       "name": "lb"
     },
     {
       "id": "kg",
       "name": "kg"
     }
   ],
   "default_unit": "mcg",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "WIRELESS_CAPABILITY",
   "name": "Recepción Inalámbrica",
   "tags": {
     "hidden": true
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "FREQUENCY_RESPONSE",
   "name": "Respuesta en Frecuencia",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "SENSITIVITY",
   "name": "Sensibilidad",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "db",
       "name": "db"
     }
   ],
   "default_unit": "db",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MEMORY_SIZE",
   "name": "Tamaño Efectivo de Memoria",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "gb",
       "name": "gb"
     },
     {
       "id": "gib",
       "name": "gib"
     },
     {
       "id": "kb",
       "name": "kb"
     },
     {
       "id": "kib",
       "name": "kib"
     },
     {
       "id": "mb",
       "name": "mb"
     },
     {
       "id": "mib",
       "name": "mib"
     },
     {
       "id": "tb",
       "name": "tb"
     },
     {
       "id": "tib",
       "name": "tib"
     }
   ],
   "default_unit": "gb",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "HEADPHONES_TYPE",
   "name": "Tipo",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "TYPE_COUPLING",
   "name": "Tipo de Acoplamiento",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "suggested_values": [
     {
       "id": "114209",
       "name": "Supraaural"
     },
     {
       "id": "114210",
       "name": "Intraural"
     },
     {
       "id": "114208",
       "name": "Circumaural"
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "DIAPHRAGM_UNIT",
   "name": "Unidad de Diafragma",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "km",
       "name": "km"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     }
   ],
   "default_unit": "mm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "UPC",
   "name": "UPC",
   "tags": {
     "multivalued": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 }
]

Tipos de atributos possíveis

Existem diversos tipos de atributos; deles vão depender os valores que poderão suportar. O tipo de um atributo pode ser visualizado acessando a API de atributos dessa categoria e consultando o campo value_type.

Os tipos possíveis são:

string

Você pode preencher atributos como esse com texto livre, incluindo letras e números indistintamente.
Exemplo

Considerações: para este tipo de atributos sugerimos uma lista de valores conhecidos; mesmo assim, você também pode adicionar novos atributos que não façam parte dessa lista. Para o caso de valores novos só deverá enviar o name, mas para valores conhecidos pode fazê-lo enviando tanto o id como o name. Veja os valores sugeridos na API!

number

Estes atributos são somente preenchidos com valores numéricos.
Exemplo

Considerações: para este tipo de atributos sugerimos uma lista de valores conhecidos; mesmo assim, você também pode adicionar novos atributos que não façam parte dessa lista. Para o caso de valores novos só deverá enviar o name, mas para valores conhecidos pode fazê-lo enviando tanto o id como o name. Veja os valores sugeridos na API!

number_unit

São atributos formados por um valor numérico e mais uma unidade. Na API de atributos você pode ver as unidades disponíveis para esse atributo.
Exemplo

Considerações:

  • No momento de realizar ou modificar uma postagem, o formato desses atributos será validado, corroborando que este seja respeitado.
  • Para todos os tipos de atributos acima, o campo value_max_length indica o número máximo de caracteres a ser carregado no valor do atributo.

boolean

Permite somente dois valores, um positivo e outro negativo.
Exemplo

Considerações: é necessário enviar o id do valor; você pode consultá-lo na API de atributos.

list

Na propriedade value são elencados os valores possíveis que este atributo pode tomar, sempre haverá pelo menos um.
Exemplo

Considerações: se você quiser carregar um valor que não faz parte da lista, pode fazê-lo enviando no value_name seu valor personalizado, com o value_id do valor mais semelhante ao seu. Por exemplo, se você está vendendo um Ar Condicionado móvel mas o atributo PRODUCT_TYPE não possui um valor que represente exatamente seu item, pode usar o value_id do valor Portátil mas em value_name enviar Móvel.

Comportamentos especiais

Na propriedade tags são especificados comportamentos particulares do atributo. Abaixo são listados os possíveis valores que podem ser incluídos, junto com a descrição do comportamento.

  • allow_variations: o item pode variar por este atributo. Se você quer saber mais sobre como adicionar atributos, pode ler o documento Variações.
  • defines_picture: indica que o atributo define a foto. Por exemplo, Cor em sapatos. Utilizando esta tag será interpretado o modo em que os diferentes componentes nos fluxos devem ser mostrados.
  • Lembre que este comportamento é somente aplicável para atributos que suportam variações.

  • fixed: indica que há um valor fixo para a categoria e todos os itens postados nesta seção terão esse valor.
    Por exemplo, se você está vendendo um Micro-ondas na categoria MLB232411 correspondente a Micro-ondas -> Outras Marcas -> 18 Litros, esta possui o atributo VOLUMEN_CAPACITY com os valores 18 Litros, 20 Litros, etc., mas sabemos que para essa categoria o valor adequado para o atributo é 18 Litros, por isso não é necessário que você envie no momento da postagem porque nós vamos preenchê-lo automaticamente.
  • hidden: os atributos com esta propriedade não são mostrados no fluxo vender, mas podem ser carregados via API.
  • inferred: indica que há um valor inferido para o atributo. Esse valor não pode ser modificado. Por exemplo, na categoria iPhone dentro de celulares, o atributo LINE é fixo com valor iPhone, e se infere que a marca é Apple.
  • multivalued: os atributos podem ser preenchidos com mais de um valor, separados por vírgulas.
  • others: esta tag é de uso interno.
  • product_pk: esta etiqueta serve para reconhecer as características que fazem parte de um produto. A partir dela, podemos identificar inequivocamente um produto do catálogo.
  • read_only: esta tag é de uso interno. Os atributos com esta tag não podem ser carregados nem modificados por vendedores.
  • required: preencher este atributo é requerimento para a postagem do item.
  • restricted_values: esta tag é de uso interno.
  • variation_attribute: se o item contém variações, este atributo pode ser postado com um valor diferente para cada variação. Por exemplo, para qualquer postagem de eletrônica que tiver variações por cor, os códigos de identificação de produto podem ser carregados para cada variação. Embora o item não tenha variações, um valor poderá ser carregado para este atributo.

Exclusões e implicações de comportamentos

Matriz de exclusões
Required

Fixed Allow_variations Variation_attribute Defines_Picture Hidden
Required

X

Fixed

X

X

X

Allow_variations

X

X

Variation_attribute

X

X

X

Defines_Picture

X

X

Hidden

X

Matriz de implicações
Required

Fixed Allow_variations Variation_attribute Defines_Picture Hidden
Required

Fixed

Allow_variations

Variation_attribute

Defines_Picture

X

Hidden

Atributos por categoria em cada país

Ao acessar, o primeiro é escolher a categoria L1; depois, utilizando a pesquisa, você pode encontrar a categoria para a qual quer consultar os atributos.
Recomendamos que realize pesquisas genéricas, por exemplo, Celulares, Micro-ondas, em lugar de Samsung S7 ou Phillips.
Você também poderá ver os atributos disponíveis e os comportamentos especiais definidos para eles.

Para consultar quais estão disponíveis em cada país, acesse os links a seguir:

Aclaração: Cada site do Mercado Livre é composto por uma grande árvore de categorias; uma maneira para se referir a elas é usar o termo L (level) acompanhado do nível na árvore onde está, por exemplo, L1, L2, etc.

Benefício

As informações do item serão mais completas e terão maior protagonismo mostrando os atributos através de uma ficha técnica em VIP, evitando, assim, perguntas e atritos.

Criar item com atributos

Vamos supor que queremos vender um Micro-ondas mas não conhecemos a marca, o modelo nem a capacidade; primeiramente, devemos determinar em qual categoria queremos postar o anúncio e, depois, consultar quais os atributos dessa categoria:

https://api.mercadolibre.com/categories/MLA125703/attributes
[
 {
   "id": "BRAND",
   "name": "Marca",
   "tags": {
     "fixed": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "values": [
     {
       "id": "5601",
       "name": "BGH"
     }
   ],
   "attribute_group_id": "MAIN",
   "attribute_group_name": "Atributos Principales"
 },
 {
   "id": "COLOR",
   "name": "Color",
   "tags": {
     "allow_variations": true,
     "hidden": true
   },
   "type": "color",
   "value_type": "list",
   "values": [
     {
       "id": "52049",
       "name": "Negro",
       "metadata": {
         "rgb": "000000"
       }
     },
     {
       "id": "51993",
       "name": "Rojo",
       "metadata": {
         "rgb": "FF0000"
       }
     },
     {
       "id": "52035",
       "name": "Violeta",
       "metadata": {
         "rgb": "9F00FF"
       }
     },
     {
       "id": "52028",
       "name": "Azul",
       "metadata": {
         "rgb": "1717FF"
       }
     },
     {
       "id": "52005",
       "name": "Marrón",
       "metadata": {
         "rgb": "A0522D"
       }
     },
     {
       "id": "52051",
       "name": "Gris oscuro",
       "metadata": {
         "rgb": "666666"
       }
     },
     {
       "id": "52000",
       "name": "Naranja",
       "metadata": {
         "rgb": "FF8C00"
       }
     },
     {
       "id": "52014",
       "name": "Verde",
       "metadata": {
         "rgb": "0DA600"
       }
     },
     {
       "id": "51994",
       "name": "Rosa",
       "metadata": {
         "rgb": "FCB1BE"
       }
     },
     {
       "id": "283164",
       "name": "Dorado",
       "metadata": {
         "rgb": "FFD700"
       }
     },
     {
       "id": "52007",
       "name": "Amarillo",
       "metadata": {
         "rgb": "FFED00"
       }
     },
     {
       "id": "52053",
       "name": "Plateado",
       "metadata": {
         "rgb": "CBCFD0"
       }
     },
     {
       "id": "283165",
       "name": "Gris claro",
       "metadata": {
         "rgb": "E1E1E1"
       }
     },
     {
       "id": "52021",
       "name": "Celeste",
       "metadata": {
         "rgb": "83DDFF"
       }
     },
     {
       "id": "52055",
       "name": "Blanco",
       "metadata": {
         "rgb": "FFFFFF"
       }
     },
     {
       "id": "51998",
       "name": "Bordó",
       "metadata": {
         "rgb": "830500",
         "parent_id": "51993"
       }
     },
     {
       "id": "51996",
       "name": "Terracota",
       "metadata": {
         "rgb": "C63633",
         "parent_id": "51993"
       }
     },
     {
       "id": "283149",
       "name": "Coral",
       "metadata": {
         "rgb": "FA8072",
         "parent_id": "51993"
       }
     },
     {
       "id": "283148",
       "name": "Coral claro",
       "metadata": {
         "rgb": "F9AC95",
         "parent_id": "51993"
       }
     },
     {
       "id": "52047",
       "name": "Violeta oscuro",
       "metadata": {
         "rgb": "4E0087",
         "parent_id": "52035"
       }
     },
     {
       "id": "283162",
       "name": "Índigo",
       "metadata": {
         "rgb": "7A64C6",
         "parent_id": "52035"
       }
     },
     {
       "id": "52038",
       "name": "Lila",
       "metadata": {
         "rgb": "CC87FF",
         "parent_id": "52035"
       }
     },
     {
       "id": "52036",
       "name": "Lavanda",
       "metadata": {
         "rgb": "D9D2E9",
         "parent_id": "52035"
       }
     },
     {
       "id": "52033",
       "name": "Azul oscuro",
       "metadata": {
         "rgb": "013267",
         "parent_id": "52028"
       }
     },
     {
       "id": "283161",
       "name": "Azul marino",
       "metadata": {
         "rgb": "0F5299",
         "parent_id": "52028"
       }
     },
     {
       "id": "52031",
       "name": "Azul acero",
       "metadata": {
         "rgb": "6FA8DC",
         "parent_id": "52028"
       }
     },
     {
       "id": "52029",
       "name": "Azul claro",
       "metadata": {
         "rgb": "DCECFF",
         "parent_id": "52028"
       }
     },
     {
       "id": "283155",
       "name": "Marrón oscuro",
       "metadata": {
         "rgb": "5D3806",
         "parent_id": "52005"
       }
     },
     {
       "id": "283154",
       "name": "Marrón claro",
       "metadata": {
         "rgb": "AF8650",
         "parent_id": "52005"
       }
     },
     {
       "id": "283153",
       "name": "Suela",
       "metadata": {
         "rgb": "FAEBD7",
         "parent_id": "52005"
       }
     },
     {
       "id": "52001",
       "name": "Beige",
       "metadata": {
         "rgb": "F5F3DC",
         "parent_id": "52005"
       }
     },
     {
       "id": "283152",
       "name": "Chocolate",
       "metadata": {
         "rgb": "9B3F14",
         "parent_id": "52000"
       }
     },
     {
       "id": "283151",
       "name": "Naranja oscuro",
       "metadata": {
         "rgb": "D2691E",
         "parent_id": "52000"
       }
     },
     {
       "id": "283150",
       "name": "Naranja claro",
       "metadata": {
         "rgb": "FDAF20",
         "parent_id": "52000"
       }
     },
     {
       "id": "52003",
       "name": "Piel",
       "metadata": {
         "rgb": "FFE4C4",
         "parent_id": "52000"
       }
     },
     {
       "id": "52019",
       "name": "Verde oscuro",
       "metadata": {
         "rgb": "003D00",
         "parent_id": "52014"
       }
     },
     {
       "id": "283158",
       "name": "Verde musgo",
       "metadata": {
         "rgb": "3F7600",
         "parent_id": "52014"
       }
     },
     {
       "id": "283157",
       "name": "Verde limón",
       "metadata": {
         "rgb": "73E129",
         "parent_id": "52014"
       }
     },
     {
       "id": "52015",
       "name": "Verde claro",
       "metadata": {
         "rgb": "9FF39F",
         "parent_id": "52014"
       }
     },
     {
       "id": "52042",
       "name": "Fucsia",
       "metadata": {
         "rgb": "FF00EC",
         "parent_id": "51994"
       }
     },
     {
       "id": "283163",
       "name": "Rosa chicle",
       "metadata": {
         "rgb": "FF51A8",
         "parent_id": "51994"
       }
     },
     {
       "id": "52045",
       "name": "Rosa pálido",
       "metadata": {
         "rgb": "D06EA8",
         "parent_id": "51994"
       }
     },
     {
       "id": "52043",
       "name": "Rosa claro",
       "metadata": {
         "rgb": "FADBE2",
         "parent_id": "51994"
       }
     },
     {
       "id": "52012",
       "name": "Dorado oscuro",
       "metadata": {
         "rgb": "BF9000",
         "parent_id": "52007"
       }
     },
     {
       "id": "52010",
       "name": "Ocre",
       "metadata": {
         "rgb": "EACB53",
         "parent_id": "52007"
       }
     },
     {
       "id": "283156",
       "name": "Caqui",
       "metadata": {
         "rgb": "F0E68C",
         "parent_id": "52007"
       }
     },
     {
       "id": "52008",
       "name": "Crema",
       "metadata": {
         "rgb": "FFFFE0",
         "parent_id": "52007"
       }
     },
     {
       "id": "52024",
       "name": "Azul petróleo",
       "metadata": {
         "rgb": "1E6E7F",
         "parent_id": "52021"
       }
     },
     {
       "id": "283160",
       "name": "Turquesa",
       "metadata": {
         "rgb": "40E0D0",
         "parent_id": "52021"
       }
     },
     {
       "id": "52022",
       "name": "Agua",
       "metadata": {
         "rgb": "E0FFFF",
         "parent_id": "52021"
       }
     },
     {
       "id": "283159",
       "name": "Cyan",
       "metadata": {
         "rgb": "00FFFF",
         "parent_id": "52021"
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PACKAGE_HEIGHT",
   "name": "Altura del paquete",
   "tags": {
     "hidden": true,
     "read_only": true,
     "variation_attribute": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "km",
       "name": "km"
     }
   ],
   "default_unit": "mm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PACKAGE_WIDTH",
   "name": "Ancho del paquete",
   "tags": {
     "hidden": true,
     "read_only": true,
     "variation_attribute": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "km",
       "name": "km"
     }
   ],
   "default_unit": "mm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "TURNTABLE",
   "name": "Bandeja Giratoria",
   "tags": {
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "NUMBER_OF_PROGRAMS",
   "name": "Cantidad de Programas",
   "tags": {
     "hidden": true
   },
   "value_type": "number",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "VOLUME_CAPACITY",
   "name": "Capacidad",
   "tags": {
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "l",
       "name": "l"
     },
     {
       "id": "cc",
       "name": "cc"
     },
     {
       "id": "ft³",
       "name": "ft³"
     },
     {
       "id": "ml",
       "name": "ml"
     },
     {
       "id": "mm³",
       "name": "mm³"
     }
   ],
   "default_unit": "l",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "CONVECTION",
   "name": "Convección",
   "tags": {
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "TURNTABLE_DIAMETER",
   "name": "Diámetro de Bandeja Giratoria",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "km",
       "name": "km"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     }
   ],
   "default_unit": "mm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "EAN",
   "name": "EAN",
   "tags": {
     "hidden": true,
     "multivalued": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "FREQUENCY",
   "name": "Frecuencia",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "hz",
       "name": "hz"
     },
     {
       "id": "ghz",
       "name": "ghz"
     },
     {
       "id": "khz",
       "name": "khz"
     },
     {
       "id": "mhz",
       "name": "mhz"
     },
     {
       "id": "rpm",
       "name": "rpm"
     }
   ],
   "default_unit": "hz",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MICROWAVE_FUNCTIONS",
   "name": "Funciones",
   "tags": {
     "hidden": true,
     "multivalued": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "GRILL",
   "name": "Grill",
   "tags": {
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "GTIN",
   "name": "GTIN",
   "tags": {
     "hidden": true,
     "multivalued": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "JAN",
   "name": "JAN",
   "tags": {
     "hidden": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "LINE",
   "name": "Línea",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PACKAGE_LENGTH",
   "name": "Longitud del paquete",
   "tags": {
     "hidden": true,
     "read_only": true,
     "variation_attribute": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mm",
       "name": "mm"
     },
     {
       "id": "cm",
       "name": "cm"
     },
     {
       "id": "in",
       "name": "in"
     },
     {
       "id": "pulgadas",
       "name": "pulgadas"
     },
     {
       "id": "ft",
       "name": "ft"
     },
     {
       "id": "m",
       "name": "m"
     },
     {
       "id": "km",
       "name": "km"
     }
   ],
   "default_unit": "mm",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "DIMENSIONS",
   "name": "Medidas",
   "tags": {
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MODEL",
   "name": "Modelo",
   "tags": {
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "MAIN",
   "attribute_group_name": "Atributos Principales"
 },
 {
   "id": "ALPHANUMERIC_MODEL",
   "name": "Modelo Alfanumérico",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "DETAILED_MODEL",
   "name": "Modelo Detallado",
   "tags": {
     "hidden": true
   },
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MPN",
   "name": "MPN",
   "tags": {
     "hidden": true,
     "multivalued": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "POWER_LEVELS",
   "name": "Niveles de Potencia",
   "tags": {
     "hidden": true
   },
   "value_type": "number",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PACKAGE_WEIGHT",
   "name": "Peso del paquete",
   "tags": {
     "hidden": true,
     "read_only": true,
     "variation_attribute": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "mcg",
       "name": "mcg"
     },
     {
       "id": "mg",
       "name": "mg"
     },
     {
       "id": "g",
       "name": "g"
     },
     {
       "id": "oz",
       "name": "oz"
     },
     {
       "id": "lb",
       "name": "lb"
     },
     {
       "id": "kg",
       "name": "kg"
     }
   ],
   "default_unit": "mcg",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "POWER",
   "name": "Potencia",
   "tags": {
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "w",
       "name": "w"
     },
     {
       "id": "btu/h",
       "name": "btu/h"
     },
     {
       "id": "cv",
       "name": "cv"
     },
     {
       "id": "fg",
       "name": "fg"
     },
     {
       "id": "hp",
       "name": "hp"
     },
     {
       "id": "kcal/h",
       "name": "kcal/h"
     },
     {
       "id": "kw",
       "name": "kw"
     },
     {
       "id": "mw",
       "name": "mw"
     },
     {
       "id": "tfr",
       "name": "tfr"
     },
     {
       "id": "va",
       "name": "va"
     }
   ],
   "default_unit": "w",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "GRILL_POWER",
   "name": "Potencia de Grill",
   "tags": {
     "hidden": true
   },
   "value_type": "number_unit",
   "value_max_length": 60,
   "allowed_units": [
     {
       "id": "w",
       "name": "w"
     },
     {
       "id": "btu/h",
       "name": "btu/h"
     },
     {
       "id": "cv",
       "name": "cv"
     },
     {
       "id": "fg",
       "name": "fg"
     },
     {
       "id": "hp",
       "name": "hp"
     },
     {
       "id": "kcal/h",
       "name": "kcal/h"
     },
     {
       "id": "kw",
       "name": "kw"
     },
     {
       "id": "mw",
       "name": "mw"
     },
     {
       "id": "tfr",
       "name": "tfr"
     },
     {
       "id": "va",
       "name": "va"
     }
   ],
   "default_unit": "w",
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MIRRORED_DOOR",
   "name": "Puerta Espejada",
   "tags": {
     "hidden": true
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "PROGRAMMABLE_KEYS",
   "name": "Teclas Programables",
   "tags": {
     "hidden": true
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "MICROWAVE_TYPE",
   "name": "Tipo",
   "tags": {
   },
   "value_type": "list",
   "values": [
     {
       "id": "289784",
       "name": "De Apoyo"
     },
     {
       "id": "289785",
       "name": "De Embutir"
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "CHILD_SAFETY_LOCK",
   "name": "Traba de Seguridad para Niños",
   "tags": {
     "hidden": true
   },
   "value_type": "boolean",
   "values": [
     {
       "id": "242084",
       "name": "No",
       "metadata": {
         "value": false
       }
     },
     {
       "id": "242085",
       "name": "Sí",
       "metadata": {
         "value": true
       }
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "UPC",
   "name": "UPC",
   "tags": {
     "hidden": true,
     "multivalued": true,
     "variation_attribute": true
   },
   "type": "product_identifier",
   "value_type": "string",
   "value_max_length": 60,
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 },
 {
   "id": "VOLTAGE",
   "name": "Voltaje",
   "tags": {
     "hidden": true
   },
   "value_type": "list",
   "values": [
     {
       "id": "198812",
       "name": "110V / 220V"
     },
     {
       "id": "198813",
       "name": "220V"
     },
     {
       "id": "198814",
       "name": "110V"
     }
   ],
   "attribute_group_id": "DFLT",
   "attribute_group_name": "Otros"
 }
]

Neste exemplo, é possível ver que o atributo BRAND tem a tag fixed para a categoria. Isso faz sentido, pois tendo navegado pela árvore para procurar a categoria na qual publicar o micro-ondas, você já escolheu implicitamente a sua marca.
Depois, analisando os atributos disponíveis, seus tipos e valores sugeridos, só resta montar o JSON do anúncio, incluindo a seção attributes.
A seguir, mostramos como fazê-lo:

curl -X POST -H "Content-Type: application/json" -d '{
 "site_id":"MLA",
 "title":"Item de testeo, por favor no contactar --kc:off",
 "category_id":"MLA125703",
 "price":4000,
 "currency_id":"ARS",
 "buying_mode":"buy_it_now",
 "listing_type_id":"gold_special",
 "condition":"new",
 "available_quantity":10,
 "attributes":[
   {
     "id":"MODEL",
     "value_name":"B228D"
   },
   {
     "id":"VOLUME_CAPACITY",
     "value_name":"28 L"
   }
 ]
}' 'https://api.mercadolibre.com/items?access_token={YOUR_ACCESS_TOKEN}'

Notas:

  • Os atributos podem ser adicionados nos itens a qualquer momento do seu ciclo de vida.
  • Caso o atributo possua uma lista de suggested_values, você pode enviar um desses valores ou enviar um valor novo. Para enviar valores novos, só deve enviar o value_name, mas para valores existentes só deve enviar o value_id.
  • Em caso de atributos de tipo list, você deve enviar somente valores dentro dessa lista. Deve enviar unicamente o value_id. Porém, se você quiser carregar um valor que não faz parte da lista, pode fazê-lo enviando no value_name seu valor personalizado, com o value_id do valor mais semelhante ao seu.
  • Todos os atributos principais são identificados como MAIN no campo attribute_group_id, enquanto os atributos secundários serão diferenciados sob outros valores, por exemplo: DELT.
  • Leve em conta que em categorias que contenham cor primária e secundária, excepcionalmente, não será necessário que todas as variações repliquem ambos os atributos.

Modificar e/ou adicionar atributos

Após criado o anúncio, você pode adicionar novos atributos ou modificar os existentes.
Vamos supor que queremos modificar o Modelo do Micro-ondas e adicionar a Quantidade de Programas que ele tem; para isso, você deverá realizar um PUT como o seguinte:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d "{
   "attributes": [{
       "id": "BRAND"
   },{
       "id": "MODEL",
       "value_name": "B466GT"
   }, {
       "id": "VOLUME_CAPACITY"
   }, {
       "id": "NUMBER_OF_PROGRAMS",
       "value_name": "4"
   }]
} "https://api.mercadolibre.com/items/MLA621092868?"access_token={YOUR_ACCESS_TOKEN}"

Nota: caso você deseje modificar somente um atributo, deverá enviar os Ids dos já existentes para não perdê-los.

Remover atributos

Para remover um atributo, você deverá enviar a lista unicamente com os Ids de atributos que quiser manter no item. O item será atualizado deixando somente esses como ativos e removendo os que não foram incluídos.
Para isso, faça uma chamada como a do exemplo abaixo:

curl -H 'Content-Type: application/json' -X PUT https://api.mercadolibre.com/items/MLA658778048?access_token=$ACCESS_TOKEN  -d '{
"attributes": [
   {
     "id": "FAN_TYPE"
   },
   {
     "id": "HEIGHT_ADJUSTABLE"
   },
   {
     "id": "REMOTE_CONTROL"
   },
   {
     "id": "WITH_LIGHT"
   },
   {
     "id": "BRAND"
   }
 ]
}'



Seguinte:
Identificadores de produtos

Please rate this

Atributos genéricos

Assuntos:

Como eu posso conseguir os atributos da categoria?

Você pode conseguir os atributos da categoria através de um GET.

Call:

 curl - x GET https://api.mercadolibre.com/sites/{SITE_ID}/categories_attributes

O que posso fazer com essa informação?

Uma vez que você obteve os atributos da categoria você poderá quais são os atributos com a seguinte chamada:

 curl - x GET https://api.mercadolibre.com/categories/{CATEGORY_ID}/attributes

Como eu posso modificar atributos genéricos?

Para modificar atributos de um item já criado você terá que executar o seguinte PUT:

 curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d "
{
    "attributes": [{
        "id": "MLA1744-COLOREXT",
        "value_id": "MLA1744-COLOREXT-AMARILLO"
    }, {
        "id": "MLA1744-COMBUS"
    }, {
        "id": "MLA1744-KMTS"
    }, {
        "id": "MLA1744-DOOR"
    }, {
        "id": "MLA1744-YEAR"
    }]
} "https://api.mercadolibre.com/items/MLA621092868?"access_token={YOUR_ACCESS_TOKEN}"

Notas: Quando um atributo não possui “value_id” ele é obrigatório, se não for modificado será necessário enviá-lo.
O JSON de retorno é o mesmo ítem só que com o atributo novo.

Deletar Atributos Genéricos

Para deletar um atributo você realizar uma chamada como a chamada abaixo:

 curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d "
{
    "attributes": [{
        "id": "MLA1744-COMBUS"
    }, {
        "id": "MLA1744-KMTS"
    }, {
        "id": "MLA1744-DOOR"
    }, {
        "id": "MLA1744-YEAR"
    }]
}
"https://api.mercadolibre.com/items/MLA621092868?access_token={YOUR_ACCESS_TOKEN
}"



Próximo:
Atributos Particulares.

Please rate this

Receba notificações

Alguns eventos são produzidos apenas do lado do Mercado Livre e a única forma de conhecê-los é através de notificações.
Com as notificações você terá um feed em tempo real das mudanças produzidas nos diferentes recursos da nossa API.
Por exemplo, se você anunciou um item e mais tarde decidiu pausá-lo, se alguém formulou alguma pergunta, se compraram um item ou até se pagaram e/ou solicitaram o envio.
Uma maneira eficiente sem ter que consultar permanentemente nossa API!

Assuntos:

Inscreva-se para receber notificações

Se quiser começar a receber notificações, você deverá acessar seu gerenciador de aplicativos, onde você criou seu aplicativo pela primeira vez, editar os detalhes especificando quais são os topics que você receberá.
Aclaração: Caso você ainda não tenha criado seu aplicativo, acesse seção Criar a sua aplicação.

topicsconmensajeria

– URL de retorno das notificações: Configure a URL pública do domínio onde você quer receber notificações sobre os diversos tópicos. Por exemplo: “http://myshoes-app.com/callbacks”.

– Topics: Selecione dentre os diferentes tópicos para receber notificações.
Aclaração: Tenha em conta que os topics orders, created_orders, payments e messaging não são utilizados para imóveis, serviços e automóveis.

Topics Disponíveis

  • items – Você receberá notificações sobre qualquer mudança em um item que tiver publicado.

  • orders – Você receberá notificações sobre qualquer alteração realizada em alguma de suas vendas confirmadas.

  • created_orders – Você receberá notificações de suas vendas recentemente criadas quando entram pelo fluxo do Mercado Pago obrigatório.
    Você só vai obter dados do produto e quantidade de unidades, pois a compra ainda não foi confirmada. Não deve realizar qualquer ação até não passar para “paid”.
    Serve apenas para reserva de estoque, pois se o comprador finalmente pagar mas o item não tiver estoque, o pagamento será automaticamente devolvido e a venda cancelada.
    Aclaração: Quando a ordem for paga, as notificações começarão a ser enviadas também a partir de “orders”, portanto, sugerimos escolher apenas um dos topics para evitar eventos duplicados.

  • questions – Você receberá notificações de perguntas e respontas feitas.

  • payments – Você receberá notificações quando um pagamento for criado em uma ordem ou o status dela mudar.

  • pictures – Você somente receberá notificações das imagens que, por causa de algum erro, não estiverem disponíveis para download.
    Nota: Ao mesmo tempo, será enviado um email automático para o vendedor, reunindo as imagens com problemas.

  • messaging – Você receberá notificações sobre novas mensagens geradas com seu user_id como destinatário.

Considerações

  • As mensagens serão enviadas e novas tentativas de envio serão feitas durante um intervalo de 12 horas. Depois desse período, se não forem aceitas pelo aplicativo, elas serão excluídas.
  • Enviaremos um POST a sua URL, portanto, seu aplicativo deverá confirmar o recebimento com um código de status HTTP 200, caso contrário, a mensagem será considerada não entregue e haverá uma nova tentativa de envio.
  • Seu aplicativo deverá enviar uma resposta em 20 segundos, caso contrário, o tempo limite será atingido a notificação será considerada como não entregue e haverá uma nova tentativa de envio.

Quais eventos disparam notificações?

items

  • Alterações em quaisquer atributos.
  • Alterações no status: a publicação deve ser verificada por um operador e o status é alterado para “under_review” ou é pausado, e o status muda para “pausado”.

orders

  • Redução de estoque: alguém compra um de seus produtos, e o estoque tem uma baixa. Um novo pedido é criado.
  • Pagamento: o comprador adiciona um pagamento ao pedido.
  • Envio: novas informações sobre o envio são associadas ao pedido ou o status do envio muda para: pendente, em processamento, ativo, entregue, não entregue.
  • Feedback: o comprador qualifica você como vendedor ou você envia feedback ao comprador. Um feed sobre o pedido é recebido.
  • Aclaração: orders é composto por blocos de outras apis, porém, nem todos os dados são exibidos por serem desnecessários. Esses blocos independentes podem sofrer mudanças, gerando eventos e posteriores notificações sobre a ordem, embora, às vezes, as mudanças relacionadas ao json anterior não sejam visualizadas.

creaters_orders

  • A notificação de creaters_orders chegará quando uma ordem que entrou pelo fluxo de Mercado Pago obrigatório for criada. Serve somente para reserva de estoque.
  • Outras notificações quando a ordem estiver “paid”, são as mesmas que as do topic “orders”. Caso você tenha selecionado os dois, chegarão notificações de ambos os topics.

questions

  • Você recebe uma nova pergunta.
  • Você responde a uma pergunta.
  • Você exclui uma pergunta que considera inadequada.

payments

  • Se gera um pagamento.
  • O estado do pagamento muda.

pictures

  • Quando alguma imagem não estiver disponível para download por causa de algum erro.

messaging

  • Por cada nova mensagem que entrar na plataforma, será publicado o topic notificando o assinante.
  • Ao encaminhar mensagens.
  • Quando tenha mensagens lidas.



Esclarecimento: Caso você receba notificações duplicadas, leve em conta que há eventos internos não visíveis para o integrador que, porém, disparam notificações.

Acesso aos detalhes

Depois de receber uma notificação sobre um tópico, você deverá fazer uma solicitação GET ao recurso para acessar os detalhes e, depois, se tiver salvado o JSON anterior, deverá comparar os dois.

items

Notification response:

{
   "resource": "/items/MLA686791111",
   "user_id": 123456789,
   "topic": "items",
   "application_id": 2069392825111111,
   "attempts": 1,
   "sent": "2017-10-09T13:44:33.006Z",
   "received": "2017-10-09T13:44:32.984Z"
}

Com essas informações, você poderá realizar um GET para o recurso de items:

curl -X GET https://api.mercadolibre.com/items/{Item_id}?access_token=ACCESS_TOKEN


orders

Notification response:

{
   "resource": "/orders/1499111111",
   "user_id": 123456789,
   "topic": "orders",
   "application_id": 2069392825111111,
   "attempts": 1,
   "sent": "2017-10-09T13:58:23.347Z",
   "received": "2017-10-09T13:58:23.329Z"
}

created_orders

Notification response:

{
   "resource": "/orders/1499111111",
   "user_id": 123456789,
   "topic": "created_orders",
   "application_id": 2069392825111111,
   "attempts": 1,
   "sent": "2017-10-09T13:49:46.519Z",
   "received": "2017-10-09T13:49:46.531Z"

Com essas informações, você poderá realizar um GET para o recurso de orders e created_orders:

curl -X GET https://api.mercadolibre.com/orders/{Order_id}?access_token=ACCESS_TOKEN


questions

Notification response:

{
   "resource": "/questions/5036111111",
   "user_id": "123456789",
   "topic": "questions",
   "application_id": 2069392825111111,
   "attempts": 1,
   "sent": "2017-10-09T13:51:05.464Z",
   "received": "2017-10-09T13:51:05.438Z"
}

Com essas informações, você poderá realizar um GET para o recurso questions:

curl -X GET https://api.mercadolibre.com/questions/{Question_id}?access_token=ACCESS_TOKEN


payments

Notification response:

{
   "resource": "/collections/3043111111",
   "user_id": 123456789,
   "topic": "payments",
   "application_id": 2069392825111111,
   "attempts": 1,
   "sent": "2017-10-09T13:58:22.081Z",
   "received": "2017-10-09T13:58:22.061Z"
}

Com essas informações, você poderá realizar um GET para o recurso collections:

curl -X GET https://api.mercadolibre.com/collections/{Payment_id}?access_token=ACCESS_TOKEN


pictures

Notification response:

{
  "messages": [
    {
      "_id": "123aaa456bbb789ccc",
      "application_id": "1234",
      "user_id": "123456789",
      "resource": "/pictures/12345-MLA1234567-20160729/errors",
      "topic": "pictures",
      "sent": "2016-07-24T11:00:00.836Z",
      "received": "2016-07-24T11:00:00.836Z",
      "attempts": "2",
      "created_at": "2016-07-24T11:00:00.836Z"
    }
  ]
}

Com essas informações, você poderá realizar um GET para o recurso picture:

curl -X GET https://api.mercadolibre.com/pictures/{picture_id}/errors?access_token=ACCESS_TOKEN

Você terá que identificar por que a imagem não foi corretamente processada. Ver “Considerações e melhores práticas para trabalhar com imagéns”.

messaging

Notification response:

{
 	"resource": "3f6da1e35ac84f70a24af7360d24c7bc",
 	"user_id": "268897726",
 	"topic": "messages",
 	"application_id": 2219612378080430,
 	"attempts": 1,
 	"sent": "2017-08-17T12:59:44.164Z",
 	"received": "2017-08-17T12:59:44.131Z"
 }

Com essas informações, você poderá realizar um GET para o recurso mensagens:

curl -X GET https://api.mercadolibre.com/messages/{RESOURCE}?access_token=ACCESS_TOKEN

Teste suas notificações

Você pode conferir se está recebendo notificações em sua integração, importando o este link em Postman.
Caso sua URL funcione corretamente, você vai receber como resposta code 200 status ok, como mostrado na imagem abaixo.

API do histórico dos feeds

Um registro de seu histórico de notificações é salvo, e você pode acessá-lo a qualquer momento chamando nosso recurso feeds.
Exemplo:

curl -X GET https://api.mercadolibre.com/myfeeds?app_id={App_id}

Resposta:

{
  "messages": [
  {
    "_id": "123aaa456bbb789ccc",
    "application_id": "1234",
    "user_id": "123456789",
    "resource": "/orders/12345678",
    "topic": "orders",
    "sent": "2014-10-24T11:00:00.836Z",
    "received": "2014-10-24T11:00:00.836Z",
    "attempts": "2",
    "http_code": "400",
    "created_at": "2014-10-24T11:00:00.836Z"
  }
}
}

Nota: Lembre que, por default, só serão mostradas 10 notificações, porém, você pode utilizar LIMIT e OFFSET para modificar o número que quer receber, como mostrado abaixo:

https://api.mercadolibre.com/myfeeds?app_id=(APP_ID)&offset=1&limit=5





Próximo:
Califica automáticamente.

Please rate this

Lojas Oficiais

Alguns usuários selecionados fazem parte das Lojas oficiais do Mercado Livre e têm uma ou mais marcas com o mesmo usuário. Se quiser fazer parte das Lojas oficiais do Mercado Livre, entre em contato com um consultor comercial. Se você já faz parte das Lojas oficiais, leia este tutorial para saber quais são os princípios básicos para trabalhar com esse tipo de usuário.

Assuntos:

 

Acesso aos IDs de suas marcas

Este recurso recupera marcas associadas a um user_id. Pode haver mais de uma por usuário. A loja é identificada com o atributo official_store_id.

Exemplo:

curl -X GET https://api.mercadolibre.com/users/{User_id}/brands

Resposta:

{
  "cust_id": 12345678,
  "tags": [
  "large_seller",
  "user_info_verified",
  "brand"
  ],
  "brands": [
  {
    "tags": [
      "girls",
      "female"
    ],
    "official_store_id": 16,
    "categories_ids": [
      "MLA1430"
    ],
    "fantasy_name": "47 Street",
    "site_id": "MLA",
    "status": "active",
    "name": "47 Street",
    "pictures": [
      {
        "id": 104,
        "name": "big_logo",
        "secure_url": null,
        "url": "http://static.mlstatic.com/org-img/apparel/images/47street/149254178-logo-g2.jpg",
        "size": "174x164"
      },
      {},
      {},
      {},
      {},
      {}
    ],
    "relevance_position": 50
  },
  {},
  {},
  {},
  {}
  ],
  "site_id": "MLA",
  "user_type": "brand"
}

Acesso a todas as informações sobre uma determinada marca

Para obter informações sobre uma determinada marca, você pode realizar a chamada ao brand_id que quiser conhecer, conforme mostrado no exemplo a seguir:

Exemplo:

curl -X GET https://api.mercadolibre.com/users/58715193/brands/133

Resposta:

{
  "tags": [
  "home",
  "standout"
  ],
  "official_store_id": 133,
  "categories_ids": [
  "MLA1403"
  ],
  "fantasy_name": "Bodega Lanzarini",
  "users": [
  {
    "cust_id": 58715193,
    "tags": [
      "eshop",
      "large_seller",
      "user_info_verified",
      "brand"
    ],
    "site_id": "MLA",
    "user_type": "brand"
  }
  ],
  "site_id": "MLA",
  "status": "active",
  "name": "Bodega Lanzarini",
  "date_created": "2014-08-04T04:00:00.000Z",
  "pictures": [
  {
    "id": 632,
    "name": "big_logo",
    "secure_url": null,
    "url": "http://static.mlstatic.com/org-img/apparel/images/bodegalanzarini/58715193-logo-g.jpg",
    "size": "174x164"
  },
  {
    "id": 2474,
    "name": "facebook_logo",
    "secure_url": null,
    "url": "http://static.mlstatic.com/org-img/apparel/images/mla-fb/58715193-logo-fb.jpg",
    "size": "1600x750"
  },
  {
    "id": 9428,
      "name": "home_app",
    "secure_url": null,
    "url": "http://static.mlstatic.com/org-img/apparel/bkg_apps/58715193-bkg.jpg",
    "size": "270x155"
  },
  {
    "id": 634,
    "name": "logo",
    "secure_url": null,
    "url": "http://static.mlstatic.com/org-img/apparel/images/bodegalanzarini/58715193-logo-home.jpg",
    "size": "160x80"
  },
  {
      "id": 633,
    "name": "logo_landing",
    "secure_url": null,
    "url": "http://static.mlstatic.com/org-img/apparel/images/bodegalanzarini/58715193-logo-home.jpg",
    "size": "160x80"
  },
  {
    "id": 631,
    "name": "background",
    "secure_url": null,
    "url": "http://static.mlstatic.com/org-img/apparel/images/bodegalanzarini/58715193-bkg.jpg",
    "size": "1600x750"
  },
  {
    "id": 635,
    "name": "small_logo",
    "secure_url": null,
    "url": "http://static.mlstatic.com/org-img/apparel/images/bodegalanzarini/58715193-logo-ch2.jpg",
    "size": "96x70"
  }
  ],
  "boost": {
  "is_active": false,
  "last_update": "2015-08-17T20:55:12.000Z"
  },
  "relevance_position": 69
}

Erros comuns na resposta da API ao publicar em lojas oficiais multimarcas

Caso não tenha enviado o official_store_id do produto para uma loja oficial multimarcas, você receberá como resposta os possíveis IDs que pode enviar com seu usuário:

 "message": "Validation error",
   "error": "validation_error",
   "status": 400,
   "cause": [{
       "code": "item.official_store_id.invalid",
       "message": "Users type brand have to provide one of this [60, 274, 257] official store id"

Caso você envie um official_store_id inválido para uma loja oficial multimarcas, a resposta será a seguinte:

 {
   "message": "body.invalid_official_store_id",
   "error": "The seller 148829068 is not allowed to use official_store_id 315 on site MLA.",
   "status": 403,
   "cause": []
}

Excelente! Você já conhece os brand_ids associados a seu usuário e que você deverá enviar toda vez que quiser publicar um item. Leia este tutorial para aprender a publicar um item em sua Loja oficial.


Próximo:
Categorização de produtos.

Please rate this

Publicação de produtos

Agora que já analisamos os assuntos autenticação, usuários e categorias, acreditamos que você esteja pronto para realizar sua primeira publicação. Leia o tutorial e aprenda a fazer isso:

Assuntos:

Princípios básicos

Na API do Mercado Livre, as publicações são itens que contêm produtos e outros atributos que você pode vender ou comprar. Os usuários não podem trocar informações de contato imediatamente. Por isso, toda vez que há intenção de comprar um produto, os potenciais compradores podem formular tantas perguntas quantas quiserem sobre o produto e, quando estiverem prontos, devem fazer uma oferta pelo produto do vendedor para que um pedido seja criado, tanto para o comprador quanto para o vendedor, detalhando a transação como venda ou compra para cada um deles. É nesse momento que as informações de contato ficam automaticamente visíveis para ambos os usuários.

Resultados das publicações

Todos os produtos que você publicar aparecerão nos resultados das publicações de uma determinada busca. Por exemplo, quando um usuário estiver buscando a consulta “ipod”, ele obterá como resultado uma lista de todos os produtos relacionados. Seu produto pode estar nessa lista.
Quando alguém clica em um produto, a página Detalhes do produto é exibida junto com todas as informações sobre o produto que tenham sido fornecidas no momento da publicação. Para obter mais informações, continue lendo a respeito.

Página Detalhes do produto

Quando um usuário seleciona um produto no resultado, essa página mostra os seguintes detalhes do produto:

  • Item_id
  • Title
  • Category
  • Pictures
  • Price
  • City
  • Sold quantity
  • Questions
  • Seller’s reputation
  • Detailed description

Campos do produto

Agora vamos ver um produto normal detalhadamente. Isso é fácil, pois você só precisa conhecer o item_id associado ao produto e, como ele é público, pode obtê-lo na página Detalhes do produto na parte superior da página, conforme mostrado na imagem do exemplo: É preciso acrescentar o site_id antes do número e pronto. Agora você pode chamar o recurso Items para obter todas as informações associadas:

Chamada:

 curl - X GET https://api.mercadolibre.com/items/{Item_id}

Exemplo:

 curl - X GET https://api.mercadolibre.com/items/MLA600190449

Resposta:

 {
  "id": "MLA600190449",
  "site_id": "MLA",
  "title": "Iphone 6 64gb Space Gray Liberado",
  "subtitle": null,
  "seller_id": 118617944,
  "category_id": "MLA352543",
  "official_store_id": null,
  "price": 16550,
  "base_price": 16550,
  "original_price": null,
  "currency_id": "ARS",
  "initial_quantity": 2,
  "available_quantity": 2,
  "sold_quantity": 0,
  "buying_mode": "buy_it_now",
  "listing_type_id": "bronze",
  "start_time": "2016-01-13T18:10:29.000Z",
  "stop_time": "2016-03-13T18:10:29.000Z",
  "condition": "new",
  "permalink": "http://articulo.mercadolibre.com.ar/MLA-600190449-iphone-6-64gb-space-gray-liberado-_JM",
  "thumbnail": "http://mla-s1-p.mlstatic.com/873411-MLA20547233702_012016-I.jpg",
  "secure_thumbnail": "https://a248.e.akamai.net/mla-s1-p.mlstatic.com/873411-MLA20547233702_012016-I.jpg",
  "pictures": [
    {
      "id": "873411-MLA20547233702_012016",
      "url": "http://mla-s1-p.mlstatic.com/873411-MLA20547233702_012016-O.jpg",
      "secure_url": "https://a248.e.akamai.net/mla-s1-p.mlstatic.com/873411-MLA20547233702_012016-O.jpg",
      "size": "225x225",
      "max_size": "225x225",
      "quality": ""
    },
    {
      "id": "234411-MLA20547233720_012016",
      "url": "http://mla-s1-p.mlstatic.com/234411-MLA20547233720_012016-O.jpg",
      "secure_url": "https://a248.e.akamai.net/mla-s1-p.mlstatic.com/234411-MLA20547233720_012016-O.jpg",
      "size": "259x194",
      "max_size": "259x194",
      "quality": ""
    },
    {
      "id": "768311-MLA20547233735_012016",
      "url": "http://mla-s1-p.mlstatic.com/768311-MLA20547233735_012016-O.jpg",
      "secure_url": "https://a248.e.akamai.net/mla-s1-p.mlstatic.com/768311-MLA20547233735_012016-O.jpg",
      "size": "300x168",
      "max_size": "300x168",
      "quality": ""
    }
  ],
  "video_id": null,
  "descriptions": [
    {
      "id": "MLA600190449-1007729488"
    }
  ],
  "accepts_Mercado Pago": true,
  "non_mercado_pago_payment_methods": [
  ],
  "shipping": {
    "mode": "me2",
    "local_pick_up": true,
    "free_shipping": true,
    "free_methods": [
      {
        "id": 73328,
        "rule": {
          "free_mode": "country",
          "value": null
        }
      }
    ],
    "dimensions": null,
    "tags": [
    ]
  },
  "international_delivery_mode": "none",
  "seller_address": {
    "id": 138834162,
    "comment": "",
    "address_line": "",
    "zip_code": "",
    "city": {
      "id": "TUxBQ05FVXF1ZW4",
      "name": "Neuquén"
    },
    "state": {
      "id": "AR-Q",
      "name": "Neuquén"
    },
    "country": {
      "id": "AR",
      "name": "Argentina"
    },
    "latitude": -38.95628353,
    "longitude": -68.12749595,
    "search_location": {
      "neighborhood": {
        "id": "",
        "name": ""
      },
      "city": {
        "id": "TUxBQ05FVXF1ZW4",
        "name": "Neuquén"
      },
      "state": {
        "id": "TUxBUE5FVW4xMzMzNQ",
        "name": "Neuquén"
      }
    }
  },
  "seller_contact": null,
  "location": {
  },
  "geolocation": {
    "latitude": -38.96055205,
    "longitude": -68.12525497
  },
  "coverage_areas": [
  ],
  "attributes": [
  ],
  "listing_source": "",
  "variations": [
  ],
  "status": "active",
  "sub_status": [
  ],
  "tags": [
  ],
  "warranty": null,
  "catalog_product_id": null,
  "parent_item_id": null,
  "differential_pricing": null,
  "deal_ids": [
  ],
  "automatic_relist": false,
  "date_created": "2016-01-13T18:10:29.000Z",
  "last_updated": "2016-01-13T18:26:54.000Z"
}

Obtenção da resposta usando nossos SDKs.

Exemplos de SDK

A resposta JSON contém muitas informações. A seguir, você encontrará a descrição de alguns desses campos.

Definição de atributos

Ao criar um anúncio, alguns dos campos são obrigatórios, enquanto outros podem ser omitidos ou serão adicionados automaticamente. Eles definirão o modo de exibição do produto, como pode ser adquirido pelos compradores e sua posição nos resultados da busca, entre outras variáveis.

Title

O título é um atributo obrigatório e é chave para que o produto seja encontrado pelos compradores. Por isso, você deve ser o mais específico possível.
A melhor forma de criar um título é colocar nome + marca + modelo + especificações técnicas e características + serviços adicionais. Separe as palavras com espaços sem usar símbolos nem sinais de pontuação. Certifique-se de não haver erros de ortografia. Exemplo: Ipod Touch Apple 16gb 5 Geração.

Description

Uma descrição detalhada vai melhorar as chances de venda de seu produto e fará com que você poupe tempo, já que não terá de responder a perguntas desnecessárias. Pode ser uma descrição somente com texto, ou você pode adicionar seu próprio HTML personalizado. Ao trabalhar com descrições, existem algumas considerações a fazer; por exemplo, não é permitido publicar uma descrição contendo as informações de contato. Se quiser saber mais sobre o assunto, acesse o Guia com descrições de artigos.

Condition

Ao publicar um produto, você deve dizer se seu estado é novo, usado ou não especificado. Esse atributo é obrigatório para concluir a operação de publicação.

Available quantity

Esse atributo define o estoque, isto é, a quantidade de produtos disponíveis para a venda desse produto. O tipo de publicação escolhida definirá o valor mais alto. Para obter mais detalhes, consulte a seção tipos de publicação.

Pictures

Imagens de boa qualidade podem fazer com que seu produto seja mais atrativo e oferecer aos usuários uma ideia mais precisa de como ele é. Basicamente, você deve adicionar um conjunto de até seis imagens URL no JSON.

 {
 ....
 "pictures":[
  {"source":"http://yourServer/path/to/your/picture.jpg"},
  {"source":"http://yourServer/path/to/your/otherPicture.gif"},
  {"source":"http://yourServer/path/to/your/anotherPicture.png"}
 ]
 ...
}

Recomendamos não usar servidores lentos para hospedar suas imagens, pois pode gerar inconvenientes ao fazer a publicação.
Você também pode adicionar ou alterar as imagens de seu produto aqui posteriormente. Leia mais sobre isso para saber quais são os tipos de imagens permitidas e como trabalhar com elas.

Category

Os vendedores deverão definir uma categoria no site do Mercado Livre. Esse atributo é obrigatório e somente aceita IDs pré-estabelecidos. Para obter mais informações, leia o guia de categorias Para obter uma sugestão de categorias, acesse leia o artigo.

 {
 ....
  "category_id":"MLA12683",
 ...
}

Price

Este atributo é obrigatório. Ao definir um novo produto, ele deve ter um preço. Sugerimos que você busque produtos similares em nosso Marketplace para saber qual é o melhor preço e aumentar sua competitividade. Se você já tiver definido um preço, mas não está satisfeito com ele, poderá alterá-lo posteriormente. Aprenda como modificar anúncios.

Currency

Além do preço, você deverá definir uma moeda. Esse atributo também é obrigatório. A moeda deverá ser definida usando um ID pré-estabelecido. Você vai saber qual é o ID a enviar chamando para o recurso Moedas.

Payment methods

É importante que você considere quais as formas de pagamento disponibilizará. Isso vai variar dependendo do país onde você está trabalhando. Consulte o guia a seguir para saber mais sobre o assunto.

Shipping

Os detalhes de envio não são obrigatórios, mas há muitas opções, e o envio dos produtos que você vende representa uma vantagem competitiva. Saiba mais sobre as opções de envio disponíveis aqui

Seller Custom Field

Apesar de não ser obrigatório, o campo personalizável do vendedor, é muito útil porque não há valores pré-estabelecidos e você pode enviar tudo que quiser como uma cadeia de caracteres. A maior parte dos vendedores utiliza esse campo para colocar seus próprios SKUs para seus produtos para identificar o produto vendido no pedido.
Exemplo:

curl -X PUT -d '{"seller_custom_field": "21000093"}' https://api.mercadolibre.com/items/MLA599074368?access_token=¢ACCESS_TOKEN

Listing type

É outro caso de atributo obrigatório que só aceita valores pré-definidos, e é muito importante que você entenda isso.
Existem diferentes tipos de publicações disponibilizadas para cada país. Você deve fazer uma chamada combinada através dos sites e recursos listing_types para saber quais são os listing_types aceitos.

Chamada:

 curl https://api.mercadolibre.com/sites/{Site_id}/listing_types

Exemplo:

 curl https://api.mercadolibre.com/sites/MLA/listing_types

Resposta:

 [
  {
    "site_id": "MLA",
    "id": "gold_pro",
    "name": "Oro Premium Full"
  },
  {
    "site_id": "MLA",
    "id": "gold_premium",
    "name": "Oro Premium"
  },
  {
    "site_id": "MLA",
    "id": "gold_special",
    "name": "Oro Profesional"
  },
  {
    "site_id": "MLA",
    "id": "gold",
    "name": "Oro"
  },
  {
    "site_id": "MLA",
    "id": "silver",
    "name": "Plata"
  },
  {
    "site_id": "MLA",
    "id": "bronze",
    "name": "Bronce"
  },
  {
    "site_id": "MLA",
    "id": "free",
    "name": "Gratuita"
  }
]

As tarifas cobradas pela venda do produto, junto com sua classificação nos resultados da busca, vão variar dependendo do tipo de publicação. Você encontrará informações sobre os feeds e características de cada tipo de publicação nas Perguntas Frequentes do Marketplace de cada país, ou poderá fazer uma chamada à API, conforme mostrado a seguir:

Chamada:

 curl https://api.mercadolibre.com/sites/{Site_id}/listing_types/{Listing_type}

Exemplo:

 curl https://api.mercadolibre.com/sites/MLA/listing_types/silver

Resposta:

 {
  "id": "silver",
  "not_available_in_categories": [
  ],
  "configuration": {
    "name": "Plata",
    "listing_exposure": "mid",
    "requires_picture": false,
    "max_stock_per_item": 9999,
    "deduction_profile_id": null,
    "differential_pricing_id": null,
    "duration_days": {
      "buy_it_now": 60,
      "auction": 7,
      "classified": null
    },
    "immediate_payment": {
      "buy_it_now": false,
      "auction": false,
      "classified": false
    },
    "mercado_pago": "mandatory",
    "listing_fee_criteria": {
      "min_fee_amount": 5,
      "max_fee_amount": 160,
      "percentage_of_fee_amount": 1,
      "currency": "ARS"
    },
    "sale_fee_criteria": {
      "min_fee_amount": 0,
      "max_fee_amount": 100000000000000000,
      "percentage_of_fee_amount": 7.5,
      "currency": "ARS"
    }
  },
  "exceptions_by_category": [
    {
      "category_id": "MLA1743",
      "category_name": "Autos, Motos y Otros",
      "configuration": {
        "name": "Plata",
        "listing_exposure": "mid",
    "requires_picture": false,
        "max_stock_per_item": 1,
        "deduction_profile_id": null,
        "differential_pricing_id": null,
        "duration_days": {
          "buy_it_now": null,
          "auction": null,
          "classified": 60
        },
        "immediate_payment": {
          "buy_it_now": false,
          "auction": false,
          "classified": false
        },
        "mercado_pago": "not_available",
        "listing_fee_criteria": {
          "min_fee_amount": 147,
          "max_fee_amount": 147,
          "percentage_of_fee_amount": 0,
          "currency": "ARS"
        },
        "sale_fee_criteria": {
          "min_fee_amount": 0,
          "max_fee_amount": 0,
          "percentage_of_fee_amount": 0,
          "currency": null
        }
      },
      "exceptions_by_category": [
      ]
    },
    {
      "category_id": "MLA1459",
      "category_name": "Inmuebles",
      "configuration": {
        "name": "Plata",
        "listing_exposure": "mid",
    "requires_picture": false,
        "max_stock_per_item": 1,
        "deduction_profile_id": null,
        "differential_pricing_id": null,
        "duration_days": {
          "buy_it_now": null,
          "auction": null,
          "classified": 60
        },
        "immediate_payment": {
          "buy_it_now": false,
          "auction": false,
          "classified": false
        },
        "mercado_pago": "not_available",
        "listing_fee_criteria": {
          "min_fee_amount": 147,
          "max_fee_amount": 147,
          "percentage_of_fee_amount": 0,
          "currency": "ARS"
        },
        "sale_fee_criteria": {
          "min_fee_amount": 0,
          "max_fee_amount": 0,
          "percentage_of_fee_amount": 0,
          "currency": null
        }
      },
      "exceptions_by_category": [
      ]
    },
    {
      "category_id": "MLA1540",
      "category_name": "Servicios",
      "configuration": {
        "name": "Básico 365",
        "listing_exposure": "mid",
    "requires_picture": false,
        "max_stock_per_item": 999,
        "deduction_profile_id": null,
        "differential_pricing_id": null,
        "duration_days": {
          "buy_it_now": null,
          "auction": null,
          "classified": 365
        },
        "immediate_payment": {
          "buy_it_now": false,
          "auction": false,
          "classified": false
        },
        "mercado_pago": "not_available",
        "listing_fee_criteria": {
          "min_fee_amount": 727,
          "max_fee_amount": 727,
          "percentage_of_fee_amount": 0,
          "currency": "ARS"
        },
        "sale_fee_criteria": {
          "min_fee_amount": 0,
          "max_fee_amount": 0,
          "percentage_of_fee_amount": 0,
          "currency": null
        }
      },
      "exceptions_by_category": [
      ]
    }
  ]
}

Publicação de um anúncio

Agora você está pronto para publicar seu primeiro anúncio. Lembre-se de que, para isso, você precisará de um access_token. Se tiver dúvidas sobre como obter seu token de acesso, releia o tutorial Primeiros passos. Também recomendamos a utilização de usuários de teste para publicar produtos. Se você não estiver familiarizado com isso, consulte as seções de geração de usuários de teste aqui. Além disso, recomendamos validar o JSON se estiver enviando antes de realizar a solicitação POST. Portanto, consulte este item fácil e rápido tutorial de validação.
Você pode criar um JSON para seu item com base no exemplo abaixo, ou enviá-lo como está, e você estará publicando um produto de amostra no site:

 curl -X POST -H "Content-Type: application/json" -d
'{
"title":"Item de test - No Ofertar",
"category_id":"MLA3530",
"price":10,
"currency_id":"ARS",
"available_quantity":1,
"buying_mode":"buy_it_now",
"listing_type_id":"gold_special",
"condition":"new",
"description": "Item de test - No Ofertar",
"video_id": "YOUTUBE_ID_HERE",
"warranty": "12 months",
"pictures":[
{"source":"http://mla-s2-p.mlstatic.com/968521-MLA20805195516_072016-O.jpg"}
]
}'
https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN

Observe que o exemplo acima só funciona no MLA (Argentina). Caso você esteja trabalhando em qualquer outro país, deverá substituir os valores de category_id, currency_id e talvez listing_type_id.
Vamos fazer isso com nosso SDK:
[Exemplos de SDK] A API Produtos baixará automaticamente as imagens fornecidas no Mercado Livre Storage, criando uma publicação para seu produto. Você receberá a seguinte resposta JSON:

 {
  "id":"MLA430387888",
  "site_id":"MLA",
  "title":"Anteojos Ray Ban Wayfare",
  "sold_quantity":0,
  "permalink":"http://articulo.mercadolibre.com.ar/MLA-430387888-anteojos-ray-ban-wayfare-_JM",
  ...
}

Parabéns! Você publicou seu primeiro produto! Acesse a página Detalhes do produto por meio do permalink.

Para calcular os feeds de venda de um produto por diferentes parâmetros, acompanhar o guia da Calculadora de preços de publicações.
Nota: se você experimentar algum inconveniente ao tentar publicar, consulte os valores de referência da tabela de códigos de erro da API localizados no final deste guia.

Items com Mercado Pago obrigatório

A opção de utilizar unicamente Mercado Pago como meio de pagamento pode ser chamada de “Mercado Pago obrigatório” ou “Pagamento Imediato”. Assim, a opção de pagamento “A combinar com o vendedor” é excluída.
Assim como um user ou uma categoria podem ser marcados com pagamento imediato, também um item pode ser assim marcado.
Este situação se apresenta em:

Anuncie um item com pagamento imediato

Se você quiser que seu item seja somente pago através de Mercado Pago, pode definir isso no momento de criar um novo item, ou pode alterar um item já ativo. Para isso, vai utilizar a tag “inmediate_payment”.

Example:

POST
curl -X POST -H "Content-Type: application/json" -d
'{
    "title": "Item de test - No Ofertar",
    "category_id": "MLA47392",
    "price": 10,
    "currency_id": "ARS",
    "available_quantity": 1,
    "buying_mode": "buy_it_now",
    "listing_type_id": "gold_special",
    "condition": "new",
    "description": "Item:,  Ray-Ban WAYFARER Gloss Black RB2140 901  Model: RB2140. Size: 50mm. Name: WAYFARER. Color: Gloss Black. Includes Ray-Ban Carrying Case and Cleaning Cloth. New in Box",
    "video_id": "YOUTUBE_ID_HERE",
    "tags": [
        "immediate_payment"
    ],
    "warranty": "12 months by Ray Ban",
    "pictures": [
        {
            "source": "https://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg"
        },
        {
            "source": "https://en.wikipedia.org/wiki/File:Teashades.gif"
        }
    ]
}'

https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN
PUT
curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d 

‘{
  "tags": [
        "immediate_payment"
    ],
}’


https://api.mercadolibre.com/items/MLA626369506?access_token=$ACCESS_TOKEN

Categorias com pagamento imediato

Dentro do Mercado Livre há categorias que têm Mercado Pago como única opção. Para saber se a categoria em que você quer anunciar é uma delas, consulte:

curl https://api.mercadolibre.com/sites/categories/{category_id}

"immediate_payment": "required",
    "item_conditions": [
      "new",
      "not_specified",
      "used"
    ],

Caso o campo “inmediate_payment” esteja marcado como “required”, o pagamento através do Mercado Pago é obrigatório. Se estiver marcado como “optional”, também aceitará pagamento “A combinar com o vendedor”.

Publicação de um anúncio em uma Loja oficial

A publicação de um anúncio em uma loja oficial é exatamente da mesma forma que a publicação de outro anúncio, porém, você deverá adicionar o atributo official_store_id no JSON.
Exemplo:

 curl -X POST -H "Content-Type: application/json" -d
'{
  "title":"Item de Test -No Ofertar",
  "category_id":"MLA5529",
  "price":10,
  "official_store_id": 1,
  "currency_id":"ARS",
  "available_quantity":1,
  "buying_mode":"buy_it_now",
  "listing_type_id":"bronze",
  "condition":"new",
  "description": "Item:, Ray-Ban WAYFARER Gloss Black RB2140 901 Model: RB2140. Size: 50mm. Name: WAYFARER. Color: Gloss Black. Includes Ray-Ban Carrying Case and Cleaning Cloth. New in Box",
  "video_id": "YOUTUBE_ID_HERE",
  "warranty": "12 months by Ray Ban",
  "pictures":[
    {"source":"http://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg"},
    {"source":"http://en.wikipedia.org/wiki/File:Teashades.gif"}
  ]
}'

https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN

Nota: se sua loja for multimarcas, você deverá especificar o official_store_id da marca onde quer publicar esse produto. Consulte o guia de lojas oficiais para saber mais sobre o assunto.

Referências de código de erro da API

Error_code Mensagem de erro Descrição Possível solução
item.start_time.invalid A hora de início $startTime só pode ser atualizada nos produtos NOT_YET_ACTIVE. O campo hora de início não pode ser atualizado. O parâmetro start_time só pode ser atualizado se o status do produto for NOT_YET_ACTIVE.
item.category_id.invalid A categoria $categoryId não existe. Categoria não encontrada. Para visualizar as categorias disponíveis, consulte page/sites/$siteId (Consulta $sideId).
item.category_id.invalid Não é permitido publicar na categoria $categoryId. Verifique se está publicando em uma categoria folha. $category.listing_allowed falso. Antes de publicar um anúncio, verifique se está publicando na categoria escolhida; consulte o parâmetro listing_allowed em /categories/$categoryId.
item.buying_mode.invalid A categoria $categoryId só aceita modos de publicação: $category.buyingModes. $item.buying_modes não é válido. Para visualizar os modos de publicação disponibilizados na categoria, consulte a página /categories/$categoryId nas configurações do parâmetro:{buying_modes:[…]}.
item.attributes.missing_required Os atributos $requiredAttributeIds são obrigatórios para a categoria $item.categoryId. Verifique se o atributo está incluído na lista de atributos ou na combinação de todos os atributos das variações. A categoria é um atributo obrigatório. Para visualizar os atributos obrigatórios dessa categoria, consulte a página /categories/$categoryId/attributes no parâmetro {tags:{required:{true}}}.
item.listing_type_id.invalid listing_type_id não válido. $item.listing_type_id é inválido. Para visualizar tipos de publicações disponíveis na categoria, consulte a página /categories/$categoryId/listing_types.
item.listing_type_id.requiresPictures As imagens do produto são obrigatórias para o $item.listingTypeId do tipo de publicação. As imagens são obrigatórias. Para saber se as imagens são obrigatórias na categoria, consulte a página /categories/$categoryId/listing_types/silver no parâmetro requires_picture:{}.
item.site_id.invalid $item.siteId do site não existe. O $item.site_id é inválido.. Para visualizar os sites disponibilizados, consulte a página /sites.
item.description.max O campo descrição é longo demais. Não são permitidos mais de $maxSize caracteres. Quantidade de caracteres ultrapassada. O número de caracteres da descrição deve ter menos de 50.000 caracteres.
item.pictures.max O número de itens em $item.categoryId não pode ultrapassar o número de imagens de $maxPicturesPerItem. Quantidade de imagens ultrapassada. Para visualizar a quantidade de imagens permitida por item na categoria, consulte a página /categories/$categoryId no parâmetro max_pictures_per_item:{}.
item.attributes.invalid_length Tamanho de valor inválido para o atributo $it.attributeId. O tamanho máximo é ${attribute.value_max_length}. Para visualizar os atributos max_length neste atributo, consulte a página /categories/$categoryId/attributes no parâmetro value_max_length para atributos com cadeia de caracteres ou número value_type.
seller.unable_to_list O vendedor não pode anunciar. O vendedor, por alguma causa, não pode anunciar. Identifica o campo “cause” dentro do response.
  • Consulte o significado de “cause” em /users#options esse status to list para ver o significado.
  • Tente realizar uma primeira postagem manual a partir de Minha Conta do Mercado Livre para que as notificações apareçam no fluxo.



Artigos relacionados :
Tutorial tipos de publicação e atualização de produtos..
Variações.



Próximo:
Envio de produto.

Please rate this

Sincronização e modificação de publicações

Assim que você tiver publicações ativas em nosso Marketplace, é provável que você tenha de fazer atualizações e alterações periodicamente para sincronizar o estoque com outras plataformas com as quais você trabalha, pausar publicações, melhorar descrições, atualizar preços etc.
Leia o guia a seguir e saiba como fazer isso:

Assuntos

Considerações

Nem todos os campos podem ser atualizados, e isso irá variar se o produto já tiver vendas ou não. Além disso, lembre-se de que para poder alterar um produto, ele deve estar ativo. Você pode alterar valores para:

  • Title
  • Available_quantity
  • Price
  • Video
  • Pictures
  • Description
  • Shipping

Se o produto tiver vendas, nenhum dos seguintes campos poderá ser alterado:

  • Condition
  • Buying mode
  • Non Mercado Pago Payment Methods
  • Warranty

Você também deve lembrar que:

  • A categoria não pode ser alterada através da API.
  • O tipo de publicação só pode ser alterado uma vez.

Atualização de seu produto

Vejamos um exemplo básico de atualização do título e do preço de um produto. Você só precisará do item_id do produto publicado e do access_token do vendedor.
Exemplo:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
{
  "title": "Your new title",
  "price": 1000
}
https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN

Pronto. O título e o preço de seu produto foram atualizados, e você deverá receber um status de resposta com código 200 OK para confirmar que não houve inconvenientes.
Lembre de que pode demorar um pouco até que as informações atualizadas fiquem visíveis.

Descrições

Atualizar uma descrição é muito simples, e você pode fazer isso independentemente do produto ter ou não alguma oferta. No entanto, como há algumas considerações que você deve lembrar ao adicionar ou substituir descrições, consulte o nosso artigo sobre descrições para ter certeza de que entendeu.

Imagens

Você sempre pode adicionar ou substituir imagens dos produtos. Consulte o nosso tutorial Trabalhar com imagens para saber qual a melhor maneira de fazer isso.

Tipos de publicação

Caso você queira dar mais exposição a seu produto, você deve atualizar o tipo de publicação. Conheça os detalhes e as considerações, e aprenda a fazer uma atualização em nosso tutorial Tipos de publicações e upgrades.

Mudar os status das publicações

Qualquer produto publicado em nosso Marketplace pode ter diferentes status; a seguir, analise a descrição de cada um deles:


encerrado: finaliza sua publicação. Uma vez encerrada, a publicação não poderá ser ativada novamente, mas pode ser publicada novamente.
Exemplo:

 curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
{
  "status":"closed"
}
https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN



pausado: pausa sua publicação. Uma vez pausado, o produto não poderá ser visualizado pelos outros usuários do Mercado Livre, mas não será encerrado e poderá ser reativado depois.
Exemplo:

 curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
{
  "status":"paused"
}
https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN



ativo: reativa um produto previamente pausado.
Exemplo:

 curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
{
  "status":"active"
}
https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN

Aclaração: Se você precisar fazer alterações no status do produto, deverá enviar um desses valores para o campo “status”. Lembre de que o valor diferencia entre letras maiúsculas e minúsculas e deve ser enviado em letras minúsculas.

Se seu produto está encerrado, e você quer publicá-lo novamente, consulte artigo sobre como publicar novamente para fazer isso rapidamente.
Para obter mais informações sobre o status do produto, consulte o artigo sobre ciclo de vida das publicações.

Fluxo de estados nas publicações

Active: O anúncio está ativo e pode receber ofertas ou perguntas. É possível alterar a exposição do anúncio (upgrade de listing type).

Payment required: Este caso se apresenta quando um usuário com dívida ou baixa política de crédito realiza um anúncio que será reativado automaticamente após o usuário realizar o pagamento.

Under Review: O item está sob revisão pelo Mercado Livre por causa dos motivos abaixo:

  • warning: item que continua ativo, porém, tem uma correção pendente a ser realizada pelo usuário. Se não for corrigido em 2 dias, passa para waiting_for_patch.
  • waiting_for_patch: item oculto até o usuário corrigir a infração informada.
  • held: item oculto no aguardo de uma moderação manual pelo Mercado Livre.
  • pending_documentation: item oculto até o usuário apresentar a documentação solicitada.
  • forbidden: item cancelado por moderação.

Nota: Se tem dúvidas respeito ao status sugerimos vê-lo com seu assessor comercial ou em MyML.

Paused: Pode se apresentar de forma automática (out of stock) ou por decisão do usuário.

  • out of stock: o item foi pausado por falta de estoque e será automaticamente ativado quando for restituído.

Nota: O item será pausado na VIP e não poderá receber ofertas.

Closed: Este é o status final do item, podendo se dever às seguintes causas:

  • waiting for patch
  • held
  • expired: chegou a data de finalização do anúncio (end_time) ainda tendo estoque.
  • deleted: é adicionado quando o item está fechado e o seller decide removê-lo. Ou quando o item finaliza e é automaticamente recadastrado.
  • suspended
  • freezed

Nota: Lembre que, depois de um tempo, os itens finalizados não serão mais mostrados para sua consulta.

Inactive: Se a correção necessária para sair do status under review não for feita, o item passa para inactive. A correção pode se encontrar na conta do usuário na seção vendas na aba de anúncios “revisar”.

Exclusão de publicações

Depois de excluir uma publicação, não há como reverter. Por isso, tenha cuidado ao fazer isso. Além disso, lembre-se de que não é necessário excluir os produtos encerrados porque eles serão automaticamente descartados depois de algum tempo.
Mas se você ainda precisar excluir um produto, por exemplo, produtos em estado payment_required, os quais não responderão ao status “encerrado”, faça o seguinte:
Exemplo:
Primeiro passo

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
{
"status": "closed"
}
https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN

Segundo passo

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
{
"deleted":"true"
}
https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN

Notas:

  • Se ao fazer o segundo PUT você obtiver o erro:
  • message: item optimistic locking
    error: conflict
    status: 409
    cause: array(0)
    Deverá esperar alguns segundos até a informação se atualizar.

  • Eliminado o anúncio, ele continuará sendo visualizado na VIP durante um breve período com a legenda “anúncio finalizado”.

Pronto! Seu produto será excluído.

Atualização do estoque

Atualizar o estoque de um artigo é muito fácil. Você deve somente acrescentar o valor no campo “available_quantity”, levando em consideração os seguintes pontos:

  • Ao fazer o PUT do available_quantity com 0, mudará o estado para “paused” com subestado out_of_stock.
  • Ao fazer o PUT do available_quantity superior a 0 e o subestado sendo out_of_stock, mudará o estado para ativo sem subestado out_of_stock.
  • Um item só pode ser pausado enviando available_quantity = 0 quando for do tipo condition = new e não for listing_type = free.

Observação: É possível realizar esta modificação tanto para itens como para variações de um item.

Onde é possível essa funcionalidade?

Os sites que suportam pausa automática com estoque 0 são MLB, MLA, MLM, MLC, MPE, MLV.
Exemplo:

 curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
{
  "available_quantity": 6
}
https://api.mercadolibre.com/items/ITEM_ID?access_token=YOUR_ACCESS_TOKEN

Fácil. Você pode consultar sua publicação e visualizar o estoque atualizado.
Se precisar atualizar o estoque ou realizar alterações em um produto com variações, você encontrará uma pequena diferença na maneira de realizar as atualizações.


Próximo:
Gerenciamento de contatos.

Please rate this

Gerenciamento de perguntas e respostas

As perguntas a forma pela qual os compradores podem se comunicar com os vendedores na página Detalhes do produto antes de realizar uma transação e, portanto, o modo como você lida com a interação nessa fase será decisivo para uma venda bem-sucedida.

Assuntos

Busca de perguntas

Existem várias maneiras de buscar perguntas.

Perguntas recebidas pelo vendedor

curl -X GET -H "Content-Type: application/json" 'https://api.mercadolibre.com/questions/search?seller_id={Seller_id}&access_token=$ACCESS_TOKEN'

Perguntas recebidas sobre um produto

curl -X GET -H "Content-Type: application/json" 'https://api.mercadolibre.com/questions/search?item={Item_id}&access_token=$ACCESS_TOKEN'

Perguntas feitas por um usuário sobre um produto

curl -X GET -H "Content-Type: application/json" 'https://api.mercadolibre.com/questions/search?item={Item_id}&from={Cust_id}'&access_token=$ACCESS_TOKEN'

Perguntas por id

curl -X GET -H "Content-Type: application/json" 'https://api.mercadolibre.com/questions/{question_id}?access_token=$ACCESS_TOKEN'

Observação: Leve em conta que se você fizer uma consulta sem accesstoken e o estado da pergunta for DELETED ou BANNED obterá “question not found”.



Vamos analisar os atributos que encontraremos no recurso Search Questions.

Descrição dos atributos

id
ID da pergunta.
date_created
Data de criação.
item_id
ID do produto ao qual pertence a pergunta.
seller_id
ID do vendedor do produto.
status
Status da pergunta. Valores possíveis:
Atributos
unanswered
A pergunta ainda não foi respondida.
answered
A pergunta foi respondida.
closed_unanswered
O produto está encerrado, e a pergunta nunca foi respondida.
under_review
O produto está em análise, e a pergunta também.
text
Texto da pergunta.
answer
Resposta do vendedor.
Atributos
date_created
Data de criação.
status
Status da resposta. Valores possíveis:
Atributos
active
A resposta se encontra ativa.
disabled
A resposta foi desabilitada.
text
Texto da resposta

Excelente! Agora você já sabe quais aspectos deve levar em conta com relação às perguntas. Veja quais são as ações disponibilizadas conforme a busca de perguntas.

Métodos autorizados

GET /questions/:id
Retorna uma pergunta com esse ID.
POST /questions
Cria uma pergunta sobre um produto.
DELETE /questions/:id
Exclui uma pergunta.
POST /answers/
Publica uma resposta para uma determinada pergunta.
POST /my/questions/hidden
Oculta perguntas.
Como pode ver, é possível buscar perguntas por produto, vendedor e usuário que as tenha formulado, e filtrá-las por estado ou período. Se quiser, você também pode buscar todas as perguntas recebidas e ocultá-las.

Recursos e conexões relacionados

Use os recursos a seguir para buscar perguntas por produto ou usuário. É preciso incluir o item_id ou cust:id.

 "related_resources": [
        "/items",
        "/users"
    ],
    "connections": {
        "item_id": "/items/:id",
        "seller_id": "/users/:id"
    }
}'

Veja alguns exemplos de como buscar perguntas em nossa plataforma.

Formulação de perguntas

É muito fácil. Você só precisa conhecer o item_id e enviá-lo com uma cadeia de texto no corpo do JSON, como no exemplo abaixo:

 curl -i -X POST -H "Content-Type: application/json" -d
'{
   "text":"Do you have these shoes in red?",
   "item_id":"MLA123456"
}'

https://api.mercadolibre.com/questions/{Item_Id}?access_token=$ACCESS_TOKEN

Resposta a perguntas

Quando você tem uma grande quantidade de produtos publicados no Mercado Livre, é bem provável que receba muitas perguntas. Por isso, recomendamos desenvolver um método para respondê-las de modo semiautomático, no qual as respostas são sugeridas aos operadores com base nas palavras-chave recebidas frequentemente.
Para isso, você deve saber como responder a uma pergunta via API. Vai ser fácil.

Primeiramente, vamos dar uma olhada em todas as perguntas recebidas sobre seu produto. Basta fazer uma busca de perguntas por produto, conforme o exemplo abaixo:

 curl 'https://api.mercadolibre.com/questions/search?item_id=ITEM_ID&access_token=XXXX'

Você vai ver que as perguntas têm um status. Por isso, é provável que você tenha de mantê-las com o status “unanswered”.

Agora responderemos a uma só pergunta:

 curl -i -X POST -H "Content-Type: application/json" -d
'{
  question_id: QUESTION_ID,
  text:"Some text here..."
}'

https://api.mercadolibre.com/answers?access_token=XXXX

Vamos fazer isso utilizando os nossos SDKs (exemplo).

Ao trabalhar com perguntas, é importante ouvir as Notificações, pois isso permite obter um feed em tempo real dos eventos produzidos em relação a elas. Saiba como trabalhar com Notificações.

Exclusão de perguntas

Se você precisar excluir uma resposta de um usuário sobre seu produto, use o método EXCLUIR com o ID da pergunta e o token de acesso do usuário.
Exemplo:

 curl -X DELETE 'https://api.mercadolibre.com/questions/${question_id}?access_token=$ACCESS_TOKEN'

Exclusão com os nossos SDK (exemplo)

Resposta:

[
  "Question deleted."
]

Lista negra de perguntas

Gerenciar a lista negra de perguntas permite bloquear usuários para evitar que eles façam perguntas sobre seus produtos. Posteriormente, você pode removê-los da lista negra para que possam perguntar novamente.

A lista negra é baseada em usuário, e o vendedor tem controle total sobre a lista de usuários que fazem parte dela. Vamos ver alguns exemplos de o que pode ser feito com ela.

Enviar usuários à lista negra de perguntas

 curl -X POST -H "Content-Type: application/json" -d
'{
  "user_id": blocked user id
}'
https://api.mercadolibre.com/users/$SELLER_ID/questions_blacklist?access_token=$ACCESS_TOKEN

Visualizar a lista negra

 curl -X GET 'https://api.mercadolibre.com/users/$SELLER_ID/questions_blacklist?access_token=$ACCESS_TOKEN '

Remover um usuário da lista negra

 curl -X DELETE 'https://api.mercadolibre.com/users/$SELLER_ID/questions_blacklist/$USER_ID?access_token=$ACCESS_TOKEN'

Perfeito! Agora você já sabe o necessário sobre nossa lista negra de perguntas. Esperamos que seja útil para você, se necessário.

Como tomar conhecimento de uma pergunta

Uma pergunta sobre um produto é um evento que acontece pelo lado do Mercado Livre. Por isso, você deverá inscrever-se para nosso feed de perguntas para ficar sabendo, em tempo real, quando esse evento acontecer.
Em primeiro lugar, é necessário configurar nosso aplicativo para poder receber notificações. Isso pode ser feito inscrevendo seu aplicativo para receber notificações de perguntas. Acesse nosso Gerenciador de aplicativos e edite Configuração de notificações de seu aplicativo. Para obter mais informações sobre a criação e configuração de um novo aplicativo, consulte o link.
Você tem de selecionar uma URL de retorno: configure a URL pública do domínio onde deseja receber todas as notificações do Mercado Livre.
Exemplo:

 "http://backend.soleorigami.com/notification"

questions

Também é necessário especificar qual assunto você vai listar, nesse caso, você deve selecionar perguntas.
Essa configuração permite interagir com as notificações do Mercado Livre. Todos os eventos relativos a novas perguntas serão notificados à URL de retorno.

Recebimento de uma notificação

O Mercado Livre enviará notificações através de uma mensagem POST com informações no corpo do item. O atributo mais importante da mensagem é o user_id, que está relacionado à notificação, o segundo em importância é o resource. O resource é o elemento que foi atualizado ou criado.

 {
  "user_id": 1234,
  "resource": "/questions/139876",
  "topic": "questions",
  "received": "2011-10-19T16:38:34.425Z",
  "sent" : "2011-10-19T16:40:34.425Z",
}

Depois de receber a notificação, você deve enviar uma confirmação de recebimento (ACK 200) ao Mercado Livre, para que ela não mais seja enviada.
Para obter mais informações, consulte nosso tutorial Notificações.

Referência de códigos de erro

Error_code Mensagem de erro Descrição Possível solução
invalid_question A pergunta é inválida Não é possível responder à pergunta. O parâmetro question_id deve ser um número inteiro. (Para buscar sua pergunta, faça uma chamada para resource/questions/search [recurso/perguntas/busca]).
invalid_post_body JSON inválido. Os atributos válidos são: {0}. Parâmetros inválidos. Os parâmetros esperados são question_id e text



Próximo:
Gerenciamento de vendas.

Please rate this

Mercado Envios modo 2

Você já conhece algumas das particularidades do modo Mercado Envios 2. Este tutorial ajudará você a publicar um produto usando esse modo e gerenciar o processo de envio usando recursos de nossa API.
Leve em conta que as dimensões dos pacotes são estipuladas por ME2 e não podem ser alteradas pelo usuário.

Assuntos

Opção pelo ME2

Se quiser, você pode optar pelo uso do Mercado Envios no modo 2. Consulte os links abaixo:
Argentina: http://envios.mercadolibre.com.ar/
Brasil: http://envios.mercadolivre.com.br/
Colômbia: http://envios.mercadolibre.com.co/
México: http://envios.mercadolibre.com.mx/
Chile: http://envios.mercadolibre.cl/

Oferecer ME2 em seus produtos

Depois que fizer a opção de trabalhar com o ME, você poderá adicionar essa opção a seus produtos. Quando um comprador adquirir seu produto, ele precisará colocar um endereço ao finalizar e pagar pelo produto, incluindo o custo do envio.
O Mercado Envios realizará o rastreamento do pacote e verificará se chegou ao destino certo.
O dinheiro do pagamento será disponibilizado em sua conta dois dias depois da entrega.
Você poderá adicionar o frete grátis a seus produtos, impulsionando suas publicações na busca.

Publicar um anúncio usando ME2 é muito simples; você só tem de publicar um anúncio na forma habitual, incluindo me2 no conjunto do envio.
Exemplo:

 curl -X POST -H "Content-Type: application/json" -d '{
    "title": "Item de teste",
    "category_id": "MLA91727",
    "price": 1200,
    "currency_id": "ARS",
    "available_quantity": 2,
    "buying_mode": "buy_it_now",
    "listing_type_id": "bronze",
    "condition": "new",
    "description": "test",
    "pictures": [
        {
            "source": "http://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg"
        },
        {
            "source": "http://en.wikipedia.org/wiki/File:Teashades.gif"
        }
    ],
   "shipping": {
   "mode": "me2",
   "local_pick_up": false,
   "free_shipping": false,
   "free_methods": []
 }
}' https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN

Frete grátis

Os vendedores podem publicar seus produtos oferecendo um dos modos de frete grátis, e o Mercado Livre cobrará do vendedor o custo do frete. Conheça os detalhes e sabia como publicar no modo frete grátis.

Calculadora de frete e tempo de processamento

O ML disponibilizará aos vendedores uma calculadora de fretes na página de descrição dos produtos. Assim, os compradores saberão o custo do frete e o tempo estimado de processamento.
Você pode utilizar nossos recursos para calcular o frete com base nas informações disponíveis.

Impressão de etiquetas de envio

Uma etiqueta de pré-pagamento é um arquivo PDF que pode ser gasto na entrega de seu produto. Ele já foi pago pelo comprador quando ao finalizar a transação. Logo depois do pagamento do pedido, você deverá imprimir a etiqueta de pré-pagamento.
Para obter essa etiqueta, o status dos envios deve ser ready_to_ship (verifique como consultar o status do envio). Isso quer dizer que o pagamento foi processado e a etiqueta de pré-pagamento está disponível para o vendedor.
A API para a obtenção de uma etiqueta, ou uma série de etiquetas, recebe uma lista dos IDs de envio e um token de acesso, retornando as etiquetas no formato de sua preferência. As opções são PDF ou ZPL.
Para obter a etiqueta de envio no formato PDF, execute a seguinte chamada:

 https://api.mercadolibre.com/shipment_labels?shipment_ids=20178600648,20182100995&response_type=pdf&access_token=

A resposta será um arquivo PDF com uma ou mais etiquetas de envio pré-pago prontas para impressão.

Se quiser obter as etiquetas de envio no formato ZPL, você deverá alterar response_type=pdf para response_type=zpl2 na solicitação GET feita à API.

Exemplo:

 https://api.mercadolibre.com/shipment_labels?shipment_ids={shipping_id}&response_type=zpl2&access_token={access_token}

O recurso acima retorna um arquivo ZIP. O ZIP inclui um PDF com o PLP e um arquivo TXT. Agora você pode fazer a impressão do arquivo TXT de sua impressora Zebra.

Impressora térmica Zebra (somente no Mercado Livre da Colômbia)

Se você trabalha no Mercado Livre Colômbia (MCO), existe outro formato de impressão disponível: as impressoras térmicas Zebra. Você poderá realizar a operação com a chamada a seguir:

 /shipment_labels?shipment_ids={shipping_id}&response_type=thermal_pdf&access_token={access_token}

O papel deve ser configurado nas dimensões 100 x 213 milímetros.
Nota:
Se seu sistema operacional for Microsoft Windows, utilize o driver: driver genérico somente texto.
autorizacao

Considerações sobre os tipos de etiquetas por local

Tipo de impressão Impressora Locais disponíveis Tipo de resposta Saída
PDF Impressora normal
  • Argentina (MLA)
  • México (MLM)
  • Brasil (MLB)
  • Colômbia (MCO)
  • Chile (MLC)
response_type=pdf etiqueta pdf
ZPL2 Impresora térmica
  • Argentina (MLA)
  • México (MLM)
  • Brasil (MLB)
  • Chile (MLC)
response_type=zpl2 arquivo zip com etiqueta no formato txt e resumo da impressão no formato pdf
Thermal PDF Impressora térmica
  • Colômbia (MCO)
response_type=thermal_pdf etiqueta PDF

Status do envio

O status do envio pode variar no pedido, dependendo do modo de envio selecionado para o produto. Nos modos que aceitam rastreamento automático e monitoramento dos números de rastreamento, atualizaremos o status do envio, enquanto nos outros modos de envio, você será responsável por enviar um número de rastreamento e pela atualização do status do envio. Embora não seja obrigatório, sugerimos fazer isso para melhorar suas chances de receber um melhor feedback dos compradores.
Status:
pending
O envio é criado com esse status.
handling
O pagamento do frete foi recebido.
ready_to_ship
O código de autorização da transportadora foi recebido .
shipped
A transportadora informou o encaminhamento do envio.
delivered
O envio foi informado pela transportadora.
not_delivered
A transportadora não conseguiu entregar o pacote.
cancelled
O envio foi cancelado.

Considerações

Os envios com Mercado Envios são oferecidos de maneira predeterminada nos anúncios da categoria R$ 30 quando o serviço está disponível.
Em todos os casos, o vendedor pode adicionar no anúncio a possibilidade de entrega em mãos do produto.
Não haverá alterações nos anúncios inferiores a R$ 30 ou nas categorias em que o serviço não estiver ativo.

Please rate this

Frete grátis

Os vendedores que utilizam o módulo de fretes Mercado Envios, no modo 1 ou modo 2, podem publicar produtos e oferecer um dos métodos de frete grátis.
Esta forma de envio tem alguns benefícios: é uma experiência de compra superior para o comprador, aparece em destaque nos resultados de busca e os compradores podem filtrar publicações que ofereçam frete grátis.
Foram implantadas recentemente algumas mudanças na API e na estrutura JSON dos produtos, adicionando a possibilidade de configurar “Regras” na opção free_shipping. Agora, os vendedores brasileiros com ME que incluem free_shipping em seus produtos podem excluir as regiões norte e nordeste, se assim desejarem. Isso é possível graças à regra “exclude_regions”. Outros sites somente podem usar a regra “país”, isto é, se estiverem incluindo frete grátis em seus produtos, isso será aplicado a todo o país.

Assuntos

Formas de envio

 curl https://api.mercadolibre.com/users/{user_id}/shipping_modes?category_id={category_id}

Esse recurso retornará a configuração de envio disponibilizada ao vendedor para uma categoria específica.

Resposta:

 http://developers.mercadolibre.com/free-shipping/
{
"mode": "me2",
 "shipping_attributes": {
   "costs": "not_allowed",
   "dimensions": "clear",
   "free": {
      "methods": "optional",
      "accepted_methods": [100009,182],
      "rules": [{
         "free_mode":"exclude_region",
         "value": [’BR-NO’, ’BR-NE’],
         "default": true,
         "free_shipping_flag": false
      },{
         "free_mode":"country",
         "value": null,
         "default": false,
         "free_shipping_flag": true
      }]
   }
}

Calcular o custo do frete grátis

Sites

Calcular custos para o frete grátis por site e dimensões do produto
Exemplo:

curl -X GET https://api.mercadolibre.com/sites/MLM/shipping_options/free?dimensions=2x11x25,500

Resposta:

{
"coverage": {
"all_country": {
"list_cost": 97,
"currency_id": "MXN"
}
}
}

Usuários e produtos

No México, o ML oferece aos vendedores a opção da tarifa fixa única. Quando as dimensões do produto não são especificadas, o cálculo é realizado com base nas dimensões padrão da categoria.

Saiba quais são as dimensões padrão de uma determinada categoria

Exemplo:

curl -X GET https://api.mercadolibre.com/categories/MLM165702/shipping

Resposta:

{
  "category_id": "MLM1055",
  "height": 10,
  "width": 10,
  "length": 15,
  "weight": 500
}

Calcular custos para frete grátis por usuário e dimensões do produto

Exemplo:

curl -X GET https://api.mercadolibre.com/users/4422224/shipping_options/free?dimensions=10x10x10,500

Resposta:

{
"coverage": {
"all_country": {
"list_cost": 97,
"currency_id": "MXN"
}
}
}

Calcular custos para frete grátis por usuário e item_id

Exemplo:

curl -X GET https://api.mercadolibre.com/users/4422224/shipping_options/free?item_id=MLM531425223
{
"coverage": {
"all_country": {
"list_cost": 97,
"currency_id": "MXN"
}
}
}

Calcular custos para frete grátis por produto

Exemplo:

curl -X GET https://api.mercadolibre.com/items/MLB739217081/shipping_options/free

Resposta:

{
"coverage": {
"all_country": {
"list_cost": 14.02,
"currency_id": "BRL"
}
}
}

Para calcular o custo do frete grátis de até 50 produtos, utilize multiget fazendo uma só chamada à API:
Exemplo:

curl -X GET curl -X GET https://api.mercadolibre.com/items/shipping_options/free?ids=MLM531425223,MLM537956425,MLM537955922

Resposta:

{
"MLM537955922": {
"coverage": {
"all_country": {
"list_cost": 140,
"currency_id": "MXN"
}
}
},
"MLM531425223": {
"coverage": {
"all_country": {
"list_cost": 97,
"currency_id": "MXN"
}
}
},
"MLM537956425": {
"coverage": {
"all_country": {
"list_cost": 105,
"currency_id": "MXN"
}
}
}
}

Produtos com frete grátis

curl https://api.mercadolibre.com/items/{item_id}

No produto, você verá que os “métodos” de propriedade foram substituídos por “free_methods” quando “free_shipping” for verdadeiro. Em free_methods, você obterá o ID do método e a “regra”.
Em “regras”, você deverá especificar se vai querer, ou não, excluir regiões no “free_mode”. Ao configurar “free_mode”: ”exclude_region”, você deverá enviar os valores, que, por enquanto, serão ‘BR-NO’ e ‘BR-NE’.
● ACESSAR frete artigo

{
   "shipping":{
      "mode":"me2",
      "local_pick_up":true,
      "free_shipping":true,
      "free_methods":[
         {
            "id":182,
            "rule":{
                "free_mode":"exclude_region",
                "value":[’BR-NO’, ’BR-NE’]
             }
         },
      ],
      "dimensions":null
   }
}

NOTA: embora o benefício, atualmente, só seja disponibilizado no MLB, a estrutura do JSON será atualizada em cada país com Mercado Envios. A partir da data da ativação, você terá um prazo de dois meses para adaptar-se a essas mudanças, ou seja, a API aceitará os dois tipos de JSON durante esse período, até finalizar o prazo – dois meses a partir de 30 de junho – data a partir da qual o JSON original não terá mais validade. Os produtos que tiverem a configuração anterior serão mantidos sem alterações, com exceção das novas publicações.

Oferecer a forma free_shipping “país”

Exemplo:

{
"title": "Titulo del item",
...
"shipping": {
    "mode": "me2",
    "local_pick_up": false,
    "free_methods": [
        {
            "id": 100009,
            "rule": {
                "free_mode": "country",
                "value": null
            }
        }
    ]
}
}

Oferecer free_shipping excluindo regiões

Exemplo:

{
    "shipping": {
        "free_methods": [
            {
                "id": 182,
                "rule": {
                    "free_mode": "exclude_region",
                    "value": [
                        "BR-NO",
                        "BR-NE"
                    ]
                }
            }
        }
    ],
    
}

Oferecer free shipping para envios personalizados

Para países onde Mercado Envíos encontra-se ativo só poderá adicionar envios custom grátis em categorias que não aceitem ME.

"shipping": {
        "mode": "not_specified",
        "local_pick_up": false,
        "free_shipping": true,
        "methods": [],
        "costs": []
    }

Please rate this

Gerencie vendas

Uma ordem é um pedido realizado por um cliente para um anúncio com a intenção de comprar conforme uma série de condições que ele irá escolher no fluxo do processo de compra online (checkout).
Estas condições são detalhadas na ordem, que será replicada nas contas do comprador e do vendedor. A ordem contém grande quantidade de informações a serem preenchidas sobre o produto, bem como a possibilidade de reservar e/ou descontar estoque.

Assuntos:

Receba uma ordem

Quando uma nova ordem é criada no usuário, os detalhes podem ser consultados através de uma solicitação ao recurso de ordens:
Exemplo:

curl https://api.mercadolibre.com/orders/$ORDER_ID?access_token=$ACCESS_TOKEN

Resposta:

{
  "id": 768570754,
  "status": "paid",
  "status_detail": null,
  "date_created": "2013-05-27T10:01:50.000-04:00",
  "date_closed": "2013-05-27T10:04:07.000-04:00",
  "order_items": - [
	- {
  	"item": - {
    	"id": "MLB12345678",
  	  "title": "Samsung Galaxy",
    	"variation_id": null,
    	"variation_attributes": [
    	],
  	},
  	"quantity": 1,
  	"unit_price": 499,
  	"currency_id": "BRL",
	},
  ],
  "total_amount": 499,
  "currency_id": "BRL",
  "buyer": - {
	"id": "123456789",
	"nickname": "COMPRADORTESTE",
	"email": "b@b.com",
	"phone": - {
  	"area_code": "11",
  	"number": "12345678",
  	"extension": null,
	},
	"first_name": "Comprador de testes",
	"last_name": "da Silva",
	"billing_info": - {
  	"doc_type": "CPF",
  	"doc_number": "12345678910",
	},
  },
  "seller": - {
	"id": "123456789",
	"nickname": "VENDEDORTESTES",
	"email": "a@a.com",
	"phone": - {
  	"area_code": null,
  	"number": "11 12345678",
  	"extension": "11",
	},
	"first_name": "Vendedor de Testes",
	"last_name": "testes de documentacao",
  },
  "payments": - [
	- {
  	"id": "596707837",
  	"transaction_amount": 499,
  	"currency_id": "BRL",
  	"status": "approved",
  	"date_created": null,
  	"date_last_modified": null,
	},
  ],
  "feedback": - {
	"purchase": null,
	"sale": null,
  },
  "shipping": - {
	"id": 20676482441,
	"shipment_type": "shipping",
	"status": "handling",
    "date_created": "2013-05-27T10:03:28.000-04:00",
	"receiver_address": - {
  	"id": 12345678,
  	"address_line": "Rua dos testes 123  ",
  	"zip_code": "01001000",
  	"city": - {
    	"id": "BR-SP-44",
    	"name": "São Paulo",
  	},
  	"state": - {
    	"id": "BR-SP",
    	"name": "São Paulo",
  	},
  	"country": - {
    	"id": "BR",
    	"name": "Brasil",
  	},
  	"latitude": null,
  	"longitude": null,
  	"comment": null,
	},
	"currency_id": "BRL",
	"cost": 0,
  },
  "tags": - [
	"paid",
	"not_delivered",
  ],
}

Há grande número de atributos conforme a ordem. A seguir, vamos ver uma descrição dos campos mais importantes.
id Identificador único da ordem.
date_created Data de criação da ordem.
date_closed Data de confirmação da ordem. Quando uma ordem muda pela primeira vez de status é definida como: confirmed / paid e descontada do estoque do item.
expiration_date Prazo limite para o usuário qualificar; após essa data, o feedback se torna visível, os pagamentos são emitidos (caso houver) e os encargos são criados.
status Status da ordem. Ver os valores possíveis.
status_detail Detalhe do status, caso a ordem seja cancelada.
code Código do status.
description Descrição do status.
comprador Informações do comprador.
vendedor Informações do vendedor.
order_items Publicações na ordem.
payments Pagamentos relacionados à ordem.
feedback Informações de feedback relacionadas à ordem.
shipping Configuração do envio para esta ordem.
total_amount Valor total da ordem.
currency_id ID de moeda.
tags Lista das tags selecionadas pelo vendedor, como entregue, pago.
Nota: Da mesma maneira que cada vez que a informação de uma ordem é atualizada, se descobrirmos que a compra foi fraudulenta, marcaremos a ordem com a tag “fraud_risk_detected” e enviaremos uma notificação para você com o topic “orders” e a ID da ordem.

O que acontecerá com a venda segundo seu envio?

Sem Mercado Envios: O vendedor será informado via email ou telefonicamente.

  • Caso o produto tenha sido entregue e exista prova disso, o vendedor fica protegido perante um contra-encargo. Isso significa que o dinheiro da venda não lhe será descontado.
  • Se o produto ainda não foi entregue, o vendedor deverá fazer o refund do dinheiro.
  • Para saber como fazer um refund via API confira a documentação relacionada.
  • Se quiser mais informações, sugerimos a leitura da documentação de “Requisitos do Programa de Proteção ao Vendedor”.

Com Mercado Envios: Caso a etiqueta ainda não tenha sido impressa, a venda será cancelada e uma notificação será enviada ao vendedor. Além disso, se o produto já foi enviado, Mercado Livre entrará em contato com a empresa de envios para este ser retornado.

Pesquisa de ordens

O recurso de pesquisa de ordens vai ajudá-lo a pesquisar cada ordem de usuários com token válido.

https://api.mercadolibre.com/orders/search?buyer=buyer_id&access_token={...}

No seach a orders, os campos “available_filters” e “available_sorts” estão disponíveis.
Lembre que o search não mostra as ordens em estado Payment_required.

Como filtrar?

Por exemplo, para filtrar suas ordens com status “paid”, você encontrará entre os ”available_filters” disponíveis o ID “order.status” e dentro dele o value com ID “paid”.

https://api.mercadolibre.com/orders/search?seller=seller_id&order.status=paid&access_token={...}

Para filtrar suas ordens por data, você deverá fazer o seguinte:

https://api.mercadolibre.com/orders/search?seller=&order.date_created.from=2015-07-01T00:00:00.000-00:00&order.date_created.to=2015-07-31T00:00:00.000-00:00&access_token=

Nota: leve em conta que para filtrar por data somente se utiliza até a hora.
Informação de minutos, segundos e milissegundos é descartada.

Como realizar uma ordem?

Neste caso, você deve adicionar “sort” com o ID disponível da ordem que quiser aplicar, por exemplo: “date_desc”

https://api.mercadolibre.com/orders/search?seller={seller_id}&order.status=paid&sort=date_desc&access_token={...}

Nota: Por default, uma ordem date_asc já vem aplicada. A data segundo a qual é organizada é:

  • Sellers por date_closed.
  • Buyers por date_created.

Ordens recentes

As ordens recentes são os geradas mais recentemente para um usuário. A resposta incluirá ordens nas quais a data atual for anterior à expiration_date e ainda não tenham sido qualificadas por nenhuma das partes.
Pesquisa de ordens recentes de um vendedor:

https://api.mercadolibre.com/orders/search/recent?seller=seller_id&access_token={...}

Pesquisa de ordens recentes de um comprador:

https://api.mercadolibre.com/orders/search/recent?buyer=buyer_id&access_token={...}

Ordens arquivadas

Se você procurar uma ordem com expiration_date posterior à data atual ou que foi qualificada por ambas as partes, pode utilizar o recurso de pesquisa em ordens arquivadas:
Pesquisa de ordens arquivadas de um vendedor:

https://api.mercadolibre.com/orders/search/archived?seller=seller_id&access_token={...}

Pesquisa de ordens arquivadas de um comprador:

https://api.mercadolibre.com/orders/search/archived?buyer=buyer_id&access_token={...}

Ordens Pendentes

Esta pesquisa recuperará todos as ordens em status “pendente” e omitirá as canceladas automaticamente.
Se você quiser ver as ordens de um vendedor, envie o seller_id:

https://api.mercadolibre.com/orders/search/pending?seller=seller_id&access_token={...}

Para pesquisar por comprador, substitua os parâmetros como é mostrado a seguir:

https://api.mercadolibre.com/orders/search/pending?buyer=user_id&access_token={...}

Status da ordem

Os status da ordem são:
confirmed
Status inicial de uma ordem; ainda sem ter sido paga.
payment_required
O pagamento da ordem deve ter sido confirmado para exibir as informações do usuário.
payment_in_process
Há um pagamento relacionado à ordem, mais ainda não foi creditado.
partially_paid
A ordem tem um pagamento associado creditado, porém, insuficiente.
paid
A ordem tem um pagamento associado creditado.
cancelled
Por alguma razão, a ordem não foi completada.*
invalid
A ordem foi invalidada por vir de um comprador malicioso.

*Nota:Uma ordem pode ser cancelada pelos seguintes motivos:

  • Requeria aprovação do pagamento para descontar do estoque, mas, no tempo de processo de aprovação, o item foi pausado/finalizado por falta de estoque, portanto, o pagamento é retornado ao comprador.
  • Requeria pagamento, mas, após certo tempo, não foi paga, por isso é automaticamente cancelada.
  • Após uma transação ter sido efetuada, o vendedor é proibido no site por alguma razão.
  • Se por alguma razão o vendedor qualificar a operação como não concretizada, a ordem assume o “status = confirmed”. Caso exista um pagamento aprovado, este será automaticamente devolvido.

    Lembre que uma ordem não concretizada pelo vendedor será visualizada como “Cancelada” por front e por api terá “status = confirmed”.

Fluxo de Mercado Pago obrigatório (somente para países com MP)

Como saber se um site tem Mercado Pago ativo?
Para obter essa informação, você deve realizar a seguinte chamada:

curl https://api.mercadolibre.com/sites/MLA

Caso você obtenha “MLAMP” como resposta dentro dos “payment_method_ids”, poderá trabalhar sem problemas com este fluxo.

Aclaração: MLAMP é o ID do método de pagamento Mercado Pago:

curl https://api.mercadolibre.com/payment_methods/MLAMP

Dentro da nossa plataforma, você vai encontrar ordens que podem entrar pelo fluxo obrigatório de Mercado Pago como único meio de pagamento e outras que não.
Os cenários apresentados a seguir são aqueles em que você pode encontrar esta opção de maneira obrigatória:

  • Todos as ordens de MLB.
  • Todos as ordens de MLA e MLM por venda de produtos com “condition”: “new”.
  • Anúncios de Lojas Oficiais em todos os países com Mercado Pago.
  • Categorias com Mercado Pago como única opção (Mais informações em: Categorias com pagamento imediato).
  • Usuário automaticamente marcado para que suas operações vão por este fluxo, com a marca “immediate_payment” na API de users.
  • Vendedor “auto” marcado para que suas vendas vão por este fluxo.

  • Agora vamos explicar como é o funcionamento geral das ordens, estejam elas dentro deste fluxo ou não:
    1) Ordens dentro deste fluxo são criadas em status “payment_required”.
    Nesse momento, têm as seguintes características:

    • Não são visíveis para o seller.
    • O estoque não é descontado do item.
    • Não têm o campo date_closed estabelecido.
    • Não têm dados da contraparte.
    • Somente é enviada a notificação do topic “create_orders”.

    Quando o pagamento é creditado pelo valor total da venda, a ordem passa do status “payment_required” para “paid”. Nesse momento:

    • Passam a ser visíveis para o seller.
    • O item é descontado do estoque.
    • O campo date_closed é estabelecido.
    • São adicionados os dados da contraparte.
    • Também começam a ser enviadas as notificações do topic “orders”.


    2) Ordens que NÃO estão dentro deste fluxo são criadas em status “confirmed”. A partir desse momento:

    • São visíveis para o seller.
    • O item é descontado do estoque.
    • O campo date_closed é estabelecido.
    • Contêm os dados da contraparte.
    • Também começam a ser enviadas as notificações do topic “orders”/”created_orders”.

    Caso seja efetuado um pagamento através de Mercado Pago e seja creditado pelo valor total de venda, a ordem passa do estado “confirmed” para “paid”.

    Aclaração: Em ambos os casos, se durante o fluxo de pagamento o comprador escolher Mercado Envios (ME2, somente em países onde este serviço estiver ativo), o envio terá a etiqueta disponível para impressão após a ordem ter passado para “paid”. Mais informações.

    Como seu app sabe de uma compra?

    A criação de uma ordem é um evento que se produz do lado do Mercado Livre, portanto, você deverá se cadastrar no nosso fedd de orders para saber em tempo real quando esse evento ocorre.
    Vá para o nosso Gerenciador de Aplicativos e edite as Configurações de Notificações de seu aplicativo. Mais informações sobre criar e configurar um novo aplicativo neste link.
    Você deve selecionar um Callback URL: configure a URL pública do domínio onde você quiser receber todas as notificações do Mercado Livre. Por exemplo: “https://backend.soleorigami.com/notification”.

    ORDERS

    Esta configuração permite que você interaja com as notificações do Mercado Livre. Todos os eventos (como pagamento e envio) relacionados a uma ordem serão notificados a seu callback URL.

    Receber Notificação

    Mercado Livre vai enviar notificações através de uma mensagem POST contendo informações. O atributo mais importante da mensagem é o user_id, relacionado à notificação; o segundo em importância é o recurso. O recurso é o elemento atualizado ou criado.

    {
      "user_id": 1234,
      "resource": "/orders/731867397",
      "topic": "orders",
      "received": "2011-10-19T16:38:34.425Z",
      "application_id" : 14529
      "sent" : "2011-10-19T16:40:34.425Z",
      "attempts" : 0
    }

    Após receber a notificação, você deve enviar um aviso de recepção [acknowledgment] (ACK 200) para Mercado Livre a fim de não receber mais notificações.

    Pagamentos

    Mercado Pago é a plataforma de pagamentos de Mercado Livre. Se você quiser integrar uma solução de pagamentos em sua plataforma, deve consultar o site de desenvolvedores de Mercado Pago.

    Cenário de múltiplos pagamentos

    Em alguns casos, quando o pagamento é rejeitado porque o cartão de crédito atinge o limite, permitimos que os usuários adicionem outro pagamento com um segundo cartão de crédito.

    Como posso saber se existem dois pagamentos?

    Quando você faz uma solicitação GET para a API de pedidos, poderá ver que dentro do conjunto de pagamentos existem dois ID com os detalhes de cada pagamento.
    Exemplo:

    curl -X GET https://api.mercadolibre.com/orders/893431118?access_token=&ACCESS_TOKEN

    Resposta

    {
    	"buyer": {
        	"alternative_phone": {
            	"area_code": null,
            	"extension": null,
            	"number": ""
        	},
        	"billing_info": {
            	"doc_number": "67045427794",
            	"doc_type": "CPF"
        	},
        	"email": "test_user_21963158@testuser.com",
        	"first_name": "Test",
        	"id": 160903317,
        	"last_name": "Test",
        	"nickname": "TETE2022123",
        	"phone": {
            	"area_code": "01",
            	"extension": null,
            	"number": "1111-1111"
        	}
    	},
    	"coupon": {
        	"amount": 0,
        	"id": null
        },
    	"currency_id": "BRL",
    	"date_closed": null,
    	"date_created": "2014-10-26T22:46:18.000-04:00",
    	"feedback": {
        	"purchase": null,
        	"sale": null
    	},
    	"id": 893431118,
    	"last_updated": "2014-10-26T22:50:10.000-04:00",
        "mediations": [],
    	"order_items": [
        	{
            	"currency_id": "BRL",
            	"item": {
                	"id": "MLB600034093",
                	"title": "Item De Testeo, Por Favor No Ofertar --kc:off",
                	"variation_attributes": [],
                	"variation_id": null
            	},
            	"quantity": 1,
            	"unit_price": 591
        	}
    	],
    	"paid_amount": 591,
    	"payments": [
        	{
            	"activation_uri": null,
            	"atm_transfer_reference": {
                	"company_id": null,
                    "transaction_id": null
            	},
                "available_actions": [],
            	"card_id": null,
            	"collector": {
                	"id": 169648308
            	},
            	"coupon_amount": 0,
            	"coupon_id": null,
            	"currency_id": "BRL",
            	"date_created": "2014-10-26T22:48:46.000-04:00",
                "date_last_modified": "2014-10-27T00:51:53.000-04:00",
            	"id": 885920310,
            	"installments": 1,
            	"issuer_id": "25",
            	"operation_type": "regular_payment",
            	"order_id": 893431118,
            	"overpaid_amount": 0,
            	"payer_id": 160903317,
                "payment_method_id": "visa",
            	"payment_type": "credit_card",
            	"reason": "Item De Testeo, Por Favor No Ofertar --kc:off",
            	"shipping_cost": 0,
            	"site_id": "MLB",
            	"status": "approved",
            	"status_code": null,
            	"status_detail": "accredited",
                "total_paid_amount": 296,
                "transaction_amount": 296
        	},
        	{
            	"activation_uri": null,
                "atm_transfer_reference": {
                	"company_id": null,
                    "transaction_id": null
            	},
                "available_actions": [],
            	"card_id": null,
            	"collector": {
                	"id": 169648308
            	},
            	"coupon_amount": 0,
            	"coupon_id": null,
            	"currency_id": "BRL",
    	        "date_created": "2014-10-26T22:50:10.000-04:00",
                "date_last_modified": "2014-10-26T22:50:21.000-04:00",
            	"id": 885920410,
            	"installments": 3,
            	"issuer_id": "25",
            	"operation_type": "regular_payment",
            	"order_id": 893431118,
            	"overpaid_amount": 0,
            	"payer_id": 160903317,
                "payment_method_id": "visa",
            	"payment_type": "credit_card",
            	"reason": "Item De Testeo, Por Favor No Ofertar --kc:off",
            	"shipping_cost": 0,
            	"site_id": "MLB",
            	"status": "approved",
            	"status_code": null,
            	"status_detail": "accredited",
                "total_paid_amount": 315.62,
                "transaction_amount": 295
        	}
    	],
    	"seller": {
        	"alternative_phone": {
            	"area_code": null,
            	"extension": null,
            	"number": ""
        	},
        	"email": "test_user_70385259@testuser.com",
        	"first_name": "Test",
      	  "id": 169648308,
        	"last_name": "Test",
        	"nickname": "TETE6072468",
        	"phone": {
            	"area_code": "01",
            	"extension": null,
            	"number": "1111-1111"
        	}
    	},
    	"shipping": {
        	"status": "to_be_agreed"
    	},
    	"status": "paid",
    	"status_detail": null,
    	"tags": [
        	"not_delivered",
        	"paid"
    	],
    	"total_amount": 591,
        "total_amount_with_shipping": 591
    }

    Como obter informação de um pagamento?

    Para obter informação do pagamento de um comprador utilizando o token, deverá utilizar o recurso “payments”.

    Exemplo:

    https://api.mercadolibre.com/payments?access_token=

    Como obter informação do pagamento como vendedor?

    Para obter informação do pagamento desde o rol vendedor, o recurso que deverá utilizar com o payment_id é “collections”.

    Exemplo:

    https://api.mercadolibre.com/collections/{collection_id}?access_token=

    Avanzado

    Notas de ordens

    Uma nota é uma anotação que os vendedores podem adicionar às ordens. As notas podem ter até 300 caracteres e, após terem sido publicadas, é possível alterá-las ou eliminá-las.

    Como adicionar uma nota a uma ordem

    curl -X POST -H "Content-Type: application/json" -d '{  	
       	"note": "test",
    }' https://api.mercadolibre.com/orders/{order_Id}/notes?access_token=$ACCESS_TOKEN

    Visualize notas de ordens

    curl -X GET https://api.mercadolibre.com/orders/{order_Id}/notes?access_token=$ACCESS_TOKEN

    Como alterar uma nota

    curl -X PUT -H "Content-Type: application/json" -d '{
       	"note": "test2",
    }' https://api.mercadolibre.com/orders/{order_Id}/notes/{note_Id}?access_token=$ACCESS_TOKEN

    Elimine notas

    curl -X DELETE https://api.mercadolibre.com/orders/{order_Id}/notes/{note_Id}?access_token=$ACCESS_TOKEN

    Bloquear ofertas

    Embora estejam disponíveis uma prestação e fluxos de prevenção de fraude para manter a segurança de compradores e vendedores, em alguns casos, você pode encontrar usuários que, por algum motivo, ofertam nos anúncios. Estes casos podem ser enviados para a lista negra, a fim de evitar que voltem a ofertar.

    Como bloqueio ofertas de um usuário específico?

    Faça uma solicitação POST com o cust_id do usuário que você quer bloquear no JSON e o seu na url, como no exemplo a seguir:

    curl -X POST -H "Content-Type: application/json" -d
    { user_id: {cust_id} }
    https://api.mercadolibre.com/users/{cust_Id}/order_blacklist?access_token=$ACCESS_TOKEN

    Consulte sua lista negra

    Se você quiser saber quais são os usuários de sua lista negra, faça uma solicitação GET para a API com seu cust_id na url:

    curl -X GET https://api.mercadolibre.com/users/{cust_id}/order_blacklist?access_token=$ACCESS_TOKEN

    Elimine um usuário de sua lista negra

    Se você não quer continuar bloqueando um usuário para ele fazer ofertas, pode eliminá-lo de sua lista negra realizando uma solicitação DELETE para a API com seu cust_id e o cust_id do usuário.

    curl -X DELETE https://api.mercadolibre.com/users/{your_cust_id}/order_blacklist/{cust_id}

    Referência de códigos de erro

    Error_code Mensagem de erro Descrição Possível solução
    order_not_found Pedido não encontrado. $order_id incorreto. O pedido não foi encontrado; verifique se o order_id é o correto.
    empty_order_id O ID do pedido deve ser preenchido, ele não pode ficar incompleto. $order_id nulo. O parâmetro order_id não pode ser nulo; consulte a URL utilizada.
    invalid_order_id ID do pedido inválido. $order_id incorreto. O parâmetro order_id deve ser um número inteiro. (Para buscar seus pedidos, consulte esse assunto)
    not_identified_user Usuário não identificado Usuário não identificado. Enviar seu token.
    not_owned_order O usuário não pode acessar ao pedido. $seller ou $buyer incorreto. Para visualizar um pedido, seu token de acesso deve ser gerado a partir do vendedor ou do comprador.
    caller.id.invalid O caller_id não corresponde ao do comprador nem ao do vendedor. $seller ou $buyer incorreto. Para visualizar um pedido, você deve utilizar um ID de vendedor ou comprador.
    feedback_not_found O feedback não existe. Erro de resposta. Verifique se existe feeedback para dar uma resposta.
    invalid_fulfilled O parâmetro “concluído”deve ser verdadeiro ou falso. Erro ao enviar feedback. Consulte o parâmetro $fulfilled; ele deve ser booleano (elimine as aspas) e verifique se o parâmetro $reason não é nulo, em caso de $fulfilled: falso.
    reply_time_expired Tempo de resposta expirado. Há um período de 14 dias para responder ao feedback. Erro ao dar resposta sobre o feedback. A resposta pode ser enviada durante os 14 dias posteriores à data do feedback.
    reply_already_exists Já existe resposta para o feedback. Erro ao dar resposta sobre o feedback. O feedback só aceita uma resposta.



    Próximo:
    API do sistema de mensagens.

    Please rate this

Identificadores de produtos

Os identificadores são códigos que servem para localizar um produto univocamente.

Conteúdo:

O que é GTIN?

GTIN (Global Trade Item Number) é o número mundial de um artigo comercial, utilizado para identificar de maneira única qualquer produto ou item sobre o qual exista uma necessidade de obter informações específicas e deva ser atribuído um preço.
É um padrão que abarca os códigos: EAN, UPC, JAN, ISBN13.

Quem pode nos enviar essas informações?

Mediante recursos via API, todos os vendedores da Argentina, Brasil, Chile, Colômbia, México e Uruguai podem enviar os identificadores de produtos como atributos em suas publicações.

Importante: Serão destacadas as publicações dos vendedores que enviem essas informações corretamente.

Por sua vez, os vendedores do Brasil e do México que possuam um alto nível de reputação e enviem os identificadores de produto terão possibilidades de serem escolhidos para mostrarem seus artigos no catálogo do Google Shopping.

Como posso distingui-los do resto dos atributos?

São aqueles que têm como “type”: “product_identifier” e você poderá encontrá-los na seção de atributos do item ou de cada variação.

Benefícios

  • Benefício no futuro: Categorizar o item automaticamente.
  • Benefício no futuro: Completar os atributos dos itens e mostrá-los numa ficha técnica na VIP.
  • Boost em Search, suas publicações mais acima se você carregar o código identificador de seu produto.

Como devem ser enviadas as informações dos identificadores de produtos?

Podem ser realizadas da mesma forma em que são postados os atributos independente da categoria.
Observação: Caso o item tenha variações, você poderá especificar um identificador de produto para cada uma delas, em sua seção de atributos identificadores de produtos.

Exemplo do item sem variações

curl -X POST -d '{
    "listing_type_id":"gold_special",
    "pictures":[ { "id":"553111-MLA20482692355_112015" } ],
    "title":"Item de testeo -- no ofertar --kc:off",
    "available_quantity":4,
    "buying_mode":"buy_it_now",
    "currency_id":"ARS",
    "condition":"not_specified",
    "category_id":"MLA377600",
    "site_id":"MLA",
    "price":100,
    "attributes": [
        { "id": "CARRIER", "value_id": "298335", "value_name":"Desbloqueado" },
        { "id": "EAN", "value_name": "9780471117094" }
    ]
}' 'https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN'

Exemplo do item com variações

curl -X POST -d '{
    "listing_type_id":"gold_special",
    "pictures":[ { "id":"553111-MLA20482692355_112015" } ],
    "title":"Item de testeo -- no ofertar --kc:off",
    "available_quantity":4,
    "buying_mode":"buy_it_now",
    "currency_id":"ARS",
    "condition":"not_specified",
    "category_id":"MLA377600",
    "site_id":"MLA",
    "price":100,
    "variations": [
        { "picture_ids": [ "553111-MLA20482692355_112015" ], "available_quantity": 2, "price": 100, "attribute_combinations": [ { "id": "COLOR", "value_id": "52049" } ], "attributes": [ { "id": "EAN", "value_name": "4006381333931" } ] },
        { "picture_ids": [ "553111-MLA20482692355_112015" ], "available_quantity": 2, "price": 100, "attribute_combinations": [ { "id": "COLOR", "value_id": "52055" } ], "attributes": [ { "id": "EAN", "value_name": "9780471117094" } ] }
    ]
}
' 'https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN'

Como acrescentar as informações num item já existente?

Exemplo de modificações do item

Deverão se enviar todos os atributos existentes do ítem incluindo o código de indentificadores de produto.

Sem variações

curl -X PUT -d '''{
  "attributes": [
        {
          "id": "EAN",
          "value_name": "9780471117094"
        },
{
          "id": "BRAND",
          "value_name": "Philips"
        }
      ]
}''' 'https://api.mercadolibre.com/items/MLA642016284'

Com variações
Caso o item tenha variações, de enviar o PUT anterior, sendo os product identifiers variation_attributes, o atributo será replicado para todas as variações. Caso deseje especificar um product identifier diferente para cada variação, veja o seguinte exemplo:

curl -X PUT -d '{"attributes": [{ "id": "EAN", "value_name": "9780471117094" }]}' https://api.mercadolibre.com/items/{Item_Id}/variations/{Variations_Id}?access_token=$ACCESS_TOKEN

Da mesma maneira em que são modificados qualquer atributo numa variação, para modificá-los deve ser especificada a relação de variações que deseja manter no item (indicando seu id de variação), e acrescentando a relação de atributos que deseja manter em cada uma das variações.

curl -X PUT -d '{
  "variations": [{
    "id": 847326284,
    "attributes": [{
      "id": "EAN",
      "value_name": "9780471117094"
    }]
  }, {
    "id": 847326282,
    "attributes": [{
      "id": "GRILL",
      "value_name": "No"
    }]
  }]
}' 'https://api.mercadolibre.com/items/MLA642016284'

Convidamos você para assistir o seguinte vídeo tutorial que explicará detalhadamente como realizar as ações comentadas.

Como consultar as informações sobre os identificadores de seus produtos?

Para obter esses dados, você deverá fazer um GET na API:
Chamada:

curl -X GET https://api.mercadolibre.com/items/MLB558871250?include_attributes=all

Observação: Lembre-se que caso torne a publicar seu artigo, o identificador de produto que você enviou para a publicação original será mantido automaticamente.

Considerações

  • Não são SKU internos.
  • A quantidade de caracteres varia de acordo com o tipo de código: existem de 8, 10, 12, 13 ou 14 caracteres. Inclusive um mesmo código pode ser escrito novamente, sendo completado com zeros no começo, e ser igualmente válido.
  • São validados os GTIN enviados e, caso não sejam válidos, não serão considerados pela API.
  • Você pode enviar mais de um código identificador para um mesmo produto. Por exemplo, EAN e UPC.
  • Recomenda-se incluir a marca e, pelo menos, um dos outros identificadores. Essas são condições necessárias para poder participar em programas de publicações de produtos de terceiros, como o Google Shopping.
  • Se você deseja renunciar ao benefício, envie um e-mail aos seguintes endereços:
    Vendedores brasileiros: gps-optout@mercadolivre.com.br
    Vendedores hispanos: gps-optout@mercadolibre.com
    Assunto: cancelar assinatura {SellerId}
    Mensagem: (opcional). Motivo pelo qual renuncia ao benefício.
    Lembre-se que, caso renuncie ao benefício, nenhum de seus produtos será mostrado no Google Shopping.

Descrição de identificadores de recurso

BRAND: Marca
MPN: Número de Parte do Fabricante.
GTIN: Número Mundial do Artigo Comercial [Global Trade Item Number] para o Artigo.
ISBN: International Standard Book Number. É um identificador único para livros, previsto para uso comercial.

Existem dois tipos:

ISBN-10
É um código de 10 caracteres, em que os primeiros 9 sempre são dígitos, porém o último pode ser um dígito ou uma letra ‘X’. Esta versão do código NÃO é compatível com o padrão GTIN, porém pode ser fornecido para os itens que assim sejam requeridos.
ISBN-13
É um código numérico de 13 caracteres, contemplado no padrão GTIN.

EAN: European Article Number (agora, modificado para International Article Number). É um sistema de código de barras adotado em mais de 100 países.

UPC: Universal Product Code. Sistema de código de barras usado normalmente nos Estados Unidos e Canadá.
upc

JAN: Japanese Article Number. É o sistema de códigos de identificação de produtos utilizado no Japão. É compatível com o comprimento e as validações dos códigos EAN-13.

Part Number

Denomina-se Part Number os códigos que servem para localizar univocamente uma peça automotiva, definindo as compatibilidades da peça, entre outras coisas.
Com base num determinado número de parte, podemos saber para que tipo de automóvel corresponde a peça.

Benefícios

  • A relação das pessoas que o carreguem será indexada pelo widget de autopeças.
  • Será alcançado um método de pesquisa mais acertado.

ejemplo-partnumber
Próximo:
Variações.

Please rate this

Atributos e variações

Convidamos você a conhecer todas as opções disponíveis na hora de publicar um item para melhorar a ficha técnica e a descrição de cada um deles.
Consulte a seguinte documentação para saber como utilizá-las:

Atributos

Acesse aqui para conhecer como representar características.

Identificadores de produtos

Se você quiser adicionar códigos para unificar inequivocamente um produto, no seguinte guia ensinamos como fazê-lo.

Variações

Por último, se você precisar contar numa mesma publicação quais são as variantes que um item tem, aqui explicamos como fazê-lo.

Please rate this

Envio personalizado

Quando o comprador escolhe as preferências do envio e preenche o endereço de entrega, é criado um envio que é associado à ordem.

Quando o envio for criado, um novo feed de order e, posteriormente será informado o estado do pacote até que ele seja entregue.

Assuntos

Acesse os detalhes de envio

É possível poder encontrar algumas informações básicas sobre os envios no pedido, mas é melhor você trabalhar com o recurso de envios para obter todos os detalhes. Para isso, você deverá saber o shipment_id.

Não sei o shipment_id

Você pode encontrá-lo no pedido, nas informações básicas.

Exemplo:

curl -X GET https://api.mercadolibre.com/orders/:order_id?access_token=

Resposta:

{
  "id": 123456789,
  "status": "paid",
  "status_detail": null,
  "date_created": "2012-12-18T09:35:07.000-04:00",
  "date_closed": "2012-12-18T09:35:07.000-04:00",
  "order_items":  [
 	{
  	"item":  {
    	"id": "MLB446311775",
    	"title": "Capa Couro Flip Original Samsung Galaxy S3 Siii  Branca",
    	"variation_id": null,
    	"variation_attributes": [
    	],
  	},
  	"quantity": 1,
  	"unit_price": 99.98,
  	"currency_id": "BRL",
	},
  ],
  "total_amount": 99.98,
  "currency_id": "BRL",
  "buyer":  {
	"id": "123456565",
	"nickname": "BUYER NICKNAME",
	"email": "email@buyer.com",
	"phone":  {
  	"area_code": "11",
  	"number": "55565656",
  	"extension": null,
	},
	"first_name": "Name",
	"last_name": "Last Name",
	"billing_info": - {
  	"doc_type": "CPF",
  	"doc_number": "123456789",
	},
  },
  "seller":  {
	"id": "123456",
	"nickname": "SELLER NICKNAME",
	"email": "email@seller.com",
	"phone": - {
  	"area_code": null,
  	"number": "011 4444 1234",
  	"extension": null,
	},
	"first_name": "Name.",
	"last_name": "Last Name LTDA.",
  },
  "payments":  [
	- {
  	"id": "459656119",
  	"transaction_amount": 99.98,
  	"currency_id": "BRL",
  	"status": "approved",
  	"date_created": null,
  	"date_last_modified": null,
	},
  ],
  "feedback":  {
	"purchase": null,
	"sale": null,
  },
  "shipping":  {
	"id": 20176304039,
	"status": "pending",
	"date_created": "2012-12-18T09:37:35.000-04:00",
	"receiver_address":  {
  	"id": 123456789,
  	"address_line": "Rua Júlio Sérgio de Castro 262 0  ",
  	"zip_code": "223232",
  	"city": - {
    	"id": "BR-SP-44",
    	"name": "São Paulo",
  	},
  	"state":  {
    	"id": "BR-SP",
    	"name": "São Paulo",
  	},
  	"country": - {
    	"id": "BR",
    	"name": "Brasil",
  	},
  	"latitude": null,
  	"longitude": null,
  	"comment": null,
	},
	"currency_id": "BRL",
	"cost": 5.9,
  },
  "tags":  [
	"paid",
	"not_delivered",
  ],
}

Para obter todos os detalhes de um pedido (status, data de criação, opções de envio, como velocidade do frete, e muito mais) faça uma chamada combinada entre pedidos e envios como o exemplo abaixo:

https://api.mercadolibre.com/orders/:order_id/shipments?access_token=

Eu já sei o shipment_id

Caso você já tenha o id, faça uma chamada aos recursos de envio:

curl -X GET https://api.mercadolibre.com/shipments/:shipment_id?access_token=

Exemplo:

{
  "id": 12345678,
  "status": "active",
  "status_history":  {
	"date_shipped": null,
	"date_delivered": null,
  },
  "date_created": "2011-09-07T13:29:42.000-04:00",
  "last_updated": "2011-09-07T13:30:29.000-04:00",
  "tracking_number": null,
  "tracking_method_id":182,
  "tracking_method": null,
  "sender_id": "99580221",
  "receiver_id": "8408542",
  "sender_address":  {
	"id": "53742741",
	"address_line": "Rua X",
	"comment": null,
	"zip_code": "01154020",
	"city":  {
  	"id": "null",
  	"name": "Sao Paulo",
	},
	"state":  {
  	"id": "BR-SP",
  	"name": "Sao Paulo",
	},
    "country":  {
  	"id": "BR",
  	"name": "Brasil",
	},
	"types":  [
      "default_selling_address",
	],
	"latitude": null,
	"longitude": null,
  },
  "receiver_address":  {
	"id": "12181995",
	"address_line": "Estrada Geral Cachoeira de Fátima 77777",
	"comment": null,
	"zip_code": "88990000",
	"city":  {
  	"id": "null",
  	"name": "Praia Grande",
	},
	"state":  {
  	"id": "BR-SC",
  	"name": "Santa Catarina",
	},
	"country":  {
  	"id": "BR",
  	"name": "Brasil",
	},
	"types":  [
  	"default_buying_address",
	],
	"latitude": null,
	"longitude": null,
  },
  "shipping_items":  [
 	{
  	"id": "MLB402220356",
  	"description": "Celular Apple Iphone 4 16gb Libre De Fábrica ",
  	"quantity": 49,
  	"dimensions": “15x15x25,500”,
	},
  ],
  "shipping_option":  {
	"id": 18309457,
	"name": "Express",
	"currency_id": "BRL",
	"cost": 1,
	"speed":{
  	"shipping": 48,
  	"handling": 24
	},
  "comments": "other info shipping",
  }

Ofereça envio personalizado para seus produtos

Tudo que você precisa fazer é enviar uma solicitação POST com o JSON à API do produto. O JSON deverá incluir os “custos” do tipo de envio personalizado junto com a descrição dos parâmetros e o custo especificado.

curl -X POST -H "Content-Type: application/json" -d
JSON
{
	"title": "Anteojos Ray Ban Wayfare",
	"category_id": "MLA3636",
	"price": 10,
	"currency_id": "ARS",
	"available_quantity": 1,
	"buying_mode": "buy_it_now",
	"listing_type_id": "bronze",
	"condition": "new",
	"description": "Item:,  Ray-Ban WAYFARER Gloss Black RB2140 901  Model: RB2140. Size: 50mm. Name:	WAYFARER. Color: Gloss Black. Includes Ray-Ban Carrying Case and Cleaning Cloth. New in Box",
	"video_id": "YOUTUBE_ID_HERE",
	"warranty": "12 months by Ray Ban",
	"pictures": [
    	{
        	"source": "http://upload.wikimedia.org/wikipedia/commons/f/fd/Ray_Ban_Original_Wayfarer.jpg"
    	}
	],
	"shipping": {
    	"mode": "custom",
    	"local_pick_up": false,
    	"free_shipping": false,
    	"methods": [],
    	"costs": [
        	{
            	"description": "TEST1",
            	"cost": "70"
        	},
  	      {
            	"description": "TEST2 ",
            	"cost": "80"
        	}
    	]
	}
}
https://api.mercadolibre.com/items?access_token=$ACCESS_TOKEN

Uma vez criado um ítem com envio custom e configurada a tabela de custos poderá ver-se em shipping options.
Chamada:

https://api.mercadolibre.com/items/item_id/shipping_options

NOTA: Nos países onde o modo Mercado Envios está ativo, somente poderá adicionar envíos custom gratis em categorías que não aceitem ME.

Adicione um número de rastreamento

Você também pode adicionar o modo envio personalizado a um produto que tem método de envio not_specified.
É muito simples. Faça uma solicitação PUT para a API do item, incluindo o Item_ID e envie um JSON semelhante ao que segue.

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d
JSON
{
"shipping": {
	"mode": "custom",
	"methods": [],
	"costs": [
    	{
        	"description": "TEST1",
        	"cost": "70"
    	},
    	{
        	"description": "TEST2 ",
        	"cost": "80"
	    }
	]
}
}

https://api.mercadolibre.com/items/{item_id}?access_token=$ACCESS_TOKEN

Este modo também aceita um tracking_number, mas o Mercado Livre não faz o monitoramento do código.

Adicione um número de rastreamento personalizado

Antes de incluir o número de rastreamento, você deve saber o shipiment_id. Você pode localizá-lo fazendo uma chamada ao recurso de pedidos, como é indicado a seguir:

curl curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d‘{
  "tracking_number": "TR1234567891",
  "status": "shipped"
}’ https://api.mercadolibre.com/shipments/:shipment_id?access_token=

Considerações

Entrega de produto (só disponível para o México, o Brasil e a Argentina)

Com esse recurso, você pode informar os compradores sobre o status de entrega dos seus produtos quando eles não utilizarem Mercado Envio.
Comece a utilizá-lo levando em conta os seguintes cenários:

Cenário 1

Quando a ordem tem um Custom Shipping criado e seu status é “pending”:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
    "speed"= 120,
    "status"="shipped",
    "tracking_number"=000000001234,
    "receiver_id"=12345678
}
https://api.mercadolibre.com/shipments/{shipping_id}?access_token=$ACCESS_TOKEN

Esclarecimentos:

  • O campo speed representa a distância em horas que a entrega do produto vai demorar.
  • A data prometida de entrega será igual à quantidade de horas especificadas no campo “speed”, contadas a partir do dia em que o valor for informado.
  • O campo tracking_number é requerido para a API, mas não será em nenhuma lista e/ou detalhamento de venda.

Cenário 2

Quando a ordem tem um Custom Shipping criado e seu status é “shipped”:

curl -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
    "speed"= 120,
    "receiver_id"=12345678
}
https://api.mercadolibre.com/shipments/{shipping_id}?access_token=$ACCESS_TOKEN

Esclarecimento:

  • Neste caso, só será atualizada a promessa de entrega, portanto, a API não pedirá um tracking_number.

Cenário 3

Quando a ordem não tem shipping:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
  "status": "shipped",
  "receiver_id": 12345678,
  "shipping_option": {
      "currency_id": "MXN",
      "cost": 0,
      "speed": 120
  }
}
https://api.mercadolibre.com/orders/{order_id}/shipments?access_token=$ACCESS_TOKEN

Esclarecimento:

  • O campo speed deve estar dentro da seção “shipping_options”. Mesmo assim, deve ser especificado um custo no momento de criar o shipping.

Cenário 4

Caso seja necessário informar que o item já foi entregue:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
  "fulfilled": true,
  "rating": positive
}
https://api.mercadolibre.com/orders/{orderId}/feedback?access_token=$ACCESS_TOKEN

Cenário 5

Caso seja necessário cancelar uma venda:

curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d 
JSON
{
  "fulfilled": false,
  "rating": neutral
}
https://api.mercadolibre.com/orders/{orderId}/feedback?access_token=$ACCESS_TOKEN

Esclarecimento:

  • Ao cancelar a venda mediante feedback, os pagamentos serão devolvidos ao comprador

Please rate this

Recurso Visits

Esta API recupera informações sobre visitantes nas VIPs (Página Visualização de Produtos) dos produtos do Mercado Livre.
Você pode consultar dados por janelas de tempo e sites. Lembre-se de que, ao publicar novamente, o histórico de visitantes é herdado do parent_item, não importando quantas vezes o anúncio seja publicado novamente.

Assuntos

Descrição de parâmetros

Tipo Parâmetro Descrição
Integer User_id ID do usuário.
String Item_id ID do produto.
Date Date_from Data, em formato ISO, que define o início da consulta.
Date Date_to Data, em formato ISO, que define o final da consulta.
Data Ending Opcional. Data, em formato ISO, que estabelece o tempo de finalização da amostra; por padrão devem ser colocadas data e hora atuais.
String Unit Unidade de consulta, valores possíveis: [“day”].
Integer Last Opcional. Denota quantos dias antes a amostra abrangerá.
Integer total_visits Total de visitantes de um produto.
Array visits_detail Detalhamento dos visitantes por país e site.
Array results Detalhamento dos visitantes por intervalos de tempo. A unidade do parâmetro define a duração.

Total de visitas por usuário

Recuperação do total das visitas realizadas por um usuário para cada produto, por site e entre faixas de datas. Isso também é aplicado para visitas a outros sites do Mercado Livre, como TuCarro, TuInmueble, Autoplaza, etc.
Recurso:

https://api.mercadolibre.com/users/{User_id}/items_visits?date_from={Date_from}&date_to={Date_to}

Exemplo:

curl -X GET ‘https://api.mercadolibre.com/users/52366166/items_visits?date_from=2014-06-01T00:00:00.000-00:00&date_to=2014-06-10T00:00:00.000-00:00’

Resposta:

{
  "user_id": 52366166,
  "date_from": "2014-06-01T00:00:00.000-00:00",
  "date_to": "2014-06-10T00:00:00.000-00:00",
  "total_visits": 120,
  "visits_detail": [
     {
      "company": "mercadolibre",
      "quantity": 59,
    },
   {
      "company": "tuinmueble",
      "quantity": 61,
    },
  ],
}

Total de visitas por produto

Recuperação do total das visitas de um produto entre faixas de data e por site.

Recurso:

https://api.mercadolibre.com/items/{Items_id}/visits?date_from={Date_from}&date_to={Date_to}

Exemplo:

curl -X GET ‘https://api.mercadolibre.com/items/MCO496961166/visits?date_from=2014-04-14T00:00:00.000-03:00&date_to=2014-05-30T23:59:59.999-03:00’

Resposta:

{
  "item_id": "MCO496961166",
  "date_from": "2014-04-14T00:00:00.000-03:00",
  "date_to": "2014-05-30T23:59:59.999-03:00",
  "total_visits": 152,
  "visits_detail":  [
     {
      "company": "mercadolibre",
      "quantity": 70,
    },
 {
      "company": "tucarro",
      "quantity": 82,
    },
  ],
}

Total de visitas por produto MULTIGET

Recuperação do total das visitas segundo um conjunto de produtos ligados em uma faixa de datas, por site.
Recurso:

https://api.mercadolibre.com/items/visits?ids={Id1, Id2}date_from={Date_from}&date_to={Date_to}

Exemplo:

curl -X GET ‘https://api.mercadolibre.com/items/visits?ids=MLA506635149,MLA506634973,MLA503004418&date_from=2014-06-01T00:00:00.000-00:00&date_to=2014-06-10T00:00:00.000-00:00’

Resposta:

[
 {
    "item_id": "MLA506635149",
    "date_from": "2014-06-01T00:00:00.000-00:00",
    "date_to": "2014-06-10T00:00:00.000-00:00",
    "total_visits": 134,
    "visits_detail":  [
       {
        "company": "mercadolibre",
        "quantity": 134,
      },
    ],
  },
   {
    "item_id": "MLA506634973",
    "date_from": "2014-06-01T00:00:00.000-00:00",
    "date_to": "2014-06-10T00:00:00.000-00:00",
    "total_visits": 122,
    "visits_detail": [
       {
        "company": "mercadolibre",
        "quantity": 122,
      },
    ],
  },
   {
    "item_id": "MLA503004418",
    "date_from": "2014-06-01T00:00:00.000-00:00",
    "date_to": "2014-06-10T00:00:00.000-00:00",
    "total_visits": 355,
    "visits_detail": [
       {
        "company": "mercadolibre",
        "quantity": 355,
      },
    ],
  },
]

Visitantes por data por usuário

Recuperação dos visitantes de cada produto de um usuário em uma determinada janela de tempo, por site. Detalhamento das informações por intervalos de tempo.
Recurso:

https://api.mercadolibre.com/users/{User_id}/items_visits/time_window?last={Last}&unit={Unit}&ending={Ending}

Exemplo:

curl -X GET ‘https://api.mercadolibre.com/users/52366166/items_visits/time_window?last=2&unit=day’

Resposta:

{
  "user_id": 52366166,
  "total_visits": 2083,
  "date_from": "2014-06-10T04:00:00Z",
  "date_to": "2014-06-12T04:00:00Z",
  "last": 2,
  "unit": "day",
  "results": [
     {
      "date": "2014-06-10T04:00:00Z",
      "total": 1637,
      "visits_detail": [
         {
          "company": "mercadolibre",
          "quantity": 1637,
        },
      ],
    },
     {
      "date": "2014-06-11T04:00:00Z",
      "total": 446,
      "visits_detail": [
        {
          "company": "mercadolibre",
          "quantity": 446,
        },
      ],
    },
  ],
}

Visitantes por data por produto

Recuperação dos visitantes de cada produto em uma determinada janela de tempo, por site. Detalhamento das informações por intervalos de tempo.

Recurso:

https://api.mercadolibre.com/users/{Item_id}/visits/time_window?last={Last}&unit={Unit}&ending={Ending}

Exemplo:

curl -X GET ‘https://api.mercadolibre.com/items/MLA506635149/visits/time_window?last=2&unit=day&ending=2014-06-11’

Resposta:

{
  "item_id": "MLA506635149",
  "total_visits": 15,
  "date_from": "2014-06-09T04:00:00Z",
  "date_to": "2014-06-11T04:00:00Z",
  "last": 2,
  "unit": "day",
  "results": [
     {
      "date": "2014-06-09T04:00:00Z",
      "total": 10,
      "visits_detail": - [
         {
          "company": "mercadolibre",
          "quantity": 10,
        },
      ],
    },
     {
      "date": "2014-06-10T04:00:00ZZ",
      "total": 5,
      "visits_detail": - [
         {
          "company": "mercadolibre",
          "quantity": 5,
        },
      ],
    },
  ],
}

Visitantes por data por produto MULTIGET

Recuperação das visitas segundo um conjunto de produtos (máximo de 50), por site. Detalhamento das informações por intervalos de tempo.
Recurso:

https://api.mercadolibre.com/items/visits/time_window?ids={Id1, Id2}last={Last}&unit={Unit}&ending={Ending}

Exemplo:

curl -X GET ‘https://api.mercadolibre.com/items/visits/time_window?ids=MLA506635149,MLA506634973,MLA503004418&last=3&unit=day‘

Resposta:

[
 {
 "item_id": "MLA506635149",
 "total_visits": 0,
 "date_from": "2015-08-30T04:00:00Z",
 "date_to": "2015-09-02T04:00:00Z",
 "last": 3,
 "unit": "day",
 "results": [
 {
 "date": "2015-08-30T04:00:00Z",
 "total": 0,
 "visits_detail": []
 },
 {
 "date": "2015-08-31T04:00:00Z",
 "total": 0,
 "visits_detail": []
 },
 {
 "date": "2015-09-01T04:00:00Z",
 "total": 0,
 "visits_detail": []
 }
 ]
 },
 {
 "item_id": "MLA506634973",
 "total_visits": 0,
 "date_from": "2015-08-30T04:00:00Z",
 "date_to": "2015-09-02T04:00:00Z",
 "last": 3,
 "unit": "day",
 "results": [
 {
 "date": "2015-08-30T04:00:00Z",
 "total": 0,
 "visits_detail": []
 },
 {
 "date": "2015-08-31T04:00:00Z",
 "total": 0,
 "visits_detail": []
 },
 {
 "date": "2015-09-01T04:00:00Z",
 "total": 0,
 "visits_detail": []
 }
 ]
 },
 {
 "item_id": "MLA503004418",
 "total_visits": 169,
 "date_from": "2015-08-30T04:00:00Z",
 "date_to": "2015-09-02T04:00:00Z",
 "last": 3,
 "unit": "day",
 "results": [
 {
 "date": "2015-08-30T04:00:00Z",
 "total": 42,
 "visits_detail": [
 {
 "company": "mercadolibre",
 "quantity": 42
 }
 ]
 },
 {
 "date": "2015-08-31T04:00:00Z",
 "total": 38,
 "visits_detail": [
 {
 "company": "mercadolibre",
 "quantity": 38
 }
 ]
 },
 {
 "date": "2015-09-01T04:00:00Z",
 "total": 89,
 "visits_detail": [
 {
 "company": "mercadolibre",
 "quantity": 89
 }
 ]
 }
 ]
 }
]

Se precisar de mais informações sobre como publicar novamente, consulte o tutorial Publicar seus anúncios novamente.

Please rate this