Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


import
 Поделиться

Рекомендованные сообщения

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

Изменено пользователем import
Ссылка на комментарий
Поделиться на других сайтах


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

<input type="number" step="<?php echo $minimum;?>" value="<?php echo $minimum;?>">

 

 

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

 

image.png.3e20e742f75297c28fb067953b712fa2.png

Ссылка на комментарий
Поделиться на других сайтах


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

А как кратность на боковые кнопки перенести?

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

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

 

Ссылка на комментарий
Поделиться на других сайтах

Вот что забито но кнопки + / - (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);
 

 

Изменено пользователем import
Ссылка на комментарий
Поделиться на других сайтах


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

Ссылка на комментарий
Поделиться на других сайтах

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>

 

 

Изменено пользователем import
Ссылка на комментарий
Поделиться на других сайтах


<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);

 

Ссылка на комментарий
Поделиться на других сайтах

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);

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

Спойлер

image.thumb.png.7a962904dc2bbc85b01d23d77a76abb4.png

 

 

Урл сайта: 

 

Изменено пользователем import
Ссылка на комментарий
Поделиться на других сайтах


3 часа назад, import сказал:

Урл сайта: 

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

Ссылка на комментарий
Поделиться на других сайтах

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

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

 

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

Ссылка на комментарий
Поделиться на других сайтах


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

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

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

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

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

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

Ссылка на комментарий
Поделиться на других сайтах

 

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

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

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

 

Внесла изменения, плюс заработал, а вот минус не хочет: http://open.u3945.red.elastictech.org/

Ссылка на комментарий
Поделиться на других сайтах


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

а вот минус не хочет:

plus-minus_1.thumb.png.5e64461a4e49db1eeb229e12d6509ea0.png

Ссылка на комментарий
Поделиться на других сайтах

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

Внесла изменения,

не вижу

plus-minus.thumb.png.ee9c1a3161fda613a33ab5b76385606d.png

Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах


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

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

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

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

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

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

 

Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

 

 

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

Ссылка на комментарий
Поделиться на других сайтах


  • 3 года спустя...

Вот вариант для 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);
});

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.