• 0
mldev

o que VOCÊ gostaria na API do MercadoLivre?

Question

o que vocês mais sentem falta na API do MercadoLivre? deixem seus comentários... vamos discutir sobre as funcionalidades desejáveis

Share this post


Link to post
Share on other sites

32 answers to this question

  • 1
1 hour ago, Wesley Nascimento said:

1 - Exato. Adicionamos apenas as informações mais relevantes de cada sistema nas orders.

3 - Entendo a sua sugestão e tentarei te explicar detalhes do porque não é tão simples de realizar:

  • O sistema de notificações é totalmente independente de cada uma das API's que recebem a chamada.
  • Imagine que em um PUT você alterou 5,6...N dados de uma publicação, imagina o tamanho da mensagem de notificação que enviaríamos.

De qualquer forma isso é um assunto que sempre discutimos internamente.

Abraços.

Aproveitando a conversa:

 

1 - Ao consultar Pedidos, temos os pagamentos, porém não tem as tarifas cobradas pelo ML/MP, então exige fazer uma nova consulta para obter estes dados. Temos feedback, mas não tem o texto da qualificação, então temos que fazer duas novas buscas em feedback, uma para o de compra e outra para o de venda. Temos o shipping, mas não tem o tracking_number nem o tracking_method, o que exige uma nova consulta em Shipments. Além disso o status do shipping em order às vezes está diferente de quando faz a consulta direto no shipments. Uma sugestão seria um flag para indicar se quer dados completos (mensagem de qualificação, código de rastreio, tarifas, etc) ou mais simplificados.

3 - Acredito que uma opção seria ter mais opções de notificação. Por exemplo, se altera algo apenas no shipment, poderia ter uma notificação específica para isso, mas vem uma notificação de order e na order em si não alterou nada, então temos que buscar todos os dados (orders, feedback, payments, shipments) e atualizar todos os dados sempre e comparar várias coisas para saber o que foi alterado e tomar alguma ação. Além disso um problema recorrente é virem notificações replicadas. O usuário imprimiu a etiqueta do ME por exemplo e vem 3 notificações da mesma order praticamente no mesmo milisegundo. Dá a impressão que existe algum trigger por campo ou entidade e que cada campo ou entidade alterado dispara uma notifcação.

Wesley Nascimento likes this

Share this post


Link to post
Share on other sites
  • 1
1 hour ago, mldev said:

ao meu ver:

1. essa questão acho que nunca vai ser boa para todos, para uns menos info é melhor, para outros o contrário, então acredito que nunca vai agradar a todos...rsrs :D

Um detalhe é que pode-se reduzir os atributos no get usando o parâmetro attributes, porém não dá para aumentar, então acho que seria melhor a API disponibilizar todos os dados do recurso. Se quem está consumindo não precisar de tudo e quiser reduzir tráfego é só pedir só os dados que quer.

Share this post


Link to post
Share on other sites
  • 0

Bem... algumas eu já havia apontado:

- consulta em /orders/XXXXXXX  retornando tudo

- inserir o rastreamento quando com envio próprio

- carrinho de compras (mas este está no forno)

- correção do termo cliente_id para application_id , não é funcionalidade, mas ajudaria os novatos :)

- variação de preço nas variações

- retorno de mensagens não lidas

- ter o motivo do envio das/nas notificações

- dump de categorias com poucos dados, em formato CSV

 

 

se eu lembrar de mais coisas eu edito o POST :)

Edited by rodrigojob
Leandro Bertalot and mldev like this

Share this post


Link to post
Share on other sites
  • 0

Existe alguma maneira de adicionar vários produtos com uma só requisição? Ou mesmo atualizar preços em massa.
Temos 10 mil produtos anunciados e cada atualização demora muito tempo, além de bombardear a API com requisições.

Obrigado.

Share this post


Link to post
Share on other sites
  • 0

Ter todos os dados em um Get só para não ter de ficar fazendo "n" gets;

Poder colocar o código de rastreio quando o frete é a combinar;

Notificações mais auto explicáveis, ou seja, que dizem o que são.

