Ir para conteúdo

POWERED BY:

Arquivado

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

Rogieri

carrinho de compras php e pagseguro

Recommended Posts

Boa noite, estou com um pequeno problema, eu tenho o carrinho de compras funcionando certinho ele ate envia todos os produtos para o pagseguro, o problema esta na quantidade dos intens que estão no carrinho de compras o script esta enviando apenas a ultima quantidade para todos os itens no pagseguro, se alguem puder me ajudar obrigado e até mais.

 

 

<?php

// Incluindo o arquivo da biblioteca
include('pgs.php');

// Incluindo conexão ao banco de dados e controle de carrinho de compras
include('funcoes.php');

// Criando um novo carrinho
$pgs=new pgs(array(
 'email_cobranca'=>'scott_publicidade@hotmail.com',



));





$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 Compras</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\">Qunatidade</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
{ 


	$arrID = array();




  		for ($a = 0; $a < count($carrinho); $a++)
	{
         $arrID[] = $carrinho[$a]['id'];
		//echo $arrID . "<br />";
		?>


           <?php
   		$id = $carrinho[$a]['id'];
   		$nome = htmlentities ($carrinho[$a]['nome']);
   		$preco = number_format ($carrinho[$a]['preco'], 2, ",", "");
   		$desc = htmlentities ($carrinho[$a]['descricao']);
		$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=\"2\" /><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>
    	";

// Busca os produtos do carrinho no banco de dados






		?>




 <?php
   	}// 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\">Continuar Comprando</a> | <a href=\"?area=finalizar\">Finalizar Pedido</a></p>
  	 "; 










}// fecha else
}

?>
<?php
//include 'funcoes.php';
//$id = $_GET['id'];
//$result = $pdo->query("SELECT * FROM produtos WHERE id ='$id'");
//while($reg = $result->fetch(PDO::FETCH_ASSOC)){

//$id = $reg["id"];
//$nome = $reg["nome"];
//$peso  = $reg["peso"];
//$valor = $reg["preco"];

//}


?>
<?php
if(@$arrID){
$produtos=$pdo1->query("SELECT id, nome, preco, peso
                        FROM produtos WHERE id IN (".
                         join(",",$arrID) . ")");



foreach($produtos as $produto){

 // Adicionando um produto
 $pgs->adicionar(array(
  array(
     "descricao"=>$produto['nome'],
     "valor"=>$produto['preco'],
     "peso"=>$produto['peso'],
     "quantidade"=> $qtde,
 "id"=>$produto['id']
   ),

 ));



}

}





// Mostrando o botão de pagamento
$pgs->mostra();

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a class Clarrinho

Creio que no metodo " AlterarQuantidade " , o id do produto seja obrigatorio.

sendo assim no codigo

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);
       }

deveria ser

if ($acao == "alt_qtde" && isset ($_GET['id']))
       {
               $id = (int)$_GET['id'];
               $n_qtde = isset ($_POST['qtde_'.$id]) ? (int)$_POST['qtde_'.$id] : 1;
               $objCar->AlterarQuantidade($id, $n_qtde);
       }

 

Verifique tambem se no método "AlterarQuantidade" está fazendo a alteração correta.

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.