Вход • Регистрация

Минимальное количество единиц товара при заказе

  • 26 января 2017 г.
  • Столкнулся с такой проблемой, необходимо указать минимальное количество товара, скажем 5 штук, но сделать это так, чтобы покупатель не смог поставить меньше. Есть ли готовые решения?
    • 26 января 2017 г. , редакция: 28 января 2017 г.
    • Вам нужно подправить 2 шаблона:
      1. /modules/shop/views/shop.view.buy_form_list.php (строка 127)
      2. /modules/shop/views/shop.view.buy_form.php (строка 182)
      Строку надо подправить следующую:
      Код
      <input type="text" value="1" name="count" class="number" pattern="[0-9]+([.|,][0-9]+)?" step="any">
      Сменить надо на эту:
      Код
      <input type="text" value="5" onkeypress="if( event.keyCode == 13 ){ return false }" onblur="if( this.value < 5 ){ this.value = 5;alert(\'Нельзя купить менее 5 шт.\'); return false }" name="count" class="number" pattern="[0-9]+([\.|,][0-9]+)?" step="any">
      Таким образом меньше 5 шт. поставить будет нельзя.

      Это один из вариантов. Другой вариант с аналогичным результатом - изменить файл /modules/shop/shop.action.php (42 строка) c
      Код
      if(! $count)
      {
      $this->result["errors"][0] = $this->diafan->_('Количество товара должно быть больше нуля.');
      return;
      }
      $count = $count > 0 ? $count : 1;
      на
      Код
      if($count < 5)
      {
      $this->result["errors"][0] = $this->diafan->_('Минимальный заказ от 5 штук.');
      return;
      }
      $count = $count > 4 ? $count : 5;
      В результате минимальное число товара для заказа будет пять штук.



      Минус обоих решений в первую очередь в том, что добавлять можно от 5 шт. товара, даже если в корзине уже присутствует 5 или более. Получается, что нельзя положить в корзину 8 товаров путём добавления 5 + 3. Т.е. нужно сразу добавлять нужное количество.
      • 26 января 2017 г.
      • ЛЮБИМОВ ПАВЕЛ (WEBNAVIGATOR), не совсем так. Точнее не до конца. Нужно еще в модуле cart поставить условие: не заносить в корзину, если количество товаров меньше определенного числа. Хотя, я думаю Вы это и без меня бы догадались, если Вам заплатили бы за данное решение.

        В любом случае, успехов.
        • 26 января 2017 г. , редакция: 28 января 2017 г.
        • Пока переписывал свой пост, вы ответили на изначальный вариант с <input type="number">, который не учитывал ввод с клавиатуры.

          Я в основном специализируюсь на вёрстке, поэтому советую в основном варианты решений со стороны шаблонов (вьюх). Разумеется, любое решение на уровне узла обработки данных практичнее и правильнее, чем на уровне ввода. Но вроде как работает.



          Обратил внимание, что в Internet Explorer клик по Enter обрабатывается немного по-другому, поэтому подправил код - по нажатию Enter возвращает false (не добавляет товар), также добавил false в условие по потере фокуса для надёжности.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум