Доброго дня, читатель. Редко я захожу сюда, ещё реже что-то пишу. Сейчас один из тех случаев, когда я считаю, что это просто необходимо.
Введение
Те, кто сталкивался с сервисом 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 24.04.19:
- добавил ссылку на Gitea
- оказывается, не отображаются статусы фискализации, но сама фискализация работает
UPDATE 12.08.2025: исправил нерабочие ссылки и форматирование.
Полезные ссылки
- Открытая документация к Dreamkas API:
kabinet.dreamkas.ru/api - Как подключить интернет-магазин к кассе:
help.dreamkas.ru/kb/kassa-f/internet-magazin-kassa-f/podklyuchit-kassu-f-k-opencart/ - Подключить кассу к OpenCart:
help.dreamkas.ru/kb/drimkas-f/internet-magazin/podklyuchit-drimkas-f-k-opencart/

Добавить комментарий