- 27 Fev 2016, 15:04
#65432
Olá, pessoal!
Criei um módulo que armazena os últimos produtos visitados pelo cliente, e então os mostra igual os módulo "Mais Vendidos", "Novidadades", etc.
Ele utiliza um cookie para armazenar informações sobre os últimos produtos visitados, então caso utilize o módulo, adicione esta informação na sua política de privacidade.
Por enquanto testei nas versões 2.0.1.1 e 2.1.0.1.
Quem quiser baixar o módulo, segue o link: http://www.opencart.com/index.php?route ... n_id=25917.
Quem quiser saber como funciona, eu explico:
Fiz uma modificação no arquivo catalog/view/theme/*/template/product/product.tpl, adicionando o seguinte código (preferencialmente no início):
O cookie é armazenado por 400 dias, assim seus clientes podem relembrar o que eles viram no último Natal, por exemplo.
Já no controlador, os ids são separados e exibidos da mesma forma que ocorre nos módulos padrão do opencart.
Se ficou alguma coisa mal explicada, por favor avisem que eu arrumo. E se alguém tiver ideias de melhorias no código, ou qualquer tipo de contribuição, ficarei feliz em aprimorar o módulo com as dicas.
Criei um módulo que armazena os últimos produtos visitados pelo cliente, e então os mostra igual os módulo "Mais Vendidos", "Novidadades", etc.
Ele utiliza um cookie para armazenar informações sobre os últimos produtos visitados, então caso utilize o módulo, adicione esta informação na sua política de privacidade.
Por enquanto testei nas versões 2.0.1.1 e 2.1.0.1.
Quem quiser baixar o módulo, segue o link: http://www.opencart.com/index.php?route ... n_id=25917.
Quem quiser saber como funciona, eu explico:
Fiz uma modificação no arquivo catalog/view/theme/*/template/product/product.tpl, adicionando o seguinte código (preferencialmente no início):
Código: Selecionar todos
O código acima basicamente cria um cookie, onde serão armazenados os ids dos produtos visitados. Se o produto já foi visitado, o id é reposicionado, voltando a ser o último produto visitado.<?php //Guarda um cookie com uma string contendo os ids dos produtos visitados, separados por vírgula e terminado em vírgula
if(!isset($_COOKIE['IdProduto'])){
$id_como_string = (string)$product_id;
$id_como_string .= ',';
setcookie('IdProduto',$id_como_string,time() + 34560000, "/"); //Guarda as informações por até 400 dias
}
else {
$id_como_string = (string)$product_id;
$array_produtos = $_COOKIE['IdProduto'];
if(strpos($array_produtos,','.$id_como_string.',')==strlen($array_produtos)-strlen($id_como_string)-2){ //Se está no fim
}
else if(strpos($array_produtos,$id_como_string.',') === 0){ //Se está no início
$array_produtos = str_replace($id_como_string.',','',$array_produtos);
$array_produtos .= $id_como_string . ',';
setcookie('IdProduto',$array_produtos,time() + 34560000, "/");
}
else if(strpos($array_produtos,','.$id_como_string.',') !== false){ //Se está no meio
$array_produtos = str_replace($id_como_string.',','',$array_produtos);
$array_produtos .= $id_como_string . ',';
setcookie('IdProduto',$array_produtos,time() + 34560000, "/");
}
else { //Não está
$array_produtos .= $id_como_string . ',';
setcookie('IdProduto',$array_produtos,time() + 34560000, "/");
}
}
?>
O cookie é armazenado por 400 dias, assim seus clientes podem relembrar o que eles viram no último Natal, por exemplo.
Já no controlador, os ids são separados e exibidos da mesma forma que ocorre nos módulos padrão do opencart.
Se ficou alguma coisa mal explicada, por favor avisem que eu arrumo. E se alguém tiver ideias de melhorias no código, ou qualquer tipo de contribuição, ficarei feliz em aprimorar o módulo com as dicas.