Página 1 de 1

Alteração no Vqmod do Botão "Comprar" Flutuante!

Enviado: 22 Nov 2013, 14:20
por linktraba
Olá, estou usando o vqmod: http://www.opencart.com/index.php?route ... e%20V1.1.2

Que por sinal é bastante funcional, recomendo.

Fiz pequenas alterações para sempre pegar o botão padrão do tema: http://www.mandrake.comyr.com/loja

Alguém saberia informar por favor como faço para o carrinho não aparecer quando o estoque do produto for zero?

Ficaria mais interessante ainda se quando tivesse opção obrigatória aparecesse uma mensagem do tipo:

Há opções obrigatórias, verifique por favor antes de efetuar a compra

Algo assim, aí ficaria perfeito.

Segue o código do Vqmod:
Código: Selecionar todos
<modification>
	<id>Carrinho Flutuante</id>
	<version>1.1.2</version>
	<vqmver>2.1</vqmver>
	<author>Jano Sousa / Luiz Eduardo Monteiro</author>
<file name="catalog/view/theme/*/template/common/header.tpl">
            <operation>
                <search position="before"><![CDATA[</head>]]></search>
                <add><![CDATA[<style type="text/css">
    	#carrinho-flutuante{
			display:none;position:fixed;right:0;top:30%;z-index:300;border:1px solid #d7f0f0;padding:10px;margin-bottom:15px;background:#fff;border-right:0;margin-right:0;}
		}
			#carrinho-flutuante strong{
				display:block;
				font-size:2px;
				font-weight:bold;
				padding:10px 0; 
			}
                       #carrinho-flutuante .price-old {
                               color: red;
                               margin-bottom: 2px;
                               font-size: 1.2em;
                               text-decoration: line-through;

                         }
                      #carrinho-flutuante .price-new {
                              font-size: 1.9em;
                              font-weight: bold;
                              display:block;
                              color: #333;
                        }
                        #carrinho-flutuante .price {
                              overflow: auto;
                              border-bottom: 1px solid #E7E7E7;
                              padding: 0px 5px 10px 5px;
                              margin-bottom: 10px;
                               font-size: 1.2em;
                              font-weight: bold;
                              color: #333;
                              cler:both;
                        }
			#carrinho-flutuante small{
				display:block;
				font-size:14px;
				padding:5px 0 10px 0; 
			}
	

    </style>
	]]></add>
            </operation>
        </file>
<file name="catalog/controller/product/product.php">
            <operation>
                <search position="before"><![CDATA[$this->data['text_price'] = $this->language->get('text_price');]]></search>
                <add><![CDATA[$this->data['text_of'] = $this->language->get('text_of');]]></add>
            </operation>
        </file>

          
           <file name="catalog/language/*/product/product.php">
            <operation>
                <search position="before"><![CDATA[$_['text_price']]]></search>
                <add><![CDATA[$_['text_of'] = ' De:';]]></add>
            </operation>
        </file>

        <file name="catalog/controller/product/product.php">
            <operation>
                <search position="before"><![CDATA[$this->data['text_price'] = $this->language->get('text_price');]]></search>
                <add><![CDATA[$this->data['text_for'] = $this->language->get('text_for');]]></add>
            </operation>
        </file>

          
           <file name="catalog/language/*/product/product.php">
            <operation>
                <search position="before"><![CDATA[$_['text_price']]]></search>
                <add><![CDATA[$_['text_for'] = 'Por:';]]></add>
            </operation>
        </file>

           <file name="catalog/view/theme/*/template/product/product.tpl">
            <operation>
                <search position="before"><![CDATA[<?php echo $content_bottom; ?>]]>
                </search>
                <add><![CDATA[
				
         <div id="carrinho-flutuante" class="">
        <?php if ($price) { ?>
        <div class="price"style="with:100px">
       <?php echo $text_price; ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?>

        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $text_for; ?> <?php echo $special; ?></span>
       <div style="border-bottom: 1px solid #E7E7E7;"></div>
        <?php } ?>
        <br />
        
        <?php if ($discounts) { ?>
        <br />
        <div class="discount">
          <?php foreach ($discounts as $discount) { ?>
          <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?><br />
          <?php } ?>
        </div>
        <?php } ?>
<input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
          &nbsp;<input type="button" value="Adicionar ao Carrinho" id="button-cart" class="button" /><br>	
      </div>
      <?php } ?>
    </div>
                ]]>
                </add>
            </operation>
        </file>
        
        <file name="catalog/view/theme/*/template/product/product.tpl">
            <operation>
                <search position="before"><![CDATA[<?php echo $content_bottom; ?>]]></search>
                <add><![CDATA[<script type="text/javascript">
$(document).ready(function(){
$(window).scroll(function(){
         if($(this).scrollTop()>650){
		 $('#carrinho-flutuante').fadeIn(300);
		 }else{
		 $('#carrinho-flutuante').fadeOut(300);
		 }});
		 $('#carrinho-flutuante input').click(function(){
		 if($('.options input').length){
		$('html, body').animate({ scrollTop: '150px' }, 'slow'); 
		 }});
		 });
		 </script>

]]></add>
            </operation>
        </file>
		
		 <file name="catalog/view/theme/*/template/product/product.tpl">
            <operation>
                <search position="before"><![CDATA[<?php echo $content_bottom; ?>]]></search>
                <add><![CDATA[<script type="text/javascript"><!--
$('.button').bind('click', function() {
	$.ajax({
		url: 'index.php?route=checkout/cart/add',
		type: 'post',
		data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
		dataType: 'json',
		success: function(json) {
			$('.success, .warning, .attention, information, .error').remove();
			
			if (json['error']) {
				if (json['error']['option']) {
					for (i in json['error']['option']) {
						$('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
					}
				}
			} 
			
			if (json['success']) {
				$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/*/image/close.png" alt="" class="close" /></div>');
					
				$('.success').fadeIn('slow');
					
				$('#cart-total').html(json['total']);
				
				$('html, body').animate({ scrollTop: 0 }, 'slow'); 
			}	
		}
	});
});
//--></script>

]]></add>
            </operation>
        </file>
        
</modification>


Re: Alteração no Vqmod do Botão "Comprar" Flutuante!

Enviado: 23 Nov 2013, 13:54
por valdeir2000
No controller basta você pegar o valor do campo "quantity" e na view você faz a verificação se o valor é igual a 0 ou não.

Re: Alteração no Vqmod do Botão "Comprar" Flutuante!

Enviado: 23 Nov 2013, 18:45
por linktraba
Aí que mora o perigo, não sei fazer, até tentei antes de postar a pergunta, mas deu tudo errado.

Re: Alteração no Vqmod do Botão "Comprar" Flutuante!

Enviado: 23 Nov 2013, 20:26
por AllexWesley
@valdeir2000 isso aqui você quer dizer?
Código: Selecionar todos
<?php
   if ($product['quantity']>0) echo "";
       else echo "";
?>

Re: Alteração no Vqmod do Botão "Comprar" Flutuante!

Enviado: 26 Nov 2013, 12:15
por valdeir2000
Algo do tipo

Controller
Código: Selecionar todos
$this->data['productQuantity'] = $product_info['quantity']
View
Código: Selecionar todos
if ($productQuantity){
    //Carrinho Desaparece
}