Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Conte

Valor do frete incluido no carrinho de compras

Recommended Posts

galera bom dia.

eu fiz um carrinho de compras e agora estou tentando incluir um calculo de frete, e ele ja adicionar no proprio carrinho e acrescentar o valor do frete no valor total da venda.

como eu faço isso? ja que agora quando peço para calcular o frete ele vai para outra pagina e imprimi o valor do frete.

 

agora minha duvida, como eu retorno o valor do frete no meu carrinho.

 

segue codigos meu carrinho:

 

<?php
session_start();

//instanciar a pagina do carrinho
$pagina = 'carrinho.php';
?>

<form id="form-pesquisa-repasse" action="calcularfrete.php" method="post" class="formMain formSearch wsizep100">

<?php
//iniciar classe
class shopping{

 private $banco = 'carrinho';
 private $senha = 'admin123';
 private $login = 'root';
 private $hostname = 'localhost';

//conexao com o banco de dados
function conexao(){
 mysql_connect($this->hostname, $this->login, $this->senha) or die ("Não foi possível conectar ao banco de dados");
 mysql_select_db($this->banco) or die ("Não foi possível selecionar o banco de dados".mysql_error());

 mysql_query("SET NAME 'utf8'");
 mysql_query("SET character_set_connection=utf8");
 mysql_query("SET character_set_client=utf8");
 mysql_query("SET character_set_results=utf8");
}

//Mostrar o Carrinho de compras
function carrinho(){
//Verifica se existe uma session
 if($_SESSION){
  //separar nome de quantidade ou valores
  foreach($_SESSION as $nome => $quantidade){
  //Verificar se a quantidade nao está vazia
   if($quantidade > 0){
  	if(substr($nome,0,9)  == 'produtos_'){
  //pegar id da session
 $id = substr($nome,9,(strlen($nome) -9));
  //montar o carrinho
  $pd = mysql_query("SELECT id, produto, valor FROM compras WHERE id=".mysql_real_escape_string((int)$id));
  while($list = mysql_fetch_assoc($pd)){
  $subtotal = $quantidade * $list['valor'];
   echo '
	<tr>
	<td width="20%" height="44" bgcolor="#FFFFFF" align="center">'.$list['produto'].'</td>
	<th width="7%" height="44" align="center" valign="middle" bgcolor="#FFFFFF">'.$quantidade.' x</th>
	<th width="11%" height="44" align="center" valign="middle" bgcolor="#FFFFFF" >R$ '.number_format($list['valor'], 2).'</th>
	<td width="6%" height="44" align="center" valign="middle" bgcolor="#FFFFFF" >
	<a href="processa.php?add='.(int)$id.'">
	<img src="image/adcionar.png" width="44" height="44" border="0" alt="Adcionar unidade ao carrinho" /></a>
	</td>
	<td width="6%" height="44" align="center" valign="middle" bgcolor="#FFFFFF" >
	<a href="processa.php?menos='.(int)$id.'">
	<img src="image/retirar.png" width="44" height="44" border="0" alt="Remover unidade do carrinho" /></a>
	</td>
	<td width="6%" height="44" align="center" valign="middle" bgcolor="#FFFFFF" >
	<a href="processa.php?del='.(int)$id.'">
	<img src="image/cancelar.png" width="44" height="44" border="0" alt="Retirar item do carrinho" /></a>
	</td>
	<th width="11%" height="44" align="center" valign="middle" bgcolor="#FFFFFF">R$ '.number_format($subtotal, 2).'</th>
	</tr>

   ';
  }
}
$total += $subtotal;
}
  }
 }
 if($total == 0){
 	echo '
	<tr>
	<td colspan="7" align="center" valign="middle" class="total">Seu carrinho está vazio</td> 	
	</tr>
	<tr>
	<td colspan="7" align="center" valign="middle" height="44">
	<a href="produtos.php">
    <img src="image/continuarcomprando.png"  height="41" alt="Continuar comprando" border="0">
    </a>
    </td>
	</tr>

';
 }else{
 	echo '
   <tr>
   <td colspan="2" bgcolor="#FFFFFF"></td>
   <td bgcolor="#FFFFFF" align="center">
	Tipo de entrega <select id="tipo" name="tipo" title="Serviços dos Correios" class="select" tabindex="1">
	<option value="PAC">PAC</option>
	<option value="SEDEX">SEDEX</option>
	</select>
 	</td>
   	<td bgcolor="#FFFFFF" colspan="2" align="center">
  	<label class="wsize010" for="cep-destino">
	<span class="nameField">CEP Destino</span>
	<input id="cep-destino" class="text" type="text" value="" maxlength="9" title="CPF destino" name="cep" tabindex="2"/>
	</td>
	<td bgcolor="#FFFFFF">
	<input type="submit" id="pesquisar" name="pesquisar" tabindex="3" class="button inline"  value="Calcular" />
	</form>
	</td>
	<td bgcolor="#FFFFFF">
	<span id="value"></span>
	</td>  
   </tr>
   <tr>
   <td colspan="4"></td>
   <th colspan="2" align="center" valign="middle" class="total" >Total</th>
   <th align="center" valign="middle" bgcolor="#FFFFFF" height="44">R$ '.number_format($total, 2).'</th>
   </tr>
   <tr>
   <td colspan="6"></td>
   <td align="center" valign="middle" height="44" bgcolor="#FFFFFF">
   <a href="produtos.php">
   <img src="image/continuarcomprando.png" height="41" alt="Continuar comprando" border="0" class="total">
   </a>
   </td>
   <td>
   </tr>
   <tr>
   <td></td>
   <td align="center" valign="middle" height="44">
   <a href="loja/pages/carrinho.php">
   <img src="image/finalizarcompra.png" height="41" alt="Continuar comprando" border="0" class="total">
   </a>
   </td>
   <td>
   <a href="produtos.php">
   <img src="image/limparcarrinho.png" height="41" alt="Continuar comprando" border="0" class="total">
   </td>
   </tr>
  '; 

 }
}


//FIM DA CLASS
}
//verificação de adição
if(isset($_GET['add'])){
$conn = new shopping();
$conn->conexao();

$qt = mysql_query("Select id, quantidade FROM compras WHERE id= ".mysql_real_escape_string((int)$_GET['add']));
$list = mysql_fetch_assoc($qt);
if($_SESSION['produtos_'.$_GET['add']] != $list['quantidade']){
$_SESSION['produtos_'.$_GET['add']] += '1';
}
 header ("Location: ".$pagina);
}


