
Aew Galera, atendendo a pedidos vou postar aqui uma das coisas que são mais importantes para um desenvolvedor Web, que é desenvolver sites dinâmicos, neste caso em PHP, e a possibilidade de fazer um e-commerce, claro algo como uma loja virtual envolve diversos recursos, questões de segurança, sistemas de pagamentos, etc… mas o primeiro passo é conseguir fazer um carrinho de compras, o que não é nada muito difícil, mas exige um pouco de atenção, e empenho para fazê-lo funcionar.
Vou postar aqui um modelo de carrinho de compras que não foi eu quem desenvolveu, mas peguei o script, e fiz alguns melhoramentos, e ajustes para funcionar de uma forma mais simples. Originalmente esse script foi postado no site PHPBrasil.com [LINK] por um usuário chamado FCCD, não sei se foi ele mesmo quem desenvolveu ou só postou lá, mas enfim, vamos ao que interessa.
Bom, esse sistema do carrinho de compras funciona basicamente com session e array em PHP, é coisa bem simples, e em cima desses 2 recursos (session e array) foi desenvolvida uma classe para facilitar a vida. Lembrando que este script não utiliza nenhum banco de dados para seu funcionamento, mas é claro, se você vai montar uma Loja Virtual, você precisará integrar alguns recursos no momento de exibir os dados dos produtos por exemplo no carrinho de compras.
Nesse primeiro bloco do script, criamos as funções práticas de funcionamento do carrinho, que são as funções de inserir, excluir, e exibir o carrinho de compras. Mas antes disso criamos a classe que se chama carrinho_compra, você pode ver que dentro dessa classe existem 3 funções, uma delas, a inserir_item(), que como o nome já diz, inclui um produto no carrinho, bastando se passa 2 variáveis, uma delas o código do produto e a quantidade, no caso, se o produto já existir no carrinho, será adicionado a quantidade informada a quantidade já existente do produto no carrinho. Em seguida temos a função excluir_item(), que passando o código do produto em questão, elimina o mesmo do carrinho. E por final temos a função de exibir_dados(), que gerará uma lista com o código e a quantidade de cada item armazenado no carrinho de compras, nesse caso se você utilizar um banco de dados, e quiser consultar o código do produto, para exibir o nome dele no carrinho, você pode adaptar essa função, ou desconsiderar ela, e fazer em outra página uma forma diferente de listagem, bastando acessar os componentes.
.
Script do Arquivo carrinho.php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | class carrinho_compra{ function inserir_item($code,$quantidade){ $this->codigo = $code; $this->qtde = $quantidade; $this->dados = $_SESSION['carrinho_compras']; if($this->dados != ""){ $this->chave = array_keys($this->dados); $this->soff = sizeof($this->chave); for($i = 0; $i < $this->soff; $i++){ if($this->dados[$i]['codigo'] == $this->codigo){ $this->dados[$i]['qtde'] += $this->qtde; $tem = 1; break; } } if($tem != 1){ $this->dados[$this->soff]['codigo'] = $this->codigo; $this->dados[$this->soff]['qtde'] = $this->qtde; } $_SESSION['carrinho_compras'] = NULL; $_SESSION['carrinho_compras'] = $this->dados; }else{ $this->dados[0]['codigo'] = $this->codigo; $this->dados[0]['qtde'] = $this->qtde; $_SESSION['carrinho_compras'] = NULL; $_SESSION['carrinho_compras'] = $this->dados; } } function excluir_item($code){ $this->codigo = $code; $this->dados = $_SESSION['carrinho_compras']; if($this->dados != ""){ $this->chave = array_keys($this->dados); $this->soff = sizeof($this->chave); for($i = 0; $i < $this->soff; $i++){ if($this->dados[$i]['codigo'] == $this->codigo){ unset($this->dados[$i]); $this->dados1 = array_values($this->dados); $_SESSION['carrinho_compras'] = NULL; $_SESSION['carrinho_compras'] = $this->dados1; break; } } } } function exibir_dados(){ $this->dados = $_SESSION['carrinho_compras']; if ($this->dados != ""){ $this->dados = array_reverse($this->dados); $this->chave = array_keys($this->dados); $this->soff = sizeof($this->chave); for ($i = 0; $i < $this->soff; $i++){ $codigo = $this->dados[$i]['codigo']; $quant = $this->dados[$i]['qtde']; print $codigo." - ".$quant."<br />"; } }else{ echo "Carrinho Vazio"; } } } |
.
Bom, uma vez criado esse arquivo do carrinho.php, basta chamá-lo em sua página, com um require_once, e criar os objetos, mas lembre-se sempre, como esse carrinho funciona com session em PHP, você terá que sempre antes de chamar as funções do carrinho executar um session_start(). Veja o exemplo abaixo de como criar o objeto do carrinho para executá-lo posteriormente na página:
1 2 3 4 5 6 7 | session_start(); require_once("carrinho.php"); $carrinho = new carrinho_compra; $carrinho->dados = $_SESSION['carrinho_compras']; $carrinho->chave = array_keys($carrinho->dados); $carrinho->soff = sizeof($carrinho->chave); |
.
Vou postar junto aqui, um script de uma outra página, que eu utilizo como sendo um atalho para execução de funções, que facilita a vida, digamos que essa página se chame produtos_carrinho.php. Essa página será onde você executará as funções automatizadas, para incluir, excluir, atualizar e limpar o carrinho. Veja abaixo o script, nesse caso você passa 3 parametros para esse script, um deles é o código do produto, outro a quantidade, e outro a ação que deverá ser executada. Dependendo da ação a ser executada, alguns dos paramentros não serão necessários. Veja abaixo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | $idproduto = $_GET['idproduto']; $quantidade = $_GET['quantidade']; $acao = $_GET['acao']; if($acao == 'ADD'){ $carrinho->inserir_item($idproduto,$quantidade); } if($acao == 'DEL'){ $carrinho->excluir_item($idproduto); } if($acao == 'UPD' and $quantidade < 0){ $carrinho->excluir_item($idproduto); } if($acao == 'UPD' and $quantidade > 0){ $carrinho->inserir_item($idproduto,$quantidade); } if($acao == 'LIMPA'){ for($i = 0; $i < $carrinho->soff; $i++){ $idproduto = $carrinho->dados[$i]['codigo']; $carrinho->excluir_item($idproduto); } } |
.
Bom, os scripts completos deste carrinho estão disponíveis para download clicando aqui.
Nos vemos na próxima !!! Até BREVE !!!



















Grátis: API de CEPs para qualquer Linguagem
CodeIgniter e Zend – Frameworks PHP
PHP: Script para Cálculo de Frete dos Correios (Atualizado)
09. PHP Orientado a Objetos – Conceitos: Polimorfismo



