Nessa vídeo aula iremos aprender como criar um carrinho de Compras usando Session, adicionando, removendo produtos, e alterando a quantidade.
Código da Vídeo Aula
Tabela Produtos
Tabela: produtos id INT AUTO_INCREMENT PRIMARY KEY nome VARCHAR(255) preco DECIMAL (10,2) imagem VARCHAR(50)
conexao.php
<?php mysql_connect("localhost", "root", ""); mysql_select_db("mxmasters"); ?>
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Video Aula sobre Carrinho de Compras</title> </head> <body> <?php require("conexao.php"); $sql = "SELECT * FROM produtos"; $qr = mysql_query($sql) or die(mysql_error()); while($ln = mysql_fetch_assoc($qr)){ echo ' <h2>'.$ln['nome'].'</h2> '; echo 'Preço : R$ '.number_format($ln['preco'], 2, ',', '.').' '; echo '<img src="image/'.$ln['imagem'].'" /> '; echo '<a href="carrinho.php?acao=add&id='.$ln['id'].'">Comprar</a>'; echo ' <hr /> '; } ?> </body> </html>
carrinho.php
<?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } //adiciona produto if(isset($_GET['acao'])){ //ADICIONAR CARRINHO if($_GET['acao'] == 'add'){ $id = intval($_GET['id']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; } else { $_SESSION['carrinho'][$id] += 1; } } //REMOVER CARRINHO if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['carrinho'][$id])){ unset($_SESSION['carrinho'][$id]); } } //ALTERAR QUANTIDADE if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['carrinho'][$id] = $qtd; }else{ unset($_SESSION['carrinho'][$id]); } } } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Video Aula sobre Carrinho de Compras</title> </head> <body> <table> <caption>Carrinho de Compras</caption> <thead> <tr> <th width="244">Produto</th> <th width="79">Quantidade</th> <th width="89">Preço</th> <th width="100">SubTotal</th> <th width="64">Remover</th> </tr> </thead> <form action="?acao=up" method="post"> <tfoot> <tr> <td colspan="5"><input type="submit" value="Atualizar Carrinho" /></td> <tr> <td colspan="5"><a href="index.php">Continuar Comprando</a></td> </tfoot> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo ' <tr> <td colspan="5">Não há produto no carrinho</td> </tr> '; } else { require("conexao.php"); $total = 0; foreach($_SESSION['carrinho'] as $id => $qtd){ $sql = "SELECT * FROM produtos WHERE id= '$id'"; $qr = mysql_query($sql) or die(mysql_error()); $ln = mysql_fetch_assoc($qr); $nome = $ln['nome']; $preco = number_format($ln['preco'], 2, ',', '.'); $sub = number_format($ln['preco'] * $qtd, 2, ',', '.'); $total += $ln['preco'] * $qtd; echo ' <tr> <td>'.$nome.'</td> <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td> <td>R$ '.$preco.'</td> <td>R$ '.$sub.'</td> <td><a href="?acao=del&id='.$id.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',', '.'); echo '<tr> <td colspan="4">Total</td> <td>R$ '.$total.'</td> </tr>'; } ?> </tbody> </form> </table> </body> </html>
Update:
Fiz uma versão do código dessa videoaula utilizando PDO, o código está um pouco diferente, porque foi separado em funções algumas operações, como adicionar o produto ao carrinho, retornar todos os produtos, etc. Espero que ajudem:
Otima video aula mas tem um pobleminha,
O Carrinho nao está somando os centavos
coloquei um produto de 49,90 e um produto de 60,00 e ele me deu que a soma e igual a 109,00 mas a resposta correta seria 109,90.
Mateus, o que ocorreu é na video aula eu somo o valor já formatado com number_format, o certo seria realizar o somatario, sem o valor formatado, pra na hora de exibir, mostrar o valor.
Ola David
Tudo bom?
Postei um questão no video aulas, mas até agora não tive resposta la, vou tentar aqui. !! rssss
Sou iniciante em PHP e achei super maximo a aula sua sobre carrinho de compra. Peguei seu código e transformei em solicitar somente orçamento, show de bola funfa perfeito, só que o seguinte, cada produto eu fiz em uma pagina cada um, e gostaria de saber como faço com seu código implementar para que ao adicionar no carrinho, seja feito individual para cada produto em paginas diferentes, entendeu? Pois no código atual ele pega pela sequencia dos produtos dentro do DB, e gostaria que ao adicionar o produto ao carrinho de orçamento, ele pegue o produto em questão escolhido. Dá pra você dar uma palhinha nesta questão. e Parabéns pelas aulas, quero um dia poder fazer igualzinho a você!! Abraçosss
Carlos, infelizmente estou sem tempo para responder, mas voltando a sua questão, eu respondi no VAB, e vou colocar a mesma coisa aqui :
Carlos o procedimento será o mesmo, terá um link na página do seu produto, com o identificador dele, q seria o ID, mais a ação q será feita, q seria add.
David,
Valeu pela atenção, como falei sou novato em PHP
então para enteder eu devo fazer assim:
Atual:
Solicitar Orçamento
Ficara:
Solicitar Orçamento
Fico no aguardo,
Um grande abraço !!!
Vai ficar na mesma maneira do anterior. Pq vc colocaria o valor 01 no ID?
Então David,
o 01 se refere ao ID cadastrado no DB do produto.
Quando faço essa mesma coisa em uma outra pagina individual de um outro produto, ele sempre adiciona o primeiro produto cadastrado no DB.
Carlos, um exemplo de página única :
http://pastebin.com/Xjm8uKb5
Olá David,
Peguei o código de exemplo de pagina unica, aplique, mas esta dando erros.
– Neste código de exemplo onde eu configuro a ID certa que ele tem que pegar?
Se puder me auxiliar fico grato, pois sou novato em PHP..
Um abração !!
David,
Consegui acertar para pegar o produto em questão, valeu pelas dicas.
Queria sugerir uma outra video aula. Criar Area Admin … será que virá ?? rssss
Abraçosss
Olá David,
Eu enchendo denovo:
Esta funcionando tudo certo as funções como deveriam ser, mas fica printado este erro na tela:
Notice: Undefined index: id in D:\EasyPHP-5.3.8.0\www
O que pode ser isso, ja fiz de tudo mas não consegui sanar !!!
Um abração
compleando esta dando erro na linha 6:
//Conexão com Banco de Dados
include(‘../../Connections/conexao.php’);
//resgata o ID da URL
$id = (int)$_POST[‘id’]; // esta é a linha 6
//Seleciona o produto filtrado pelo id
$sql = “SELECT * FROM produtos WHERE id = ‘$id'”;
//Executa o SQL
$query= mysql_query($sql);
//Resgata os valores da tabela
$row = mysql_fetch_assoc($query);
Carlos, está dizendo que $_POST[‘id’] não existe, quer dizer q vc não está passando via formulário o campo id como método post
Ola David,
Mudei para _GET, como estava no seu exemplo, mas continua dando o erro !!!
Help !! rssss
Vamos por partes:
1 – Na página inicial tem os produtos, e links para mostrar detalhes desse produto
2 – Os links precisam passar um identificador para vc sabe que produto deve mostrar.
3 – Para passar uma informação via URL, vc precisa do sinal de interrogação:
Veja que foi adicionado um valor 1, claro isso deveria ser dinamico, como na vídeo aula.
4 – Quando é clicado no link, ele vai para página produto.php, e vou passar uma informação via URL, no caso uma variável chamada id, que recebe um valor 1.
5 – Para resgatar um valor da URL, utiliza a variavel superglobal chamada $_GET.
Pq fiz essa lista ? Para dizer q o erro q está ocorrendo é devido que vc não está passando a informação via URL, no caso o id. Então quando vc tenta pega o valor do ID, esse id na url não existe, ele apresenta essa mensagem q vc está dizendo de erro.
David,
Cara entendi sua explicação e fiz as alterações, e agora está tudo funcionando, como disse sou novato em PHP, nada como falar com quem entende!
Cara muito obrigado pela sua paciência e explicação !! Você é o cara !!! rssss
Ahh.. vc não me respondeu uma questão anterior, tem como fazer uma aula explicando como fazer um Painel Admin?
Abraços !!!!
Carlos, não tenho previsão de criar video aulas ou tutoriais atualmente, devido ao meu trabalho.
Olá David,
tudo bom?
Eu denovo atormentando, rsssss
Coloquei no ar para funfar o script mas esta dando este erro:
Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at /home/ghedivan/public_html/orcamento-produto.php:1) in /home/ghedivan/public_html/orcamento-produto.php on line 38
Engraçado que nos testes antes de enviar por definitivo, isto não estava dando erro.
O que pode ser?
Um abração !!!
bom teria um outro meto de criar um carrinho sem utilizar array?
Luiz, vc pode utilizar banco de dados para guardar o carrinho; Eu tenho uma aula só sobre array, pode te ajudar a entender a aula de carrinho
http://www.davidchc.com.br/video-aula/php/entendendo-array-no-php/
Olá David,
Dá um help ai pra mim de uma questão anterior que mandei, please !! rssss
Abraços !!!
Esse erro é pq tem alguma tag HTML antes de ser chamada da session_start()
David,
Eu coloquei uma tag de comentário para ver se inibisse a tal tag html que não estou achando antes da chamada.. o erro parou de apresentar , mas, não esta executando a chamada. eu fiz um teste em outro servidor e funcionou… que configuração no servidor pode ser para habilitar a session_start ?
A ideia é vc colocar o session_start, na primeira linha na sua página. Se vc utiliza query string, onde vc insere o conteudo da página de acordo com a URL, vc colocaria o session_start na index.php, no começo da página, isso vai evitar essa mensagem.
Não funfou David …. da o erro :
Warning: session_start() [function.session-start]: Cannot send session cookie – headers already sent by (output started at /home/ghedivan/public_html/Connections/conexao.php:1) in /home/ghedivan/public_html/index.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/ghedivan/public_html/Connections/conexao.php:1) in /home/ghedivan/public_html/index.php on line 3
Engraçado que um outro servidor funciona !!!
Coloquei assim na index.php
$qtd){
$id = intval($id);
$qtd = intval($qtd);
if(!empty($qtd) || $qtd 0){
$_SESSION[‘produtos’][$id] = $qtd;
}else{
unset ($_SESSION[‘produtos’][$id]);
}
}
}
}
}
?>
completando o que não saiu no outro comment:
$qtd){
$id = intval($id);
$qtd = intval($qtd);
if(!empty($qtd) || $qtd 0){
$_SESSION[‘produtos’][$id] = $qtd;
}else{
unset ($_SESSION[‘produtos’][$id]);
}
}
}
}
}
?>
Coloca a session, antes de inclui a conexão:
Salve David,
aparentemente funfou a session, mas quando abre o carrinho fica essa mensagem
Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/ghedivan/public_html/orcamento-produto.php:1) in /home/ghedivan/public_html/orcamento-produto.php on line 1
Mas o código esta funcionando de acordo
Abraçossss !!!
Carlos, vc precisa verificar sempre se tem algum html antes do session_start, pra evitar isso, sempre coloque antes de qualquer codigo HTML, essa mensagem só ocorre pq tem algum espaço antes de publicar o session.
Uma maneira pra vc evitar essa mensagem tbm, é colocar no começo do código:
Na primeira linha a sua página:
Na uma linha da sua página
Salve David,
Olha já verifiquei, não existe nenhum html antes . E coloquei os parametros que vc passou, mas mesmo assim não funfou !!! mas o código está funcionando direito, só a mensagem no topo da pagina fica aparecendo!!
Carlos, esse mensagem de aviso, é devido algum item antes de ser chamado ele, vou colocar do proprio manual do php
Salve David,
Nada …. continua o problema !! Não sei mais o que fazer .. rsssss
Fala uma coisa, em todas as paginas tenho que colocar a session_start() ?
Carlos não precisa, a pena q vc precisa recuperar um valor da session. Outra possibilidade, é se estiver um usado o charset para o arquivo usando UTF-8 com BOM, que deixa uma assinatura no começo do arquivo. Se tiver um UTF-8, utilize sem BOM
parabéns cara, isso era exatamento o que eu buscava. Você é o cara.
Estarei sempre por aqui pode ter certeza!
Boas,
Estas de Parabéns, meu !!
Tanto tempo a procura do codigo e consegui encontra-lo e tudo graças a ti.
Muito obrigado pela a tua ajuda xD
Q bom q videoaula pode te ajudar. abrs
Olá,
antes de tudo parabens por esta video aula.
Estou tentando implementar este carrinho de compras em um sistema, mas surgiu uma dúvida.
vou tentar explicar…
Na pagina do produto, antes do cliente clicar no botão comprar, ele tem a opção de escolher uma das cores disponiveis para
aquele produto.
Quando ele clica em comprar, a página carrinho recebe via $_POST o ID do produto e a COR escolhida pelo cliente. Então o
sistema grava no array $_session[‘carrinho’] o ID e atribui a quantidade uma ele ficando assim:
Array([3]=>1 [5]=>2 [13]=>1) e assim por diante.
Depois, usando foreach eu recupero os outros dados dos produtos usando cada ID q está no $_session[‘carrinho’].
Até ai funciona direitinho, más a minha dúvida fica em relação ao parâmetro COR.
Eu não estou conseguindo atribuir a cor escolhida em seus respectivos produtos.
É possivel fazer isto neste sistema de carrinho de compras?
Adriel, fiz um tutorial sobre esse assunto, sobre adicionar opções no carrinho de compras. No caso, foi a opção de cor, mas pode ser estendida para opções. Talvez te ajude.
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
era exatamente isto q eu estava tentando fazer, porem eu nao consegui colocar pra rodar este código.
ADICIONAR: o sistema acrescenta apenas 1 item ao carrinho e ao acrescentar outro item, ele está sobrepondo o anterior.
ALTERAR: quando clica em alterar a quantidade, o item do carrinho desaparece.
não sei se eu fiz algo de errado mas mesmo assim a sua idéia eh muito boa.
Adriel, repare que é necessário adicionar tanto o Código do Produto, quanto o Código da Cor, ou o nome da cor. Dessa maneira o índice do array ele será sempre único, não sobrescrevendo, veja o exemplo abaixo com nome das cores para ficar mais facil de visualizar:
Repare que tenho 3 produto de cores diferentes , para atestar isso basta dá um print_r
A ideia é vc colocar junto com id do produto o codigo da cor, ou nome da cor, transformando esse valor único.
Agora consegui entender e funcionou direitinho, tanto para acrescentar 1 unica opção quanto para varias opções ao carrinho.
Vlw mesmo… me ajudou muito 🙂
outra coisa q eu me esqueci…
para reverter o base64_encode(serialize()) eu tive q usar unserialize(base64_decode()).
do jeito q está no tutorial: $items = base64_decode(unserialize($options)); não funcionou comigo.
Agora q vi, q inverti a posição, mas consertei no post
Boa tarde mas como q eu vou fazer para envia o pedido das compras??? ow nao tem jeito?! grato…
Paulo, ou vc enviar essa informações por email, ou grava num banco de dados. Lembrando q mesmo mudando de página, sem fechar o navegador, vc continua conseguindo recuperar as informações do seu carrinho, da mesma maneira foi na hora de montar o carrinho.
Eu tenho um exemplo de enviar o pedido, com integração com pagseguro.
http://www.davidchc.com.br/tutoriais/php-tutoriais/integracao-com-pagseguro/
Boas David!
Está a dar um erro ao actualizar. Incrementa automaticamente a quantidade :\
O problema deve estar no “up”, que não está declarado em nenhum lado.
//ALTERAR QUANTIDADE
if($_GET[‘acao’] == ‘up’){
Se puder ajudar agradecia!
Obrigado!
João, comparei seu código com q está no post, veja no formulário do carrinho, indica o valor up, na action
Faltava o ?acao=up no action do form, obrigado!
Espero uma video-aula com a finalização da encomenda 😉
Continuação de bom trabalho!
Eu tenho tutoriais no site, como integrar com pagseguro, pode ajudar.
Sim esses já vi.
Mas eu sou de Portugal, não deve dar.
Mas o principio é a basicamente este, mesmo q vc use não esse tipo de serviço, no exemplo do tutorial, o pagseguro
Segue url para teste:
http://guilhermefreire.com.br/teste_carrinho
Eu não consigo adicionar o mesmo produto com cores diferentes.
Quando eu coloco no código o inicio da sessão : session_start();
Eu consigo adicionar o mesmo produto com outras cores, porém não consigo deletar.
No aguardo.
Guilherme, te respondi no post http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Gostaria de saber como faria pra finalizar essa compra, e inserir um cadastro pro cliente e inserir esses dados do carrinho em fatura também !
Rafael, veja o forum do MxMasters, onde tinha colocado o código primeiramente, que no tópico mostro varias maneiras de vc implementar a finalização do carrinho
http://mxmasters.com.br/comunidade/viewtopic.php?f=50&t=2138
Olá David,
primeiramente quero agradecê-lo por dividir seu conhecimento conosco, os iniciantes nessa área em constante inovação.
Seguindo passo a passo, consegui fazer o carrinho.
Agora estou querendo personalizá-lo conforme as minhas necessidades, em uma delas eu inclui um botão para solicitar embalagens de presente.
Comecei a mexer dentro da ação up, mas não sei como fazer para o produto que tiver sido selecionado como embalar para presente seja marcado ao visualizar o carrinho:
foreach($_POST[‘presente’] as $cod => $pres){
$cod = intval($cod);
$pres= isset($pres) ? “on” : “off”;
echo $pres.”presente $cod “;
if(!empty($pres) || $pres==”on”){
}
}#foreach
Pode me ajudar?
Grata
Olá Andreia. Você quer adicionar opções ao carrinho. Eu tenho um tutorial falando sobre isso, e acho que ele pode te ajudar:
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Agradeço pela rápida resposta, mas será que seria este o caso, mesmo?
Tomara que não rs, agora que eu consegui fazer funcionar certinho (tenho bastante dificuldade com scripts novos para mim).
Eu já havia olhado este tutorial e vi que lá mudam muitas coisas, eu teria que fazer esta mudança “dástrica” mesmo?
Obrigada e parabéns pelos tutos e video-aulas
Andreia, vendo sua pergunta, creio que o tutorial não vai te ajudar. Pq no caso vc terá ou produto com embalagem ou sem. Para isso não precisa fazer como tutorial, vc pode trabalhar com array multimimensional
Para recuperar, será basicamente a mesma coisa:
Veja que continuo pega o valor o ID, a quantidade, e agora consigo ver se terá embalagem ou não.
Olá David,
muito obrigada pela atenção.
Acredito que isso resolva também o meu problema com o cálculo do frete, hoje eu o calculo e trago o valor no carrinho, mas ao atualizar a página ele perde os valores de CEP e valor_frete, ao tentar jogá-lo para uma sessão exibe erro:
Fatal error: Uncaught exception ‘Exception’ with message ‘Serialization of ‘SimpleXMLElement’ is not allowed’ in [no active file]:0 Stack trace: #0 {main} thrown in [no active file] on line 0
Mas como eu utilizaria o array multidimensional com a sessão?
if(!isset($_SESSION[‘carrinho’])){
$_SESSION[‘carrinho’] = array();
}
MUITO OBRIGADA!!!
Andreia, essa informação vc não vai colocar no carrinho, vc precisa guarda em outra session. Tente fazer um (cast) no valor retornado:
Se vc precisa ter mais informação no frete, ai vc coloca ele em multidimensional, como mostrei no carrinho.
Olá David,
agradeço muito sua ajuda, mas não estou sabendo em que momento utilizar a sua sugestão. A função que utilizo para calcular o frete é:
if($_GET[‘acao’]==’frete’){
function calculaFrete($cod_servico, $cep_origem, $cep_destino, $peso, $altura=’2′, $largura=’11’, $comprimento=’16’, $valor_declarado=’0.50′) {
# OFICINADANET – Código dos Serviços dos Correios
$correios = “http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=”.$cep_origem.”&sCepDestino=”.$cep_destino.”&nVlPeso=”.$peso.”&nCdFormato=1&nVlComprimento=”.$comprimento.”&nVlAltura=”.$altura.”&nVlLargura=”.$largura.”&sCdMaoPropria=n&nVlValorDeclarado=”.$valor_declarado.”&sCdAvisoRecebimento=n&nCdServico=”.$cod_servico.”&nVlDiametro=0&StrRetorno=xml”;
$xml = simplexml_load_file($correios);
if($xml->cServico->Erro == ‘0’) {
return $xml->cServico->Valor;
} else {
return false;
}
}
#chamo assim
if(isset($_POST[‘cep’])) {
$cep_destino=str_replace(“-“,””,$_POST[‘cep’]);
$cep_origem =”26255170″;
$peso=”0.2″;
$cod_servico=”41106″;
$frete=calculaFrete($cod_servico,$cep_origem,$cep_destino,$peso);
}
}#frete
Onde devo utilizar a Session como você indicou?
Vou utilizar o valor do frete e o CEP de destino.
Muito obrigada.
Andreia, desculpe a demora em responder. Mas tente fazer assim:
Olá David,
nem sei como te agradecer porque passei vários dias pesquisando e tentando de um jeito, tentando de outro, e nada, pois nenhuma destas minhas tentativas estavam incorretas…
MUITO OBRIGADA MESMO!!!
É assim mesmo Andreia. Mas o importante é q vc estava tentando fazer, e com isso a gente sempre aprende algo novo, ou aprendemos melhor o já sabiamos.
Olá David,
cara essa video aula me ajudou muito, fiz tudo certo o carrinho já esta funcionado , mais eu não consigo mostra a imagem do produto no carrinho. como eu poderia ta fazendo isso?
Maicon, veja q apenas coloquei o nome da imagem , vc tem q colocar na hora de exibi o caminho + o nome da imagem.
Olá David,
gostaria de saber como eu faço para mostra a imagem do produto.
Olá David, primeiramente quero te agradecer pela video aula e por desponibilizar seu tempo para nos ajudar.
Quero uma ajuda sua para exibir o total do carrinho de compras na topo do site, onde fica geralmente escrito
meu carrinho de compras.
Ex: 20 DVDs + 30 tvs = 50 produtos.
Te agradeço desde já.
Olá Vicente. Vc pode utilizar uma função do PHP, chamado array_sum com a função array_values:
O array_values vai retornar um array só com os valores, no caso a quantidade.
E o array_sum vai fazer o somatorio.
Muito obrigado.
valew demais pelo tutorial david…. a opção
{
$_SESSION[‘carrinho’][$id] += 1;
}
pois ao reinicializar a página com F5 o comprador adicionava mais um item no carrinho
Pode remover essa parte sem problemas. abrs
David, o proximo pásso seria pegar os dados do carrinho e salvar na tbla pedidos_produtos e tbla pedidos.
você pode explicar como fazer?
no aguardo
Rodrigo
blza david precisa responder não, vou esperar até vc responder. rs
Blz Rodrigo. Meu tempo está curto, devido os trabalhos q estou fazendo. Mas fiz um exemplo de gravar essas informações na tabela
https://gist.github.com/2655868
testando…
David, ele esta adicionando certinho o pedido mas pedido_produto nao ta rolando
seila, acho q nao ta rolando o for na session do carrinho
git://gist.github.com/2710944.git
ja era ja arrumei kkk
Ótimo Tutorial!
Gostaria de saber como faço para clicar em comprar em comprar e não sair da pagina de produtos.
Minha intenção é exibir a lista compra em pop up quando clicado em um botão.
Abraço
Matheus, nesse caso vc precisará trabalhar com ajax, pra q vc enviar as informações do ID e da quantidade para uma outra página, sem precisar sair da página.
http://jsfiddle.net/SZQJd/
Bom dia, muito bom o tutorial! Integrei ao meu site como solicitação de orçamento e funciona perfeitamente. Porém, eu preciso que a quantidade possa ser definida ainda na página de produtos e a quantidade possa ser alterada sem para isso precisar do botão de atualizar, você sabe me dizer como fazer isso? E se é possível só com PHP?
Obrigada.
Olá Anita. Sobre a quantidade da página de produto, você pode trabalhar com um formulário.
Na hora do carrinho, em vez de trabalhar com get, vc irá trabalhar com post.
Sobre atualizar a quantidade, sem o botão, isso tbm incluí sem atualizar a página, em forma assincrona ?
David, obrigada pela resposta, ainda mais tão rápida. Sim, na verdade quero que a pessoa altere a quantidade se precisar e já clique em enviar, quero ter certeza de que venha o valor que a pessoa realmente queria, pois há o risco de a pessoa esquecer de clicar nesse botão atualizar.
Outra coisa, como fazer para escolher mais de um produto? Eu penso em um checkbox ou se o campo de quantidade estiver vazio não pega os dados…
Então Anita, talvez a maneira mais facil, é vc usar o Javascript, para disparar o formulário ao modificar o valor da quantidade. Vamos dizer q na quantidade, eu declara uma classe chamada qtd. E no formulário, de uma id chamada frmCarrinho. Vou exemplifica usando jQuery
Veja que aqui digo, quando a pessoa clicar a quantidade, e tira o foco do input( blur), ele vai disparar o formulário, assim a pessoa não precisa clicar atualizar.
Sobre escolher mais de produto, creio que seja uma lista de produtos em uma página, vc pode usar um checkbox, enviando em array, exemplo:
carrinho.php
Meu site está ficando muito bom, muito obrigada pelas dicas, elas ajudaram muito. Usei elas e implementei mais coisas no código.
Agora meu problema é outro. Como o carrinho trabalha com POST eu não consigo mais deletar itens ou voltar à página de produtos e acrescentar outros produtos, ele sempre reseta a quantidade (pelo código faz sentido), existe alguma maneira de contornar isso? Por exemplo, depois do foreach do carrinho armazenar os dados na SESSION?
Agradeço a ajuda.
Anita, vc não precisa apenas trabalhar com post, e vc pode trabalhar com get e post. No caso o POST seria para adicionar e alterar. Já o GET vc pode apenas para deletar; Para voltar ao produto, vc pode colocar um link no produto no carrinho.
Olá David, gostei do vídeo, e agradecer pelo código :D, estou fazendo umas alterações no seu código queria saber como faço para quando pessoa adicione um mesmo produto só que com tamanho diferente, apareça no carrinho de compras:
Exemplo: Tenis Nike – Tamanho 36 – Valor 50,00
Tenis Nike – Tamanho 40 – Valor 55,00
Pois quando clico em adicionar um produto do mesmo seguimento, ele altera produto que ja esta no carrinho. Como faço isso?
Fernando, eu fiz um tutorial q pode te ajudar:
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Sim, eu havia entendido isso. O meu problema é que após isso eu não consegui mais salvar a session, o botão deletar parece limpar toda a sessão, e não só o item. Sair da página também reseta a sessão.
Eu acredito que o problema é que no foreach eu não chamo a session em momento nenhum para salvar os dados dela, porém, não estou conseguindo entender onde colocar a session para salvar os dados que vêm do post.
Como posso colocar o meu código para você visualizar?
Olá Anita. Desculpa essa demora em responder, tive alguns problemas, e só puder voltar agora. Vc poderia me mostrar o código pra ver o q pode está ocorrendo. Coloque no pastebin.com, e depois coloque o link aqui nos comentários.
Bom dia gostaria de sabe se vc tem o enviar os produtos para eu colcar no carrinho?
Paulo, não entendi sua duvida.
Olá, parabéns pela video aula fico muito bom.
Eu estou com o seguinte problema no meu carrinho quando eu atualizo a pagina com F5 ele atualiza a quantidade de produtos no carrinho, como eu posso resolve isso???
Ricardo, vc pode remover essa ação:
Olá David, obrigado pela vídeo aula, me ajudou muito.
Porém estou com um problema…
Se, depois de adicionar um produto ao carrinho eu recarregar a página, usando o próprio navegador, a quantidade de produtos da textbox aumenta. Ela recarrega a página e entende que eu adicionei outro produto ao carrinho. Não sei como resolver isso… Se vc puder me ajudar seria legal…
Obrigado mais uma vez cara, té mais.
Cataho, dá uma olhadinha nessa resposta q falei para o Ricardo Nunes, q é a mesma questão.
http://www.davidchc.com.br/video-aula/php/carrinho-de-compras-com-php/#comment-1099
Valeu David, me ajudou muito cara! Achei outra solução para o problema:
Quando o produto é adicionado ao carrinho usamos GET para pegar o valor do ID, como já falei aí em cima… A solução é colocar um
<>
depois que é dado o <>, redirecionando para a mesma página na hora do refresh, a variaivel do GET se perde, e não é incrementado o mais um aos produtos.
Flw pessoal, té mais!
🙁
Poxa, tudo funciona perfeitamente! Mas faltou algum tipo de finalização da transação… Talvez um botão que envie a lista de produtos para um email, finalize a página e redirecione o usuário para uma pagina informando o sucesso da transação, neh?
Mto obrigado e Aguardo.
wellpe, a ideia era mostrar um começo, q o aluno a partir dai desenvolvesse a partir de pesquisa, pra melhorar o carrinho e tbm aprender novas coisas. Eu fiz um tutorial sobre integração com pagseguro, q pode te orientar:
http://www.davidchc.com.br/tutoriais/php-tutoriais/integracao-com-pagseguro/
Olá David, muito boa a vídeo aula, agora me deparei com um problema… como fazer para enviar e receber os dados do carrinho em outra página? Sei que a pergunta é básica, mas ainda não domino o PHP e estou com essa dúvida…
vlw
Ronaldo, lembre q guardei essa informação na SESSION, logo poso recuperar em qualquer página, desde q inicie session_start() .
Olá David, ta faltando na atualização o seguinte, se o usuario for no campo de quantidade do carrinho colocar 999999, ele soma deveria ter um limite até 50 ou 20.
Jones, isso vai depender da regra de estoque, mas a ideia do video é ensinar a logica do carrinho , a partir dai você consegue adicionar as suas regras de negócio
é realmente mto difícil para quem é inicializado ha pouco tempo. Já quebrei a cabeça demais hombre!! Olhei o tuto com pagseguro, mas nele não tem nenhuma base que esclareça que variáveis pegar, para enviar os produtos da lista por email … os dados dos clientes chegam traquilamente mas a lista dos produtos nada!!! é lenda!! Uma Luz aew Pls, antes q eu enlouqueça!! 😀
Wellpe, o tutorial q fiz foi baseado usando as informações da videoaula, mostra exatamente como pegar os valores do formulário, e do carrinho pra enviar pagseguro. O que pode ocorrer é q utilizei filter_input_array para resgatar os valores do formulário, mas vc pode utilizar o $_POST, sem problema
http://www.davidchc.com.br/tutoriais/php-tutoriais/integracao-com-pagseguro/
cara esta dando o seguinte erro quando eu clico pra adicionar o produto ao carrinho >Unknown column ‘id’ in ‘where clause’
edjonh, está informando que a coluna id não existe na sua tabela
Olá David
Obrigado por compartilhar conhecimento isso ajuda bastante principalmente que nem eu que estou começando nesta Área de Desenvolvimento Web
sua vídeo aula foi muito boa obrigado mesmo 🙂
Boa noite!
Estou fazendo um site onde o cliente poderá fazer um pedido online.
Segui a aula do carrinho de compras e está funcionando, mas como posso finalizar o pedido, sem utilizar o pagseguro, somente o cliente informando a forma de pagamento se é dinheiro ou cartão, e o troco, assim incluindo estes dados para o banco de dados. E gerar um pedido com os dados do cliente e os dados da compra, e assim enviar esse pedido por e-mail.
Grata,
Boa Noite. Vc precisa criar uma tabela pra guardar informações do cliente, dos pedidos, e dos produtos dos pedidos. Fiz um exemplo de como poderia ser.
O processo seria basicamente:
O cliente adiciona os produtos no carrinho
O cliente finaliza a compra
Se não estiver logado, precisa se logar ou se cadastrar ( tabela cliente)
Para finalizar adiciona as informação dos pedidos (tabela pedidos), quem é o cliente, forma de pagamento, status da compra
Depois de adiciona os produtos do pedidos, relacionado ao pedidos (pedidos_produtos)
Finaliza enviando um email para o cliente, e para o administrador
No meu site para o cliente chegar no carrinho ele precisa estar logado.
Vocês tem alguma vídeo aula, ou conhecem site ou script que pode me ajudar?
Obrigada :)!
Eu tenho uma videoaula ensinando a fazer um sistema de login, está no mxmasters.
http://www.mxmasters.com.br/php-sistema-de-login-e-senha-2/
Aqui um exemplo de como inserir as informações no banco de dados
https://gist.github.com/2655868
Só está dando erro nesta parte:
//Recuperar o ID do Cliente, já logado
$idCliente = $_SESSION[‘cliente’][‘id’];
O cliente seria o nome a tabela (cliente) e o id(o campo id da tabela cliente)?
Isso mesmo, acho q dessa forma fica mais organizado, e mais fácil de identificar depois
E como eu armazeno no banco o valor total?
Silva, vc tem duas formas. Ou armazena os preços dos produtos na tabela de pedidos_produtos, dessa forma vc consegue fazer a soma via SQL, exemplo:
SELECT SUM(preco*qtd) as total FROM pedidos_produtos WHERE id_pedido = 2
Ou quando vc fizer o loop para inserir os produtos na tabela pedidos_produtos, fazer o somatório, e alterar na tabela pedidos,
Fiz assim, mas nao estou conseguindo:
$total = 0;
foreach($_SESSION[‘carrinho’] as $idproduto => $qtd){
$stritens_pedido = “INSERT INTO itens_pedido SET idpedido =’%u’, idproduto = ‘%u’, quantidade = ‘%u’, preco = ‘%u'”;
$stritens_pedido = sprintf($stritens_pedido, $idpedido, $idproduto, $qtd, $preco);
mysql_query($stritens_pedido);
“SELECT SUM(preco*qtd) as total FROM itens_pedido WHERE idpedido = 2”;
}
mysql_query(“UPDATE pedido SET total = ‘$total’ WHERE idpedido = ‘$idpedido'”);
Esta dando erro na variavel preco, e a tabela total é pra fazer na tabela pedido ou itens_pedido?
Desculpa demora, só agora q estou voltando a mexer no site, e fazer tutorial e novas aulas,rs.
Vou posta um exemplo no link, talvez fique mais facil de entender:
http://pastebin.com/SUQQ27nY
Ola, boa noite
esta tudo funcidonando bem porem em vez de aparecer que não há produtos, fica listando uma linha na tabela sem o nome sem o codigo e eu não consigo nem remove-lo.
lara, vc fez a restrição com count($_SESSION[‘carrinho’]), pra verificar se algum valor nele ?
David, como eu posso fazer um carrinho dessa maneira:
Eu tenho uma tabela pizza e uma tabela bebidas, cada pizza e cada bebida tem um ID. Então eu criei duas session, uma para pizza e outra para bebida. Depois eu insiro numa tabela pedido os dados do pedido como: codpedido, data, tipopagamento e cliente. Feito isso eu pego o codpedido e adiciono numa tabela detalhespedido onde tem os campos: codpedido, produto, qtd e valor.
Aí que vem o problema, como eu tenho duas session, eu não consigo inserir os dados das duas juntas.
Sabe me dizer como resolver ou se eu estou fazendo errado em criar duas session.
Aguardo.
Marcos, no caso como vc duas sessions, vc pode fazer dois loops sem problema:
Ou vc pode fazer tudo na mesma session, basta incrementar na chave do array a inicial do tipo de produto pra evitar de sobreescrever, exemplo:
Na hora de listar
David
Obrigado por responder. Eu já tinha conseguido resolver do primeiro modo que você passou. Mas eu achei o segundo muito interessante. Vou experimentar.
Obrigado! Abraços
Tambem precisava incluir no banco a forma de pagamento e o troco, mas não deu certo:
Forma Pagamento
Selecione…
Dinheiro
Cartão Debito
e o troco
Troco
‘
Como insiro no banco o valor total, e a forma de pagamento?
Basta criar uma campo na tabela de pedidos para inserir a forma de pagamento escolhida pelo cliente, na hora de finalizar a compra
Quando atualizo ele aumenta sempre um produto pq? :/ e como finalizo a compra?
Obrigada
Olá Joana. Ele adiciona mais um, pq definimos na hora de inserir, se existir esse produto na session, ele incrementa o valor:
Pra evitar isso basta fazer essa modificação:
Pra finalizar precisaríamos armazenar essas informações, ou enviar esses dados por email. Vamos um exemplo de modelagem:
Aqui um script q como poderia inserir essas informações na tabelas criadas.
https://gist.github.com/2655868
Obrigada a parte de inserir mais um produto já está resolvida, só não percebi como finalizo. Por exemplo á beira do botão continuar comprando deveria ter um que diz finalizar compra e guardava os dados na base de dados ou mandava por email e redireccionava para outra página. Era isso que pretendia fazer, só não sei como. Dá para explicar, ou tem outro tutorial para isso? Obrigada 🙂
Olá Joana, tenho um tutorial falando sobre integração do pagseguro, q vc pode utilizar como base pra finalizar a loja
http://www.davidchc.com.br/tutoriais/php-tutoriais/integracao-com-pagseguro/
otima aula…..
no meu carrinho eu estou usando um input pra passar a quantidade ja no formulario,mas nao to conseguindo passar ela para o carrinho e colocar na tabela de itens…tem como vc me ajudar por favor???
Luis, posta seu exemplo no pastebin.com, e dpois me passa o link pra poder dá uma olhada.
no meu carrinho eu estou usando um input pra passar a quantidade ja no formulario,mas nao to conseguindo passar ela para o carrinho e colocar na tabela de itens…tem como vc me ajudar por favor???
OLA DAVID, EU NAO CONSIGO FINALIZAR O CARRINHO , GOSTARIA DE CRIAR UM FORMULARIO E ENVIAR O FORMULARIO E OS PRODUTOS DO CARRINHO POR EMAIL, JA TENTEI MAS NAO DÁ CERTO, PODE ME AJDAR POR FAVOR?
Arivaldo, dá uma olhada no tutorial sobre pagseguro q fiz, q vc pode tirar como base pra vc fazer o q quer:
http://www.davidchc.com.br/tutoriais/php-tutoriais/integracao-com-pagseguro/
Bom dia!
Gostaria de saber se você poderia dar aula particular para a finalização do carrinho virtual? E o preço?
Olá Silva, infelizmente não dou aula particular, pq realmente estou sem tempo. Se vc precisa criar uma loja virtual, recomendo utilizando opencart, magento, pq tem varios itens já pronto, e vc pode só customizar. Opencart é mais facil de mexer e modificar que o magento.
olá seus tutorial mim ajudou bastante,como vou enviar todos esses produtos para o banco de dados depois do carrinho.
David, boa tarde.
Estou com uma dificuldade, no momento da atualização da quantidade, teria como eu realizar uma consulta para que eu possa verificar se a quantidade informada no form é maior que a que tenho no estoque, já quebrei a acabeça, mas não estou conseguindo evoluir, teria como me dar uma luz, antes dele adicionar a quantidade na sessão validar a quantidade.
@Dartanhan, vc pode antes de inserir fazer a verificação?
Para verificar?
Ola David, eu construi um carrinho com base na sua aula, So fiz uma alteração, entre a página de produtos (index.php) e o carrinho (carrinho.php), coloquei uma página de visualização(visualizacao.php), para exibir mais detalhes.Como pretendo vender camisetas, a escolha do sexo e do tamanho são importantes, daí essas escolhas estariam na página de visulização. Porém encontrei problemas, por exemplo, criei um formulário de opções tipo “radio” do sexo (masculino ou feminino)e do tamanho(P,M,G,GG)via html com um botão de envio, eu preciso obrigar o comprador a selecionar essas opções antes de clicar no botão comprar e direcionar para o carrinho. Mas é necessário que se faça isso utilizando o msm botão que vc criou no video, este aqui// “echo ‘Comprar‘;// para que a verificação seja feita no carrinho e o produto seja resgatado, ou seja, mesmo que eu use “if” para condicionar que o botão comprar apareça somente depois que for selecionado sexo e tamanho, ele nunca vai aparecer por que eu não enviei o formulario. Existe alguma maneira de vincular o formulario”sexo e tamanho” html, ao botão de compra //”echo ‘Comprar‘;// ????? obrigado! Aguardo resposta.
@Diego, tenho um tutorial mostrando como vc pode adicionar opções ao carrinho de compra
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Boa noite David, segui o seu tutorial e até agora está tudo ok.
Eu apenas gostaria de exibir duas informações sobre o carrinho no topo do site que fica visível em todas as páginas.
As informações são quantos itens tem no carrinho e o total da compra.
Eu até consegui mas nao ta atualizando “em tempo real”, precisa de mais um refresh para ele atualizar e não estou conseguindo encontrar o que está de errado.
Obrigado
@João, vc pode extrair a informação sempre depois das ações de inserção, alteração e excluir no carrinho, pq como terá q atualizar mesmo, vc resgatará as informações atuais depois das ações
Olá David. Excelente tutorial.
Estou tentando colocar este carrinho de compras em um WordPress. Estou desenvolvendo um site dinâmico e os produtos não vão ter preços no site, o cliente enviaria os produtos para o carrinho (pedido) e seriam enviados os dados de todos os produtos para o email administrador da loja, para que este envie o orçamento. Sabe como eu consigo fazer a inserção destas páginas no wordpress? Procurei um plugin que fizesse isso mas não achei (wp e-commerce, Woocommerce, etc…)
O carrinho eu consegui inseri, com ajuda do plugin Allow PHP in Posts and Pages, mas não tenho como testar, uma vez que não sei como insiro o botao “comprar” na descrição do produto.
Resumindo o que precisaria:
1-Colocar os produtos (sem preço) no carrinho.
2-Forçar o cliente a preencher um formulario de cadastro para habilitar a função do botão finalizar compra.
3-Enviar o email para o administrador.
Se alguém puder ajudar, mesmo que com uma indicação de um plugin wordpress, agradeço.
Abço
oi David
Quero aprender a criar uma loja virtual completa, queria saber se vc dispoe de dvd ou tutorial passo a passo.
@Fernando, infelizmente não tenho, tem alguns tutoriais q pode ajudar, como integração com PagSeguro, Trabalhando com Retorno automático do PagSeguro, Adicionar opções dos produtos ao carrinho de compra com php.
Rapais muito boa suas aulas, tenho uma duvida eu tenho o modo de pagamento via html só que o retorno não consigo por segurança no preço pessoal altera no form gostaria de mudar para api mais não tenho nem ideia de como chamar a função para pagar, no meu caso é liberação de conta então seria só o id do usuário poderia me dar uma força em como eu faço isso? rs
Não seria interessante vc adotar um e-commerce, como opencart, q já vem como muitos modulos de pagamento, correios, etc. Talvez seja uma alternativa melhor. Caso prefira desenvolver, tem dois posts relacionado ao pagseguro usando a API deles.
Amigão, não sei o que fiz de errado, mas agora o meu carrinho não esta adicionando novos produtos.
Sempre mostra somente um produto, se eu adicionar outro ao invés de ficar um em baixo do outro só mostra o ultimo adicionado.
Tem ideia do que pode ser?
Olá,
Sabe me dizer porque não esta add no carrinho os produtos adicionados?
Ele só mostra o ultimo produto adicionado, com isso sempre 1.
Teria alguma ideia do que esta errado?
Quando add o produto só mostra um. Quando adiciono outro é substituído, com isso sempre mostra apenas um.
Sabe dizer o que pode ser de errado?
Tiago, o q acontece q o ID do produto será chamada do array na Session, vc tem q verificar se vc tá enviando o ID do produto pra ser adicionado na session
parabéns pelo post excelente abordagem , meus parabéns … um grande abraço ! continue assim. A mensagem que é passada nunca éh esquecida …
Não to conseguindo resolver algo bem simples, formatação de valores.
Fiz conforme a vídeo aula, tudo está funcionando, index.php e carrinho de compras. o único problema é na soma do subTotal.
Por exemplo:
qtd valor subtotal
1 x 500 = 500
1x 600 = 600
Total = 1100,00 // da tudo ok
2 x 500 = 1000
1x 600 = 600
Total = 601,00 // ele não entende valores acima de 1000 ou igual.
como faço para resolver esse erro? qualquer coisa mando os arquivos.
Carlos, foi erro meu, pq tava somando o valor formatado com number_format, veja q agora no código da aula, q deixei, tá consertado esse problema
Valew pela VA David finalizei a mesma hoje e gostaria de aproveitar ela em um projeto meu, mas me deparei com um situação que não consigo resolver.
Não consegui pegar o nome do produto na session de jeito nenhum.
Quando dou um .print_r. ele vem assim:
Array
(
[1] => 2
[2] => 4
)
não consegui passar o nome de jeito nenhum, poderia dar uma dica?
E aproveitando você teria algo explicando como salvar esse carrinho em um txt. Preciso em txt pois vou importar ele em um sistema aqui da empresa.
Valeu mesmo e muito obrigado pela atenção.
@Adilson, no carrinho ele só salva o ID do produto, sendo a chave do array, o valor é quantidade. Vc precisa recuperar essas chaves do array, e com ela pesquisar no banco de dados
Um exemplo, como salvar os valores do carrinho no txt, separando por: Nome do Produto, Preço, e Quantidade
ola David.
estou começando agora, e to com muitas dificuldades,
o programa roda perfeitamente, mas quero armazenar, os produtos no Banco de Dados, só que como armazenar, os nomes dos produtos, a quantidade dos produtos , preço final e qual cliente fez o “pedido”
??
GRATO.
Vinicius, dá uma olhada nesse dois comentários q postei aqui na video, q sugiro a forma das tabelas, e como fazer a inserção no banco de dados
http://www.davidchc.com.br/video-aula/php/carrinho-de-compras-com-php/#comment-1559
http://www.davidchc.com.br/video-aula/php/carrinho-de-compras-com-php/#comment-1624
Olá David, seu script é excelente…
Só estou tendo um problema, no inicio estava tudo certinho mas hoje quando clico em algum produto ele já inclui 2 na quantidade do carrinho…
agradeço desde já
André, vc pode alterar assim:
David tenho uma duvida, voce tem algun artivo onde mostra a finalização do pedido + bd ?
@Anderson, dá uma olhada nos comentários, que passo algumas formas de como pode finalizar o pedido.
OLá David eu utilizei o seu carrinho e a integração e estou recebendo este erro abaixo.
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\bv\finalizar.php on line 47
Fatal error: Uncaught exception ‘PagSeguroServiceException’ in C:\xampp\htdocs\bv\PagSeguroLibrary\service\PagSeguroPaymentService.class.php:100 Stack trace: #0 C:\xampp\htdocs\bv\PagSeguroLibrary\domain\PagSeguroPaymentRequest.class.php(627): PagSeguroPaymentService::createCheckoutRequest(Object(PagSeguroAccountCredentials), Object(PagSeguroPaymentRequest), false) #1 C:\xampp\htdocs\bv\finalizar.php(80): PagSeguroPaymentRequest->register(Object(PagSeguroAccountCredentials)) #2 {main} thrown in C:\xampp\htdocs\bv\PagSeguroLibrary\service\PagSeguroPaymentService.class.php on line 100
O que pode estar acontecendo ?
Abraços
Fala David, parabéns pela aula!
Estou precisando de uma ajuda…estou tentando criar venda de roupas e preciso, veja se consegue entender:
Selecione o tamanho: P, M, G, GG
A pessoa vai poder escolher somente um, né?
Como eu faço isso?
Pode dar esse help?
Obrigado, abs!
Vladimir, eu tenho um tutorial mostrando como adicionar opções ao produtos, q pode te ajudar:
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Olá!!!
Primeiramente parabéns pela vido aula, ja e o segundo projeto que uso esse carrinho de compra!!!
Uma duvida que eu tenho como eu faço para mostrar a quantidade total de produtos que tenho no meu carrinho? “voce tem 4 produtos no carrinho”
Henrique, vc pode fazer um loop:
David vc é fenomenal msm, amigo tudo aqui ta bacana, mais não adiciona os valores decimais tipo 50,30 quando adicino no banco só aparece 50,00 pode me ajudar?
obrigado….
David, eu aqui mais uma vez com minhas perguntas sem…sentido.rs
Cara, existe alguma forma de oferecer frete GRÁTIS a partir de um CEP específico?
Abraço
Sim, é possível, vc pode fazer tanto para um CEP ou faixa de CEP:
http://pt.wikipedia.org/wiki/C%C3%B3digo_de_Endere%C3%A7amento_Postal
Por favor, estou com uma duvida , e já tentei de outras maneiras , mas não consegui fazer ..
No vídeo , você tem uma tabela para guardar os pedidos, onde grava a quantidade de produtos , preço , etc..
No meu caso , eu tenho um tabela de pedidos_produtos , com os campos de id_pedido ,id_pedido, id_produto, quantidade e medida…
Ai é que tá , nao consigo passar no foreach , os valores que gostaria de quando eu digitar no campo de medidas , e depois no botao atualizar , ele mostrasse o campo como eu modifiquei.
Já tentei colocar dois foreach , mas nao deu resultado …
Como eu passo os dados , tanto da quantidade e medidas pelo foreach, de forma que eu digita para cada, um valor diferente , para depois serem gravadas na tabela pedidos_produtos ?
Blz Marcos. Tenho um tutorial mostrando como colocar opções no carrinho, creio que poderá te ajudar nessa questão:
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Olá David, eu novamente.rs
Cara, você pode dar uma explicação?
Como passar ao pagseguro FRETE GRÁTIS acima de um valor x?
Abs.
Vladimir, vc pode verificar o total do pedido, e definir o PagSeguroPaymentRequest::setShippingType, como valor 3, de não especifico, claro se tiver usando lib do Pagseguro
Bom dia David,
Inicialmente gostaria de agradecer pelo vídeo que me ajudou a abrir bastante a mente com relação a criação de um carrinho de compras.
Eu só gostaria de uma luz para implementação do carrinho de compra que vc ensinou no vídeo, onde quero adicionar ao carrinho a opção de cor.
Como exemplo tem o site da netshoes, onde na single de cada produto tem a opção de cor e ao finalizar a compra o sistema repete id do produto com cor e quantidade diferente.
Pode me ajudar a implementar essa opção utilizando o código que ensinou no vídeo?
Lucas, eu tenho um tutorial como adicionar opções ao produto, talvez te ajude:
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Show de bola.. eu implementei no código a parte de somar os centavos que no seu código nao estava fazendo.. ficou show de bola! Perfeito!
Você nem sabe como me ajudou postando seu código e essa vídeo aula. Muito obrigado.
Sucesso! Abraço!
Ola, admiro seu empenho!!!
Estou constituindo um sistema e preciso que seu carrinho de compras se integre com o boletophp, pode ajudar?
Tem algum botão de doação no seu site, gostaria de contribuir para seu trabalho, espetacular!
Bruno, se precisa algo já pronto, pra produção, recomendo utilizar um ecommerce, como OpenCart, que vem com todas as funcionalidade, inclusive vc encontra modulos de pagamentos com boleto bancário.
Viva David,
Entre muitos projectos de carrinhos gostei do seu, assim como do seu video/aula.
Fiz a experiência, que no Xamp, quer no próprio server do meu site, funciona tudo Ok excepto a imagem que não aparece.
Aparece apenas aquele quadrado quando há falta de imagem adicionada.
Tem conhecimento deste problema da parte de outros seguidores?
Como poderei resolvê-lo?
Cumprimentos
Abel Nunes
Abel, provavelmente é o caminho da imagem que está errado, na hora de vc chamá-la.
David me da uma ajuda pelo amor de Deus, n Consigo enviar os dados da session por email, estou usando teu carrinho em um site de orçamento e necessito urgente da sua ajuda pra poder implementar essa parte, so ela que esta falatndo pra funfar 100%, se puder ajudar serei grato eternamente.
vlw, sou seu fã.
Junim, da uma olhada nesse tutorial sobre integração do pagseguro, q poderá te ajudar, a capturar os dados do carrinho
http://www.davidchc.com.br/tutoriais/php-tutoriais/integracao-com-pagseguro/
Olá outra vez David, estou com uma dúvida, nesse seu carrinho tem como passar os parametros da session sem sair da pagina do produto, tipo quando a pessoa clicar em add ao carrinho aparecer um modal dizendo que o produto foi add, ai é so fechar o modal, sem sair da pagina do produto, Eai David isto é possivel?, utilizando seu modelo de carrinho.. Obg fico no aguardo pela resposta..
Sim, é possível, vc terá q fazer em ajax pra poder add o produto ao carrinho, sem sair da página
Primeiramente queria agradecer pela vídeo aula maravilhosa, obrigado por compartilhar seu conhecimento. Sou iniciante em PHP, e estou tentando fazer um sistema de orçamento, segui sua vídeo aula deu tudo certo, só não estou conseguindo pegar a lista de produtos que estão no carrinho e manda-la por email, queria pegar os produtos diretos sem ter q armazenar no DB. Poderia me dar uma dica de como fazer isso ?
Wendel, vc irá fazer a mesma coisa q vc faz na página do carrinho, iniciar a session, e recuperar o valores da $_SESSION[‘carrinho’]
Ola David, excelente tutorial parabéns.
Será que seria algo muito difícil colocar alem do valor total dos produtos no carrinho, o valor total da quantidade também ?.
Jhonatan, o valor total da quantidade vc pode fazer assim:
Olá David, primeiramente obrigado pela vídeo-aula, excelente informação, ela tem me ajudado muito.
Bom, sou iniciante em programação e estou tentando fazer uma alteração porém sem sucesso. Gostaria de aplicar a opção de quantidade ainda na tela dos produtos, vi em outro comentário uma dica sua, mais não consegui fazer.
Você tem alguma dica de como posso fazer isso?
Obrigado!
@Marcos, coloca o código no https://gist.github.com/ , e depois passa o link, pra ver como vc tá tentando fazer
Boa Noite.
Bom Primeiramente parabéns pelo post, muito bom.
Se puder me ajudar, ficarei grato.
Bom, nao entendo muito de programação. Fiquei com uma duvida. aqui neste post você usa tabela.
Estou tentando criar um carrinho apenas com input type check box. Ai tudo bem.
E que preciso, quero que quando a checkbox for checada, todas as mesmas apareçam numa div ao lado. para que a pessoa saiba o que esta no carrinho. sem sair da pagina. Deposi de toda a compra que seja enviado tudo para o carrinho.
Att. Obrigado desde ja.
Anderson, vc pode verificar na session, se o id do produto foi add, exemplo:
Cara, muito bom esse tutorial me ajudou bastante, atualmente algumas coisas na sintaxe mudaram e corrigi, funcionando normal, porem encontrei alguns “bugs”, no meu projeto se vc clicar para comprar um produto ele ira adicionar no carrinho, até ai tudo bem, só q se a pagina for atualizada ele reenvia a ação e adiciona novamente o produto, aumentando a quantidade. Outra coisa é que se o carrinho estiver vazio e o usuário clicar sobre o botão de atualizar não haverá tratamento e isso ocasionará um erro. Queria q vc me ajudasse na resolução desses probleminha pois sou iniciante nessa área.
Agradeço desde já.
Alexsandro, o incremento, é uma condição q coloquei no código q pode ser retirada, basta tirar parte que incrementa (+= 1), onde tá o adicionar o carrinho.
Sobre o atualizar, vc pode verificar se o carrinho tem algum produto, e mostrar a tabela só se tiver algo.
Espero te ajudado. abrs
muito boa a video-aula, era exatamente o que estava procurando, agora só vou precisar adaptar ao meu sistema
olá pessoal está uma beleza esse exemplo, porém ele utiliza o mysql_conect, que não é mais aceito. Então aconselho vcs a mudarem claro para a orientação a objetos com MVC ou pelo menos o mysqli, a qual segue o exemplo:
conexao.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "seu banco";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
index.php
Video Aula sobre Carrinho de Compras
0) {
// output data of each row
while ($ln = mysqli_fetch_assoc($result)) {
echo ” . $ln[‘nome’] . ‘ ‘;
echo ‘Preço : R$ ‘ . number_format($ln[‘preco’], 2, ‘,’, ‘.’) . ”;
echo ‘ ‘;
echo ‘Comprar‘;
echo ”;
}
} else {
echo ‘Nenhum produto encontrado’;
}
?>
carrinho.php
$qtd) {
$id = intval($id);
$qtd = intval($qtd);
if (!empty($qtd) || $qtd 0) {
$_SESSION[‘carrinho’][$id] = $qtd;
} else {
unset($_SESSION[‘carrinho’][$id]);
}
}
}
}
}
?>
Video Aula sobre Carrinho de Compras
Carrinho de Compras
Produto
Quantidade
Preço
SubTotal
Remover
Continuar Comprando
<?php
if (count($_SESSION['carrinho']) == 0) {
echo 'Não há produto no carrinho’;
} else {
require(“conexao.php”);
$total = 0;
foreach ($_SESSION[‘carrinho’] as $id => $qtd) {
$sql = “SELECT * FROM produtos”;
$result = mysqli_query($conn, $sql);
$ln = mysqli_fetch_assoc($result);
$nome = $ln[‘nome’];
$preco = number_format($ln[‘preco’], 2, ‘,’, ‘.’);
$sub = number_format($ln[‘preco’] * $qtd, 2, ‘,’, ‘.’);
$total += $ln[‘preco’] * $qtd;
echo ‘
‘ . $nome . ‘
R$ ‘ . $preco . ‘
R$ ‘ . $sub . ‘
Remove
‘;
}
$total = number_format($total, 2, ‘,’, ‘.’);
echo ‘
Total
R$ ‘ . $total . ‘
‘;
}
?>
Olá David,
Excelente seu código. Adaptei para minha necessidade, no entanto tenho um problema que não consigo resolver e gostaria de sua ajuda.
Estruturei meu projeto de forma que qualquer coisa via POST é filtrada e enviada para uma fachadaN (de negócios) que cria ou acessa os objetos que se conectam com um bco. Qualquer coisa via GET é enviada para uma fachadaV (se visão) que controla as telas para serem exibidas.
Não seria possível utilizar um link em vez de um botão submit para a acao up? Eu estou tentando isso, mas quando clico em atualizar ele volta aos dados originais…
Mônica, no caso você deseja é enviar as informações de atualização do carrinho via GET, é isso?
Olá David, gratíssima por sua atenção. Exatamente! O meu carinho precisa de qua a função UP, seja feita através do link, assim como ADD e REMOVER são feitos, sobretudo porque o botão SUBMIT em meu carrinho efetua já a finalização e procede às alterações no bco de dados. Não posso ter 2 botões submit, não é mesmo?
Então…, tentei serializar os dados, e passá-los através de um link UP, mas não tive êxito.
Hoje pensei em fazer exatamente com em sua instrução (através do ‘method POST’), mas então.. como eu faria para finalizar o carrinho e enviar para o banco os novos dados?
Mônica, pelo que entendi, você está definindo que o método POST está atrelada ação de finalizar compra. E as outras ações deveria ser por GET.
Vc pode utilizar js pra ao clicar no botão submit, enviar pela url. Exemplo, utilizei o jQuery:
https://gist.github.com/anonymous/760ddb6136d58a41b40dfa4bc7f884fb
Olá novamente, David.
Sim, era exatamente isso. Mas a boa notícia é que consegui resolver o problema da seguinte forma: A atualização ficou exatamente como em seu código (por method post) através de um submit.
Adicionalmente, criei um link FINALIZAR que envia todos os dados para uma nova página “finalizar.php” e aí sim, criei um botão “submit”que envia os dados para o banco e encerra a session. Fechou direitinho, rápido e fácil.
Agora, quero somente parabenizá-lo por sua postagem, que… acredite, foi o melhor script que encontrei para isso. É simples, direto e limpo. Vejo que a postagem é antiga, mas é bastante útil. Parabéns também pelo site, e pela atenção com os comentaristas.
Já está na minha lista de favoritos. Abraços!
Essa videoaula é de 2010, já tem um bom tempo. A extensão mysql_ está depreciada, o código está espagueti, regra de negocio com html, mas o importante é logica aplica no carrinho, a partir dai vc pode criar OOP, Funcional, Procedural, etc. Q bom q a aula te ajudou. abrs
Meu projeto está estruturado em OOP, e uso o modelo VMC. bem definido. Uso PDO em vez das funções mySql, mas jamais tinha feito um carrinho.. por sinal o meu é de troca de pontos e gera vales e cupons em percentual proporcional. Mas a estrutura de seu código é bem clara, não importa o tempo. A ideia é o que eu precisava e você passou com clareza. Você me ajudou bastante. Agora, preciso ver um layout css bem minimalista usar no meu projeto. Recomenda algum? (seguro e simples).
Monica, tem alguns layouts aqui usando bootstrap, que pode te ajudar:
http://startbootstrap.com/template-categories/all/
ja favoritei o site aqui no meu navegador, parabens pelo conteudo.
Vlw
Uma pergunta , estou a tentar passar o valor da quantidade através de uma select option da pagina de produtos , faço post dela no inicio e fica tudo bem mas quando carrego no botão de eliminar da o erro de undifined index, como faço?
Agradeçia uma resposta o mais brevemente possivel pois este trabalho decide se eu passo de ano ou não
cumps
Ricardo Pires
Isso tá informando se que o item no array q vc tá chamando, não existe. Nesse caso, utilize o isset pra verificar se existe esse elemento no array:
Obrigado !Já agora tem uma ideia de como pegar nos valores num botão final e adicionar a uma tabela fatura? Obrigado
Como as referencia dos ID do produto e quantidade estão na session, basta iniciar a session, e recuperar os valores, como foi feito para mostrar o carrinho, e assim gravar numa tabela da fatura.
Tem alguma ideia de como pegar no carrinho e fazer um array tridimensional para adicionar mais um valor? (tamanho)
Obrigado
Ricardo, tem um tutorial meu sobre esse assunto:
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Muito obrigado pela ajuda e muito bom conteudo! Mas só não percebo uma coisa, é mesmo preciso o ” sprintf(‘%s:%s’ ” ? E se sim o que faz?
Não é preciso, ali é só formatar a informação, se um jeito mais fácil de visualizar. Mas poderia ser assim:
E eu também não posso fazer isso no script tipo:
$_SESSION[‘carrinho’][$cod:$tamanho] =$quantidade;
Teria q se forma de string pra ser uma chave de um array
Bom dia,
A vídeo aula é ótima e está funcionando certinho, só estou tendo problemas para alinhar tudo dentro da tabela. Quando eu incluo o produto ele fica fora da tabela e tudo misturado e desalinhado e isso só ocorre quando eu exibo os dados no echo. Não consigo deixá-los dentro da tabela de jeito nenhum e só ocorre depois que incremento o php.
Marcelo, provavelmente vc deve tá esquecendo algum tr, q engloba os itens do produto, por isso deve tá ficando fora.
Eu consegui acertar, realmente eu estava esquecendo tr para finalizar.
Agora no caso, se eu quisesse exibir os dados do carrinho em uma outra página como se fosse um pequeno relatório só para mostrar o que foi comprado, como eu teria de fazer? Teria que salvar o carrinho no banco de dados e puxar ele na outra página?
Marcelo, pra finalizar compra, seria interessante salvar os produtos num banco de dados, pra depois conseguir fazer esse relatório.
Bom dia David,
Estou começando no php e deu pra ter uma ótima noção pela sua video aula, está de parabéns. Agora eu estou com uma dúvida, se eu quisesse colocar o botão de “Atualizar” igual ao de “Apagar” como ficaria? Eu poderia seguir o mesmo exemplo do “Apagar” e colocar um ‘‘? Estou tentando fazer isso mas ele dá que a variável prod não está declarada, mas ela está la em cima no comando de “Atualizar”.. Como eu poderia fazer isso?
Vc quer atualizar individualmente, creio q seja isso. As invés de um campo, vc pode adicionar um form dentro do while, e passaria o id do produto e quantidade
Boas , no botão de remover como posso fazer para obter o valor de quantidade associado ao codigo?
Cumprimentos
Vc terá q criar um forma dentro do loop, ai vc add a quantidade e o código
o que eu quero tirar daqui e o valor tamannhos correspondente ao cod ,para meter numa query mas nao tou a conseguir
if($_GET[‘acao’] == ‘del’){
$cod =$_GET[‘cod’];
if(isset($_SESSION[‘cart’][$cod])){
$_SESSION[‘cart’][$cod];
$tamanhos=$_SESSION[‘cart’][$cod][1];
$ligaBD=odbc_connect(‘basededadospap’,”,”);
$sql=”SELECT stock FROM detalhes_produtos WHERE cod_produto=’$cod’ AND tamanho=’$tamanhos’ “;
$resultado=odbc_exec($ligaBD,$sql);
odbc_fetch_row($resultado);
$stock2 = odbc_result($resultado,1);
$conta1 = $stock2 + 1;
$sql2=”UPDATE detalhes_produtos SET stock=’$conta1′ WHERE cod_produto=’$cod’ AND tamanho=’$tamanhos’;”;
odbc_exec($ligaBD,$sql2);
unset($_SESSION[‘cart’][$cod]);
}
}
Vc pode passar o por link, essas informações tbm:
Não posso porque está dentro do form que uso pa passar o codigo , so preciso disso para passar o ano , e so queria arranjar o tamanho que esta ao lado do codproduto
Boas queria perguntar duas coisas como posso fazer esta parte
//Recuperar o ID do Cliente, já logado
$idCliente = $_SESSION[‘cliente’][‘id’];
por username e mostra o seu id na base dados
fiz assim e nao funciona
$session = $_SESSION[“username”];
$idcliente = “SELECT idregistos FROM contasregistadas WHERE username = ‘$session'”;
//Insere as informações do Pedidos
$strPedido = “INSERT INTO pedidos SET idclientes = ‘%u’, statpedido = ‘%u’, creatpedido = NOW(), altpedido = NOW()”;
$strPedido = sprintf($strPedido, $idcliente, 0);
$queryPedido = mysql_query($strPedido);
Ricardo, no caso, na hora do login, vc salva o username na session, e ai vc consegue fazer dessa forma.
e tambem a parte do id pedido nao aparece nada
///recuperar o ID criado
$idPedido = mysql_insert_id();
//insere os produtos dos pedidos
$sqlPedidoProduto = “INSERT INTO pedidos_produtos SET idpedidos = ‘$idPedido’, idProdutos = ‘$id’, quantidade = ‘$qtd'”;
mysql_query($sqlPedidoProduto);
Veja se está inserindo, pq mysql_insert_id, retorna a ultima inserção no banco de dados. Lembrando, q a extensões do mysql_* foram descontinuadas, é importante vc já trocar pelo mysqli ou pdo
esta dando um erro nesse codigo, como ficaria passando para mysqli
$sql = “SELECT * FROM produtos WHERE id= ‘$id'”;
$qr = mysql_query($sql) or die(mysql_error());
$ln = mysql_fetch_assoc($qr);
Olá David, tudo bem?
Cara, estou com um problema aqui e não faço ideia de como resolver, eu peguei o seu exemplo de carrinho e ele esta funcionando, porém ocorre um problema que parece não ocorrer no vídeo; quando adiciono mais de um produto no carrinho ele alem de adicionar o produto adiciona também mais um no ultimo produto que eu coloque.
Gostaria de saber se você pode me ajudar. vlw abraço.
Gabril, coloca o codigo no http://gist.github.com, e depois o link gerado, vc publica aqui pra dá uma olhada
Acho que tem um erro na parte de atualizar a quantidade… exatamente nesta parte:
//ALTERAR QUANTIDADE
if($_GET[‘acao’] == ‘up’){
if(is_array($_POST[‘prod’])){
foreach($_POST[‘prod’] as $id => $qtd){
$id = intval($id);
$qtd = intval($qtd);
if(!empty($qtd) || $qtd 0){
$_SESSION[‘carrinho’][$id] = $qtd;
}else{
unset($_SESSION[‘carrinho’][$id]);
}
}
}
}
Ele atualiza o produto pelo índice do array, pulando somente o índice 0. Mas e se eu compro somente 10 exemplares do produto com id = 20, aí vou atualizar a quantidade para 50. Nesse caso, como só temos um produto ele vai atualizar o $_SESSION[“carrinho”][1] quando deveria atualizar o $_SESSION[“carrinho”][20].
Minha solução:
//ALTERAR QUANTIDADE
if($_GET[‘acao’] == ‘up’){
if(is_array($_POST[‘prod’])){
foreach(array_combine($_POST[‘prod’], $_POST[‘idItem’]) as $qtd => $id){
$id = intval($id);
$qtd = intval($qtd);
if(!empty($qtd) || $qtd > 0){
$_SESSION[‘carrinho’][$id] = $qtd;
}else{
unset($_SESSION[‘carrinho’][$id]);
}
}
unset($qtd);
}
}
Pelo menos aqui funciona.
Nildo, no caso, o indice do array é o ID do produto, e não a quantidade. Então no input da quantidade, vc passa o ID do produto, e quantidade associada a ele
Corrigindo o comentário anterior: Se eu comprar somente um produto e tentar atualizar a quantidade do mesmo simplesmente não vai atualizar porque quando for colocado no array ele vai ter índice 0, e o foreach() ignora esse índice. Quanto ao $_POST[‘idItem’] trata-se de um <input type="hidden" que eu adicionei ao produto. Assim, quando eu atualizar ele envia não somente a quantidade, mas também o id.
David, felizmente já concertei o erro, mas gostaria de compartilhar essa experiência com todos aqui.
Comentei linha por linha até que comentei uma linha HTML e deu certo, porem se eu não tivesse feito isso talvez nunca descobriria o que estava fazendo dar erro, pois não sabia que o HTML poderia gerar um erro no PHP.
Alinha que tirei do meu código foi essa , quando coloco esta linha no código ocorre aquele erro que coloquei no comentário acima.
Pessoal bom estou tentando acrescentar o campo cor no foreach.
mais por algum motivo o valor da variavel cor é substituido pelo mais recente alguem poderia me ajudar
David, estou criando um marketplace, e estou quebrando a cabeça aqui com o carrinho de compras! Tenho que fazer um carrinho onde o usuário possa compra de várias lojas ao mesmo tempo, porém o pedido é fechado separadamente! Qual a melhor forma de fazer isso? Desde já muito obrigado!!!
Rafael, vc tem algumas formas de vc fazer .
Provável quando é cadastrado o produto, tem algum identificador, pra dizer que loja pertence.
Vc pode utilizar esse identificador, para separar os pedidos
vamos dizer, temos na entidade App\Model\Product\Product, e vc iria adicionar um atributo chamado store, que seja o ID da Loja. Quando adiciona o carrinho, vc passa a loja q pertence.
Na hora de criar o pedido, vc reorganizar, e criar o pedido por loja. E adiciona os itens, não esquecendo de add de que loja vai pertencer esse produto.
Um jeito mais simples, é entender que todo item do carrinho se tornará um pedido, mesmo que seja da mesma empresa. Se tem 2 produtos no carrinho, ele se transformará em 2 pedidos.
E na tabela de pedido, vc informa de q loja ele pertence.
queria finalizar o carrinho apenas enviando as informações para um banco de dado, me ajude porfavor
Lucas, nos comentários, coloquei alguns exemplos, é só da uma olhada pra ter uma ideia melhor.
Davi,
Porque não colocar na página index um input , onde o comprador digitasse a quantidade do produto desejado e ele fosse transferido para o carrinho com os respectivos preços e totais para que pudesse, então, ser atualizado, excluído ou finalizada a compra?
Por outro , parabéns pela vídeo aula. Muito boa.
Olá Flávio. Pode ser feito assim sem problema. Ou pode ter um link pra página de produto, com maiores informações do produto e um campo de quantidade e botão pra comprar. Pode ter várias formas de fazer, vai depender do objetivo q vc deseja alcançar.
abrs
Poderia me dar o css do carrinho?
Eu não tenho mais
Então, peguei todo o código postado para colocar no meu site. No caso no meu site tem uma pagina que mostra apenas a quantidade de produtos e o preço. Então quando adiciono produtos na pagina, o preço dos produtos vai normalmente mais a quantidade fica bugada, tipo ele não engloba todos os itens comprados, mais sim só pega quantidade do ultimo item da tabela.
Então se puder me ajudar com esse problema ficarei bastante agradecido!!
Olá David, estou utilizando seu carrinho de compras como base para um site que estou desenvolvendo porém além dessa estrutura preciso que para cada produto adicionado ao carrinho tenha a opção de selecionar o tamanho do produto, sabe me dizer uma forma de fazer isso nessa estrutura? Agradeço.
Lucimar, eu tenho tutorial falando sobre opções no carrinho de compra, pode te ajudar:
http://www.davidchc.com.br/tutoriais/php-tutoriais/adicionar-opcoes-dos-produtos-ao-carrinho-de-compra-com-php/
Depois de uma venda concluída é possível alterar quantidade ou produtos antes de eles serem faturados ? Tem algum tutorial que ajuda neste quesito ?
Otto, não tenho nenhum tutorial, mas depois da venda concluida, e gravada no banco de dados, você pode colocar para o admin fazer essa edição
Olá, boa tarde. Eu tenho um código fonte completo de um carrinho de compras para adicionar no meu site. O site está em desenvolvimento e quase pronto. Quero saber como eu faço a integração desse código fonte com o meu site. Obrigado.
Erick, se vc consegue ter uma noção como o código funciona, vc consegue adaptar. Mas se seu projeto for uma loja virtual, vc pode utilizar um opensource, com por exemplo OpenCart. Se vc tá acostumado com WordPress, o WooCommerce é bem completo
parabéns. Consegui fazer aqui. Só o html que ficou desajustado, mas isso é o de menos. Só pra quem for criar tem que fazer uma pasta chamada image e inserir dentro dessa pasta uma imagem e o nome e extensão tem que ser guardado no bando de dados. (INSERT INTO produtos VALUES (‘1′,’tv’,’100′,’5bbfd56ea02c8.png’)
Isso, no banco você salva o nome do arquivo
Ola David! tudo bem? tenho conhecimento básico em php, e não estou conseguindo montar o carrinho, por gentileza você pode envia-lo os códigos pelo e-mail? ficarei grato, ou se alguém que tem pronto, poder me ajudar.
at.te: reinaldo
e-mail: Reinaldomoaz@gmail.com
Reinaldo, não tem mais o código, o que tenho está no tutorial. Eu fiz um tempo atrás uma atualização, que você pode baixar do github:
https://github.com/davidchc/carrinho-de-compra-procedural/archive/master.zip
boa noite assisti a sua aula sobre o carrinho gostei muito mas as minhas imagens nao aparecem gostaria de saber se voce fez upload da imagem ou escreveu o caminho dela no banco de dados como eu mudaria o codigo para eu apenas escrever o nome da imagem obrigado
Aluisio, essa especifica, apenas defini o nome da imagem, e elas estavam numa pasta, não fiz nenhum processo de upload, pq o foco seria o carrinho mesmo. Poderia fazer upload, e salvar o nome da imagem no banco de dados, e depois na hora de chamar, só pegar o nome e a pasta onde estaria essa imagem.
ola ja procurei em toda internet,o frete e cobrado pelo peso,como se calcula o peso quando se tem mais de um produto diferente no carrinho de compras? tenho que somar o peso de todos produtos multiplicados pela quantidade. como faço isso?