Fórum OpenCart Brasil

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

Avatar do usuário
Por wiener
#3449
Boa tarde Galera, consegui desenvolver um sisteminha de indicação de produto...claro pesquisei em vários sites informações e juntando todas elas consegui fazer...

1) Abra o arquivo produto.tpl em: catalog/view/theme/SEUTEMA/template/product/

na linha 172 (no meu arquivo) acrescente o código abaixo:
Código: Selecionar todos
<script>
function indique(){
var idprod = "<?php echo $product_id; ?>";
var nomeprod = "<?php echo $heading_title; ?>";
window.open("/PASTADOFORMULARIO/form.php?var="+idprod+"&var2="+nomeprod,"janela","width=320,height=310");
}
</script>
 
<div style="background:#f1f1f1; border:2px solid #CCC; padding:5px; font-weight:bold;" align="center"><a href="javascript: indique()">Indique a um amigo!</a></div>
OBS.: ARQUIVO FORM SALVAR NA PASTA DE SUA ESCOLHA APÓS O DOMÍNIO EX: http://WWW.SEUSITE.COM.BR/FORM/AQUI > SALVAR COM O NOME form.php
Código: Selecionar todos
<html>
<head>
<title>INDICANDO PRODUTOS</title>
<content-type: text/html; charset=iso-8859-1;>
<!-- Carrega o arquivo 'script.js' ao iniciar a página! //-->
<script language="javascript" src="script.js" type="text/javascript"></script>

</head>
<body>

<form action="processar.php" method="post" onSubmit="setarCampos(); enviarForm('processar.php', campos, 'divResultado'); return false;">
<table width="250" border="0" cellspacing="3" cellpadding="3">
                <tr><td colspan="2" align="center">
                <?php
$idprod = "".$_GET['var']."";
$nomeprod = "".$_GET['var2']."";
?>
                
                </td></tr>
                 <tr>
                    <td width="120" align="right" style="font-size:9px;">Nome do Produto: </td>
                    <td align="left" style="font-size:9px;"><input type="text" name="nomeproduto" id="nomeproduto" value="<?php echo $nomeprod; ?>" readonly="disable" style="border:0px;" maxlength="100" width="320"/></td>
                  </tr>
                <tr>
                    <td width="120" align="right" style="font-size:9px;">Id do Produto: </td>
                    <td align="left" style="font-size:9px;"><input type="text" name="idprod" id="idprod" value="<?php echo $idprod; ?>" readonly="disable" style="border:0px;"/></td>
                  </tr>
                 <tr>
                    <td width="120" align="right" style="font-size:9px;">Seu nome: </td>
                    <td align="left" style="font-size:9px;"><input type="text" name="seunome" id="seunome" /></td>
                  </tr>
                  <tr>
                    <td width="120" align="right" style="font-size:9px;">Nome do Amigo: </td>
                    <td align="left" style="font-size:9px;"><input type="text" name="nomeamigo" id="nomeamigo" /></td>
                  </tr>
                  <tr>
                    <td width="120" align="right" style="font-size:9px;">Email do seu Amigo: </td>
                    <td align="left" style="font-size:9px;"><input type="text" name="emailamigo" id="emailamigo" /></td>
                  </tr>
                  <tr>
                    <td colspan="2" align="center"><label>
                      <input type="submit" name="enviar" id="enviar" value="INDICAR" style="border:2px solid #ccc; background:#f1f1f1; font-weight:bold; font-family:Arial, Helvetica, sans-serif; font-size:12;" />
                    </label></td>
                    </tr>
                </table>
</form>
<div id="divResultado"/>

<!-- Cria a variável com os campos para envio via parâmetro //-->
<script>
	function setarCampos() {		campos = "seunome="+encodeURI(document.getElementById('seunome').value).toUpperCase()+"&nomeamigo="+encodeURI(document.getElementById('nomeamigo').value)+"&emailamigo="+encodeURI(document.getElementById('emailamigo').value)+"&nomeproduto="+encodeURI(document.getElementById('nomeproduto').value)+"&idprod="+encodeURI(document.getElementById('idprod').value);
	}
</script>
</body>
</html>
O ARQUIVO PROCESSA SALVAR NA MESMA PASTA DO FORM COM OS DADOS ABAIXO COM O NOME: processa.php
Código: Selecionar todos
<?php
 header("content-type: text/html; charset=iso-8859-1"); //Determina o tipo da codificação da página

 extract($_POST); //Extraí os dados do formulário

 $nome = ($seunome != "") ? $seunome : "Campo nome ficou vazio!"; //Verifica se algum nome foi digitado
 $email = ($seuemail != "") ? $seuemail : "Campo e-mail ficou vazio!"; //Verifica se algum email foi digitado
 $nomeami = ($nomeamigo != "") ? $nomeamigo : "Campo nome do amigo ficou vazio!"; //Verifica se algum email foi digitado
 $emailami = ($emailamigo != "") ? $emailamigo : "Campo e-mail do amigo ficou vazio!"; //Verifica se algum email foi digitado
 $idprod      = ($idprod);

$data      = date("d/m/y");
$hora      = date("H:i");   
$link      = ("http://sualoja.com.br/index.php?route=product/product&product_id=");

//aqui envia o e-mail para o Amigo
mail ("$emailami",                       //email aonde o php vai enviar os dados do form
      "$nomeami",
      "$nomeami\n\nVocê recebeu a indicação de: $nome em $data\n\nPara conferir o produto visite o endereço abaixo:\n\n$link$idprod",
      "From: $seunome - Indicou um produto da SUA LOJA"
     );

 echo "<b>".$nome."</b><br>Sua indicação para: ".$nomeami." <br>Foi realizada com Sucesso!"; //Retorna com a resposta
?>
AGORA O ÚLTIMO ARQUIVO, O ARQUIVO .JS É SÓ SALVAR NA MESMA PASTA DO FORM COM O NOME script.js
Código: Selecionar todos
var navegador = navigator.userAgent.toLowerCase(); //Cria e atribui à variável global 'navegador' (em caracteres minúsculos) o nome e a versão do navegador
var xmlhttp; //Cria uma variável global chamada 'xmlhttp'

//Função que inicia o objeto XMLHttpRequest
function objetoXML() {
	if (navegador.indexOf('msie') != -1) { //Internet Explorer
		var controle = (navegador.indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP'; //Operador ternário que adiciona o objeto padrão do seu navegador (caso for o IE) à variável 'controle'
		try {
			xmlhttp = new ActiveXObject(controle); //Inicia o objeto no IE
		} catch (e) { }
	} else { //Firefox, Safari, Mozilla
		xmlhttp = new XMLHttpRequest(); //Inicia o objeto no Firefox, Safari, Mozilla
	}
}

//Função que envia o formulário
function enviarForm(url, campos, destino) {
	var elemento = document.getElementById(destino); //Atribui à variável 'elemento' o elemento que irá receber a página postada
	objetoXML(); //Executa a função objetoXML()
	if (!xmlhttp) { //Se o objeto de 'xmlhttp' não estiver true
		elemento.innerHTML = 'Impossível iniciar o objeto XMLHttpRequest.'; //Insere no 'elemento' o texto atribuído
		return;
	} else { //Senão
		elemento.innerHTML = 'Carregando...'; //Insere no 'elemento' o texto atribuído
	}
	xmlhttp.onreadystatechange = function () {
    	if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0) { //Se a requisição estiver completada
    		if (xmlhttp.status == 200) { //Se o status da requisição estiver OK
    			elemento.innerHTML = xmlhttp.responseText; //Insere no 'elemento' a página postada
    		} else { //Senão
    			elemento.innerHMTL = 'Página não encontrada!'; //Insere no 'elemento' o texto atribuído
    		}
    	}
	}
	xmlhttp.open('POST', url+'?'+campos, true); //Abre a página que receberá os campos do formulário
	xmlhttp.send(campos); //Envia o formulário com dados da variável 'campos' (passado por parâmetro)
}
Acho que ainda dá pra melhorar mas espero ter ajudado...se alguém quiser os arquivos zipados é só entrar no link abaixo:
form.zip
Abço
Você não está autorizado a ver ou baixar esse anexo.
#3537
Amigos Manoel Vidal e Wilner tudo bem?
Bom esse sistema de indicação de produtos que você passou não funcionou aqui comigo.
Será que pode me ajudar a fazer esta implantação em uma loja que estou desenvolvendo?
Gostaria muito de colocar a opção de indicação do produto.

Aproveitando a oportunidade, como coloco uma imagem(Botão) de comprar em meus produtos?
Grato e aguardo retorno.
E parabéns aos amigos da comunidade.
Att,
Sócrates
#3541
Amigo Weiner, muito grato pela sua resposta rápida e atenção.
Bom a questão é que não consegui implantar a parte de indicação na loja que estou desenvolvendo.
Estou desenvolvendo uma loja de PetShop.
Segue endereço: http://www.tudopracachorro.com.br
Gostaria que todos os produtos tivessem um link para que o produto pude-se ser indicado para amigos, e tal....
Agora o botão adicionar no carrinho tem um sinal (+) gostaria de trocar esse sinal pelo botão comprar.
vou liberar o estado de manutenção do site para que vc possa ver como está e verificar se pode me ajudar na questão de indicação do produto.
Mais uma vez grato pela atenção. e fico no aguardo de retorno.
Abraço.
Att,
Sócrates
Avatar do usuário
Por wiener
#3543
no link que mandei na resposta anterior lhe mostra como alterar o sinal de + para o botão comprar por exemplo...

Quanto a implementação da indicação, é só seguir exatamente o que está no tutorial que funciona certinho...

veja ela pois estou usando no site www.fluxar.com.br/loja

abs
#3544
É realmente puder ver que na sua loja funcionou mesmo.
Porém não estou localizando o arquivo/local correto para colar seu código.
Podria me dizer o diretório e qual arquivo, e onde devo colar o código para indicação?
Bom, quanto ao botão, consegui subistituir a imagem, porém o botão só aparece um pedacinho... acho que é por causa do tamnaho da imagem.
Como faço para colocar o botão comprar na linha debaixo, por exemplo, para que a imagem apareça completa?
Mais uma vez grato pela atenção.
No aguardo.
Att,
Sócrates
Avatar do usuário
Por wiener
#3547
Pra mudar o botão vai no arquivo catalog/view/theme/SEUTEMA/template/module/latest_home.tpl

por volta da linha 27 (no meu arquivo) ache o código abaixo e coloque um <br><div style="padding:3px;"></div> (coloquei pra dar um espaço pro botão)
Código: Selecionar todos
<span style="color: #900; font-weight: bold; text-decoration: line-through; padding:20px; font-size:20px;"><?php echo $products[$j]['price']; ?></span> <span style="color: #F00;"><?php echo $products[$j]['special']; ?></span>
      <?php } ?>

      <br /><div style="padding:3px;"></div>

      <a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" >&nbsp;</a>
Daí no arquivo stylesheet.css ache o código abaixo e altere ele como quiser....
Código: Selecionar todos
.button_add_small, a.button_add_small:visited {
	margin-top:3px;
	background:url('../image/button_add_small.png') no-repeat left center transparent;
	padding:53px;
	text-decoration:none;
	cursor:pointer;
Acho que é isso....
#3548
Bicho, tu é o cara!!!!!
É isso mesmo!!!!
Vc é o mestre do Open Cart!!!
Muito obrigado, quanto ao botão fiz do jeito que vc falou alterando o .css ai deu certo!!!
Pô tipo... to te devendo uma cerveja... rsrs.....
Vou tentar fazer o lance do indique o produto novamente...
Será que é mto incomodo te perguntar em qual arquivo eu devo copiar o código??
O lance do botão, será que ele já vai aparecer em todas as paginas?
Abração mano!!
Valeu mesmo!!!
Aguardo contato.
Att,
Sócrates
#3551
Weiner vc pode me passar seu e-mail?
Estou utilizando o template Default2, o botão deu certinho, porém nas categorias ele está em cima dos preços.
Não estou achando o arquivo category.tpl neste template.
como faço para que o botão fique correto nas categorias, assim como ficou na pagina incial dos produtos?
Grato.
Att,
Sócrates

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 […]