Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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>
";
} $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();
?>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.
Poste sempre seu código dentro do bbcode CODE pra ficar melhor de visualizá-lo.