• 0
Sign in to follow this  
Rissato

Mudança na para realizar pesquisas /search com mais de 1100 itens

Question

Estou com dificuldades para realizar buscas dos itens publicados acima de 1100 unidades 

Li nesse link que as pesquisas acima de 1100 itens devem agora passar de hash para scan 

http://developers.mercadolibre.com/pt-br/news/nova-modalidade-para-realizar-pesquisas-com-o-recurso-search/

Segui exatamente Todos os passos, ou seja. 

1º passo -

 get  https://api.mercadolibre.com/users/{Cust_id}/items/search?search_type=scan&access_token=$ACCESS_TOKEN

Obtenho no resultado o scroll_id

onde utilizo para o no segundo passo 

2º https://api.mercadolibre.com/users/{Cust_id}/items/search?search_type=scan&access_token=$ACCESS_TOKEN&scroll_id=$SCROLL

Porem tentei de td e nao funciona, da a seguinte mensagem de erro dizendo que o scroll_id esta incorreto.

'{"message":"Invalid Scroll Id: SEARCH_DSAPI_ERROR: Could not search in items to DS API with query: {\"query\":{\"and\":[{\"and\":[{\"eq\":{\"field\":\"seller_id\",\"value\":282941910}}]},{\"and\":[{\"in\":{\"field\":\"status\",\"value\":[\"paused\",\"pending\",\"programmed\",\"active\",\"closed\",\"not_yet_active\"]}}]},{\"and\":[{\"not\":{\"or\":[{\"and\":[{\"eq\":{\"field\":\"status\",\"value\":\"closed\"}},{\"date_range\":{\"field\":\"stop_time\",\"lt\":\"2017-08-21T00:00:00.000-00:00\"}}]},{\"and\":[{\"in\":{\"field\":\"status\",\"value\":[\"deleted\",\"pending\",\"banned\"]}},{\"date_range\":{\"field\":\"stop_time\",\"lt\":\"2017-12-21T00:00:00.000-00:00\"}}]},{\"and\":[{\"eq\":{\"field\":\"status\",\"value\":\"not_yet_active\"}},{\"date_range\":{\"field\":\"start_time\",\"lt\":\"2018-02-01T00:00:00.000-00:00\"}}]}]}}]}]},\"sort\":[{\"field\":\"stop_time\",\"field_type\":\"date\",\"order\":\"asc\",\"missing\":\"_last\",\"type\":\"field\"},{\"field\":\"numeric_id\",\"field_type\":\"number\",\"order\":\"desc\",\"missing\":\"_last\",\"type\":\"field\"}],\"projections\":[\"id\"],\"size\":50,\"scroll_id\":\"YXBpY29yZS1pdGVtcw\",\"scroll_timeout\":5,\"type\":\"scroll\"} - DS API response code: 400 - {code=ds.search.error, error=null, status=400}","error":"invalid.scroll.id","status":400,"cause":[]}'

 

Alguem ja passou por isso? como estao fazendo as atualizações de items quando se tem mais de 1100 itens?

Valew,

 

 

 

 

 

Share this post


Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 1
4 hours ago, edinaldoFox said:

Pega os produtos com paginação, cria um sistema pra carregar todos os produtos em forma de pesquisa de paginação.

a paginação está sendo descontinuada pelo Mercado Livre para buscas acima de 1000 resultando, será obrigatório usar o HASH conforme informativo do ML:

http://developers.mercadolibre.com/pt-br/news/nova-modalidade-para-realizar-pesquisas-com-o-recurso-search/

Share this post


Link to post
Share on other sites
  • 0
17 hours ago, Rissato said:

Obrigado pela resposta, 

Vc tem algum pequeno exemplo, sou meio leigo nessa area :)

 

ignore a sugestão acima do @edinaldoFox, pois a paginação irá deixar de funcionar para buscas acima de 1000 resultados, você deverá utilizar o HASH:

http://developers.mercadolibre.com/pt-br/news/nova-modalidade-para-realizar-pesquisas-com-o-recurso-search/

Share this post


Link to post
Share on other sites
  • 0

O código esta em PHP mas da pra ter uma noção.

$limit = 'total de itens por requisição';
$posicao = 'posicao que sera feito a paginação';
$totalProdutos = 'total de produtos, na consulta tem esta informação';
$totalDePaginas = ceil($totalProdutos/$limit); //ceil é uma função que arredonda o valor (http://php.net/manual/pt_BR/function.ceil.php)
$array = [];
for ($i; $i < $totalDePaginas; $i++) {
	$link = "https://api.mercadolibre.com/sites/MLB/search?nickname=$nickLoja&total=$limit&offset=$posicao&limit=$limit&sort=id";
                              
    $array[] = metodoParaCarregarOsProdutos($link);
}

 

 

 

Edited by edinaldoFox

Share this post


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

O código esta em PHP mas da pra ter uma noção.


$limit = 'total de itens por requisição';
$posicao = 'posicao que sera feito a paginação';
$totalProdutos = 'total de produtos, na consulta tem esta informação';
$totalDePaginas = ceil($totalProdutos/$limit); //ceil é uma função que arredonda o valor (http://php.net/manual/pt_BR/function.ceil.php)
$array = [];
for ($i; $i < $totalDePaginas; $i++) {
	$link = "https://api.mercadolibre.com/sites/MLB/search?nickname=$nickLoja&total=$limit&offset=$posicao&limit=$limit&sort=id";
                              
    $array[] = metodoParaCarregarOsProdutos($link);
}

 

 

 

conforme eu disse acima esse tipo de consulta não deve ser mais utilizado pois será descontinuado pelo Mercado Livre (para consultas com retorno de mais de 1000 resultados), você deverá atualizar seu código para o novo modelo com HASH

Share this post


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

conforme eu disse acima esse tipo de consulta não deve ser mais utilizado pois será descontinuado pelo Mercado Livre (para consultas com retorno de mais de 1000 resultados), você deverá atualizar seu código para o novo modelo com HASH

Mesmo assim, ainda da pra fazer como eu falei, usando um sistema de paginação, pode se usar a nova consulta do modelo com HASH, mas acredito que seja mais tranquilo carregar pequenas informações, já pensou em vários carregamentos de produtos simultâneos no servidor? o consumo de memoria pode ser estourado facilmente.

Nem sempre a solução mais fácil vai ser a melhor a longo prazo.

Share this post


Link to post
Share on other sites
  • 0
2 hours ago, edinaldoFox said:

Mesmo assim, ainda da pra fazer como eu falei, usando um sistema de paginação, pode se usar a nova consulta do modelo com HASH, mas acredito que seja mais tranquilo carregar pequenas informações, já pensou em vários carregamentos de produtos simultâneos no servidor? o consumo de memoria pode ser estourado facilmente.

Nem sempre a solução mais fácil vai ser a melhor a longo prazo.

para algumas aplicações e alguns endpoints ainda está acessível, mas é temporário, então não se deve criar um sistema novo baseado em algo obsoleto

concordo que desta forma ficou bem ruim de trabalhar, mas infelizmente a bola é do Mercado Livre (por hora)

Share this post


Link to post
Share on other sites
  • 0

 

7 hours ago, mldev said:

ignore a sugestão acima do @edinaldoFox, pois a paginação irá deixar de funcionar para buscas acima de 1000 resultados, você deverá utilizar o HASH:

http://developers.mercadolibre.com/pt-br/news/nova-modalidade-para-realizar-pesquisas-com-o-recurso-search/

 

O problema eh que nao da certo com o novo metodo descrito no link, sempre da esse erro no scroll_id .

'{"message":"Invalid Scroll Id: SEARCH_DSAPI_ERROR: Could not search in items to DS API with query: {\"query\":{\"and\":[{\"and\":[{\"eq\":{\"field\":\"seller_id\",\"value\":282941910}}]},{\"and\":[{\"in\":{\"field\":\"status\",\"value\":[\"paused\",\"pending\",\"programmed\",\"active\",\"closed\",\"not_yet_active\"]}}]},{\"and\":[{\"not\":{\"or\":[{\"and\":[{\"eq\":{\"field\":\"status\",\"value\":\"closed\"}},{\"date_range\":{\"field\":\"stop_time\",\"lt\":\"2017-08-21T00:00:00.000-00:00\"}}]},{\"and\":[{\"in\":{\"field\":\"status\",\"value\":[\"deleted\",\"pending\",\"banned\"]}},{\"date_range\":{\"field\":\"stop_time\",\"lt\":\"2017-12-21T00:00:00.000-00:00\"}}]},{\"and\":[{\"eq\":{\"field\":\"status\",\"value\":\"not_yet_active\"}},{\"date_range\":{\"field\":\"start_time\",\"lt\":\"2018-02-01T00:00:00.000-00:00\"}}]}]}}]}]},\"sort\":[{\"field\":\"stop_time\",\"field_type\":\"date\",\"order\":\"asc\",\"missing\":\"_last\",\"type\":\"field\"},{\"field\":\"numeric_id\",\"field_type\":\"number\",\"order\":\"desc\",\"missing\":\"_last\",\"type\":\"field\"}],\"projections\":[\"id\"],\"size\":50,\"scroll_id\":\"YXBpY29yZS1pdGVtcw\",\"scroll_timeout\":5,\"type\":\"scroll\"} - DS API response code: 400 - {code=ds.search.error, error=null, status=400}","error":"invalid.scroll.id","status":400,"cause":[]}'

 

