Доброго дня, читатель. Редко я захожу сюда, ещё реже что-то пишу. Сейчас один из тех случаев, когда я считаю, что это просто необходимо.
Введение
Те, кто сталкивался с сервисом Dreamkas (онлайн-кассы, фискализация чеков, сканеры, терминалы и вот это вот всё по 54-ФЗ), могут иметь интернет-магазин на базе OpenCart.
Дримкас предоставляет модули для интеграции с кучей CMS. Такие надстройки необходимы для отслеживания статусов фискализации чеков по заказу на сайте. Есть такой модуль и для OpenCart.
Проблема
Сервер вертится на классическом LAMP-стеке, причём PHP версии 7.2. На сервере стоит OpenCart 3.0.2.0 — на текущий момент это самая актуальная версия.
С сайта Dreamkas были скачаны оба модуля, т. к. там не указано какой из них для какой версии OC. Установка модуля dreamkas-f opencart.ocmod.zip проходит успешно, но попытка включить это расширение оборачивается ошибкой «Internal server error». Второй даже не устанавливается.
Очевидно, модули устаревшие и на новый ОС не подходят. Но из-за чего сбой — PHP или сам ОС?
Быстрый гуглёж показал, что больше никаких модулей Dreamkas для OC нет. Так как предоставленные не работают на моей версии, я обратился в техподдержку. Сутки спустя пришла замечательная отписка:
При этом обращу твоё внимание на дату обращения и на дату релиза этой версии OpenCart:
У меня не было опыта разработки и модификации модулей для OpenCart, но поняв, что помощи ждать неоткуда, таки полез в код, по пути изучая логи.
Причина
В процессе изучения проблемы я нашёл её причину.
Неработоспособность модуля, который нам предлагают, объясняется изменениями в путях к моделям, которые произошли в последних версиях OpenCart.
Когда CMS начинает установку модуля, он пытается подгрузить модели по старым путям, где их нет. Возникает Internal server error с записью ошибки в стандартный лог php.
Решение
По итогу нескольких часов родилось то, чем я делюсь с тобой.
Изменения:
- За основу взят dreamkas-f opencart.ocmod.zip
- Шаблон:
- переписан с языка php на язык шаблонизатора Twig
- изменено расширение с .tpl на .twig
файл upload/admin/view/template/extension/module/dreamkas.twig
- Страница настроек:
- удалены большие куски закомментированного и нерабочего кода
- исправлено получение списка установленных платёжных систем
- форматирование кода
файл upload/admin/controller/extension/module/dreamkas.php
- Мелкое форматирование и исправление ссылки на сайт разработчика
файл install.xml
Модуль устанавливается на OpenCart 3.0.2.0, настройки сохраняются, всё вроде гуд.
Но у меня нет возможности проверить насколько качественно работает этот модуль, так как работа с Дримкас у предпринимателя ещё не началась: нет никаких продаж в оффлайне и заказов в онлайне.
Вся основная логика модуля прописана здесь:
upload/catalog/controller/extension/module/dreamkas.php
Этот файл я не трогал. Я лишь восстановил возможность установить, удалить и настроить модуль. Но у меня есть большие планы на допилинг этого модуля для других целей.
Скачивай, ставь. Если это тебе помогло — буду рад узнать от тебя об этом в комментариях
UPDATE 07.03.19: судя по всему, модуль действительно рабочий.
UPDATE 20.03.19:
- в комментариях всплыл платный модуль: Дримкас — онлайн касса
- судя по всему, мой вариант действительно рабочий
UPDATE 24.04.19:
- добавил ссылку на Github
- оказывается, не отображаются статусы фискализации, но сама фискализация работает
Полезные ссылки
Открытая документация к Dreamkas API: kabinet.docs.apiary.io
Как подключить интернет-магазин к кассе: help.dreamkas.ru/hc/ru/articles/115005007709
Подключить кассу к OpenCart: help.dreamkas.ru/hc/ru/articles/115005504689
Чат для разработчиков: @apidreamkas
Попробовал на 2.3.0.2.3 — такая же ошибка: Internal server error 🙁
Есть платный под все версии, он работает
https://opencartforum.com/files/file/6352-drimkas-onlayn-kassa/?tab=reviews
Благодарю, добавил ссылку в пост
Добрый день.
Столкнулся с аналогичной проблемой «вам надо — вы и дорабатывайте». Скачал вашу адаптацию, поставил на тестовый OC 3.0, настроил… контрольная закупка….. в ЛК кассы платеж прошел, чек из ОФД упал на почту. Модуль работает!!!
Единственное, пропал статус фискализации в админке, который есть на версии 2.3.
Хотел уточнить, не поменялись ли ваши планы на счет допилить модуль?
Добрый день. Сори за поздний ответ. Рад знать, что кому-то помог этот пост. И жаль осознавать, что сами DreamKas *до сих пор* не потрудились как-то на это отрегировать и актуализировать инфу на своих ресурсах.
Увы, за это время мои планы поменялись. Я больше не работаю над тем проектом на OpenCart. С тех пор у меня не возникало необходимости работы с DreamKas. Плюс судя по тому, что я видел, пока разбирался с проблемой, пришлось бы повыдёргивать добрую часть волос.
Очень жаль. Однако, имя ваше и старания увековечены на странице поддержки DK и OC :). Большое Вам спасибо за проделанную работу от всех страдальцев связки Дримкас-ф и opencart 3.x
https://help.dreamkas.ru/hc/ru/articles/115005504689-%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C-%D0%BA%D0%B0%D1%81%D1%81%D1%83-%D0%BA-OpenCart
Благодарю вас за то, что достучались до них.
Немного удивлён, что они разместили ссылку на мой блог. Учитывая довольно прямой негатив в их сторону относительно поддержки — мой и не только — это смело. Тем не менее, благодарен и им — за лояльность к сторонним решениям.
В ближайшее время выложу модуль на github, добавлю ссылку в этот пост и в комментарий под тем материалом. Надеюсь, на мне развитие модуля не остановится.
Подскажите, если оплата проходит (интернет эквайрингом альфы, и тинькова), но касса это все не чувствует, куда хоть копать? Все логи пустые, зацепиться даже не за что..
Настройки прописаны, все с виду хорошо..
Смутило что в install.xml весь код явно не для 3.0.. ничего не перепутали?