//verificação de subtração
if(isset($_GET['menos'])){
$_SESSION['produtos_'.$_GET['menos']]--;
 header ("Location: ".$pagina);
}

//verificação zerar
if(isset($_GET['del'])){
$_SESSION['produtos_'.$_GET['del']] = '0';
 header ("Location: ".$pagina);
 }
?>

 

e o do frete:

 

<?php

$sCepDestino = htmlspecialchars($_POST['cep']); //LIMPA A VARIAVEL
$sCepDestino = str_replace("-", "", $sCepDestino); //REMOVE O - CASO POSSUA

//PEGA O TIPO DE FRETE E CONVERTE NO CODIGO
if ($_POST['tipo'] == "PAC") {
$nCdServico = 41106;
}
if ($_POST['tipo'] == "SEDEX") {
$nCdServico = 40010;
}

//DADOS PARA O CORREIO
       $nCdEmpresa          = "";
       $sDsSenha            = "";
       $sCepOrigem          = 36015000; //CEP DE ORIGEM
	$nVlPeso             = "5"; //PESO É IMPORTANTE PARA O CALCULO
       $nCdFormato          = 1;
       $nVlComprimento      = 20;
       $nVlAltura           = 20;
       $nVlLargura          = 20;
       $nVlDiametro         = 0;
       $sCdMaoPropria       = "N";
       $nVlValorDeclarado   = 0;
       $sCdAvisoRecebimento = "S";
//

// URL QUE FARÁ AS CONSULTAS NOS CORREIOS
$URLcorreios ="http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?"
."nCdEmpresa=$nCdEmpresa&"
."sDsSenha=$sDsSenha&"
."sCepOrigem=$sCepOrigem&"
."sCepDestino=$sCepDestino&"
."nVlPeso=$nVlPeso&"
."nCdFormato=$nCdFormato&"
."nVlComprimento=$nVlComprimento&"
."nVlAltura=$nVlAltura&"
."nVlLargura=$nVlLargura&"
."sCdMaoPropria=$sCdMaoPropria&"
."nVlValorDeclarado=$nVlValorDeclarado&"
."sCdAvisoRecebimento=$sCdAvisoRecebimento&"
."nCdServico=$nCdServico&"
."nVlDiametro=$nVlDiametro&"
."StrRetorno=xml";

//PEGAMOS OS DADOS DE RETORNO XML COM O SIMPLEXML DO PHP  
$dados_correios = simplexml_load_file($URLcorreios);
$total = $dados_correios->xpath('cServico/Valor'); 
$total = floatval(str_replace(',', '.', $total[0]));
$PrazoEntrega = $dados_correios->xpath('cServico/PrazoEntrega');   
$erros = $dados_correios->xpath('cServico/Erro');   
$ValorAvisoRecebimento = $dados_correios->xpath('cServico/ValorAvisoRecebimento');   
//						   

//IMPRIME A RESPOSTA COM O VALOR DO FRETE
$resposta[valor] =  number_format($total, 2, ',', '.');
print_r($resposta[valor]);
?>

 

agora estou quebrando a cabeça para ele me retornar esse valor ja no meu carrinho:

 

$resposta[valor] =  number_format($total, 2, ',', '.');
print_r($resposta[valor]);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já tem um script em PHP que calcula o frete. Mas ele imprime na tela por questões de instruções como echo ou print.

 

Se você remover essas instruções ele já para de imprimir na tela. Primeiro ponto OK.

 

Agora você quer integrar esse script ao script que calcula o frete. Basta utilizar include no segundo.

 

Você tem isso hoje:

compra.php

<!DOCTYPE HTML>
<html lang="pt-BR">
   <head>
       <meta charset="UTF-8">
       <title></title>
   </head>
   <body>
       <p>Valor total da compra: R$ 50,00</p>
       <p>clique <a href="frete.php">aqui</a> para calcular o frete</p>
   </body>
</html>

 

frete.php

<?php

// Depois de todos os cálculos

$frete = 15.3;
$frete = number_format($frete, 2, ',', '.');

echo "<p>Valor total do frete: R$ {$frete}</p>";

 

Você vai transformar nisso aqui:

 

compra.php

<!DOCTYPE HTML>
<html lang="pt-BR">
   <head>
       <meta charset="UTF-8">
       <title></title>
   </head>
   <body>
       <p>Valor total da compra: R$ 50,00</p>
       <?php include frete.php; ?>
   </body>
</html>

 

E deve funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja, o script de cálculo de frete vai ser responsável por "comprar" um produto chamado "frete" com o valor definido pelo cálculo!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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