1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

PhP - Carrinho de Compras

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&dollar; <?=$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&dollar;</small>49
                                </td>
                                <td class="td-number">
                                    <small>x</small>25
                                </td>
                                <td class="td-number">
                                    <small>R&dollar;</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&dollar;</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&dollar;</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 -->
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags php ou faça a sua própria pergunta.