Ограничение количества товара для заказа в virtuemart

Опубликовано: 29 Август, 2018
Обновлено: 30 Август, 2018
Категория: Общие вопросы
Комментариев: 4

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

Скрыть кнопку Купить у товаров, которых нет в наличии 

Если товара нет в наличии, то вместо кнопки Купить можно показать кнопку Уведомить меня. Пользователь сможет оставить свои данные и при поступлении товара ему придет письмо. Подробнее можно прочитать в этой статье.

Если нужно просто скрыть кнопку Купить без показа Уведомить меня, то в файле /components/com_virtuemart/sublayouts/addtocart.php замените

на

Чтобы эти изменения сохранились при обновлении virtuemart необходимо переопределить файл в папке /components/com_virtuemart/sublayouts/.

Аналогичным образом нужно переопределить и все остальные файлы, о которых пойдет речь далее, подробнее в этой статье (раздел Обновление virtuemart).

Ограничить количество товаров для покупки

При создании товара можно задать минимальное/максимальное количество, доступное для заказа.

Эти настройки зададут min/max ограничения для поля выбора количества, но при повторном заказе сверх лимита никакого уведомления не последует и покажется просто пустое окно.

Это можно ввести покупателя в заблуждение, поэтому было бы хорошо заранее проинформировать о максимальном количестве, доступном для заказа. Для этого в файле /components/com_virtuemart/sublayouts/addtocart.php после

добавьте

В итоге получится примерно следующее.

Для вывода информации во всплывающем окне в файле /components/com_virtuemart/views/cart/tmpl/padded.php перед

добавьте

Добавление только одной единицы товара

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

В файле /components/com_virtuemart/sublayouts/addtocart.php заменим

на

В Расширения > Менеджер языков > Переопределение констант создадим новую языковую константу

Теперь если товар в корзине, то у него вместо кнопки Купить будет показа ссылка на корзину.

Чтобы при клике на кнопку Купить она автоматически менялась необходимо отключить показ всплывающего окна и добавить небольшой скрипт.

Для отключения всплывающего окна в файле /сomponents/com_virtuemart/assets/js/vmprices.js закомментируйте

и закомментируйте

Чтобы кнопка Купить автоматически менялась на все страницы сайта добавьте скрипт

С помощью скрипта кнопке на 2 сек. присваивается класс loading, который можно использовать для добавления анимации, имитирующей загрузку.

Финальный этап - добавление стилей. Ниже только самые необходимые стили. Вид кнопки Товар в корзине можно настроить с помощью класса product-in-cart.

Для анимации использовалась эта картинка.

Надеюсь, что статья была полезна и пригодится в вашей работе.

Все скриншоты сделаны в шаблоне NanoShop.

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

    7Hogik

    Спасибо за статью. Недавно ознакомился с виджетами тк (ПЕК и СДЕК) на сайтах компании для их добавления на сайт. Планируете ли Вы написать статью о их внедрении в Ваш шаблон?

      admin

      admin

      Рад, что статья оказалась полезной. По СДЕК не планировал пока писать статьи.

    Messir

    Messir

    Небольшое уточнение, ибо сам недавно сломал голову, почему товар вроде есть, а кнопки "купить" нету)))) Код:

    лучше писать как:

    ибо базовая интерпретация подразумевает определение "количество товара на складе минус количество заказанных", другими словами, если было куплено десять единиц этого товара, а вы (при нулевом остатке) добавили пять единиц, то кнопки "купить" все равно не будет. Столкнулся с этим еще на ВМ2.

      admin

      admin

      Спасибо за дополнение.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
Для вставки кода заключите его в теги [php] [/php]
*

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

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

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

×