Como recuperar os comentários dos produtos feitos pelos usuários do BuscaPé

Uma vez me perguntei porque não aproveitar o que os clientes escreviam sobre um produto (bem ou mal) nos comparadores como o BuscaPé? Procurei inúmeras vezes pela internet e nada de encontrar alguém falando sobre isso.

Fui atras e encontrei a API do BuscaPé Developer e pronto meu desejo começou a torna-se realidade. Foi então que criei a classe que compartilho com você agora. É possível fazer muitas coisas com essa API, e as explicações são bem explicativas e com exemplos de implementações, além de ter a opção de monetização $$ (ótimo para quem precisa).

O próximo passo seria um gestor de comentários sobre os produtos, como o COMENTA que já não esta mais disponível, mas a ideia é muito bacana. Quem sabe não tomo coragem e coloco isso em pratica.

Primeiramente é necessário criar um cadastro no BuscaPé. Tem uma página da própria empresa explicando tudo direitinho.

http://developer.buscape.com/tutoriais/procedimentos-para-desenvolver-sua-aplicacao/

Após criado o aplicativo de conexão você terá acesso a sua chave que será usado nessa conexão. O código foi desenvolvido em PHP, mas pode ser convertido facilmente em outras linguagens.

Depois que implementar você somente precisa fazer uma tabela do seu código de produto para o código do BuscaPé.

Para conseguir o código do Produto BuscaPé, existe um truque. Quando você abre o código fonte da pagina, procure por “unico”, você encontrará um atributo dessa forma da imagem.

codigo-fonte-buscape

Depois é só copiar o atributo “prodId” para a sua tabela de relacionamento.

Abraço e colaborações serão bem vindas.

<?php
class BuscaPe
{
 private $code = 0; 
 private $host = '';
 private $url = 'sandbox.buscape.com’; // utilize essa URL no modo DESENVOLVIMENTO
 //private $url = 'bws.buscape.com'; // URL de Produção
 private $key = [CHAVE_DESENVOLVEDOR];
 private $_data = null;
 public function __construct($code)
 {
 $this->initialize($code);
 return $this;
 }

 private function initialize($code)
 {
 $this->host = $_SERVER['SERVER_ADDR'];
 $this->setCode($code)->viewUserRatings();
 return $this;
 }
 /* attributes -> in */
 private function setCode($code)
 {
 if ($code > 0) $this->code = $code;
 return $this;
 }
 private function getCode()
 {
 return $this->code;
 }
 private function getHost()
 {
 return $this->host;
 }

 /* attributes -> out */
 private function setData($_data)
 {
 $this->_data = $_data;
 return $this;
 }
 public function getData()
 {
 return $this->_data;
 }

 private function getUserRating()
 {
 return $this->userRating;
 }
 private function setUserRating($userRating)
 {
 $this->userRating = $userRating;
 return $this;
 }

 private function getUserOpinions()
 {
 return $this->userOpinions;
 }
 private function setUserOpinions($userOpinions)
 {
 $this->userOpinions = $userOpinions;
 return $this;
 }

 private function getURL($service=‘viewUserRatings’)
 {
 $url = null;
 if ($this->getCode() > 0 &$service != ‘’) $url = 'http://'.$this->url.'/service/‘.$service.’/‘.$this->key.'/BR/?productId='.$this->getCode().'&clientIp='.$this->host;
 return $url;
 }

 /* Resource */
 public function viewUserRatings()
 {
 $url = $this->getURL('viewUserRatings');
 if ($url != null)
 {
 $xml = simplexml_load_file($url);
 if ($xml)
 {
 if ($this->getCode() > 0 & $xml != '') $this->setData($xml)->mapping();
 }
 }
 return $this;
 }

 private function mapping()
 {
 $xml = $this->getData();
 $this->setUserRating($xml->product->rating->userAverageRating)->setUserOpinions($xml->opinions);

 return $this;
 }

 private function filter($_opinion)
 {
 $word = '[bloqueada]';
 $_words = array (
 'bosta',
 'merda',
 'caralho',
 'diabo',
 'http://',
 'www',
 '@',
 '\$',
 );

 $_opinion['comment']['comment'] = str_ireplace($_words, $word, $_opinion['comment']['comment']);
 $_opinion['comment']['positive'] = str_ireplace($_words, $word, $_opinion['comment']['positive']);
 $_opinion['comment']['negative'] = str_ireplace($_words, $word, $_opinion['comment']['negative']);
 $_opinion['author'] = str_ireplace($_words, $word, $_opinion['author']);
 $_opinion['title'] = str_ireplace($_words, $word, $_opinion['title']);

 return $_opinion;
 }

 /* method public */
 public function getRating()
 {
 return doubleval($this->getUserRating()->rating);
 }

 public function getSpecification()
 {
 $v_spec = array();
 $xml = $this->getData();
 $specs = $xml->product->specification->item;

 $s = sizeof($specs);
 if ($s > 0)
 {
 foreach($specs as $spec)
 {
 $v_spec[] = array (
 'label' => utf8_decode($spec->attributes()->label),
 'value' => utf8_decode($spec->value[0])
 );
 }
 }
 return $v_spec;
 }

 public function getNumComments()
 {
 return $this->getUserRating()->numComments;
 }

