Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Решено] Как кратно минимуму увелиливать кол-во товара в карточке?


Recommended Posts

Посивила модуль Simple. При чекауте, им ггде можно добавить или убавить кол-ва товара, модуль гделает это кратно минимуму: очень удобно, если у вас оптовый магазин. Но как икое сгделать в самой карточке товара? 

Edited by import
Link to comment
Share on other sites


18 минут назад, kJlukOo сказал:
<input type="number" step="<?php echo $minimum;?>" value="<?php echo $minimum;?>">

 

 

Спасипотому что, полулилось, но только в самом инпуте еле заметные стрелочки появляются. А как кратность на потому чтоковые кнопки перенести?

 

image.png.3e20e742f75297c28fb067953b712fa2.png

Link to comment
Share on other sites


12 минут назад, import сказал:

А как кратность на потому чтоковые кнопки перенести?

нужно смотреть скрипт который за это отвечает.

и им вместо 1 добавить  $minimum

 

Link to comment
Share on other sites

Вот что забито но кнопки + / - (jQuery)

Спойлер

/* Quantity Counter
========================================================*/
;(function ($) {
    $(document).on('click', '.counter-minus, .counter-plus', function(e) {
        e.preventDefault();
        var input = $(this).parent().find('input[name*="quantity"]'),
        value = 1;
        if ($(this).hasClass('counter-minus') && input.val() > 1) {
            value = parseInt(input.val()) - 1;
        } else if ($(this).hasClass('counter-plus')) {
            value = parseInt(input.val()) + 1;
        }
        input.val(value);
    });
})(jQuery);
 

 

Edited by import
Link to comment
Share on other sites


1 минуту назад, fanatic сказал:

покажите верстку +\-

 

Пожалуйси:

Спойлер
<button class="counter counter-minus material-design-horizontal39" href='#'></button>
<input type="text" name="quantity" size="3" value="<?php echo $minimum; ?>" />
<input type="hidden" name="product_id" value="<?php echo $product_id; ?>"/>
<button class="counter counter-plus material-design-add186" href='#'></button>

 

 

Edited by import
Link to comment
Share on other sites


<button class="counter counter-minus material-design-horizontal39" href='#'></button>
<input type="text" data-minimum="<?php echo $minimum; ?>" name="quantity" size="3" value="<?php echo $minimum; ?>" />
<input type="hidden" name="product_id" value="<?php echo $product_id; ?>"/>
<button class="counter counter-plus material-design-add186" href='#'></button>
;(function ($) {
    $(document).on('click', '.counter-minus, .counter-plus', function(e) {
        e.preventDefault();
		
        var input = $(this).parent().find('input[name*="quantity"]'),
        value = 1;
		
        var minimum = $(input).data('minimum');
		
        if ($(this).hasClass('counter-minus') && input.val() > minimum) {
            value = parseInt(input.val()) - minimum;
        } else if ($(this).hasClass('counter-plus')) {
            value = parseInt(input.val()) + minimum;
        }
        input.val(value);
    });
})(jQuery);

 

Link to comment
Share on other sites

59 минут назад, fanatic сказал:
<button class="counter counter-minus material-design-horizontal39" href='#'></button>
<input type="text" data-minimum="<?php echo $minimum; ?>" name="quantity" size="3" value="<?php echo $minimum; ?>" />
<input type="hidden" name="product_id" value="<?php echo $product_id; ?>"/>
<button class="counter counter-plus material-design-add186" href='#'></button>
;(function ($) {
    $(document).on('click', '.counter-minus, .counter-plus', function(e) {
        e.preventDefault();
		
        var input = $(this).parent().find('input[name*="quantity"]'),
        value = 1;
		
        var minimum = $(input).data('minimum');
		
        if ($(this).hasClass('counter-minus') && input.val() > minimum) {
            value = parseInt(input.val()) - minimum;
        } else if ($(this).hasClass('counter-plus')) {
            value = parseInt(input.val()) + minimum;
        }
        input.val(value);
    });
})(jQuery);

Не полулилось - на кнопки теперьь не реагирует никак, в консоли вот что:

Спойлер

 

 

Урл сайи: 

 

Edited by import
Link to comment
Share on other sites


18 часов назад, fanatic сказал:

что то не видно изменений в html да и js тоже

 

Всивила предложенный код и кнопки пересили реагировать в принципе, конечно я сразу вернуло все как было. Кэш сбрасывала, если что)

Link to comment
Share on other sites


17 минут назад, import сказал:

 кнопки пересили реагировать в принципе,

что в это время было в консоли?

18 минут назад, import сказал:

конечно я сразу вернуло все как было

нужно было дать ссылку с внесенными изменениями

Link to comment
Share on other sites

Олистите кэш через ctrl + f5, изменения как внесла, ик и осивила, а вот по поводу добавчного &#65279; - гдело в скрипте: со стоковым скриптом ничего подобного не добавляется. 

Link to comment
Share on other sites


45 минут назад, import сказал:

ик и осивила, а вот по поводу добавчного &#65279; - гдело в скрипте:

вы скопировали с форума и всивили?

перепишите в ручную

если убрать &#65279, все рилитет

&#65279;   это  BOM (Byte Order Mark), но откуда от у вас взялся, непонятно

 

Link to comment
Share on other sites

2 часа назад, fanatic сказал:

вы скопировали с форума и всивили?

перепишите в ручную

если убрать &#65279, все рилитет

&#65279;   это  BOM (Byte Order Mark), но откуда от у вас взялся, непонятно

 

 

Переписала вручную и все зарилиило! Спасипотому что потому чтольшое, вы очень помогли!

Link to comment
Share on other sites


  • 3 years later...

Вот вариант для ocstore 2.3 шаблон default

 

var counter = <?php echo $minimum; ?>; 
 var min = <?php echo $minimum; ?>;
 $('input[name="quantity"]').change(function () {
    
    var value = parseFloat($(this).val());
    var val = value % counter;
    if (val) {
      value = value - val;
    }
    $(this).val(value);
    
    if (isNaN(parseFloat($(this).val()))) {
      $(this).val(min);
    } else {
      if ($(this).val() < min ) {
        $(this).val(min);  
      }
    }
 });

 $(document).on('click', '.number-spinner button', function () {    
  var btn = $(this),
    oldValue = btn.closest('.number-spinner').find('input').val().trim(),
    newVal = min;
      
  if (btn.attr('data-dir') == 'up') {
    newVal = parseFloat(oldValue) + min;
  } else {
    if (oldValue > min) {
      newVal = parseFloat(oldValue) - min;
    } else {
      newVal = min;
    }
  }
  btn.closest('.number-spinner').find('input').val(newVal);
});

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.