Pesquisando ofertas pelo código de barras com o Wrapper.Net

Vamos utilizar o método FindOfferList do Wrapper.Net para pesquisarmos ofertas a partir do seu código de barras.

Para dar ínicio, efetue o download da nova versão do Wrapper.NET e adicione o arquivo da classe ao seu projeto, ou se preferir, apenas adicione uma referência à biblioteca compilada da classe (.dll) que também está disponível para download.

Neste tutorial, vamos começar um pouco diferente dos outros. Em vez de começar instanciando um objeto, vamos montar uma tela com alguns componentes do asp.net. Para essa tela, vamos utilizar um TextBox, um Button, um Label e um GridView, dispersos na tela semelhante à imagem abaixo:

A única alteração que fizemos nos componentes foi o ID e o text do botão e do label:
TextBox
ID: txtBarcode
Width: 200px
Button
ID: btnFind
Text: Encontrar
Label
ID: lblMessage
Text: “”
GridView
ID: GridViewOffers

A interface proposta é só para um exemplo simples, até por isso seu funcionamento está bem intuitivo. Devemos digitar o código de barras no campo de texto e realizar a pesquisa ao clicar no botão, preenchendo o grid com os dados encontrados. O Label foi inserido para exibirmos uma mensagem de falha quando não forem encontradas ofertas.

Então vamos ao código.

No evento Click do botão somente vamos testar se o valor do código de barras é válido e invocar o método que criaremos para buscar as ofertas no Buscapé.

protected void btnFind_Click(object sender, EventArgs e)
{
        	string barcode = txtBarcode.Text;

        	if (barcode.Length == 0) // Campo vazio
        	{
            	lblMessage.Text = "Digite o código de barras do produto desejado.";
            	lblMessage.ForeColor = System.Drawing.Color.Red;

            	// Limpa o Grid quando este já possuir algum dado
            	GridViewOffers.DataSource = null;
            	GridViewOffers.DataBind();
        	}
        	else
        	{
            	lblMessage.Text = string.Empty;

            	// Preenche o grid com os dados retornados
            	GridViewOffers.DataSource = FindOffersByBarcode(barcode);
            	GridViewOffers.DataBind();
        	}
}

Agora vamos codificar o método FindOffersByBarcode que fará a requisição à API do Buscapé para procurar pelas ofertas com o código de barras digitado. Primeiro vamos instanciar um objeto da classe Apiki_Buscape_API e outro da classe FiltrosFindOfferList para recuperar o XML filtrando pelo parâmetro barcode. Após recuperar os dados, vamos realizar o parser do XML e transformar os resultados em um objeto do tipo DataSet para setar o Grid. Já abordamos esse tema em um tutorial anterior que você pode conferir.

public DataSet FindOffersByBarcode(string barcode)
{
        	// Cria os objetos e realiza a busca na API do Buscapé
        	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();
        	filtros.Barcode = barcode;
        	string result = apiBuscape.FindOfferList(filtros);

        	// Parser do XML retornado
        	System.Xml.XmlDocument xmldoc = new System.Xml.XmlDocument();
        	xmldoc.LoadXml(result);

        	// Objeto para salvar os dados das ofertas
        	DataSet ds = new DataSet();

        	// Recupera somente os nós offer
        	System.Xml.XmlNodeList offers = xmldoc.GetElementsByTagName("offer");

        	// Nenhuma oferta encontrada limpa o GridView
        	if ( offers.Count == 0 ) {
            	lblMessage.Text = "Nenhuma oferta encontrada para o código de barras digitado.";
            	lblMessage.ForeColor = System.Drawing.Color.Red;
            	return null;
        	}

        	// Converte o XML em um DataSet para o Grid
        	foreach (System.Xml.XmlNode item in offers)
        	{
            	System.Xml.XmlNodeReader reader = new System.Xml.XmlNodeReader(item);
            	ds.ReadXml(reader);
            	reader.Close();
        	}

        	return ds;
}

Aí está o código final do nosso método de busca à API do Buscapé. Após a implementação, teremos da nossa interface um comportamento semelhante à imagem abaixo:

É isso, pessoal. Continuem acompanhando nossa seção de tutoriais e participem também do nosso fórum de discussões.

Deixe uma resposta

Topo