Быстрый заказ товаров для 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; ?>

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

Это все изменения шаблона корзины, которые нужно выполнить. После обновления страницы корзины на сайте должна появиться кнопка Быстрый заказ.

Кнопка быстрого заказа в корзине JoomShopping

Изменение страницы быстрого заказа

После нажатия на кнопку Быстрый заказ на странице корзины товаров пользователь переходит на страницу быстрого оформления заказа, которая объединяет в себе все шаги при стандартной процедуре оформления заказа. Поля формы, которую заполняет пользователь, доступность способов доставки и оплаты настраивается в административной части сайта, как и при обычном процессе оформления заказ. Но часто случается, что стандартные поля не отвечают требованиям конкретного интернет-магазина. К тому же их расположение, порядок и общее оформление этой страницы также часто необходимо модифицировать. Как решить такого рода задачи?

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

Чтобы отобразить поле "Когда доставить?" в форме вместо поля "Факс" в первую очередь нужно перекрыть шаблон страницы быстрого оформления заказа в текущем шаблоне 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 классы элементов, чтобы придать им уникальный дизайн.

Будьте внимательны! Если в настройках полей JoomShopping будут отмечены обязательными для заполнения поля, которых нет в форме, то при нажатии на кнопку Оформить заказ форма не будет проходить проверку данных на валидность и следовательно заказ не будет оформлен.