Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


import

Recommended Posts

Поставила модуль 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 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);
});

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.