Ir para conteúdo
Aureo Almeida

Determinar quantidade de produtos no carrinho de compra sem múltiplas seleções

Recommended Posts

Estou tentando modificar um projeto de carrinho de compras cujo script peguei entre vários que está disponível na internet. Ele funciona bem, porém com uma determinada lógica: a quantidade de itens de um produto é aumentada conforme a quantidade de vezes que o cliente adicionar o produto. Ou seja, se ele for na página do produto para inseri-lo 3 vezes, ele aumenta a quantidade para 3. O problema é que no projeto que estou desenvolvendo os produtos possuem possibilidade de escolha de quantidade, pois podem ser vários e não dá para a pessoa ir e clicar 15 vezes nele.

E não estou conseguindo mudar está lógica. O que eu gostaria é que quando o cliente selecionasse uma quantidade, e isso não é um problema, essa quantidade fosse recebida na página do carrinho junto com outras informações do produto puxado pela id dele no banco de dados.

Este é o script básico:

<?php
	$item_carrinho = 0;
	if(count($_SESSION['carrinho']) > 0){
		foreach($_SESSION['carrinho'] as $id_produtos_carrinho => $quantidade_produto_carrinho){
			$item_carrinho++;
			$query = "SELECT * FROM psd_produtos WHERE psd_produtos.prd_id = '".$id_produtos_carrinho."'";
			$read_produto_carrinho = mysqli_query($conn, $query) or die(mysql_error());
			
			if(mysqli_num_rows($read_produto_carrinho) > 0){
				foreach($read_produto_carrinho as $read_produto_carrinho_view);
				$valor_total_produto_carrinho = $quantidade_produto_carrinho * $read_produto_carrinho_view['prd_valor'];
				$valor_total_venda += $valor_total_produto_carrinho;
			}
		echo '
		<tr>
			<td class="car-item">'.$item_carrinho.'</td>
			<td class="car-nome">'.$read_produto_carrinho_view['prd_nome'].'</td>
			<td class="car-valor">'.number_format($read_produto_carrinho_view['prd_valor'], 2, ',', '.').'</td>
			<td class="car-qtd">'.$quantidade_produto_carrinho.'</td>
			<td class="car-total">'.number_format($valor_total_produto_carrinho, 2, ',', '.').'</td>
			<td class="car-opcao"><a href="deletar-prod1.php?id='.$id_produtos_carrinho.'" class="opcao">Excluir<a/></td>
		</tr>
	';
		}
	}
	?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Carlos Antoliv
      Senhores, tudo bem?
       
      Tô numa dúvida aqui... tá matando.
      Estou tentando contar a quantidade de itens do carrinho de compras.
       
      Este aqui é o input que aparece a quantidade de itens:
      <td><input type="text" name="prod[<?php echo $result['id']?>]" value="<?php echo $qtdProd = $result['quantity']?>" size="1"  />                          </td>  
      Aparece normalmente a quantidade de itens. Ex: arroz   2  <<< este 2 fica dentro do input, onde posso alterá-lo.
      Minha ideia é mostrar na tela a quantidade total de itens que estão no carrinho.
       
      To usando esse código aqui pra aparecer o número total.... e até funciona:
       
                         <?php                                     if(isset($_SESSION['carrinho'])){                                     $amount = 0;                                     $count = 0;                                     $size = count($_SESSION['carrinho']);                                                                         foreach($_SESSION['carrinho'] as $data){                                     $count++;                                     $amount += $data['quantity'];                                     if($size == $count){                                     echo "TOTAL = $amount";                                     }                                 }                             }                                 ?>  
      O problema é que está exibindo o seguinte erro:
      Warning: Illegal string offset 'quantity' in C:\...\www\sistema\carrinho-de-compra\carrinho.php on line 90
       
      Erro na linha 90, no caso, neste linha aqui: 
          $amount += $data['quantity'];
       
      Daí travei um pouco.
       
      Alguém que poderia dar força ? Tá osso aqui.
      tmj
       
       
    • Por Sapinn
      Opa galera tudo beleza? Estou desenvolvendo um pequeno e-commerce de camisas. Enquanto fazia o carrinho de compras topei com um problema como posso mostrar os produtos no carrinho e como mostrar assim que for inserirdo um novo produto ? Fiz algumas buscas mas nenhuma me ajudou realmente. 
       
      Carrinho de compras:

       
      <!-- ==================================== CARRINHO DE COMPRAS =================================== -->     <div class="offcanvas offcanvas-end areaShoppingCart" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">       <div class="offcanvas-header">         <h4 class="offcanvas-title fw-bold" id="offcanvasNavbarLabel"><i class="bi bi-cart4"></i> Carrinho de Compras         </h4>         <button type="button" class="text-reset closeAreaShoppingCart" data-bs-dismiss="offcanvas" aria-label="Close"><i class="bi bi-x"></i></button>       </div>       <span data-bs-toggle="modal" data-bs-target="#leiaimportante" class="link_text">Leia Importante <i class="bi bi-info-circle"></i></span>       <hr />       <div class="offcanvas-body cart_body">     <!--     <div class="product_content">           <div class="trash_icon"><a href="#" class="link_text"><i class='bx bx-trash ' title="Excluir do carrinho"></i></a></div>           <a href="" class="container_card_product">             <div class="d-flex">               <div class="cart_img_product">                 <img src="../assets/images/camisas/257139328_126851229744515_2923407250030929456_n.webp.jpg" alt="">               </div>               <div class="cart_info_product">                 <div class="cart_name_product">Camisa do Paris San-German Branca</div>                 <div class="cart_price_product">Preço: 120,00</div>               </div>             </div>           </a>           <hr />         </div> -->       </div>     </div>  
      JS:
      let cartShirt = []; let btn = document.querySelector(".btnShoppingCart"); let idShirt = btn.getAttribute('data-product-id') let nameShirt = document.querySelector(".name_shirt").innerText; let priceShirt = document.querySelector(".price_shirt").innerText; let symbol_shirt = document.querySelector(".symbol_shirt").getAttribute('src'); let urlShirt = window.location.href; let infoShirts = {    "id": idShirt,    "name": nameShirt,    "price": priceShirt,    "img": symbol_shirt,    "url": urlShirt, } jsonShirt = JSON.stringify(infoShirts); let productsInCart = JSON.stringify(localStorage.getItem("futprime_cart")); btn.addEventListener('click', () => {    if (productsInCart == '') {       cartShirt.push(jsonShirt);       localStorage.setItem('futprime_cart', cartShirt)    }else{       let obj = productsInCart.concat(jsonShirt);       cartShirt.push(obj.replace(/[\\"]/g, ''))       /* console.log(cartShirt); */       localStorage.setItem('futprime_cart', cartShirt);       /* console.log(localStorage.getItem('futprime_cart')); */    }    insertInCartHTML(); }); console.log(localStorage.getItem('futprime_cart')); /* localStorage.clear(); */ function insertInCartHTML(){     }  
    • Por Caio Vargas
      Olá pessoa tudo beleza
      Estou criando um ecommerce porém estou com uma dúvida de como posso calcular o frete altura largura e comprimento de vários produtos no carrinho fiz a comparação do site dos correios e está dando diferença mínima de 4 reais alguém pode me ajudar ?
    • Por mbolzanes
      Olá.
       
      Preciso alterar o nome do meu tema na tray de MINHA SACOLA para MEU CARRINHO
      Alguém que possa ajudar?

    • Por dutopfave
      Boa Tarde, estou criando uma loja virtual, e a questão é voltado para o carrinho de compras, ate agora ta tudo certo, funcionando normal, porém tem produtos que tem vários tamanho, exemplo eu tenho um tênis, e eu posso escolhe se quero tamanho 41 ou 42, blz ate ai ele registra certinho no banco, porém, se por a caso eu também queira compra o do tamanho 41, e dps volto la e compro o 42, invés de cria 2 produto no carrinho ele acaba atualizando o mesmo, pegando o ultimo tamanho q escolhi e na quantidade aumentando pra 2, vou manda o código aki, pq o ideal seria aparece 2 produto no carrinho, pq são 2 tamanho diferente, e isso ta quebrando a cabeça:
      Código:
      if($_GET['acao'] == 'adds'){ $qtds = $_POST['qtds']; $cart_tamanho = $_POST['cart_tamanho']; if(!isset($_SESSION['carrinho'][$id]) && $_SESSION['carrinho'][$id] < $Verifica_qtd_row2){ $_SESSION['carrinho'][$id] = $qtds; $_SESSION['cart_tamanho'][$id] = $cart_tamanho; }elseif($_SESSION['carrinho'][$id] < $Verifica_qtd_row2){ $_SESSION['carrinho'][$id] += $qtds; $_SESSION['cart_tamanho'][$id] = $cart_tamanho; }else{ $_SESSION['carrinho'][$id] = 1; $_SESSION['cart_tamanho'][$id] = $cart_tamanho; } }  
×

Informação importante

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