Fórum OpenCart Brasil

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

Por bahl2
#47661
Ola pessoal, gostaria de saber como posso inserir calculo de frete na pagina do produto, somente com o campo CEP, e remover os outros campos tbm do carrinho e como já deixar inserido o CEP e somar na direto na pagina do carrinho como na pagina de carrinho do Extra: http://carrinho.extra.com.br/?codOrigem ... Sku=405587

Deixar bem limpo e fácil.

Se puderem ate me passar códigos e de como puxar o modulo dos correios na pagina e retirar o outros campos, Ficarei muito agradecida! *-*

Obrigado!
#47662
Olá, para ficar apenas com o CEP no carrinho de compras tem esse vqmod desenvolvido pela Surgimento, testei na versão 1.5.5.1 e funcionou normalmente, pode tentar na sua versão:
Código: Selecionar todos
<modification>

	<id>Como retirar o campo país e estado na simulação de frete do carrinho no OpenCart</id>
	<version>1.0.0</version>
	<vqmver>2.1.5</vqmver>
	<author>Jeann - email: jeann@surgimento.com.br - twitter: @surgimento - http://www.surgimento.com.br alterado 03/04/2012</author>

	<file name="catalog/view/theme/*/template/checkout/cart.tpl">	 
		
	
		<operation error="skip"><!-- v1.5.x manda para o carrinho-->
            <search position="replace" offset="25"><![CDATA[
			<p><?php echo $text_shipping_detail; ?></p>
			]]></search>
            <add><![CDATA[ 
				<?php /* trecho adicionado pelo apenas_cep.xml */ ?>	
				<p><?php echo $text_shipping_detail; ?></p>
				<input type="hidden" id="country_id" name="country_id" value="30" >
				<input type="hidden" id="zone_id" name="zone_id" value="464" >	
					
			]]></add>
        </operation>	
		
		<operation error="skip">
			<search position="after" ><![CDATA[
			<input type="hidden" id="zone_id" name="zone_id" value="464" >
			]]></search>
			<add><![CDATA[
			<?php /* trecho adicionado pelo apenas_cep.xml */ ?>	
			<table>	
				<tr>
					<td>
						<input type="text" name="postcode" maxlength="8" value="<?php echo $postcode; ?>" />
						<input type="button" value="<?php echo $button_quote; ?>" id="button-quote" class="button">
					</td>
				</tr>
			</table> 
			]]></add>  
		</operation>
		
		<operation error="skip">
			<search position="replace" ><![CDATA[
			data: 'country_id=' + $('select[name=\'country_id\']').val() + '&zone_id=' + $('select[name=\'zone_id\']').val() + '&postcode=' + encodeURIComponent($('input[name=\'postcode\']').val()),
			]]></search>
			<add><![CDATA[
			<?php /* trecho adicionado pelo apenas_cep.xml */ ?>	
			data: 'country_id=' + $('input[name=\'country_id\']').val() + '&zone_id=' + $('input[name=\'zone_id\']').val() + '&postcode=' + encodeURIComponent($('input[name=\'postcode\']').val()),
			]]></add>  
		</operation>
	</file>

</modification>

Para simular o frete na página de produtos, tem esse gratuito (verificar se é compatível com a sua versão):
https://forum.opencartbrasil.com.br/ ... e+produtos

E esse pago: http://www.opencart.com/index.php?route ... n_id=11550 - Teria que verificar com o desenvolvedor (usuário do fórum - Valdeir) se é compatível com a sua versão.



Se quiser que o frete fique sempre visível, entre em contato: sw-ad@hotmail.com

Boa sorte e boas vendas.
Editado pela última vez por leandrorppo em 01 Fev 2014, 16:26, em um total de 1 vez.
#47996
Olá, fiz o teste do cálculo de frete gratuito do Alex na versão 1.5.6.1 e realmente não estava funcionando, modifiquei o arquivo: vqmod\xml\SimularFrete.xml para funcionar corretamente:
Código: Selecionar todos
<!-- Created using vQmod XML Generator by UKSB - http://www.opencart-extensions.co.uk //-->
<modification>
<id><![CDATA[Calcular Frete Pagina de Produtos]]></id>
<version><![CDATA[1.0]]></version>
<vqmver><![CDATA[1.1.6]]></vqmver>
<author><![CDATA[By Alex <alex_olp@hotmail.com.br>]]></author>