Share this post


Link to post
Share on other sites
  • 0
14 hours ago, thalesac said:

Existe alguma maneira de adicionar vários produtos com uma só requisição? Ou mesmo atualizar preços em massa.
Temos 10 mil produtos anunciados e cada atualização demora muito tempo, além de bombardear a API com requisições.

Obrigado.

Não existe uma maneira de fazer isso de forma "massiva" via API, porém, você pode fazer chamadas as API de forma assíncrona. Não se preocupe em bombardear a nossa API :D

 

14 hours ago, laser2 said:

1 - Ter todos os dados em um Get só para não ter de ficar fazendo "n" gets;

2 - Poder colocar o código de rastreio quando o frete é a combinar;

3 - Notificações mais auto explicáveis, ou seja, que dizem o que são.

1 - Quais dados estão faltando no GET?

2 - Isso é proposital, não queremos incentivar esse modo de envio. Utilize o Mercado Envios ;)

3 - O que você entende por uma notificação mais explicativas?

Share this post


Link to post
Share on other sites
  • 0

Vamos lá:

 

1 - Quais dados estão faltando no GET?

Apenas um dos exemplos que podem ser dados:

Consulto uma Order e não vem todos os dados do payments, shipping, etc, etc.

2 - Isso é proposital, não queremos incentivar esse modo de envio. Utilize o Mercado Envios ;)

Entendo, mas continuo achando que é necessário.

3 - O que você entende por uma notificação mais explicativas?

Que seja menos genérica e traga a descrição ao que se referem de fato, pois um: /orders/9999999 pode ser "n" coisas. (só um exemplo)

Share this post


Link to post
Share on other sites
  • 0
11 minutes ago, laser2 said:

Vamos lá:

 

1 - Quais dados estão faltando no GET?

Apenas um dos exemplos que podem ser dados:

Consulto uma Order e não vem todos os dados do payments, shipping, etc, etc.

2 - Isso é proposital, não queremos incentivar esse modo de envio. Utilize o Mercado Envios ;)

Entendo, mas continuo achando que é necessário.

3 - O que você entende por uma notificação mais explicativas?

Que seja menos genérica e traga a descrição ao que se referem de fato, pois um: /orders/9999999 pode ser "n" coisas. (só um exemplo)

1 - Exato. Adicionamos apenas as informações mais relevantes de cada sistema nas orders.

3 - Entendo a sua sugestão e tentarei te explicar detalhes do porque não é tão simples de realizar:

  • O sistema de notificações é totalmente independente de cada uma das API's que recebem a chamada.
  • Imagine que em um PUT você alterou 5,6...N dados de uma publicação, imagina o tamanho da mensagem de notificação que enviaríamos.

De qualquer forma isso é um assunto que sempre discutimos internamente.

Abraços.

Share this post


Link to post
Share on other sites
  • 0

O grande problema é que temos de fazer "n" gets para obter os dados necessários e isto além de tornar o processo moroso gera um tráfego imenso. 

Sinceramente eu não acho que um campo na notificação citando: "Entrada de dinheiro", "Feedback", "despacho", etc, etc, seria algo complexo, no seu exemplo seriam "n" notificações e cada uma relatando um fato, simples ao meu ver.

Abraços.

 

 

Share this post


Link to post
Share on other sites
  • 0

hahahahah vamos lá...

Na sua primeira frase você reclama do tráfego imenso, na sua segunda frase você pede mais dados em várias notificações o que gera um tráfego maior ainda :P

brincadeiras a parte, como eu disse, é algo que sempre discutimos internamente, porém, ao contrário do que você imagina é algo muito mais complexo do que parece devido a complexidade de todo o conjunto de aplicações.

 

Share this post


Link to post
Share on other sites
  • 0

Os "n" certamente geraram mais tráfego do que um get único, mesmo que o Get único tenha mais dados! ;)

Mas eu compreendo que existem complexidades que impedem algumas mudanças.

Wesley Nascimento likes this

Share this post


Link to post
Share on other sites
  • 0
