Быстрый заказ товаров для JoomShopping - документация
Подробное руководство по установке, настройке и использованию дополнения для быстрого заказа товаров в JoomShopping.
Установка и обновление дополнения
Внимание! Перед установкой дополнения обязательно создайте резервную копию файлов и базы данных рабочего проекта и убедитесь, что сможете восстановить проект из этой копии.
В первую очередь для установки дополнения быстрого заказа товаров нужно скачать установочный пакет boxapp_quickcheckout_for_joomshopping.zip
, ссылка на который расположена на странице дополнения.
После скачивания архива нужно зайти в административную часть сайта и в верхнем меню выбрать пункт Компоненты / JoomShopping / Установка и обновление.
administrator/index.php?option=com_jshopping&controller=update
Мы попадаем на страницу стандартного установщика дополнений в JoomShopping, где для установки достаточно выбрать установочный файл (архив) и нажать на кнопку Загрузить. После установки все файлы из архива будут скопированы в папки сайта по тому же пути, как и в архиве, начиная от корневой директории сайта. Если такие файлы уже существуют, то они будут заменены, что позволит обновить дополнение при повторной установке его более свежей версии. Дополнение никак не меняет и не дополняет структуру базы данных сайта и при установке никаких манипуляций с ней не проводится.
Для удаления дополнений в JoomShopping не предусмотрено инструментов. Удалить дополнение можно просто удалив все его файлы. Как мы уже знаем, пути к файлам соответствуют их расположению в установочном архиве.
Интеграция с шаблоном JoomShopping
После установки дополнения для быстрого заказа оно уже готово к использованию, однако заказ необходимо оформлять по специальной ссылке, которая отличается от стандартной в JoomShopping. Ссылка оформления заказа в JoomShopping находится в корзине товаров. Здесь же можно разместить и ссылку (кнопку) для заказа в один клик, поскольку для пользователя такое поведение будет интуитивно понятным.
Использование шаблона boxapp для JoomShopping со встроенной интеграцией дополнения
Наиболее простой способ добавить ссылку для быстрого заказа в корзине – воспользоваться нашим блочным шаблоном для JoomShopping с микроразметкой или шаблоном BoxApp2 на базе uikit, в которые уже интегрирована поддержка этого дополнения. После установки этого шаблона и выбора его в настройках JoomShopping (дополнение быстрого заказа товаров должно быть установлено отдельно) достаточно скопировать папку с макетами быстрого заказа, которая будет расположена по пути
components/com_jshopping/templates/default/quickcheckout
в папку текущего используемого шаблона (в данном случае его имя boxapp)
components/com_jshopping/templates/boxapp/quickcheckout
Это необходимо, поскольку при установке дополнения файлы макетов всегда копируются в default
шаблон JoomShopping, даже если в этот момент будет использоваться другой шаблон по-умолчанию.
После этого можно проверить, что в корзине заказов появилась кнопка "Быстрый заказ" рядом со стандартной "Оформить заказ".
Ручная интеграция в любые другие шаблоны для JoomShopping
При использовании других шаблонов для работы быстрого заказа необходимо внести несколько изменений в файл макета корзины, которые описаны ниже. В первую очередь, если используется не default
шаблон JoomShopping, то в его папку, которая находится по пути
components/com_jshopping/templates/[имя_шаблона]
Нужно скопировать папку с макетами для быстрого заказа quickcheckout
из папки default
шаблона, как описано выше на примере шаблона boxapp
.
Определить название текущего шаблона в JoomShopping можно, если зайти в административную часть сайта и перейти в меню Компоненты / JoomShopping / Настройки и выбрать Основные.
administrator/index.php?option=com_jshopping&controller=config&task=general
Название текущего шаблона JoomShopping будет находиться в поле Шаблон на этой странице.
Далее необходимо перекрыть файлы макетов корзины. Для этого необходимо скопировать их из папки текущего шаблона JoomShopping
components/com_jshopping/templates/[имя_шаблона]/cart
в папку шаблона Joomla!
templates/[имя_шаблона]/html/com_jshopping/cart
где [имя_шаблона] – название текущего используемого шаблона сайта, узнать которое можно, если в административной части сайта зайти в меню Расширения / Менеджер шаблонов.
Все дальнейшие изменения будут проводиться с файлом макета корзины заказов, который расположен по пути
templates/[имя_шаблона]/html/com_jshopping/cart/cart.php
Для того, чтобы сформировать ссылку (кнопку) на страницу быстрого оформления заказа в верхней части файла cart.php
нужно добавить следующий php код
$quickCheckoutInstall = file_exists(JPATH_ROOT . '/components/com_jshopping/controllers/quickcheckout.php'); if ($quickCheckoutInstall) { JHtml::stylesheet('com_jshopping/quickcheckout.css', array(), true); JSFactory::loadExtLanguageFile('boxapp_quickcheckout'); $jshopConfig = JSFactory::getConfig(); $quickCheckoutLink = 'index.php?option=com_jshopping&controller=quickcheckout'; $quickCheckoutLink = $jshopConfig->shop_user_guest == 1 ? $quickCheckoutLink . '&check_login=1' : $quickCheckoutLink; $quickCheckoutUrl = SEFLink($quickCheckoutLink, 1, 0, $jshopConfig->use_ssl); }
Обратите внимание, что код нужно размещать до строки, закрывающей скрипт
?>
Далее необходимо найти ниже в этом же файле блок кода, отвечающий за отображение кнопки оформления заказа. В стандартном шаблоне JoomShopping он выглядит следующим образом
<?php if ($countprod>0) : ?> <a href = "<?php print $this->href_checkout ?>" class = "btn"> <?php print _JSHOP_CHECKOUT ?> <img src = "<?php print $this->image_path ?>/images/arrow_right.gif" alt="<?php print _JSHOP_CHECKOUT ?>" /> </a> <?php endif; ?>
Если вы используете не default
шаблон для JoomShopping, то этот код может отличаться. Найти его можно по переменной $this->href_checkout
или языковой константе _JSHOP_CHECKOUT
.
Если вы хотите убрать стандартную кнопку оформления заказа, то этот блок кода можно удалить, а вместо него вставить код кнопки для заказа в один клик
<?php if ($quickCheckoutInstall) : ?> <div class="order_quick_checkout"> <a href="<?php echo $quickCheckoutUrl; ?>" class="btn"> <?php echo _JSHOP_QUICK_CHECKOUT_BUTTON_LABEL; ?> <img src="<?php echo $this->image_path; ?>/images/arrow_right.gif" alt="<?php echo _JSHOP_QUICK_CHECKOUT_BUTTON_LABEL; ?>" /> </a> </div> <?php endif; ?>
Если же вставить этот код после стандартного кода кнопки в шаблоне, то обе кнопки будут отображаться на странице корзины товаров.
Это все изменения шаблона корзины, которые нужно выполнить. После обновления страницы корзины на сайте должна появиться кнопка Быстрый заказ.

