Создание кастомного расширения order total в OpenCart

Создание кастомного расширения order total в OpenCart

От автора: в этой статье мы рассмотрим, как происходит в OpenCart создание расширений. Расширения order totals позволяют манипулировать суммой заказа в процессе его оформления. Удобный способ как добавлять дополнительный налог, так и давать скидку через различные методы. Мы создадим полноценное расширение order totals, которое будет применять дополнительный налог, заданный в форме настроек на стороне back end.

Чтобы создать кастомное расширение order totals, нам необходимо создать файлы back end и front end. Файлы back end отвечают за форму настроек, а файлы front end определяют логику расширения. Естественно, OpenCart не определит ваше расширение на странице корзины без файлов front end.

Будем работать в последней версии OpenCart. Также предполагаю, что вы знаете основы процесс модульной разработки в OpenCart. Перейдем сразу к делу!

Файлы back end

В этом разделе мы создадим файлы back end. В конце раздела в списке расширений order totals появится наше кастомное. Также вы сможете установить и настроить его через кастомную форму настроек.

Создайте файл контроллера admin/controller/total/customot.php со следующим кодом.

Как видите, это довольно стандартный контроллер back end в OpenCart. Основная задача файла контроллера – установка лейблов и других элементов, которые будут вызываться на форме настроек. Также он обрабатывает отправку формы путем валидации и сохранения значений формы в базе данных.

Теперь создайте языковой файл admin/language/english/total/customot.php со следующим кодом.

Код понять не трудно, здесь просто задаются лейблы.

И наконец, создайте файл шаблона представления admin/view/template/total/customot.tpl.

В файле хранится XHTML код нашей формы настроек.

С back end закончили. Перейдите в Extensions > Order Totals. Расширение Custom Order Total должно быть в списке вместе с другими расширениями. Давайте установим и настроим его, как показано на скриншоте ниже.

Я задал Custom Tax значение 5, то есть поверх общей суммы заказа будем взиматься еще 5%. Заполните значения и сохраните форму.

Файлы front end

В этом разделе мы создадим файлы front end, чтобы наше расширение определялось на странице оформления заказа.

Создайте файл модели catalog/model/total/customot.php со следующим кодом.

Важный файл и центральная логика нашего расширения. OpenCart вызывает метод getTotal для всех расширений order totals на странице оформления заказа. Обратите внимание на важные аргументы $total_data, $total и $taxes.

Переменная $total_data представляет собой массив всех данных расширений order total. Переменная $total – общая сумма заказа, а $taxes хранит применяемый налог.

В этом методе мы получаем значение Custom Tax, которое была задано в форме настроек на стороне back end. Далее мы вычисляем суму кастомного налога и присваиваем ее переменной $customtax_value. Затем мы записываем нашу информацию о расширении в массив $total_data и добавляем кастомный налог в переменную $total.

Нам осталось создать языковой файл catalog/language/english/total/customot.php со следующим кодом.

С front end закончили!

Демо на front end

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

Таким образом, вы можете влиять на общую сумму заказа через расширение order totals.

Заключение

В этой статье мы узнали, как создать кастомное расширение order totals, а также как манипулировать общей суммой заказа. Очень удобно прикреплять любой кастомный налог или скидку. Предложения и вопросы приветствуются!

Автор: Sajal Soni

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

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

Метки:

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

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

Комментарии (1)