Boa tarde, estou tentando desenvolver minha primeira loja virtual e estou com problemas na hora de enviar e receber os produtos no carrinho de compras. Preciso enviar um ou mais produtos escolhidos para a pagina do carrinho de compras e exibi-los mas não estou conseguindo. Poderiam examinar meu código e me corrigir?
Este é a pagina pre-compra.php onde recebo o produto da pagina principal, o cliente escolhe a quantidade e envio para a pagina carrinho de compras:
<div class="wrapper">
<div class="section">
<div class="container">
<?php
$action = "";
$id = "";
$comando = "";
if (isset($_GET["id"])) {
$id = $_GET['id'];
$comando = "ATUALIZAR";
$ehAtualizacao = true;
} else {
if (isset($_POST["codigo_barras"])) {
$id = buscaIDdoProdutoPeloCodigoInterno($conexao, $_POST["codigo_barras"]);
$comando = "NOVO";
$ehAtualizacao = false;
} else {
$comando = "ATUALIZAR";
$ehAtualizacao = true;
}
}
$Produto->setCodigo($_POST["codigo_barras"]);
}
if ($comando == "ATUALIZAR"){
$produto = buscaProduto($conexao, $id);
$ehAtualizacao = true;
$codigo = $produto->getCodigo();
$mensagem = "Produto localizado!";
$action = "carrinho.php";
}
?>
<form action="<?=$action ?>" method="post">
<input type="hidden" name="id" value="<?=$produto->getId() ?>" />
<div class="row">
<div class="col-md-6">
<div class="tab-content">
<div class="tab-pane active" id="product-page1">
<img src="../cadastro/fotos/<?=$produto->getFoto() ?>" width="235px" height="245px" width="auto" height="auto" alt="..." />
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="col-md-6">
<div class="product-details">
<a href="#">
<h3 class="title"><?=$produto->getMarca()->getNome() ?></h3>
</a>
<p class="description">
<?=$produto->getnome() ?>
</p>
<h4><span class="price">R$ <?=$produto->getPreco() ?></span></h4>
</div>
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Descrição do Produto
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<?=$produto->getDescricao() ?>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Composição do Produto
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
<ul style="padding-left: 20px;">
<li style="list-style-position: outside;"> 100% Porcelana</li>
<li style="list-style-position: outside;"> Tinta Atóxica</li>
<li style="list-style-position: outside;"> Modelo Americano</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div> <!-- Acordeon -->
</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-6">
<div class="actions">
<div class="pull-left">
<div class="form-group">
<select name="huge" class="selectpicker" data-style="btn" data-menu-style="dropdown-blue">
<option value="en" selected="">Selecione a Quantidade</option>
<option value="quantidade">1</option>
<option value="quantidade">2</option>
<option value="quantidade">3</option>
<option value="quantidade">4</option>
<option value="quantidade">5</option>
</select>
<a href="carrinho.php">
<button type="button" class="btn btn-success btn-fill" type="submit">Adicionar ao Carrinho</button></a>
<a href="index.php">
<button type="button" class="btn btn-fill">Ver Mais Produtos</button></a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<?php
$_SESSION['produto']{ $produto->getId()} = array(
'nome' => $produto->getnome() ,
'preço' => $produto->getPreco() ,
'descricao' => $produto->getDescricao() ,
'quantidade' => 'quantidade'
);
// adicionar itens ao carrinho
if(isset($_GET['produto']) && isset($_GET['a'])){
if($_GET['a'] == 'adicionar'){
if(!empty($_SESSION['carrinho'])){
foreach($_SESSION['carrinho'] as $item => $produto){
if($item == $_GET['produto']){
$_SESSION['carrinho'][$item]['quantidade'] = $produto['quantidade'] + 1;
break;
} else {
foreach($produtos as $produto){
if($produto['id'] == $_GET['produto']){
$_SESSION['carrinho'][$produto['id']] = ['nome'=>$produto['nome'], 'preco'=>$produto['preco'], 'descricao'=>$produto['descricao'],'quantidade'=>1];
break;
}
}
}
}
} else {
foreach($produtos as $produto){
if($produto['id'] == $_GET['produto']){
$_SESSION['carrinho'][$produto['id']] = ['nome'=>$produto['nome'], 'preco'=>$produto['preco'],'descricao'=>$produto['descricao'], 'quantidade'=>1];
}
}
}
}
}
?>
Esta é a pagina carrinho.php onde recebo os produtos e faço as exibições:
<form action="checkout.php" method="POST">
<?php
if(!empty($_SESSION['carrinho'])){
$total = 0;
print "<strong> carrinho (" . count($_SESSION['carrinho']) . ")</strong><br>";
foreach($_SESSION['carrinho'] as $item => $detalhes){
print $detalhes['nome'] . " x " . $detalhes['quantidade'] . $detalhes['descricao'] ."<br>";
$total += $detalhes['quantidade'] * $detalhes['preco'];
}
print "<strong>total: </strong>" . number_format($total, 2);
} else {
print "<center><h4><br><br>carrinho vazio</h4></center>";
}
?>
<div class="row">
<div class="col-md-8">
<center><h2>Seu Carrinho de Compras</h2></center>
</div>
<div class="col-md-10 col-md-offset-1">
<div class="table-responsive">
<table class="table table-shopping">
<thead>
<tr>
<th class="text-center"></th>
<th >Produto</th>
<th class="th-description">Descricao</th>
<th class="text-right">Preco</th>
<th class="text-right">Quantidade</th>
<th class="text-right">Valor</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="img-container">
<img src="assets/img/shopping.jpg" alt="...">
</div>
</td>
<td class="td-name">
'Moleskine Agenda'
</td>
<td>
<b>Meeting Notes</b>
<p>
Most beautiful agenda for the office, really nice paper and black cover. Most beautiful agenda for the office.</p>
</td>
<td class="td-number">
<small>R$</small>49
</td>
<td class="td-number">
<small>x</small>25
</td>
<td class="td-number">
<small>R$</small>1,225
</td>
<td class="td-actions">
<button type="button" rel="tooltip" data-placement="left" title="Remover item" class="btn btn-danger btn-simple btn-icon ">
<i class="fa fa-times"></i>
</button>
</td>
</tr>
<tr>
<td class="td-actions">
<div class="info info-horizontal">
<div class="icon icon-blue icon-sm">
<i class="fa fa-shopping-cart"></i>
</div>
</div>
</td>
<td>
<div class="description">
<h4> Digite seu CEP: </h4>
<a href="javascript: void(0);">Buscar Cep</a>
</div>
</td>
<td>
<div class="form-group has-success">
<input type="text" value="" class="form-control" placeholder="00000-000"/>
</div>
</td>
<td class="td-number">
<button class="btn btn-primary btn-fill">Consultar</button>
</td>
<td class="td-number">
<p>Valor do Envio Sedex</p>
</td>
<td class="td-number">
<small>R$</small>5,99
</td>
</div>
</div>
</td>
</tr>
<tr>
<td colspan="2"></td>
<td></td>
<td class="td-total">
Total
</td>
<td class="td-price">
<small>R$</small>12,999
</td>
<td> <button type="submit" class="btn btn-info btn-fill btn-l" ahref="login.php">Finalize seu Pedido <i class="fa fa-chevron-right"></i>
</button></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div><!-- end container -->