<file name="catalog/view/theme/*/template/product/product.tpl">
	<operation>
		<search position="before" offset="1">
			<![CDATA[<div class="options">]]>
		</search>
		<add>
			<![CDATA[
				<table border="0" cellspacing="0" cellpadding="0">
					<tr>
        				<td><span><b>Digite o CEP para Simular o Frete:</b></span>&nbsp;</td>
        				<td>
							<input type="hidden" id="pesoProduto" value="<?=$pesoProduto?>" />
							<input type="hidden" id="alturaProduto" value="<?=$alturaProduto?>" />
							<input type="hidden" id="larguraProduto" value="<?=$larguraProduto?>" />
							<input type="hidden" id="comprimentoProduto" value="<?=$comprimentoProduto?>" />
							<input type="text" id="cep_destino" value="" size="9" maxlength="9">            
						</td>
            			<td>&nbsp;<input class="button" type="button" id="button" value="Simular"></td>
					</tr>
    			</table>
				<span id="SimularFrete"></span>
			]]>
		</add>
	</operation>
		
	<operation>
		<search position="before">
			<![CDATA[<?php echo $footer; ?>]]>
		</search>
		<add>
			<![CDATA[
				<script type="text/javascript">
				jQuery(function($){ $("#cep_destino").mask("99999-999"); });

				jQuery(window).load(function() {
					$("#button").click(function(){
						var cep_destino = $("#cep_destino").val();
						var pesoProduto = $("#pesoProduto").val();
						var alturaProduto = $("#alturaProduto").val();
						var larguraProduto = $("#larguraProduto").val();
						var comprimentoProduto = $("#comprimentoProduto").val();

						SimularFrete(cep_destino, pesoProduto, alturaProduto, larguraProduto, comprimentoProduto);
					});
					function SimularFrete(cep_destino, pesoProduto, alturaProduto, larguraProduto, comprimentoProduto){
	 					if(cep_destino == ""){
							alert("Informe um CEP.");
							return;
						}
	 					else{
						$("#SimularFrete").html("<img src='alex/img/loader.gif'> Calculando Taxas Aguarde...");
						$.post('alex/SimularFrete.php', {
							cep_destino: cep_destino,
							pesoProduto: pesoProduto,
							alturaProduto: alturaProduto,
							larguraProduto: larguraProduto,
							comprimentoProduto: comprimentoProduto
						}, 
						function(retorno) {
							$("#SimularFrete").html(retorno);
						}
						);
						};
					};
				})
				</script>
			]]>
		</add>
	</operation>
</file>
<file name="catalog/controller/product/product.php">
	<operation>
		<search position="after">
			<![CDATA[$this->data['points'] = $product_info['points'];]]>
		</search>
		<add>
			<![CDATA[
				$this->load->model('account/address');
				$enderecoCliente = $this->model_account_address->getAddress($this->customer->getId());

				$this->data['idProduto'] = intval($product_info['product_id']);
				$this->data['pesoProduto'] = substr($product_info['weight'],0,5);
				$this->data['alturaProduto'] = intval($product_info['height']);
				$this->data['larguraProduto'] = intval($product_info['width']);
				$this->data['comprimentoProduto'] = intval($product_info['length']);
				$this->data['zipcode'] = $enderecoCliente['postcode'];
			]]>
		</add>
	</operation>
</file>
<file name="catalog/view/theme/*/template/common/header.tpl">
	<operation>
		<search position="before" offset="1">
			<![CDATA[</head>]]>
		</search>
		<add>
			<![CDATA[
				<script type="text/javascript" src="http://cloud.github.com/downloads/digitalBush/jquery.maskedinput/jquery.maskedinput-1.3.min.js"></script>
			]]>
		</add>
	</operation>
</file>
</modification>
Substitua o código e retorne com o resultado por favor.
#48008
Sobre a alteração, fiz o Java Script principal do vqmod ficar antes do footer da página de produtos, notei que não acontecia nada porque não conseguia encontrar as funções do JS.

Mudei isso:
Código: Selecionar todos
	<search position="before" offset="1">
			<![CDATA[$('#button-cart').bind('click', function() {]]>
		</search>
Para isso:
Código: Selecionar todos
<search position="before">
			<![CDATA[<?php echo $footer; ?>]]>
</search>
Editado pela última vez por leandrorppo em 02 Fev 2014, 11:05, em um total de 2 vezes.
#48011
Sobre CEP desconhecido, nos meus testes só aparece quando coloco um número que invento, pode testar com esses CEPs:
20010-903 = Rio de Janeiro
18055-859 = Sorocaba - SP
75083-350 = Anápolis - GO

Verifique se o resultado será satisfatório.

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 […]