Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

Por Nosfox
#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):
Código: Selecionar todos
<?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 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.
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.
#66944
a mudança no arquivo catalog/view/theme/*/template/product/product.tpl poderia ser feita via OCmod ne?

vou testar em meu e-commerce com OC 2.0.3.1, funcionando eu aviso aqui.

voltei =)

testei o modulo no meu e-commerce e funcionou em 90%, precisei fazer algumas alteraçõeszinhas hehe

o que editei?: na linha 44 do arquivo \catalog\controller\module\lastviewed.php

mudei
" array_splice($ultimos_finalizado,0,$setting['limit']); "
por
" $ultimos_finalizado = array_slice($ultimos_finalizado, 0, $setting['limit']); "

assim é exibido a quantidade de produtos desejada escolhida no painel do modulo.

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]