3 hours ago, Wesley Nascimento said:

Não existe uma maneira de fazer isso de forma "massiva" via API, porém, você pode fazer chamadas as API de forma assíncrona. Não se preocupe em bombardear a nossa API :D

 

1 - Quais dados estão faltando no GET?

2 - Isso é proposital, não queremos incentivar esse modo de envio. Utilize o Mercado Envios ;)

3 - O que você entende por uma notificação mais explicativas?

ao meu ver:

1. essa questão acho que nunca vai ser boa para todos, para uns menos info é melhor, para outros o contrário, então acredito que nunca vai agradar a todos...rsrs :D

2. Mercado Envios ...essa é a parte complicada... nossos clientes estão tendo muitos (MUITOS mesmo!) problemas com Correios... atrasos na atualização de rastreios, devolução de dinheiro de produto entregue para o cliente (por falha na info do rastreio), produto danificado nos Correios e outros com postagem recusada (alegam que as medidas que o ML fornece não são compatíveis) ... já tivemos 2 grandes vendedores que simplesmente abandonaram o ML por causa do ME ... entendo que o ML quer que usem o seu produto (ME) ... mas acabam perdendo dinheiro de ML e MP devido ao ME, seria legal flexibilizar isso

3. ao meu ver as notificações são disparadas quando há alteração no DB ... então ao meu ver: seria bom mais alguns dados como tags nas notificações? claro que seria! mas isso é viável? creio que não...

 

obrigado por participar Wesley ;)

Wesley Nascimento likes this

Share this post


Link to post
Share on other sites
  • 0
On 13/04/2017 at 3:01 PM, Diogenes Lima said:

Um detalhe é que pode-se reduzir os atributos no get usando o parâmetro attributes, porém não dá para aumentar, então acho que seria melhor a API disponibilizar todos os dados do recurso. Se quem está consumindo não precisar de tudo e quiser reduzir tráfego é só pedir só os dados que quer.

sim, filtros são uma boa opção para quem está consumindo (dependendo do caso)... por outro lado (o do servidor), usar filtros muitas vezes irá exigir primeiro coletar todos os dados, concatenar e depois filtrar

exemplo: se o cliente deseja receber da API o sku + tracking number + ml fee ... nesse caso o servidor do ML teria que solicitar todos esses recursos em separado (ML, ME, MP), o que acabaria gerando mais demora na resposta da API... a conexão HTTP fica aberta mais tempo esperando resposta, o que fica mais sujeito a latência, e se o servidor do cliente não for muito bom pode acabar não tendo o resultado esperado

acaba sendo uma faca de dois 'legumes' :D

Share this post


Link to post
Share on other sites
  • 0
On 16/04/2017 at 9:30 PM, mldev said:

sim, filtros são uma boa opção para quem está consumindo (dependendo do caso)... por outro lado (o do servidor), usar filtros muitas vezes irá exigir primeiro coletar todos os dados, concatenar e depois filtrar

exemplo: se o cliente deseja receber da API o sku + tracking number + ml fee ... nesse caso o servidor do ML teria que solicitar todos esses recursos em separado (ML, ME, MP), o que acabaria gerando mais demora na resposta da API... a conexão HTTP fica aberta mais tempo esperando resposta, o que fica mais sujeito a latência, e se o servidor do cliente não for muito bom pode acabar não tendo o resultado esperado

acaba sendo uma faca de dois 'legumes' :D

Só se for mal feito. Você retira de uma view apenas os campos que foram indicados, pode fazer isto por procedure. 
Eu fazia uma coisa assim no SQL Server, não tenho feito em outros DBs

Share this post


Link to post
Share on other sites
  • 0
8 hours ago, rodrigojob said:

Só se for mal feito. Você retira de uma view apenas os campos que foram indicados, pode fazer isto por procedure. 
Eu fazia uma coisa assim no SQL Server, não tenho feito em outros DBs

vai depender muito do DB, no caso acredito que eles tenham DBs separados para Mercado Pago e Mercado Livre por exemplo

Share this post


