Fórum OpenCart Brasil

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

#4992
São duas soluções possíveis, uma foi a qual eu optei, a mais simples e outra vai depender de um pouco de paciência pra testar.

SOLUÇÃO 1:
Criar um imposto chamado de Seguro Correios que adiciona 1%
Ir em todos os produtos e colocar esse imposto
Obs: Nessa solução eu sei que ele irá somar o 1% do produto com 1% do módulo dos correios, então vem a parte B

Criar um imposto chamado Desconto Seguro Correios que retira 1% (é só colocar -1.0) o tracinho de menos é a chave do segredo (Quanto Vale isso Lombardi??? Hi hi ha hai!!! 1.000 reais Silvio, 1.000 reais)

Ir no módulo do correio, pelo painel de controle e aplicar esse imposto desconto

Habilitar a loja para exibir os preços dos produtos com desconto

Como você não irá utilizar o Seguro Correios, basta aplicar o Desconto Seguro, que os cálculos ficarão iguais podendo aplicar diretamente no módulo ou em produtos específicos

Fazendo assim o Frete no carrinho pega o valor do produto e calcula igualzinho ao módulo dos correios, pois o módulo calcula sobre o valor total da compra sem o frete pois o seguro é baseado na Nota Fiscal

SOLUÇÃO 2:
abrir o arquivo calcular.php que pertence ao frete no carrinho, ir na linha 37 na função "get valor" e colocar junto dela uma função que adiciona 1%, só que nessa aula de fórmulas matemáticas em linguagem de programação eu faltei pra assistir Arquivo X :lol:
#5005
acesbrasil,

Como não utilizo o serviço de "Valor Declarado" dos Correios, procurei novamente e consegui desabilitar ele no pac.php e sedex.php.


Na linha 25 dos 2 arquivos, onde está:
Código: Selecionar todos
VlValorDeclarado=%s&s
troquei por:
Código: Selecionar todos
VlValorDeclarado=0&n
Aí ele passou a cobrar o mesmo valor que o frete no carrinho.
Mas pelo que ví, só funciona mesmo no IE e Firefox, alguém conseguiu fazer funcionar no Chrome, Opera e Safari?
#5006
rogerionj escreveu: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.

Quanto a dica do rogerionj, eu tentei implementar mas ele não consegue pegar os pesos e dimensões dos produtos.
Ele chega a ter resposta dos correios mas sempre pra 1 produto somente.
Minhas tabelas tem prefixo, tentei colocar o prefixo mas mesmo assim dá o erro.

Warning</b>: Invalid argument supplied for foreach() in <b>/home/storage/d/6e/3d/art2web/public_html/speedspirit/calcular.php</b> on line <b>53</b><br />R$ 12.60
#5011
Certo, eu já vi, soh q nao deu tempo para arrumar

eh q ele simplesmente ta somando todas as dimensoes, e na verdade nao eh assim q ocorre

por ex se vc tem 2 produtos de 40x40x10 cada um

a soma da dimensao desses 2 ficara 40x40x20

eu mudando a logico eu disponibilizo ali

faloww
#5075
Tentei usar essa tua parada ai para a página do produto, mas não funicou.. na página do carrinho fuco perfeito e fico mto grato..

O tal erro:
Código: Selecionar todos
Notice: Undefined variable: weight in /home/httpd/vhosts/dominio.com.br/subdomains/lojamodelo2/httpdocs/catalog/view/theme/default/template/product/product.tpl on line 138Notice: Undefined variable: total in /home/httpd/vhosts/dominio.com.br/subdomains/lojamodelo2/httpdocs/catalog/view/theme/default/template/product/product.tpl on line 139
Linhas:
Código: Selecionar todos
138 - $peso_numero = str_replace(',','',str_replace('.','', str_replace("kg","",$weight))); 
      139 -  $preco_sem_sinal2 = str_replace(',','',str_replace('.','', str_replace("R$","",$total['text']))); 
Para falar a verdade na página do carrinho também deu problema, mas comentei a segunda linha de erro e o erro sumiu, e continuou calculando...
#5556
Eu queria saber se tem como usar o script modulo calcular frete no carrinho para que o mesmo faça a soma quando eu digitar o CEP e mandar pesquisar ele pegar o valor dos produtos adicionados nos carrinho e somar com o valor do frete e mostrar o resultado da soma, igual nas lojas que agente vê ai no dia a dia?

Alguém ja sabe como implementar isso?

Ou já tem algo assim rolando aqui no fórum?

Fico no aguardo por que eu quero ver e aprimorar mais ainda no CSS pra poder ajudar melhor mais o código, obrigado galera, fico no aguardo...
#5559
Eu queria saber se tem como usar o script modulo calcular frete no carrinho para que o mesmo faça a soma quando eu digitar o CEP e mandar pesquisar ele pegar o valor dos produtos adicionados nos carrinho e somar com o valor do frete e mostrar o resultado da soma, igual nas lojas que agente vê ai no dia a dia?

Alguém ja sabe como implementar isso?

Ou já tem algo assim rolando aqui no fórum?

Fico no aguardo por que eu quero ver e aprimorar mais ainda no CSS pra poder ajudar melhor mais o código, obrigado galera, fico no aguardo...
#5723
Pessoal muito bom o fórum, pessoal empenhado em ajudar. parabéns a todos.

Mas tenho uma duvida referente a esse módulo, que é a seguinte:

"no sistema só pega um valor fixo do tamanho da embalhagem,
então, para deixa as coisas normais -
vai no "calcular.php" linha 40 e 42 tem as funções da ALTURAxCOMPRIMENTOxLARGURA
la vc modificar pelo tamanho maximo do maior produto q tiver na sua loja"

isso significa que todos os meus produtos serão calculados com as medidas desse arquivo?

Pois os tamanhos das caixas de meus produtos podem variar muito.

Alguém poderia me ajudar?
#7774
Cara achei este esquema muito bom parabéns , só que tem um pequeno problema o valor que mostra no carrinho não é o mesmo quando escolhe o método de envio PAC ou SEDEX, alguém consertou isso? ou só no meu esta dando este erro?
Alguém ajuda ai.
Valeu :D
  • 1
  • 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 […]