Создание пользовательского способа доставки в OpenCart: часть 1

Создание пользовательского способа доставки в OpenCart

От автора: в OpenCart доставка по умолчанию предполагает наличие множества полезных способов. Но всегда есть шанс, что вам понадобится свой собственный. С другой стороны, как разработчик, вы всегда будете изучать свой фреймворк и создавать что-то свое! В этой серии уроков мы создадим пользовательский модуль способа доставки в OpenCart. Серия будет из двух уроков, и в первой части мы создадим back end форму настроек для кастомного метода.

Для создания нового метода доставки необходимо создать файлы согласно схеме именования в OpenCart. В back end вам понадобится создать форму настроек, с помощью которой администратор сможет изменять цену, геозону и другие параметры, связанные с способом доставки. На front end вы создадите необходимые файлы, чтобы пользовательский метод доставки появлялся в корзине!

Сегодня мы разберем часть с back end. Предполагаю, что вы работаете в последней версии OpenCart. Во второй части мы разберем front end, где посмотрим настройки файлов и демо.

Создание файлов на back end

Начнем со списка файлов, которые необходимо создать на back end. Наш способ доставки будет называться custom.

admin/controller/shipping/custom.php: файл контроллера, где мы будем настраивать все необходимое для формы настроек

admin/language/english/shipping/custom.php: языковой файл, в котором будут определяться лейблы для формы

admin/view/template/shipping/custom.tpl: файл шаблона представления с HTML кодом формы настроек

По части back end это все.

Создание файлов

Начнем с создания контроллера.

Создание файла контроллера

Создайте файл admin/controller/shipping/custom.php и вставьте следующий код.

Важный файл, определяющий большую часть логики для формы настроек back end. Разберем важные куски кода в методе index контроллера. По схеме именования вам необходимо создать класс ControllerShippingCustom.

В методе index сначала загрузим языковой файл и укажем заголовок страницы.

Далее загрузим модель setting и сохраним настройки в базу данных, которая доступна в виде POST данных формы настроек. Перед сохранением данных мы проводим валидацию формы с помощью метода validate.

Далее мы записываем языковые лейблы в массив $data, чтобы потом обратиться к ним в файле шаблона представления.

Далее идет стандартный код хлебных крошек.

Затем мы создаем переменную action и проверяем, что форма отправилась в метод index. Пользователи возвращаются к списку способов доставки по клику на кнопку cancel.

Далее идет код, заполняющий форму значениями по умолчанию (как в режиме добавления, так и в режиме редактирования).

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

И наконец, мы создаем дочерние шаблоны и главный шаблон представления.

Создание языкового файла

Создайте файл admin/language/english/shipping/custom.php и вставьте следующий код.

Код говорит сам за себя!

Создание файла представления

Создайте файл admin/view/template/shipping/custom.php и вставьте следующий код.

Код очень простой. Цель шаблона – предоставить форму настроек для пользовательского способа доставки. В шаблоне используются переменные, ранее заданные в контроллере.

По созданию файлов на back end все. В следующем разделе мы посмотрим, как активировать наш пользовательский способ доставки, а также узнаем, как выглядит наша форма настроек!

Активация пользовательского способа доставки

Перейдите в панель администратора и далее Extensions > Shipping. Пользовательский метод должен быть в списке Custom Rate. Кликните на + для установки пользовательского метода доставки. После установки вы сможете отредактировать форму по ссылке edit. Кликните на edit, откроется следующая форма.

В этой форме важны поля Tax Class и Geo Zone.

Tax Class позволяет выбрать регион, для которого применим данный метод. Для простоты поставим All Zones. Также статус должен быть Enabled, иначе метод не появится в списке на front end в корзине.

После заполнения необходимых данных сохраните форму. На сегодня все. Скоро вернусь с новым уроком, где расскажу про создание файлов front end.

Заключение

Сегодня мы начали серию уроков о создании пользовательского способа доставки в OpenCart. В первой части мы прошли back end и узнали, как создать форму настроек.

Автор: Sajal Soni

Источник: //code.tutsplus.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: