Dev (Back & Front)ARTIGO

Como ordenar uma lista de ofertas com o Wrapper.Net do Buscapé

Vamos ver neste artigo como buscar todas as ofertas de um determinado produto e ordená-las de acordo com os parâmetros disponíveis na API do Buscapé. Antes de começar a leitura, é recomendável que você já tenha realizado o download do Wrapper.NET da API do Buscapé, que pode ser efetuado no perfil Developer Buscapé Company no GitHub.

Com os arquivos em mãos, adicione-os ao projeto no Visual Studio ou, se preferir, faça uma referência à .dll que também está disponível para download.

Para iniciar, vamos instanciar um objeto da classe Apiki_Buscape_API e outro da classe FiltrosFindOfferList: a primeira nos provém o acesso à API do Buscapé e a segunda nos permite filtrar a lista de ofertas e também ordená-la.

Apiki_Buscape_API.Apiki_Buscape_API apiBuscape = new Apiki_Buscape_API.Apiki_Buscape_API("564771466d477a4458664d3d");
Apiki_Buscape_API.FiltrosFindOfferList filtros = new Apiki_Buscape_API.FiltrosFindOfferList();

Vamos, agora, usar o método FindOfferList do Wrapper.Net para recuperar todas as ofertas de um determinado produto. Para este exemplo, vamos utilizar o ID 314283 referente ao iPad 2 64GB. Temos que utilizar o ID do produto ao contrário de utilizar palavras-chave, pois ainda não é possível ordenar o resultado quando usamos apenas o filtro de produtos por palavra-chave.

filtros.ProductId = 314283;
string result = apiBuscape.FindOfferList(filtros);
<offer productId="314283" id="93965393" categoryId="10232">
<offerName>iPad 2 - WI - FI 64GB - MC981BZ / A - Branco - Apple - MC981BZ / A - - cod. 34225</offerName>

<links>
<link type="offer" url="http://tracker.lomadee.com/tr/rd?b=b2UJATwcZS9rDRE8PxgHOS4JOjtqDR0yDDYLLh9zc2VnbGhsa2pqZW9ubmVoZ2hpbGlnaWU2KiouZHFxPTEzLj8sO3A8Ky09Py47cD0xM3A8LHEuLDE6ASswNz0xYTc6K2Ntb2psZm14Mzo6KjBjaGdoaWxpZ2l4Mzo_Li5jb25uZTAxLDs4ZW9lHAxlZWVuZW5lbmVlZW5lbmVuZW5lZ21naGttZ21lbnBuZW5wbmVvZWVuZQ--"/>
</links>
<thumbnail url="http://thumbs.buscape.com.br/T100x100/__2.68557-599cc51.jpg"/>
<price>
<currency abbreviation="BRL"/>
<value>1638.12</value>
<parcel>

<value>192.72</value>
<number>10</number>
<interest>3.07</interest>
</parcel>
</price>
<seller advertiserId="0" pagamentoDigital="false" isTrustedStore="true" id="68557">
<sellerName>Balão da informática</sellerName>

<thumbnail url="http://imagem.buscape.com.br/vitrine/logo68557.gif"/>
<links>
<link type="seller" url="http://www.balaodainformatica.com.br?parceiro=buscape&amp;utm_source=buscape&amp;utm_medium=buscape&amp;utm_campaign=buscape"/>
<link type="video" url="http://parceiro.buscape.com.br/emp_video?emp_id=68557&amp;prod_id=93965393&amp;id=10232&amp;az=be22a1eef86b6b1b532c08d3954a651e&amp;cn=593846648&amp;nc=1878522414920120702103729"/>
</links>

Vejam que o XML de retorno dos resultados estão todos embaralhados. Usaremos então as opções de ordenação disponíveis para o método FindProductList. Vejamos como ficaria o retorno sendo ordenado pelo preço:

filtros.ProductId = 314283;
filtros.Sort = "price";
string result = apiBuscape.FindOfferList(filtros);
<offer productId="314283" id="106403475" categoryId="10232">
<offerName>Tablet Apple iPad 2 64Gb Wi - Fi ( Diversas Cores ) - ref: 1961</offerName>

<links>
<link type="offer" url="http://tracker.lomadee.com/tr/rd?b=b2VmGSszZRcYDiwbHAcQOyRuJmsxaWkzDCcRJh9zc2VnbGhsa2pqZW9ubmVoZ2hpbGlnaWU2KiouZHFxPTEzLj8sO3A8Ky09Py47cD0xM3A8LHEuLDE6ASswNz0xYTc6K2Ntb2psZm14Mzo6KjBjaGdoaWxpZ2l4Mzo_Li5jb25uZTAxLDs4ZW9lHAxlZWVuZW5lbmVlZW5lbmVuZW5lb25oam5tamlrZW5wbmVucG5lb2VlbmU-"/>
</links>
<thumbnail url="http://thumbs.buscape.com.br/T100x100/__2.1096922-6579693.jpg"/>
<price>
<currency abbreviation="BRL"/>
<value>1618.11</value>
<parcel>

<value>173.99</value>
<number>10</number>
<interest>1.34</interest>
</parcel>
</price>
<seller advertiserId="0" pagamentoDigital="true" isTrustedStore="false" id="1096922">
<sellerName>Easy - Facil Comprar</sellerName>

<thumbnail url="http://imagem.buscape.com.br/vitrine/logo1096922.gif"/>
<links>
<link type="seller" url="http://www.easy.com.br"/>
</links>
<contacts>

Agora sim. Temos os resultados todos ordenados pelo preço do menor para o maior. Além dessa ordenação pelo preço, também temos outras opções de ordenação dos resultados, que listamos abaixo:

  • price/dprice: Ordenação por preço:
filtros.ProductId = 314283;
filtros.Sort = "price";
string result = apiBuscape.FindOfferList(filtros);
filtros.ProductId = 314283;
filtros.Sort = "dprice";
string result = apiBuscape.FindOfferList(filtros);
  • rate/drate: Ordenação por avaliação de usuários:
filtros.ProductId = 314283;
filtros.Sort = "rate";
string result = apiBuscape.FindOfferList(filtros);
filtros.ProductId = 314283;
filtros.Sort = "drate";
string result = apiBuscape.FindOfferList(filtros);
  • seller/dseller: Ordenação por loja:
filtros.ProductId = 314283;
filtros.Sort = "seller";
string result = apiBuscape.FindOfferList(filtros);
filtros.ProductId = 314283;
filtros.Sort = "dseller";
string result = apiBuscape.FindOfferList(filtros);
  • installment/dinstallment: Ordenação por preço da parcela:
filtros.ProductId = 314283;
filtros.Sort = "installment";
string result = apiBuscape.FindOfferList(filtros);
filtros.ProductId = 314283;
 filtros.Sort = "dinstallment";
string result = apiBuscape.FindOfferList(filtros);
  • numberofinstallments/dnumberofinstallments: Ordenação por número de parcelas:
filtros.ProductId = 314283;
filtros.Sort = "numberofinstallments";
string result = apiBuscape.FindOfferList(filtros);
filtros.ProductId = 314283;
filtros.Sort = "dnumberofinstallments";
string result = apiBuscape.FindOfferList(filtros);
  • trustedStore: Ordenação por selo de empresa reconhecida no Buscapé:
filtros.ProductId = 314283;
filtros.Sort = "trustedStore";
string result = apiBuscape.FindOfferList(filtros);

Os parâmetros iniciados com a letra d, dprice, drate, dseller, dinstallment e dnumberofinstallments, fazem a ordenação pelo mesmo valor de seus correspondentes, porém eles retornam em ordem decrescente.

pelo Dev Buscapé Developer desenvolvedores externos podem utilizar o WebService disponível pelo Buscapé para criar suas próprias aplicações. No Githun, acompanhe /devbuscapecompany

Ver perfil