Ответить Новая тема Новый опрос 
 Цена в зависимости от количества
wasia
Новичок
Сообщений: 64
Регистрация: 05-10-2011


27-05-2014 18:19
Как на карточке товара (product.tpl) сделать обновление цены ({$ProductPrice})} которая зависит от количнства (#quantity_wanted) без перезагрузки страницы? Т.е. чтоб при добавлении в поле Kоличество нового значения менялась автоматически и цена товара?

Знаю что нужно в THEME/js/product.js добавить определенный код, но не знаю куда именно.

Предполагаю что код должен выглядить подобным образом:
Код:
$(document).ready(function(){
$("#quantity_wanted").change(function(){
    $("#our_price_display").html(currencySign+" "+(productPrice*$("#quantity_wanted").val()));
});
});


Буду очень благодарен за любую помощь в этом вопросе.

Prestashop 1.5
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
wasia
Новичок
Сообщений: 64
Регистрация: 05-10-2011


27-05-2014 19:00
Нашлось решение. Может кому и пригодится.

В файл product.tpl приводим тэг <p id="quantity_wanted_p"></p> до такого вида:


Код:
<p id="quantity_wanted_p"{if (!$allow_oosp && $product->quantity <= 0) OR $virtual OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>

                {literal}
            <script type="text/javascript">
              $(document).ready(function(){

               $('#quantity_wanted').val(1);
               $('.qty_up img').on('click',function(){
                if (isNaN(parseInt($('#quantity_wanted').val()))){$('#quantity_wanted').val(1);}
                else {$('#quantity_wanted').val(parseInt($('#quantity_wanted').val())+1);
                $("#our_price_display").html(((productPrice*$("#quantity_wanted").val()).toFixed(2)+" "+currencySign).replace('.',','));}      
            });
               $('.qty_down img').on('click',function(){
                if (isNaN(parseInt($('#quantity_wanted').val()))){$('#quantity_wanted').val(1);}
                else {  if(parseInt($('#quantity_wanted').val())<=1){  }
                  else {$('#quantity_wanted').val(parseInt($('#quantity_wanted').val())-1);
                $("#our_price_display").html(((productPrice*$("#quantity_wanted").val()).toFixed(2)+" "+currencySign).replace('.',','));}}
               });
              });
            </script>
        {/literal}
        <label>
            {l s='Quantity:'}
        </label>
        <span class="qty_down floatleft">
            <img src="{$img_dir}minus.png" width="12" height="12" alt="" title="" />
        </span>
        <input
          type
="text"
          name="qty"
          id="quantity_wanted"
          class="text"
          value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}{if $product->minimal_quantity > 1}{$product->minimal_quantity}{else}1{/if}{/if}"
          size="2"
          maxlength="3" {if $product->minimal_quantity > 1}onkeyup="checkMinimalQuantity({$product->minimal_quantity});"{/if} />
        <span class="qty_up floatleft">
         <img src="{$img_dir}plus.png" width="12" height="12" alt="" title="" />
        </span>
</p>



Файл THEME/js/product.js меняем строчку
Код:
$('#our_price_display').text(our_price);


на

Код:
$(document).ready(function(){
            $('#quantity_wanted').change(function(){
                $('#our_price_display').html(formatCurrency(productPrice*$("#quantity_wanted").val(), currencyFormat, currencySign, currencyBlank));
            });
        });

 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос