JoomShopping: добавляем форму заказа продукции в режиме "Каталог товаров"

  • Создано 17.06.2020 13:25

Однажды от заказчика мне "прилетела" задачка: у заказчика имеется сайт с установленным компонентом JoomShopping, функционирует, как интернет-магазин, он захотел уйти от корзины, вывести каталог товаров, но в карточку товара добавить форму обратной связи, чтобы пользователь таким образом мог заказать интересующий его товар. Итак,

1. В настройках компонента JoomShopping, (Настройки -> Функции магазина) устанавливаем галочку "Использовать как каталог"

2. В качестве формы обратной связи будем использовать модуль Wedal Joomla Callback (Описание и ссылка на скачивание: https://wedal.ru/rasshireniya-joomla/modul-wedal-joomla-callback-vsplyvayushchaya-forma-obratnoj-svyazi.html. Скачиваем и устанавливаем этот модуль обычным способом.

3. В шаблоне Вашего сайта добавляем новую позицию модуля, которая нигде на сайте не выводится. Для этого в файле templateDetails.xml (находится в папке с шаблоном) в блок добавляем:product

4. Настраиваем модуль Wedal Joomla Callback: Состояние - Опубликовано, Позиция - product, Привязка модуля - на всех страницах.

5. В шаблоне карточки страницы в JoomShopping (/components/com_jshopping/templates/default/product/product_default.php) добавляем вывод модуля:

jimport( 'joomla.application.module.helper' ); // подключаем нужный класс, один раз на странице, перед первым выводом
$module = JModuleHelper::getModules('product'); // получаем в массив все модули из заданной позиции
$attribs['style'] = 'xhtml'; // задаём, если нужно, оболочку модулей
echo JModuleHelper::renderModule($module[0], $attribs); // выводим первый модуль из заданной позиции

Данный модуль выводит кнопку "Заказать" (выводимый на кнопке текст настраивается в модуле), по клику на который открывается всплывающее окно с формой обратной связи:

На указанный в настройках модуля e-mail отправляется письмо, в котором помимо заполненных пользователем полей, есть информация о том, с какой страницы отправлена заявка.

ICH BIN KAKAI_I_IKA