OpenCart как добавить методы оплаты или создать клон «банковский перевод»
|Интернет магазин на базе OpenCart хорош тем что в него включены практически все функции которые нужны обычному предпринимателю. Но иногда требуется немного допилить, доделать магазин под наши требования, к примеру убрать лишние шаги при заказе в OpenCart или как поставить в админке валюту доллары, а на сайте чтобы выводились рубли или гривны. В некоторых случая надо работать с php кодом, а в некоторых случаях достаточно просто админки и строго следовать инструкции. В этой статье мы рассмотрим как добавить новые методы оплаты, а именно будем клонировать метод оплаты «банковский перевод» поскольку он лучше всего подходит под наши цели. А в статье Добавить метод доставки или склонировать «Фиксированная стоимость доставки» вы сможете посмотреть как добавить новые методы доставки. Но давайте обо всем по порядку.
Для чего может понадобится добавить метод оплаты в OpenCart
В первую очередь чтобы что-то сделать нам нужно понять, зачем мы это делаем. В странах СНГ, в отличии от Европейского или американского рынка несильно распространены оплата прямо через сайт используя вашу кредитную карту. Этим методом практически никто не пользуется потому что очень часто в интернет магазинах товара нет в наличии, не соответствует цена, да и вообще очень много мошенников в интернете развелось. Поэтому чаще всего используются такой способ заплатить за заказ:
- Наличными курьеру
- Наличными прямо в магазине при самовывозе
- Безналичными при покупке не как частное лицо, а как юридическое (компания)
и эти три варианта уже есть у нас в движке. Но проблема возникает когда у вы хотите предоставить другие способы, к примеру:
- Вебмани
- Яндекс деньги
- Qiwi кошельки
- Оплата по безналу с НДС
- Оплата по безналу без НДС
По сути эти все способы очень похожи между собой, отличаются только инструкцией которую нужно выводить покупателю. Вебмани, Яндекс Деньги, Qiwi — перекинуть денег на такой-то кошелек, Оплаты по безналу — ожидать счет на email который выставит бухгалтерия.
Соотвественно логически было бы предположить что нам необходимо всего лишь склонировать методы оплаты «банковский перевод» только назвать его по другому. Для этого есть два способа. Первый тяжелый — вручную найти и изменить php код, второй — скачать файлы которые уже для вас изменили и просто положить их на FTP.
Как добавить методы оплаты в OpenCart. Способ №1 — ручной
Начнем мы с тяжелого пути. Чтобы склонировать банковский перевод нам надо найти все файлы которые за нег отвечают и сменить одни строки в самом файле на другие, а также переименовать сами файлы. Вроде все просто, но довольно кропотливая работа. Для этого, для части администратора скачайте файлы по путям:
1 2 | admin/controller/payment/bank_transfer.php admin/view/template/payment/bank_transfer.tpl |
А для клиентской части качаем следующие файлы:
1 2 3 | catalog/controller/payment/bank_transfer.php catalog/model/payment/bank_transfer.php catalog/view/theme/ВАША ТЕМА/template/payment/bank_transfer.php |
Теперь нам нужно в этих файлах все упоминания bank_transfer изменить на свои, к примеру для Webmoney пусть так и будет Webmoney. Также, как я писал выше, необходимо переименовать и названия самих файлов. После чего загрузите то что получилось на сервер, по тем же самым маршрутам.
После этого в языковых файлах, которые находятся по пути
1 2 | admin/language/russian/payment/bank_transfer.php catalog/language/russian/payment/bank_transfer.php |
вам надо поменять значение переменной text_title. Чтобы вышло примерно так:
1 | $_['text_title'] = 'YandexДеньги перевод на кошелек'; |
После чего эти два файлы загрузить назад.
Теперь, все что нам осталось это в админке активировать новый метод, включить его и добавить инструкцию по переводу денег.
Добавляем метод оплаты OpenCart. Способ №2 — простой
В первом способе мы все делали руками, но есть вариант проще, скачать уже готовые файлы и просто залить их на ваш FTP. Давайте подробнее разберем этот пункт:
- Скачайте архив со всеми необходимыми файлами
- Залейте содержимое архива по FTP.
- Активируйте в админке
- Внесите правки в настройки метода. Пропишите инструкцию и не забудьте включить его.
Возможные ошибки во втором способе.
Вроде инструкция состоит всего из 4-х шагов, но все же, возможны и ошибки. Давайте попробуем разобрать их, чтобы вы не копались сами.
- Если выбрать новый, склонированный метод оплаты, то пропадает кнопка «оформить заказ» или «продолжить». У кого что. В этом случае обратите внимание что у вас правильно загруженны три файла в ваш шаблон магазина. Убедитесь что по пути
1
catalog/view/theme/ВАША ТЕМА/template/payment/bank_transfer.php
у вас есть три файла eleksnetalb.tpl, webmoneyalb.tpl и yandexalb.tpl если их нету, то добавьте. Довольно много читателей блога обращаются с такой проблемой и говорят что не работает. По умолчанию эти три файла падают в шаблон по умолчанию, поэтому, если у вас другая тема, не стандартная, то вам надо загрузить эти три файла в ручную.
- Если у вас эти три файла есть, но все равно кнопка не выводится то скопируйте по маршруту
1
catalog/view/theme/ВАША ТЕМА/template/payment/bank_transfer.php
файл bank_transfer.php переименуйте его в eleksnetalb.tpl потом на webmoneyalb.tpl, а дальше на yandexalb.tpl и залейте назад на хостинг. В итоге у вас должно выйти 4 одинаковых файла но с разными названиями. Такое может происходить если у вас не стандартный шаблон который по особенному обращается к модулям. Таким способом мы исправим данную ситуацию.
На этом все, но если у вас возникли вопрос или пожелания — пишите в комментариях или на почту, попробую вам помочь.
Internal server error 500 при активации любого из этих методов оплаты… Ругается на ссылку — /eshop/index.php?route=checkout/payment_method и /eshop/catalog/view/javascript/jquery/jquery-1.7.1.min.js при этом как только выключаешь модули все ок… Рекоммендации проверил? Version 1.5.5.1
ой, убери плиз сайт из ссылки прошлого коммента. Спасибо!
разобрался, спасибо!
Добрый день, сделал все по инструкции, появился новый метод оплаты я его установил в админке но когда нажимаю на кнопку редактировать, что бы включить, то выскакивает ошибка страницы
Страница не работает
Сайт пока не может обработать этот запрос.
Аналогичная ситуация делал по инструкции описанной в первом способе. При попытке редактирования нового способа:
Страница site.ru не работает.
Сайт site.ru пока не может обработать этот запрос.
HTTP ERROR 500.
Версия движка ocStore 2.1.0.2.1.
Данная статья писалась для OpenCart 1.5
я также по первому способу и для 2 делал.
В версии 3.0.2 перед payment папка extension — всё нашёл, всё сделал, но появился ещё один метод оплаты heading_title лишний, и он не аткивируеется — server error. Хотя и не нужен он, т.к. нужный — исправно повился, но всё равно мусор — откуда он взялся? Что ещё нужно менять в 3.0.2, помимо указанных пяти путей и двух языковых? Спасибо!
Спасибо за статью, пробовал первый метод, но возникли проблемы послу установки модуля. Тогда нашел сразу готовые файлы для заливки и все заработало отлично, оставалось только зайти в файлы в папках admin/language/russian/payment/ и
catalog/language/russian/payment/ и переименовать на нужные для меня названия. Делал это на ocStore 1.5.5.1.2
Спасибо На 2.3 работает
Здравствуйте! Подскажите, пожалуйста, почему может появляться ошибка Class ‘Controllerextensionpaymenteleksnetalb’ not found in …/system/storage/modification/system/engine/action.php on line 43 попробавала и обе установки и одна и та же ошибка(((
Аналогичная проблема
Поменяйте в контроллерах и моделях во второй строке класс. Там не bank_transfer, а banktransfer в конце класса. Соответственно banktransfer меняйте на свое название. Странно, что тут про это никто не написал.