Página 1 de 1

Carrinho, finalizar compra com cep obrigatório, visitante?

Enviado: 16 Dez 2014, 00:57
por rafaelcosta
Olá, bom dia, boa tarde, boa noite!
Comecei a estudar programação, sou iniciante, estou apanhando bastante!
Uso o Opencart 1.5.6.4 + Xampp 3.2.1, em ambiente Windows 7, mas vou instalar a loja hoje no servidor (hostgator) para testar melhor.

Estou tentando fazer uma modicação em: /catalog/view/theme/default/template/checkout/cart.tpl. (espero estar no lugar certo!)
No carrinho, como visitante, consegui deixar o campo de cep sempre visível, logo abaixo dos produtos do carrinho. Portanto, na opção "O que você gostaria de fazer em seguida?", ficou só o cupom e vale presente, não precisa clicar para aparecer o campo de cep.

Agora minha dúvida é, como eu faço para impedir que o visitante clique em "finalizar compra", sem preencher o cep, como acontece em algumas lojas grandes? Ex: sem o cep, aparecer uma mensagem avisando para pessoa preencher o cep antes de clicar em "finalizar a compra"? Mesmo antes do login?

Muito Obrigado
Abaixo as modificações que fiz, por enquanto parece estar funcionando, não sei se tem erros...

Apaguei o seguinte:

<div id="shipping" class="content" style="display: <?php echo ($next == 'shipping' ? 'block' : 'none'); ?>;">
<p><?php echo $text_shipping_detail; ?></p>
<table>
<tr>
<td><span class=”required”>*</span> <?php echo $entry_country; ?></td>
<td><select name=”country_id” onchange=”$( ‘select[name=\'zone_id\']‘ ).load(‘index.php?route=total/shipping/zone&country_id=’ + this.value + ‘&zone_id=<?php echo $zone_id; ?>’);”>
<option value=””><?php echo $text_select; ?></option>
<?php foreach ($countries as $country) { ?>
<?php if ($country['country_id'] == $country_id) { ?>
<option value=”<?php echo $country['country_id']; ?>” selected=”selected”><?php echo $country['name']; ?></option>
<?php } else { ?>
<option value=”<?php echo $country['country_id']; ?>”><?php echo $country['name']; ?></option>
<?php } ?>
<?php } ?>
</select></td>
</tr>
<tr>
<td><span class=”required”>*</span> <?php echo $entry_zone; ?></td>
<td><select name=”zone_id”>
</select></td>
</tr>
<tr>
<td><span id="postcode-required" class="required">*</span> <?php echo $entry_postcode; ?></td>
<td><input type="text" name="postcode" value="<?php echo $postcode; ?>" /></td>
</tr>
</table>
<input type="button" value="<?php echo $button_quote; ?>" id="button-quote" class="button" />
</div>

Apaguei também, logo depois de: <?php if ($coupon_status || $voucher_status || $reward_status || $shipping_status) { ?>, o seguinte:

<?php if ($shipping_status) { ?>
<tr class="highlight">
<td><?php if ($next == 'shipping') { ?>
<input type="radio" name="next" value="shipping" id="shipping_estimate" checked="checked" />
<?php } else { ?>
<input type="radio" name="next" value="shipping" id="shipping_estimate" />
<?php } ?></td>
<td><label for="shipping_estimate"><?php echo $text_shipping_estimate; ?></label></td>
</tr>
<?php } ?>


Adicionei, logo antes da linha <?php if ($coupon_status || $voucher_status || $reward_status || $shipping_status) { ?>, o seguinte:

<div id="shipping" class="content" style="display >
<table>
<input type="hidden" id="country_id" name="country_id" value="30" >
<input type="hidden" id="zone_id" name="zone_id" value="464" >
<td><span id="postcode-required" class="required">*</span> <?php echo $entry_postcode; ?></td>
<td><input type="text" name="postcode" value="<?php echo $postcode; ?>" /></td>
<br />
<td><input type="button" value="<?php echo $button_quote; ?>" id="button-quote" class="button" /></td>
</table>
<br />
<br />
</div>

Depois Modifiquei a parte abaixo, trocando "select" por "input":

</script>
<?php if ($shipping_status) { ?>
<script type="text/javascript"><!--
$('#button-quote').live('click', function() {
$.ajax({
url: 'index.php?route=checkout/cart/quote',
type: 'post',
data: 'country_id=' + $('input[name=\'country_id\']').val() + '&zone_id=' + $('input[name=\'zone_id\']').val() + '&postcode=' + encodeURIComponent($('input[name=\'postcode\']').val()),


Muito Obrigado pela atenção!
Rafael

Re: Carrinho, finalizar compra com cep obrigatório, visitant

Enviado: 16 Dez 2014, 21:09
por reds
Boa noite,
Em Opencart deve-se ir em:
Sistema > Países > Brasil > Editar > Selecione CEP Obrigátorio > salvar

Lembrando: Mude o nome "Brazil" para "Brasil" assim fica no correto em nosso país. :ugeek:

Re: Carrinho, finalizar compra com cep obrigatório, visitant

Enviado: 16 Dez 2014, 22:25
por rafaelcosta
reds escreveu:Boa noite,
Em Opencart deve-se ir em:
Sistema > Países > Brasil > Editar > Selecione CEP Obrigátorio > salvar

Lembrando: Mude o nome "Brazil" para "Brasil" assim fica no correto em nosso país. :ugeek:
Obrigado pelo retorno reds!
Na verdade já fiz isso, parece deixar o cep obrigatório no cadastro de usuários. Queria deixar obrigatório no carrinho, pois a pessoa pode colocar um produto no carrinho e ir direto em finalizar compra sem ver quanto vai custar o frete. Aí só depois de logado que ela vai ver que tem esse custo a mais.
Lembrar de mais alguma idéia me dá um toque!

Valeu reds obrigado
Rafael

Re: Carrinho, finalizar compra com cep obrigatório, visitant

Enviado: 30 Dez 2014, 12:57
por tedros
Rafael, também estava querendo fazer isso.
Seu código funcionou mesmo ?

Ah, testei seu código, mas não está obrigando, quando clico em finalizar ele passa, mesmo sem o CEP preenchido

Re: Carrinho, finalizar compra com cep obrigatório, visitant

Enviado: 06 Jan 2015, 09:20
por tedros
Alguem poderia nos ajudar nisso ?
como obrigar o cliente a simular frete no carrinho de compras ?

Att.

Re: Carrinho, finalizar compra com cep obrigatório, visitant

Enviado: 07 Jan 2015, 08:21
por reds
Bom dia,
Amigo @tedros eu não entender muito bem qual o problema :/ peço desculpas, eu gostaria que explicar este mais claramente e enviar uma URL de sua loja para olharmos para dentro. :geek: