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

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

  • 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 в условие по потере фокуса для надёжности.

Новости

  • Сегодня, 04:56
  • Мы внесли изменения в лицензию и объявляем, что прекращаем техническую консультационную поддержку сайтов на DIAFAN.CMS версий старше 7.0. А это все минорные версии платформы, предшествующие актуальной линейке, а именно: версии серии 4.x, 5.x, 6.x.
  • 15 сентября, понедельник
  • У нас отличные новости! Мы выпустили новую сборку DIAFAN.CMS 7.3, которая включает встроенные нейросети непосредственно в административной панели. Это значит, что создание контента для вашего сайта больше не будет проблемой — искусственный интеллект возьмет эту задачу на себя, избавляя вас от необходимости привлекать копирайтеров или тратить время на написание текстов самостоятельно.
  • 25 марта
  • Мы обновили систему тарифов, учитывая опыт работы с клиентами и современные рыночные условия. Новая тарифная сетка разработана специально для того, чтобы лучше отвечать вашим потребностям. Резкого повышения цен не произошло. Более того, некоторые тарифы даже стали выгоднее и доступнее. 

Блоги

  • 10.09.2025
  • DIAFAN.CMS славится нагрузоустойчивостью и безопасностью, про инциденты со взломом сайта на нашей системе давненько не слышали, но недавно получили мы письмо от fstec.ru такого характера:

    Обнаружена уязвимость в CMS-системе DIAFAN, позволяющая нарушителю, действующему удалённо, красть сессионные куки через XSS-атаку.