Изменение окна выбора количества товаров в VirtueMart

Опубликовано: 31 января, 2019
Обновлено: 5 февраля, 2023
Категория: Настройка VirtueMart

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

Это часто используется, например, в чайных магазинах.

При клике на кнопку Купить из формы с классом product собираются значения всех полей и передаются на сервер. За количество отвечает поле с атрибутом name="quantity[]".

Он выводится в файле /components/com_virtuemart/sublayouts/addtocartbar.php кодом

Соответственно, чтобы вывести количество в выпадающем списке, этот код нужно заменить на тег select с тем же атрибутом name="quantity[]".

Используем в новом коде максимальное значение количества по умолчанию. Если в настройках товара будет указано минимальное, максимальное значение и шаг, то они также будут учитываться.

Конечный код код будет следующий.

В итоге на сайте это будет выглядеть так.

Если нужно вывести выбор количества каким-то другим способом, то пишите вопросы в комментариях, постараюсь дополнить статью.

4 комментария

    Виталий

    Здравствуйте, а если нужны дробные варианты, например, 1.2, 1.5 ?

      admin

      admin

      Здравствуйте!
      Вы можете прислать пример магазина где это реализовано?

      denism300

      Несколько лет назад я пытался реализовать подобное для магазина напольных покрытий, но работало все через одно место, поэтому, на это дело забил.

      Если вкратце, то так (было актуально для VM-2, в VM-3, возможно, по-другому):
      /components/com_virtuemart/assets/js/vmprices.js
      заменить все вхождения parseInt на parseFloat

      \components\com_virtuemart\helpers\cart.php
      заменить

      на

      В базе данных
      #__virtuemart_products поле product_in_stock с integer на float
      #__virtuemart_order_items поле product_quantity с integer на float

      после каждого обновления VM проделать пункты выше заново.

      в настройках товара поменять шаг по изменению количества (например, 0,1)

      работать будет, но количество товара при изменении шага по 0,1 будет отображаться примерно так:
      0.1, 0.2, 0.30000000000000004, 0.4, 0.5, 0.6, 0.7, 0.7999999999999999, 0.8999999999999999, 0.9999999999999999

        admin

        admin

        Спасибо, что поделились.

Комментарии закрыты

С 15-18 июня admin в отпуске.

Ответы на все вопросы и ссылки на товары будут присланы 19 июня.

Спасибо за понимание и хороших выходных.

×