Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Anderson 777

Carrinho de Compras em PHP

Recommended Posts

Boa tarde, estou montando um site com carrinho de compras (de orçamento na verdade), ja ta tudo quase pronto, ta faltando só finalizar o pedido, é assim quando eu clico em finalizar pedido abre uma página com um formulário para ser enviado por e-mail, e eu queria que fosse enviado junto com esse formulário os dados do carrinho (os produtos e coisa e tal)

 

carrinho.php

<title>DIGICOM - CARRINHO DE ORÇAMENTO</title><?php
$area = isset($_GET['area']) ? $_GET['area'] : NULL;
$acao = isset($_GET['acao']) ? $_GET['acao'] : NULL;
$objCar = new Carrinho;

if ($area == "carrinho")
{
	
	if ($acao == "adicionar")
	{
		$id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
		$objCar->AdicionarProduto ($id);
		
	}
	
	if ($acao == "remover")
	{
		$id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
		$objCar->RemoverProduto ($id);
	}
	
	if ($acao == "alt_qtde")
	{
		$id = isset ($_GET['id']) ? (int)$_GET['id'] : NULL;
		$n_qtde = isset ($_POST['qtde_'.$id]) ? (int)$_POST['qtde_'.$id] : 1;
		$objCar->AlterarQuantidade($id, $n_qtde);
	}
	
	

	echo "
	<h2>Carrinho de Orçamento</h2>
	<table width=\"700\" cellpadding=\"2\" cellspacing=\"0\">
	  <tr>
 	   <td width=\"300\" style=\"text-align:center\">Nome</td>
 	   <td width=\"120\" style=\"text-align:center\">Preço<br />Unitário</td>
    	<td width=\"100\" style=\"text-align:center\">Quantidade</td>
		<td width=\"120\" style=\"text-align:center\">Subtotal deste<br />Produto</td>
		<td width=\"60\" style=\"text-align:center;\">Excluir<br />Produto</td>
  	</tr>
	";
	

	$carrinho = isset ($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array();


	if (count ($carrinho) == 0)
	{
		echo "
		<tr>
		  <td colspan=\"5\" style=\"text-align:center\"><strong><em>
	 	   Não há produtos em seu carrinho de compas.</em></strong>
	 	</td>
		</tr>
		</table>
		<p><a href=\"?area=produtos\">Ver lista de produtos</a></p>
		";
	}
	else
	{
   		for ($a = 0; $a < count($carrinho); $a++)
		{
    		$id = $carrinho[$a]['id'];
    		$nome = htmlentities ($carrinho[$a]['nome']);
    		$preco = number_format ($carrinho[$a]['preco'], 2, ",", "");
			$qtde = $carrinho[$a]['qtde'];
			$subtotal = number_format(($carrinho[$a]['preco'] * $qtde), 2, ',', '');
			
			
			echo "
    		<tr>
	     	 <td style=\"border-left: dashed 1px black;\" class=\"celulas\">".$nome."</td>
	     	 <td class=\"celulas\">R$ ".$preco."</td>
	      	<td class=\"celulas\">
	     	 <form action=\"?area=carrinho&acao=alt_qtde&id=".$carrinho[$a]['id']."\"method=\"post\">
	      	<input type=\"text\" name=\"qtde_".$id."\" value=\"".$qtde."\" style=\"width: 30px;height: 15px;font-size:13px;text-align:center;border:inset 1px black;\" maxlength=\"4\" /><br />
	      	<input type=\"submit\" value=\"Alterar\" style=\"width: 80px;height: 20px;font-size:13px;margin:0;padding:0;cursor:pointer;background:#ccc;border: inset 1px black\" />
	     	 </form>
	      	</td>
	      	<td class=\"celulas\">R$ ". $subtotal . "</td>
	      	<td class=\"celulas\"><a href=\"?area=carrinho&acao=remover&id=" .$id. "\" onclick=\"return ConfirmarExclusaoProduto()\">Excluir</a></td>
	    	</tr>
	    	";
    	}// fecha for
    
   		echo "
    	<tr>
      	<td style=\"text-align:right\"><strong style=\"font-size:18px\">Total:</strong><br />Sem o valor do frete</td>
     	 <td style=\"text-align:center\"><strong style=\"font-size:18px\">".$_SESSION['total']."</strong></td>
     	 <td colspan=\"2\"> </td>
    	</tr>
    	</table>
    	<p><a href=\"?area=produtos\">Adicionar mais Items</a> | <a href=\"?area=finalizar\">Finalizar Pedido de Orçamento</a></p>
   	 ";
	}// fecha else
}
?>

finalizar.php

<title>DIGICOM - FINALIZAR PEDIDO DE ORÇAMENTO</title><?php
echo "
";
?>
<form method="post" action="mailto:seuemail@
seuprovedor.com.br?subject:TestedeE-mail" enctype="text/plain"
name="guiaform">
  <table width="50%" border="0" align="center">
<TR>
<td width="97" align="right">Nome:</td>
<Td width="295" colspan="3"><input type="text" name="Nome" size="32"
maxlength="50" /></Td>
</TR>
<TR>
<td width="97" align="right">Fone:</td>
<Td width="295" colspan="3"><input type="text" name="Fone" size="19"
maxlength="19" /></Td>
</TR>
<TR>
<td width="97" align="right">E-mail:</td>
<Td width="295" colspan="3"><input type="text" name="e_mail" size="32"
maxlength="50" /></Td>
</TR>
<Tr>
<Td width="97" align="right" valign="top">Comentário:</Td>
<td width="295" colspan="3" valign="top"><textarea name="Comentario"
rows="5" cols="50"></textarea></td>
</Tr></table>
  <table align="center" width="50%">
<TR>
<TD colspan="2">O que achou do site?</TD></TR>
<tr bgcolor="gray">
<Td><input type="radio" name="Opinião" value="bom" checked="true"
/>Bom</Td>
<TD><input type="radio" name="Opinião" value="otimo" checked="true"
/>Ótimo</TD>
<td><input type="radio" name="Opinião" value="razoável" checked="true"
/>Razoável</td></tr>
<TR><Td align="right"><input type="submit" value="Enviar" /></Td>
<TD><input type="reset" value="Deletar" /></TD></TR></table>
</form>
fico aguardando a resposta, flws.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não consigo colocar os dados do carrinho dentro do formulário para ser enviado pro meu e-mail, dexa eu explciar melhor, quando clico em finalizar pedido no carrinho.php vai apara a area finalizar.php que ja tem um formulário com nome, fone, e-mail e comentário e eu que os dados do carrinho (nome, quant, sub-total, total) fossem acresentados a esse formulário automáticamente ao ser clicado em finalizar pedido, ai o cliente só preencheria com seus dados e clicava em enviar e tudo ia para o meu e-mail.

é isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw pela ajuda, mas não resolveu o video vai só até a parte onde eu empaquei a de finalizar a compra (na verdade o video nem chega a finalizar a compra) por isso continua a minha duvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo. Você não coloca os dados no formulário. Você coloca os dados só no e-mail. Ao final da compra, você só coloca um formulário para ele preencher com os dados. Na página que recebe o action do formulário, aí sim você pega os dados do formulário e mais os dados do carrinho de compras.

 

Com base nisto, tente fazer e poste como tentou e aonde ficou com dúvida. Aí poderemos te ajudar melhor.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha eu fiz assim, coloquei o php do carrinho junto com o arquivo de finalizar e ficou assim:

<title>DIGICOM - FINALIZAR PEDIDO DE ORÇAMENTO</title><?php
echo "
";
?>
<form method="post" action="mailto:seuemail@
seuprovedor.com.br?subject:TestedeE-mail" enctype="text/plain"
name="guiaform">
  <p align="center">PORFAVOR, PREENCHA COM SEUS DADOS:</p>
  <table width="50%" border="0" align="center">
<TR>
<td width="97" align="right">Nome:</td>
<Td width="295" colspan="3"><input type="text" name="Nome" size="32"
maxlength="50" /></Td>
</TR>
<TR>
<td width="97" align="right">Fone:</td>
<Td width="295" colspan="3"><input type="text" name="Fone" size="19"
maxlength="19" /></Td>
</TR>
<TR>
<td width="97" align="right">E-mail:</td>
<Td width="295" colspan="3"><input type="text" name="e_mail" size="32"
maxlength="50" /></Td>
</TR>
<Tr>
<Td width="97" align="right" valign="top">Comentário:  </Td>
<td width="295" colspan="3" valign="top"><p>
  <textarea name="Comentario"
rows="5" cols="50"></textarea>
</p>
  <p><?php
$area = isset($_GET['area']) ? $_GET['area'] : NULL;
$acao = isset($_GET['acao']) ? $_GET['acao'] : NULL;
$objCar = new Carrinho;
echo "
	<h2>Seu Carrinho de Orçamento</h2>
	<table width=\"700\" cellpadding=\"2\" cellspacing=\"0\">
	  <tr>
 	   <td width=\"300\" style=\"text-align:center\">Nome</td>
 	   <td width=\"120\" style=\"text-align:center\">Preço<br />Unitário</td>
    	<td width=\"100\" style=\"text-align:center\">Quantidade</td>
		<td width=\"120\" style=\"text-align:center\">Subtotal deste<br />Produto</td>
		<td width=\"60\" style=\"text-align:center;\">Excluir<br />Produto</td>
  	</tr>
	";
	

	$carrinho = isset ($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array();


	if (count ($carrinho) == 0)
	{
		echo "
		<tr>
		  <td colspan=\"5\" style=\"text-align:center\"><strong><em>
	 	   Não há produtos em seu carrinho de compas.</em></strong>
	 	</td>
		</tr>
		</table>
		<p><a href=\"?area=produtos\">Ver lista de produtos</a></p>
		";
	}
	else
	{
   		for ($a = 0; $a < count($carrinho); $a++)
		{
    		$id = $carrinho[$a]['id'];
    		$nome = htmlentities ($carrinho[$a]['nome']);
    		$preco = number_format ($carrinho[$a]['preco'], 2, ",", "");
			$qtde = $carrinho[$a]['qtde'];
			$subtotal = number_format(($carrinho[$a]['preco'] * $qtde), 2, ',', '');
			
			
			echo "
    		<tr>
	     	 <td style=\"border-left: dashed 1px black;\" class=\"celulas\">".$nome."</td>
	     	 <td class=\"celulas\">R$ ".$preco."</td>
	      	<td class=\"celulas\">
	     	 <form action=\"?area=carrinho&acao=alt_qtde&id=".$carrinho[$a]['id']."\"method=\"post\">
	      	<input type=\"text\" name=\"qtde_".$id."\" value=\"".$qtde."\" style=\"width: 30px;height: 15px;font-size:13px;text-align:center;border:inset 1px black;\" maxlength=\"4\" /><br />
	      	<input type=\"submit\" value=\"Alterar\" style=\"width: 80px;height: 20px;font-size:13px;margin:0;padding:0;cursor:pointer;background:#ccc;border: inset 1px black\" />
	     	 </form>
	      	</td>
	      	<td class=\"celulas\">R$ ". $subtotal . "</td>
	      	<td class=\"celulas\"><a href=\"?area=carrinho&acao=remover&id=" .$id. "\" onclick=\"return ConfirmarExclusaoProduto()\">Excluir</a></td>
	    	</tr>
	    	";
    	}// fecha for
    
   		echo "
    	<tr>
      	<td style=\"text-align:right\"><strong style=\"font-size:18px\">Total:</strong><br />Sem o valor do frete</td>
     	 <td style=\"text-align:center\"><strong style=\"font-size:18px\">".$_SESSION['total']."</strong></td>
     	 <td colspan=\"2\"> </td>
    	</tr>
    	</table>
    
   	 ";
	}// fecha else
?>
</p></td>
</Tr></table>
  <table align="center" width="50%">
<TR>
<TD colspan="2">O que achou do site?</TD></TR>
<tr bgcolor="gray">
<Td><input type="radio" name="Opinião" value="bom" checked="true"
/>Bom</Td>
<TD><input type="radio" name="Opinião" value="otimo" checked="true"
/>Ótimo</TD>
<td><input type="radio" name="Opinião" value="razoável" checked="true"
/>Razoável</td></tr>
<input type="hidden" name="opc_enviar" value="1">
			<input type="hidden" name="id_ptodutos" value="<?php echo $id ?>">
			<input type="hidden" name="nome_produto" value="<?php echo $nome ?>">
            <input type="hidden" name="preco" value="<?php echo $preco ?>">
    <input type="hidden" name="quantidade" value="<?php echo $qtde ?>">
<TR><Td align="right"><input type="submit" value="Enviar" /></Td>
<TD><input type="reset" value="Deletar" /></TD></TR></table>
</form>
O que eu fiz: acrescentei o php do carrinho e retirei as ações de finalizar comprar e continuar comprando, então ná pagina de finalizar aparece o formulário de dados e o carrinho, os dados são enviados, mas somente do ultimo item da lista de produtos, a parte que eu coloquei para ser enviado os produtos foi essa:

<input type="hidden" name="opc_enviar" value="1">
			<input type="hidden" name="id_ptodutos" value="<?php echo $id ?>">
			<input type="hidden" name="nome_produto" value="<?php echo $nome ?>">
            <input type="hidden" name="preco" value="<?php echo $preco ?>">
    <input type="hidden" name="quantidade" value="<?php echo $qtde ?>">
resumindo problema não resolvido, pois não sei como pegar todos os dados do carrinho...

agurado ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias, li sua resposta com mais atenção, e vamos ve se entendi, eu coloco o formulário de dados abaixo do carrinho, e quando clico em finalizar compra já serão enviado todos os dados, certo? Se não for assim me corrija, e se for assim me diga como faço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria algo mais ou menos assim:

<html>
<body>
<form name="formulario" method="post" action="recebeDados.php">
	<label for="nome">Nome</label>
	<input type="text" name="nome" id="nome" />
	<label for="email">Email</label>
	<input type="text" name="email" id="email" />
	<label for="telefone">Telefone</label>
	<input type="text" name="telefone" id="telefone" />
	<input type="submit" name="enviar" value="Enviar">
</form>
</body>
</html>
recebeDados.php

<?php
$objCar = new Carrinho();
$dadosCarrinhoCompras = "
        <h2>Seu Carrinho de Orçamento</h2>
        <table width=\"700\" cellpadding=\"2\" cellspacing=\"0\">
          <tr>
           <td width=\"300\" style=\"text-align:center\">Nome</td>
           <td width=\"120\" style=\"text-align:center\">Preço<br />Unitário</td>
        <td width=\"100\" style=\"text-align:center\">Quantidade</td>
                <td width=\"120\" style=\"text-align:center\">Subtotal deste<br />Produto</td>
                <td width=\"60\" style=\"text-align:center;\">Excluir<br />Produto</td>
        </tr>
        ";
        

        $carrinho = isset ($_SESSION['carrinho']) ? $_SESSION['carrinho'] : array();


        if (count ($carrinho) == 0)
        {
                $dadosCarrinhoCompras .= "
                <tr>
                  <td colspan=\"5\" style=\"text-align:center\"><strong><em>
                   Não há produtos em seu carrinho de compas.</em></strong>
                </td>
                </tr>
                </table>
                <p><a href=\"?area=produtos\">Ver lista de produtos</a></p>
                ";
        }
        else
        {
                for ($a = 0; $a < count($carrinho); $a++)
                {
                $id = $carrinho[$a]['id'];
                $nome = htmlentities ($carrinho[$a]['nome']);
                $preco = number_format ($carrinho[$a]['preco'], 2, ",", "");
                        $qtde = $carrinho[$a]['qtde'];
                        $subtotal = number_format(($carrinho[$a]['preco'] * $qtde), 2, ',', '');
                        
                        
                        $dadosCarrinhoCompras .= "
                <tr>
                 <td style=\"border-left: dashed 1px black;\" class=\"celulas\">".$nome."</td>
                 <td class=\"celulas\">R$ ".$preco."</td>
                <td class=\"celulas\">
                 <form action=\"?area=carrinho&acao=alt_qtde&id=".$carrinho[$a]['id']."\"method=\"post\">
                <input type=\"text\" name=\"qtde_".$id."\" value=\"".$qtde."\" style=\"width: 30px;height: 15px;font-size:13px;text-align:center;border:inset 1px black;\" maxlength=\"4\" /><br />
                <input type=\"submit\" value=\"Alterar\" style=\"width: 80px;height: 20px;font-size:13px;margin:0;padding:0;cursor:pointer;background:#ccc;border: inset 1px black\" />
                 </form>
                </td>
                <td class=\"celulas\">R$ ". $subtotal . "</td>
                <td class=\"celulas\"><a href=\"?area=carrinho&acao=remover&id=" .$id. "\" onclick=\"return ConfirmarExclusaoProduto()\">Excluir</a></td>
                </tr>
                ";
        }// fecha for
    
                $dadosCarrinhoCompras .= "
        <tr>
        <td style=\"text-align:right\"><strong style=\"font-size:18px\">Total:</strong><br />Sem o valor do frete</td>
         <td style=\"text-align:center\"><strong style=\"font-size:18px\">".$_SESSION['total']."</strong></td>
         <td colspan=\"2\"> </td>
        </tr>
        </table>
    
         ";
        }// fecha else
// aqui dentro você add os dados digitados no formulário        
// depois disto, você envia o e-mail normalmente, onde $dadosCarrinhoCompras terá os dados do carrinho de compras

Veja que isto é um exemplo. Para enviar o e-mail, você pode utilizar a função mail ou então uma classe, como a PHPMailer.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz como voçê aconselhou, olha o que apareceu:

Fatal error: Class 'Carrinho' not found in C:\xampp\xampp\htdocs\Site\recebeDados.php on line 2

 

Sei que o erro é na linha dois, mais não consigo identificar por que está ocorrendo este erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.