 public function getOpinions()
 {
 $v_opinions = array();
 $opinions = $this->getUserOpinions();
 $s = sizeof($opinions);
 if ($s>0)
 {
 foreach($opinions as $opinion)
 {
 $v_date = date_parse($opinion->attributes()->date);
 $v_opinion = array (
 'Recommend' => $opinion->attributes()->RecommendProduct,
 'date' => str_pad($v_date['day'], 2, "0", STR_PAD_LEFT).'/'.str_pad($v_date['month'], 2, "0", STR_PAD_LEFT).'/'.$v_date['year'],
 'title' => ucfirst(strtolower(htmlentities(utf8_decode($opinion->title)))),
 'author' => htmlentities(utf8_decode($opinion->author)),
 'rating' => $opinion->rating->userAverageRating->rating,
 'comment' => array (
 'comment' => htmlentities(utf8_decode($opinion->comment->comment)),
 'positive' => htmlentities(utf8_decode($opinion->comment->positive)),
 'negative' => htmlentities(utf8_decode($opinion->comment->negative))
 )
 );

 $v_opinions[] = $this->filter($v_opinion);
 }
 }
 return $v_opinions;
 }
}
$id_produto = "271739";
$buscape = new BuscaPe($id_produto);
$_opinioes = $buscape->getOpinions();
$pontuacao = $buscape->getRating();
$num_comentarios = $buscape->getNumComments();
echo “Pontuação desse produto é = ”.$pontuacao.”<br?>”;
echo “Esse produto tem = ”.$num_comentarios.” comentário(s)”;
print_r($_opinioes);
?>
Anúncios

Frete! O pesadelo de todo gestor de e-commerce

Texto revisado

Recebo e leio constantemente as opiniões de clientes informando de que as lojas são ótimas, as experiências são agradáveis, fácil navegação para encontrar tudo o que precisa, bons produtos, facilidades na escolha do pagamento, etc e etc. Nos gestores ficamos felizes, parece um “conto de fadas”, a loja ser reconhecida pelos seus esforços e conquistar a satisfação de seus clientes é uma experiência gratificante. Porém, como todo super-homem, temos ponto fraco, a criptonita, o conhecido FRETE.

O custo de transportar uma mercadoria até o cliente é uma das discussões mais antigas entre os lojistas e seus e-consumidores. Antes, para adquirir um produto, o cliente deveria se deslocar até a empresa X, procurar o produto desejado, andar até a empresa Y, Z e fazer cotações dos produtos para finalmente concluir sua compra. Saíam felizes depois da décima quinta loja visitada, pois acreditava ter feito um bom negócio e estavam leva-no para casa o item tão desejado.

As coisas mudaram! A violência e os riscos de sair de casa aumentaram, o tempo se tornou curto e cada vez mais escasso na agenda das pessoas. O cliente quando ia buscar a mercadoria na loja, com certeza tinha-se um custo (só passava despercebido): seja o combustível, passe de transporte, taxi, o estacionamento e muitas outras despesas.

EmbalagemEntretanto, a tecnologia disponibilizou uma nova forma de comprar, a VIRTUAL. Essa nova forma de adquirir produtos – que utiliza a internet como ambiente de compra e venda – oferece a comodidade de receber as nossas compras em casa, no trabalho ou qualquer outro lugar que desejar colocar para entrega, ao invés de termos que andar por N lojas; efetuar compras com agilidade e gastar pouco tempo na tomada de decisão, além da liberdade de horário para comprar – o melhor dos mundos! E agora eu me pergunto: quem paga por toda essa comodidade de receber o produto em casa?
Sabemos que os custos operacionais de um e-commerce exige menos que uma loja física tradicional (que acredito ser mais indicada para produtos especializados, tema para outra discussão).  Porém, não podemos desprezar ou ignorar a conta de transporte para os produtos até o cliente.

Quando as lojas virtuais surgiram, era comum o frete ser calculado dentro de um percentual do valor total do pedido ou da nota fiscal. Esse mesmo cálculo era feito pelos transportadores, e assim, os sites cobravam de seus clientes esse valor, tornando junto a negociação a todos.

Por exemplo: se um produto era vendido por R$100,00 o frete 10% do valor da compra, seria R$10,00 o valor cobrado.

No passado dos e-commerces, para melhorarem suas participações dentro dos canais existentes e aumentarem seus adeptos da compra virtual (consequentemente melhorar seus faturamento), o frete foi banalizado, como forma de investimento, utilizado como marketing e isso agradou a todos (e como!), ajudando a contribuir para o crescimento desse canal de vendas.

Sabemos que essa realidade de cálculo de frete mudou, e muito. O Brasil é um dos maiores países em extensão territorial e sua malha viária é precária. Faltam investimentos para pavimentação, manutenção de veículos, além dos altos custos operacionais e de impostos (ex. protocolo 21/2011). Tudo isso, torna o valor do frete para um produto pequeno, cobrado pelo transportador, extremamente caro. Às vezes, dependendo da localidade, próximo ao valor de venda do produto.

Como a prática de baixos valores para o fretes tornaram-se comuns e acostumou mal os novos e-consumidores, e é dever dos gestores de e-commerces renovarem constantemente suas estratégias para gerenciar essas despesas. As estratégias podem ser, desde tabelas de valores de frete por região à incorporação de parte do valor do frete no preço de venda dos produtos.

“Trabalhe com inteligência ou vai perder dinheiro, e ele, é FINITO”.

A realidade é que essa despesa é cara e, se não for tomado o devido cuidado, tornar-se um “custo fixo” alto. Ter uma estratégia de frete balanceada é uma obrigatoriedade em e-commerce. Saber dosar uma boa política que custeia parte do valor cobrado do frete ao cliente pode ter resultados positivos para o crescimento da loja, além de conseguir boas opiniões e motivar novos clientes. Pense nisso e dedique um pouco do seu tempo nessa etapa do seu e-commerce. Pode estar ai um caminho a percorrer para ter melhores resultados!

Sugestões sempre bem vindas. Abraço é até a próxima.