Re: [TUTORIAL] Calcular frete no carrinho
Enviado: 29 Abr 2011, 17:58
Manoel Vidal escreveu:Poderia passar a url de sua loja para vermos o erro ?Sim Claro amigo.
www.lumensled.com.br
Por um e-commerce livre, confiável e profissional.
https://forum.opencartbrasil.com.br/
https://forum.opencartbrasil.com.br/viewtopic.php?f=41&t=202
Manoel Vidal escreveu:Poderia passar a url de sua loja para vermos o erro ?Sim Claro amigo.
Manoel Vidal escreveu:O problema é que você não colocou os arquivos nas pasta correta ou não os colocou, digo isso poque quando você clica no botão calcular é acionado um evento javascript para fazer o calculo e esse evento esta dentro do arquivo frete_carinho.js que deveria estar no diretório catalog/view/javascript/, porém, ele não está lá.Amigo descobri o problema, ele não funciona no navegador do google, o Chrome, no IE vai de boa
Então reenvie os arquivos na ordem correta das pastas que tudo funcionará
...
<td align="right" valign="top"><?php echo $product['price']; ?></td>
<td align="right" valign="top"><?php echo $product['total']; ?></td>
<?php } ?>
</tr>
<?php //Aqui é a linha 55
//GAMBIARRA
$count = 0;
for($i = 1; $i <= $product['quantity']; $i++){
$product_keys[$count] = $product['key'];
$count = $count + 1;
}
if(!isset($_SESSION)){
session_start();
}
$_SESSION['product_keys'] = $product_keys;
//FIM DA GAMBIARRA
?>
</tr>
<?php } ?>
</table>
...
$peso = $peso/1000;
$valor = $_GET["valor"];
//GAMBIARRA
if(!isset($_SESSION)){
session_start();
}
$produtos = $_SESSION['product_keys'];
$conexao = mysql_connect('url','login','senha') or die (mysql_error());
$db = mysql_select_db("nome_data_base",$conexao);
$weight = 0;
$lenght = 0;
$width = 0;
$height = 0;
foreach ($produtos as $produto) {
$sql = "SELECT weight, length, width, height FROM product where product_id = '$produto'" ;
$res = mysql_query($sql,$conexao) or exit(mysql_error());
while ($row = mysql_fetch_assoc($res)) {
$weight += $row['weight'];
$lenght += $row['length'];
$width += $row['width'];
$height += $row['height'];
}
}
//PARAMETROS ADICIONADOS AO ENDERECO DO WEB SERVICE
if($srv == '40045') {
$url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=".$cepOrigem."&sCepDestino=".$cepDestino."&nVlPeso=".$weight."&nCdFormato=1&nVlComprimento=".$lenght."&nVlAltura=".$height."&nVlLargura=".$width."&sCdMaoPropria=n&nVlValorDeclarado=1&sCdAvisoRecebimento=n&nCdServico=".$srv."&nVlDiametro=20&StrRetorno=xml";
} else {
$url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=".$cepOrigem."&sCepDestino=".$cepDestino."&nVlPeso=".$weight."&nCdFormato=1&nVlComprimento=".$lenght."&nVlAltura=".$height."&nVlLargura=".$width."&sCdMaoPropria=n&nVlValorDeclarado=1&sCdAvisoRecebimento=n&nCdServico=".$srv."&nVlDiametro=20&StrRetorno=xml";
//FIM DA GAMBIARRA
if($srv == '40045') {
$url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=".$cepOrigem."&sCepDestino=".$cepDestino."&nVlPeso=".$weight."&nCdFormato=1&nVlComprimento=".$lenght."&nVlAltura=".$height."&nVlLargura=".$width."&sCdMaoPropria=n&nVlValorDeclarado=1&sCdAvisoRecebimento=n&nCdServico=".$srv."&nVlDiametro=20&StrRetorno=xml";
} else {
$url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=".$cepOrigem."&sCepDestino=".$cepDestino."&nVlPeso=".$weight."&nCdFormato=1&nVlComprimento=".$lenght."&nVlAltura=".$height."&nVlLargura=".$width."&sCdMaoPropria=n&nVlValorDeclarado=1&sCdAvisoRecebimento=n&nCdServico=".$srv."&nVlDiametro=20&StrRetorno=xml";
}
$fonte = file($url);
foreach ($fonte as $www) {
danielframos escreveu:No meu caso,no Google Chrome e Safari não acontece nada e no IE, Firefox e Opera ele dá o seguinte erro :Eu também tinha esse erro, e só resolveu quando eu fui no .htaccess e coloquei a seguinte linha:
<br /><b>Warning</b>: file() [<a href='function.file'>function.file</a>]: URL file-access is disabled in the server configuration in <b>/home/storage/d/6e/3d/art2web/public_html/speedspirit/calcular.php</b> on line <b>45</b><br /><br /><b>Warning</b>: file(http://ws.correios.com.br/calculador/Ca ... etorno=xml) [<a href='function.file'>function.file</a>]: failed to open stream: no suitable wrapper could be found in <b>/home/storage/d/6e/3d/art2web/public_html/speedspirit/calcular.php</b> on line <b>45</b><br /><br /><b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/storage/d/6e/3d/art2web/public_html/speedspirit/calcular.php</b> on line <b>46</b><br />Erro, correios não respondeu!
Os arquivos estão nos lugares corretos.
O endereço da loja é http://www.speedspirit.com.br
Obrigado, Daniel
php_value "allow_url_fopen" "on"
danielframos escreveu: Problema resolvido.Fico feliz de poder ajudar, me informe mais sobre a difença de valores dos correios, explique com detalhes e exemplos
Fiz vários testes e sempre dando o mesmo erro, indicando que o acesso aos correios estava bloqueado, sem resposta.
Verifiquei o allow_url_fopen tanto no php.ini quanto no .htacess e estavam on.
O problema estava no php.ini da hospedagem (Locaweb). Lá estava off, depois que mudei pra on funcionou.
Só que gerei um outro problema, os valores não batem com o do fechamento do pedido.
Pesquisei no fórum e não ví nenhuma solução definitiva pra isso.
O cálculo do pedido acrescenta o seguro da mercadoria dos correios, pra mim poderia tirar isso do cálculo, pois não pago o seguro ou colocar o seguro no frete_carrinho, tanto faz, contanto que o valor seja igual nas 2 telas.
Eu procurei bastante nos códigos dos 2, mas como o meu PHP é precário, não consegui identificar onde posso mudar para os valores baterem.
Vlw Acesbrasil, sem tua dica, tava parado no erro ainda.
E rogerionj, depois vou implementar sua "gambiarra", pois ela é fundamental. Tinha usado, mas tive que voltar tudo pra trás pq nada funcionava.