Изменение страницы быстрого заказа
После нажатия на кнопку Быстрый заказ на странице корзины товаров пользователь переходит на страницу быстрого оформления заказа, которая объединяет в себе все шаги при стандартной процедуре оформления заказа. Поля формы, которую заполняет пользователь, доступность способов доставки и оплаты настраивается в административной части сайта, как и при обычном процессе оформления заказ. Но часто случается, что стандартные поля не отвечают требованиям конкретного интернет-магазина. К тому же их расположение, порядок и общее оформление этой страницы также часто необходимо модифицировать. Как решить такого рода задачи?
Для изменения полей формы оформления заказа проще всего прибегнуть к переименованию не используемых стандартных полей того же типа. Например, нам нужно, чтобы пользователь при оформлении заказа указал в какое время ему было бы удобно доставить заказ курьером и при этом в форме оформления никак не используется поле "Факс", поскольку его номер нам не нужен.
Чтобы отобразить поле "Когда доставить?" в форме вместо поля "Факс" в первую очередь нужно перекрыть шаблон страницы быстрого оформления заказа в текущем шаблоне Joomla!. Для этого необходимо скопировать папку
components/com_jshopping/templates/[имя_шаблона_JoomShopping]/quickcheckout
в папку текущего шаблона Joomla
templates/[имя_шаблона_Joomla]/html/com_jshopping/quickcheckout
В этой папке находятся три файла шаблона
-
form.php
– отвечает за отображение формы оформления заказа -
smallcart.php
– формирует корзину товаров для отображения на странице оформления заказа -
finish.php
– отображает финальное сообщение после завершения процесса оформления заказа
Форма оформления заказа меняется в файле form.php
. В базовой реализации после установки в нем присутствует код, который пытается автоматически вывести поля формы, заданные в настройках JoomShopping.
<?php foreach ($this->configFields as $fieldName => $fieldParams) : ?> <?php if (isset($fieldParams['display']) && $fieldParams['display']) : ?> <div class="user-info-field-item-block"> <?php echo $fieldParams['value']; ?> </div> <?php endif; ?> <?php endforeach; ?>
Вместо него можно определить произвольный набор из имеющихся полей в JoomShopping, который соответствует потребностям конкретного интернет-магазина. Код вывода всех этих полей находится в файле
components/com_jshopping/templates/default/checkout/adress.php
Например, поле Имя выводится следующим кодом
<?php if ($config_fields['f_name']['display']){?> <div class = "control-group"> <div class = "control-label name"> <?php print _JSHOP_F_NAME ?> <?php if ($config_fields['f_name']['require']){?><span>*</span><?php } ?> </div> <div class = "controls"> <input type = "text" name = "f_name" id = "f_name" value = "<?php print $this->user->f_name ?>" class = "input" /> </div> </div>
Увидеть все эти поля на странице сайта можно на первом шаге обычного процесса оформления заказа в JoomShooping.
Теперь вернемся к поставленной задаче. В файле adress.php
нужно найти блок, который выводит поле Факс.
<?php if ($config_fields['fax']['display']){?> <div class = "control-group"> <div class = "control-label name"> <?php print _JSHOP_FAX ?> <?php if ($config_fields['fax']['require']){?><span>*</span><?php } ?> </div> <div class = "controls"> <input type = "text" name = "fax" id = "fax" value = "<?php print $this->user->fax ?>" class = "input" /> </div> </div> <?php } ?>
Скопируем этот код и вставим вместо кода цикла в файле form.php
, который приводился выше. В этом коде в качестве контейнера для полей формы используется переменная $config_fields
, но в шаблоне формы быстрого оформления заказа поля хранятся в переменной $this->configFields
. После замены переменной и внесения нескольких модификаций блок кода может иметь следующий вид:
<?php if ($this->configFields['fax']['display']) : ?> <div class="control-group"> <div class="control-label name"> <?php echo _JSHOP_FAX; ?> <?php echo $this->configFields['fax']['require'] ? $requiredFieldStar : ''; ?> </div> <div class="controls"> <input type="text" name="fax" id="fax" value="<?php echo $this->user->fax; ?>" class="input" /> </div> </div> <?php endif; ?>
Далее заходим в административную часть сайта и в меню выбираем пункт Компоненты / JoomShopping / Настройки. На этой странице выбираем пункт Поля регистрации. В средней колонке с заголовком Адрес перечислены настройки для вывода полей формы (до строки Адрес доставки). Попробуем убрать все отмеченные поля, а для поля Факс оставим отметку только показать. Сохраняем настройки и переходим на сайт. Если мы закажем товар и нажмем на кнопку Быстрый заказ, то в форме под заголовком Контактная информация увидим только поле Факс. Но нам нужно, чтобы оно называлось "Когда доставить?". Для этого можно переопределить языковую константу _JSHOP_FAX.
Переопределение языковых констант в JoomShopping схоже со схемой этой же процедуры в Joomla!. Все языковые файлы JoomShopping хранятся по пути
components/com_jshopping/lang
Для переопределения имеющихся констант в этой папке есть директория override
(если нет, то можно создать). В нее помещается файл с названием, соответствующим языку перевода. Например, для русских переводов сообщений этот файл должен называться ru-RU.php
, для английских en-GB.php
и т.д. В итоге нам нужно создать файл (если его нет)
components/com_jshopping/lang/override/ru-RU.php
со следующим кодом
<?php defined('_JEXEC') or die(); define('_JSHOP_FAX', 'Когда доставить?');
Обратите внимание на то, что файл обязательно должен быть в UTF-8 кодировке. После этого обновим страницу быстрого оформления заказа. Название поля должно стать "Когда доставить?".
По аналогии можно создать форму из любого набора полей, имеющихся в JoomShopping, разместить их в любой последовательности, изменить css классы элементов, чтобы придать им уникальный дизайн.