Link to post
Share on other sites
  • 0
19 hours ago, mldev said:

vai depender muito do DB, no caso acredito que eles tenham DBs separados para Mercado Pago e Mercado Livre por exemplo

Eles usam muitos repositórios e muitos formatos. Até parte de um serviço há mais de 1 tipo de DB.
Mas eles estão certos, não dá para ficar na mão de um sistema qe pode caminhar para o lado errado, e há necessidades que determinados aplicativos não atendem.

Assim é um saladão.

Mas.. desvirtuaram seu post...

Share this post


Link to post
Share on other sites
  • 0

Ter maneira de especificar os multiget com atributos de tipo array. Na api de https://api.mercadolibre.com/sites/MLA/search, posso fazer https://api.mercadolibre.com/sites/MLA/search?attributes=results mail nao ha maneira de obter só os ids ou o stock. Sería ótimo poder fazer https://api.mercadolibre.com/sites/MLA/search?attributes=results.id,results.available_quantity.

Leandro Bertalot and mldev like this

Share this post


Link to post
Share on other sites
  • 0

achei uma:
multi id no shipments , este recurso tem em orders.
Poder buscar as informações de diversos ShipmentIDs de uma vez só.
O Cross Docking está me obrigando a consultar os dados de shipments para verificar o status, novo rastreamento, ...

30 IDs demora uns 45 segundos imagina quando a lista crescer.
Até testei antes de escrever isso :)  vai ver que já haviam pensado

Wesley Nascimento likes this

Share this post


Link to post
Share on other sites
  • 0
On 20/06/2017 at 4:03 PM, rodrigojob said:

achei uma:
multi id no shipments , este recurso tem em orders.
Poder buscar as informações de diversos ShipmentIDs de uma vez só.
O Cross Docking está me obrigando a consultar os dados de shipments para verificar o status, novo rastreamento, ...

30 IDs demora uns 45 segundos imagina quando a lista crescer.
Até testei antes de escrever isso :)  vai ver que já haviam pensado

O recurso de Multiget não resolveria esse problema? :35_thinking:

https://api.mercadolibre.com/multiget?resource=shipments&ids=SHIPPINGID_1,SHIPPINGID_2&access_token=XXXXXXXXXX

Sei que o JSON não fica dos mais bonitos possível, mas resolve seu problema.

Abraços,
Wesley.

juvian likes this

Share this post


Link to post
Share on other sites
  • 0
5 hours ago, Wesley Nascimento said:

O recurso de Multiget não resolveria esse problema?:mellow:

https://api.mercadolibre.com/multiget?resource=shipments&ids=SHIPPINGID_1,SHIPPINGID_2&access_token=XXXXXXXXXX

Sei que o JSON não fica dos mais bonitos possível, mas resolve seu problema.

Abraços,
Wesley.

eu não conhecia! 
caiu para 5 seg! 
Não lembro de ter visto isto na documentação.
Quanto à estética não vi tanto problema, são os dados a mais? Para mim ficou funcional.
MUITO agradecido!

Wesley Nascimento likes this

Share this post


Link to post
Share on other sites
  • 0

Boa noite.

Se possível adicionar no backlog... Produtos com variação: Definir qual delas será selecionada por padrão.

Obrigado!

Share this post


Link to post
Share on other sites
  • 0
8 hours ago, israelbrz said:

Boa noite.

Se possível adicionar no backlog... Produtos com variação: Definir qual delas será selecionada por padrão.

Obrigado!

Bom dia israelbrz, tudo bem?
 

As variações trabalham por ordem alfabética e as imagens por ordem de envio independente de como você mandou no Json exemplo:

Se você manda uma variação vermelha primeiro no Json com as fotos A, C e B e outra variação abaixo desta como azul com as fotos Y, F e A o produto vai ser publicado assim:

Primeira variação: Azul fotos Y, F e A
Segunda Variação: Vermelho fotos A,C e B

Ou seja, a foto principal será a primeira foto da primeira variação ok?

Espero que ajude!

Abraços
Gabriel.

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now