Olá! Monday, 18 de February de 2019.



Dicas CódigoFonte.net
Friday, 26 de October de 2007

Criando um shopping baseado em produtos do Mercado Livre

Vamos ver agora uma das maneiras de fazer isso. Para tal, utilizaremos uma das facilidades que os mercados-sócios do mercado livre possuem. Uma base de pesquisa de produtos em XML.

Para mais informações sobre o programa de afiliados do mercado livre acesse o link abaixo:
[inter]http://pmsapp.mercadolivre.com.br/jm/pms[/inter]

Sobre a requisição do documento XML

A busca de produtos acontece por de parâmetros passados na URL de requisição do XML. Abaixo segue a URL básica e a listagem dos demais parâmetros que podem ser utilizados na URL para gerar a requisição.

Apenas esclarecendo que o torna-se mercado-sócio você terá acesso ao documento completo para a implementação do XML

Estrutura básica para busca de produtos:
http://www.mercadolibre.com.br/jm/searchXml

Parâmetros
Clique para ver a imagem em seu tamanho real
Clique para ver a imagem em seu tamanho real

A URLs para as categorias é:
http://www.mercadolivre.com.br/jm/categsXml

Parâmetros
Clique para ver a imagem em seu tamanho real

Vamos ao código

Crie um projeto de web site e adcione uma classe chamada NegocioXml.

Abaixo a Listagem 01 mostra a implementação da classe.

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Text; /// /// Classe de negocio baseada no Xml do mercado livre /// public class NegocioXml { #region Declarações protected string strXmlCategoria; protected string strXmlProduto; protected string CODSITE; protected DataSet objXmlData; #endregion public NegocioXml() { } /// /// Retorna a o conteudo da chave UrlProdutos do Web.Config /// protected string UrlProdutos { get { return ConfigurationManager.AppSettings["UrlProdutos"]; } } /// /// Retorna a o conteudo da chave UrlCategorias do Web.Config /// protected string UrlCategorias { get { return ConfigurationManager.AppSettings["UrlCategorias"]; } } /// /// Retorna um DataTable com as lista de produtos de uma determinada categoria, /// a partir da consulta ao Xml do Mercado livre /// /// /// public DataTable ListaProdutos(string IdCategoria) { CODSITE = "MLB"; strXmlProduto = this.UrlProdutos + "?as_categ_id=" + IdCategoria + "&as_qshow=10"; objXmlData = new DataSet(); objXmlData.ReadXml(strXmlProduto); return objXmlData.Tables["item"]; } public DataTable ListaProdutosFiltro(string Filtro) { CODSITE = "MLB"; strXmlProduto = this.UrlProdutos + "?as_qshow=10&as_filtro_id=" + Filtro; objXmlData = new DataSet(); objXmlData.ReadXml(strXmlProduto); return objXmlData.Tables["item"]; } /// /// Retorna um DataView com as lista de produtos de uma determinada categoria, /// a partir da consulta ao Xml do Mercado livre /// /// Id da categoria pesquisada /// Um DataView com os prosutos public DataView ListaCategorias() { CODSITE = "MLB"; strXmlCategoria = this.UrlCategorias + "?as_site_id=" + CODSITE + "&as_only_main=Y"; objXmlData = new DataSet(); objXmlData.ReadXml(strXmlCategoria); return objXmlData.Tables["category"].DefaultView; }

Listagem 01 – Implementação da classe NegocioXml.

Todos os métodos acima são baseados na leitura de arquivos XML a partir de sites remotos (no caso o www.mercadolivre.com.br).

Adicione ao web.config os parâmetros com as URL’s de acesso ao XML do Mercado Livre conforme Listagem 02.



Listagem 02.

Agora vamos codificar a página default.aspx acresentando uma tabela com 1 linha e 2 colunas. Na colunas da esquerda coloque um GridView chamado gvCategorias e na coluna da direita coloque um DataList chamado dlProdutos.

As veja na Listagem 03 as propriedades alteradas para o gvCategorias e o dlProdutos.

Clique para ver a imagem em seu tamanho real
Listagem 03 – Propriedades alteradas

Adicione no item template do gvCategorias um controle Hyperlink.

No item template do dlProdutos adicione um controle Hyperlink e um controle Imagem.

Na Listagem 04 mostra a implementação completa do gvCategorias e do dlProdutos

<%# Eval("name") %> <%#Eval("title")%>


Listagem 04 – Implementação do gvCategorias e dlProdutos

Agora só nos restando programar quando e como serão carregados os objetos citados acima. No load da página vamos carregar o gvCategorias apenas quando não for um PostBack. Da mesma forma vamos carregar o dlProdutos. Na Listagem 05 segue a implementação dos métodos.

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.CarregaCategorias(); string strIdCategoria = Request.QueryString["id_cat"]; if (strIdCategoria != "" && strIdCategoria != null) { this.CarregaProdutosPorCategoria(strIdCategoria); } } } protected void CarregaCategorias() { objXml = new NegocioXml(); gvCategorias.DataSource = objXml.ListaCategorias(); gvCategorias.DataBind(); } protected void CarregaProdutosPorCategoria(string IdCategoria) { objXml = new NegocioXml(); dlProdutos.DataSource = objXml.ListaProdutos(IdCategoria); dlProdutos.DataBind(); } protected void CarregaProdutos24Horas() { objXml = new NegocioXml(); dlProdutos.DataSource = objXml.ListaProdutosFiltro("24_HS"); dlProdutos.DataBind(); }

Listagem 05 – Código da página default.aspx.cs

Veja na figura 01 o resultado final.

Clique para ver a imagem em seu tamanho real
Figura 01 – Resultado da aplicação

Dessa forma vimos o quanto é simples trabalhar com leitura de arquivos xml dinâmicos em sites remotos no C# 2.0 + Visual Studio 2005.

Também aprendemos uma maneira mais otimizada de ganhar dinheiro com publicidade na web

Conheça nosso parceiro:



Por Daniel Santiago da Silva Cazé


Daniel Santiago da Silva Cazé ([email protected]) trabalha com desenvolvimento de aplicações web para intranet e SIG's a 4 anos. Desenvolve trabalhos de DataMining e administração de dados com SQL Server 2000/2005 e MySQL. Atualmente entusiasta em Java 3D para jogos eletrônicos.

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010