Não entendo pq ele nao aceita como valido, estou seguindo exatamente o descrito no link.

Ele simplesmente nao aceita. ja tentei de tudo.  

Share this post


Link to post
Share on other sites
  • 0
On 2/21/2018 at 3:04 PM, Rissato said:

Estou com dificuldades para realizar buscas dos itens publicados acima de 1100 unidades 

Li nesse link que as pesquisas acima de 1100 itens devem agora passar de hash para scan 

http://developers.mercadolibre.com/pt-br/news/nova-modalidade-para-realizar-pesquisas-com-o-recurso-search/

Segui exatamente Todos os passos, ou seja. 

1º passo -

 get  https://api.mercadolibre.com/users/{Cust_id}/items/search?search_type=scan&access_token=$ACCESS_TOKEN

Obtenho no resultado o scroll_id

onde utilizo para o no segundo passo 

2º https://api.mercadolibre.com/users/{Cust_id}/items/search?search_type=scan&access_token=$ACCESS_TOKEN&scroll_id=$SCROLL

Porem tentei de td e nao funciona, da a seguinte mensagem de erro dizendo que o scroll_id esta incorreto.

'{"message":"Invalid Scroll Id: SEARCH_DSAPI_ERROR: Could not search in items to DS API with query: {\"query\":{\"and\":[{\"and\":[{\"eq\":{\"field\":\"seller_id\",\"value\":282941910}}]},{\"and\":[{\"in\":{\"field\":\"status\",\"value\":[\"paused\",\"pending\",\"programmed\",\"active\",\"closed\",\"not_yet_active\"]}}]},{\"and\":[{\"not\":{\"or\":[{\"and\":[{\"eq\":{\"field\":\"status\",\"value\":\"closed\"}},{\"date_range\":{\"field\":\"stop_time\",\"lt\":\"2017-08-21T00:00:00.000-00:00\"}}]},{\"and\":[{\"in\":{\"field\":\"status\",\"value\":[\"deleted\",\"pending\",\"banned\"]}},{\"date_range\":{\"field\":\"stop_time\",\"lt\":\"2017-12-21T00:00:00.000-00:00\"}}]},{\"and\":[{\"eq\":{\"field\":\"status\",\"value\":\"not_yet_active\"}},{\"date_range\":{\"field\":\"start_time\",\"lt\":\"2018-02-01T00:00:00.000-00:00\"}}]}]}}]}]},\"sort\":[{\"field\":\"stop_time\",\"field_type\":\"date\",\"order\":\"asc\",\"missing\":\"_last\",\"type\":\"field\"},{\"field\":\"numeric_id\",\"field_type\":\"number\",\"order\":\"desc\",\"missing\":\"_last\",\"type\":\"field\"}],\"projections\":[\"id\"],\"size\":50,\"scroll_id\":\"YXBpY29yZS1pdGVtcw\",\"scroll_timeout\":5,\"type\":\"scroll\"} - DS API response code: 400 - {code=ds.search.error, error=null, status=400}","error":"invalid.scroll.id","status":400,"cause":[]}'

 

Alguem ja passou por isso? como estao fazendo as atualizações de items quando se tem mais de 1100 itens?

Valew,

 

 

 

 

 

Conseguiu Rissato ? 

 

Tentei por aqui e deu certo

a cada GET ele gera um novo scroll_id e você deve atualizá-lo a cada requisição até que retorne um resultado null

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this