Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#4747
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á.

Então reenvie os arquivos na ordem correta das pastas que tudo funcionará :D
#4748
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á.

Então reenvie os arquivos na ordem correta das pastas que tudo funcionará :D
Amigo descobri o problema, ele não funciona no navegador do google, o Chrome, no IE vai de boa
#4938
No meu caso,no Google Chrome e Safari não acontece nada e no IE, Firefox e Opera ele dá o seguinte erro :

<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
#4956
Boa noite a todos,

não manjo NADA de PHP, entretando tava desesperadamente precisando do frete no carrinho, porém o cálculo deveria usar as dimensões cadastradas, inclusive somar, caso tenha mais de um produto, por isso tomei uma medida desesperada e fiz uma puta gambiarra pra calcular o frete com as dimensoes e pesos do banco.

Passo aqui como eu fiz, para quem quiser fazer. Que fique bem claro que não me orgulho nem um pouco do que eu fiz, gambiarra ao extremo. Vo usar dessa forma até q saia uma versão descente para tal recurso.

Obs. 1: Faça um backup dos arquivos antes de alterá-los.

Obs. 2: Há possibilidade de ocorrer erros nos cálculos, pois não foi mto bem testado. Testem antes de usar!

Essas edições a seguir é em cima do que o nosso amigo do fórum fez frete_carrinho.zip.

Não precisa ter peso habilitado no carrinho (era um requisito do qual eu também precisava).

No arquivo cart.tpl, localizado em catalog/view/theme/default/template/checkout/cart.tpl na linha 55 adicione o seguinte código:

Código que antecede a linha 55:
Código: Selecionar todos
...
     <td align="right" valign="top"><?php echo $product['price']; ?></td>
     <td align="right" valign="top"><?php echo $product['total']; ?></td>
   <?php } ?>
</tr>
Código a ser inserido:
Código: Selecionar todos
  <?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
    ?>
Código posterior:
Código: Selecionar todos
 
     </tr>
     <?php } ?>
     </table>
...
Agora no arquivo calcular.php na linha 39 localizado na raiz você deve adicionar:

Código que antecede:
Código: Selecionar todos
$peso = $peso/1000;
$valor = $_GET["valor"];
Código a ser inserido:
Código: Selecionar todos
//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
As configurações de bancos devem ser setados em url, login, senha, nome_data_base ( :shock: )

Esse código deve ser excluído, pois foi adicionado no bloco anterior:
Código: Selecionar todos
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";

}
Código posterior:
Código: Selecionar todos
$fonte = file($url);
foreach ($fonte as $www) {
após isso o cálcula irá funcionar, porém não é a melhor forma de se fazer.
#4970
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 :

<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
Eu também tinha esse erro, e só resolveu quando eu fui no .htaccess e coloquei a seguinte linha:
Código: Selecionar todos
php_value "allow_url_fopen" "on"
#4986
:D Problema resolvido.
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.


:P Vlw Acesbrasil, sem tua dica, tava parado no erro ainda.

:P E rogerionj, depois vou implementar sua "gambiarra", pois ela é fundamental. Tinha usado, mas tive que voltar tudo pra trás pq nada funcionava.
#4990
danielframos escreveu::D Problema resolvido.
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.


:P Vlw Acesbrasil, sem tua dica, tava parado no erro ainda.

:P E rogerionj, depois vou implementar sua "gambiarra", pois ela é fundamental. Tinha usado, mas tive que voltar tudo pra trás pq nada funcionava.
Fico feliz de poder ajudar, me informe mais sobre a difença de valores dos correios, explique com detalhes e exemplos

Abraços e estamos no aguardo
#4991
acesbrasil,

Eu uso o módulo sedex_pac_1.3a para cálculo do frete, mas lá ele acresce 1% no valor declarado do produto, que é o seguro que no caso da mercadoria extraviar e não ser entregue, eles devolvem o valor que você declarou.
No frete que é calculado no carrinho ele não coloca o valor do seguro, e até coloquei o cart.tpl antigo por enquanto pq vai me dar muita reclamação pois quando calcularem no carrinho vai estar diferente de quando forem calcular no pedido.
Não sei se deu pra entender, qualquer coisa, me fala.

Mais uma vez obrigado pela ajuda.
  • 1
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]