Перейти к содержанию
vadike

[Решено] Кратность заказа..

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

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

 

Пример: 

У нас есть минимальный заказ 10.000

Следующий минимальный заказ должен быть кратен 500, тоесть заказ уже будет 10.500

 

ocStore 1.5.4.1

 

Можно такое сделать?

Поделиться сообщением


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

Можно сделать у корзины кнопки "+" и "-", повесить на них событие, и в функции-обработчике поставить шаг равный 500

но тут есть нюанс, что пользователь может вручную вписать туда что-то, не кратное 500, тогда надо делать проверку и округлять

Поделиться сообщением


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

Можно сделать у корзины кнопки "+" и "-", повесить на них событие, и в функции-обработчике поставить шаг равный 500

но тут есть нюанс, что пользователь может вручную вписать туда что-то, не кратное 500, тогда надо делать проверку и округлять

Сможете реализовать? 

Поделиться сообщением


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

в общем, во такое решение

 

ищите в шаблоне инпут с кол-вом товара

вот так он выглядит по дефолту:

<input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
дописываете к нему вот такое:

<span id="minus" class="quantity-operator">-</span>
<input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
<span id="plus" class="quantity-operator">+</span>
и в конец html пихаете такой JS код

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

 $('.quantity-operator').click (function () {
    
    if ($(this).attr('id') == 'minus') {
      if (parseInt($('input[name="quantity"]').val()) > min) {
        $('input[name="quantity"]').val(parseInt($('input[name="quantity"]').val()) - counter);
      }      
    } else {
      $('input[name="quantity"]').val(parseInt($('input[name="quantity"]').val()) + counter);  
    }
 });
  • +1 1

Поделиться сообщением


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

Поделиться сообщением


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

в общем, во такое решение

 

ищите в шаблоне инпут с кол-вом товара

вот так он выглядит по дефолту:

<input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
дописываете к нему вот такое:

<span id="minus" class="quantity-operator">-</span>
<input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
<span id="plus" class="quantity-operator">+</span>
и в конец html пихаете такой JS код

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

 $('.quantity-operator').click (function () {
    
    if ($(this).attr('id') == 'minus') {
      if (parseInt($('input[name="quantity"]').val()) > min) {
        $('input[name="quantity"]').val(parseInt($('input[name="quantity"]').val()) - counter);
      }      
    } else {
      $('input[name="quantity"]').val(parseInt($('input[name="quantity"]').val()) + counter);  
    }
 });

 

Хорошее дополнение вы написали, есть один небольшой вопрос: с дробным минимальным количеством для заказа не хочет работать.....
Например минимальное количество для заказа 2.5   и нажимаем +  и  у меня плюсуется только цифра перед запятой, то есть выдает после нажатия на + не 5, а 4.5
Я делал вот как описано здесь -  чтоб счетчик считал в качестве шага именно минимальное количество для заказа.
 
На пиво накину за беспокойство.
 
Спасибо

Поделиться сообщением


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

Доброго времени суток! А может кто подсказать есть ли модуль или решение для кратности заказа? Т.е. в карточке стоит цена за единицу товара, а купить можно только пачку или 2 - 3 пачки?

Поделиться сообщением


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

такой смотрите

Поделиться сообщением


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

и в конец html пихаете такой JS код
Не подскажете о какой html-ке речь идет?

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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