Payments · OpenCart

Multi PRRO Connector — фискализация чеков для OpenCart 2.3, 3.x и 4.x

Скачать бесплатно
Версия
v1.1.0 (OpenCart 4)
v1.1.0 (OpenCart 3.x)
v1.1.0 (OpenCart 2.3)
Совместимость
OpenCart 2.3.0.x, 3.0.2 – 3.0.5.0 та 4.0.2 – 4.1.x
Платформа
OpenCart
Multi PRRO Connector — фискализация чеков для OpenCart 2.3, 3.x и 4.x

Что внутри

  • Автоматический фискальный чек при переходе заказа в заданный статус
  • Две кассы в одном модуле: Вчасно.Каса и Checkbox, с резервным переключением
  • Открытие и закрытие смены по расписанию, Z-отчёт при закрытии
  • Журнал чеков со статусами, ошибками и ссылкой на чек
  • УКТЗЕД для отдельных товаров и код по умолчанию
  • Письмо покупателю со ссылкой на чек
  • Сборки для OpenCart 2.3, 3.x и 4.x — одна лицензия на все
  • Чек возврата на часть заказа (Pro)
  • Возврат через API Вчасно.Каса (Pro)
  • Повтор неудачного чека из журнала (Pro)
  • Сверка смен: Z-отчёт против суммы чеков (Pro)

Multi PRRO Connector для OpenCart — модуль фискализации для OpenCart 2.3, 3.x и 4.x, который подключает магазин к украинским программным РРО и автоматически пробивает фискальный чек, когда заказ переходит в заданный статус (например, «В обработке» после онлайн-оплаты). Чеки, смены кассы, Z-отчёты и уведомления покупателю — всё из админки OpenCart, без ручного копирования данных в кабинет кассы.

Модуль полностью бесплатный. Скачать с официального OpenCart marketplace: opencart.com/…/extension_id=48662.

Что получает админ

Общие настройки Multi PRRO Connector в админке OpenCart
Общие настройки: автофискализация по статусу, основная и резервная касса, статусы для чеков продажи и возврата, дефолтный код УКТЗЕД.
Подключение касс Вчасно.Каса и Checkbox
Подключение касс: Вчасно.Каса и Checkbox — API-ключ, фискальный номер ПРРО и кнопка «Проверить связь» для каждой.
Поле УКТЗЕД в карточке товара OpenCart
Код УКТЗЕД в карточке товара — рядом с SKU. Пустое поле означает код по умолчанию из настроек модуля.
Журнал чеков ПРРО в админке OpenCart
Журнал чеков: заказ, касса, тип, сумма, фискальный номер и статус. Причина неудачи видна при наведении на статус.
Смены кассы и Z-отчёты
Смены кассы: ручные кнопки открытия/закрытия, журнал смен и Z-отчётов прямо в админке.

Интегрированные кассы

  • Вчасно.Каса — чеки продажи, открытие/закрытие кассовой смены с Z-отчётом, проверка ключа.
  • Checkbox — чеки продажи и возврата, смены, проверка ключа.

Основная касса + резервная (fallback): если основная недоступна, чек автоматически идёт через запасную — заказ не останется без фискализации из-за сбоя одного сервиса.

Как это работает — шаг за шагом

  1. Покупатель оплачивает заказ — картой онлайн или наложенным платежом; модуль сам определяет по списку методов оплаты, что фискализировать как наличные, а что как безнал.
  2. Заказ переходит в статус-триггер (например, «В обработке» после callback-а платёжки).
  3. Модуль формирует чек — позиции, доставка (по желанию), коды УКТЗЕД, пропуск нулевых позиций — и отправляет его в основную кассу; если она молчит, срабатывает резервная.
  4. Фискальный номер возвращается в заказ и пишется в журнал чеков в админке.
  5. Покупатель получает чек на email и, опционально, SMS через TurboSMS.
  6. При возврате заказа в статус возврата модуль пробивает чек возврата.

Что входит в бесплатную версию, а что в Pro

Сама фискализация бесплатна и остаётся такой: автоматический чек по статусу заказа, две кассы с резервным переключением, смены по расписанию и Z-отчёт, журнал чеков, письмо покупателю, УКТЗЕД по товарам. Это то, что уже лежит в каталоге OpenCart, и оно никуда не переезжает.

Pro-лицензия добавляет то, что нужно магазину, когда начинаются возвраты:

  • Чек возврата на часть заказа. В OpenCart нет отдельной сущности возврата, поэтому сумма задаётся прямо в журнале: вернули одну позицию, доставку или произвольную сумму — модуль пробивает отдельный чек и привязывает его к чеку продажи. Несколько частичных возвратов одного заказа — несколько документов.
  • Возврат через API Вчасно.Каса. Без Pro такой чек приходится пробивать руками в кабинете сервиса.
  • Повтор чека из журнала. Касса была недоступна или смена закрылась — одна кнопка на строке. Чек, который уже прошёл, повторно в ПРРО не пойдёт.
  • Сверка смен. Каждый Z-отчёт против суммы чеков журнала (продажи минус возвраты) с подсвеченным расхождением — именно там видно чек, пробитый мимо магазина.

Сколько стоит

2 490 грн — разовая покупка. Лицензия бессрочная: платите один раз, обновления и техническая поддержка входят в цену. Один ключ — один домен и его поддомены.

Переносите магазин на другой домен — деактивируйте лицензию на старом и активируйте на новом самостоятельно в кабинете.

Что под капотом

  • API-ключи и пароли шифруются в БД через sodium_crypto_secretbox; значение, зашифрованное в админке, читается и в catalog-, и в cron-контексте.
  • Архитектура адаптеров: общий интерфейс провайдера, реестр касс и цепочка основная → резервная.
  • Управление сменой: ручные кнопки, авто-открытие на первой продаже дня и расписание через системный cron — точное время HH:MM, а не «раз в час» от планировщика OpenCart.
  • Журналы в админке: отдельно чеки и отдельно смены/Z-отчёты — видно, что и когда пробилось, без входа в кабинет кассы.

Как установить

  1. Загрузите prro_connector.ocmod.zip через «Расширения → Инсталлятор». Для OpenCart 3.0.x — сборку prro_connector-oc3.ocmod.zip, для 2.3 — cc_prro-oc2.ocmod.zip.
  2. OpenCart 2.3: штатный Инсталлятор той версии копирует файлы только по FTP, поэтому содержимое папки upload/ из архива заливается в корень магазина вручную, а дальше — «Расширения → Модули → Install».
  3. Включите модуль в «Расширения → Модули» и откройте его настройки.
  4. На вкладке кассы введите API-ключ и фискальный номер ПРРО из кабинета Вчасно или Checkbox, нажмите «Проверить связь».
  5. В общих настройках выберите статус-триггер, основную/резервную кассу и методы оплаты, идущие как наличные.
  6. Пробейте тестовый чек на копеечном заказе и проверьте журнал чеков — должна появиться строка с фискальным номером.

История версий

1.1.0 — август 2026
Появился Pro-уровень; бесплатная часть не изменилась. Pro: чек возврата на часть заказа прямо из журнала, возврат через API Вчасно.Каса вместо ручного чека в кабинете, повтор неудачного чека и сверка смен с Z-отчётом. Повторная фискализация стала идемпотентной: документ, который уже прошёл, второй раз в кассу не отправляется, а возврат всегда идёт через ту кассу, что пробила продажу.
1.0.0 — 5 августа 2026
Код УКТЗЕД теперь задаётся в карточке товара (раньше работал только код по умолчанию). Исправлена совместимость с PHP 7.4 — из-за типа mixed в обработчике события фискализация на 7.4 не срабатывала вообще. Исправлено авто-управление сменой: OpenCart выполняет все просроченные cron-задачи в одном проходе, из-за чего смена открывалась и сразу закрывалась Z-отчётом. Добавлен cron-токен для эндпоинтов смены, проверка прав на страницах и кнопке «Проверить связь», человеческие названия касс и статусов в журналах.
1.0.1 — 10 августа 2026 (OpenCart 4.x и 2.3)
Исправлен перевод сумм чека в гривну: ветка пересчёта не выполнялась вообще из-за ошибки в условии, поэтому магазин с негривневой базовой валютой пробивал чек на число базовой валюты. Проверено на стенде: заказ на 180 USD теперь идёт чеком на 7 470 грн.
1.0.0 — 10 августа 2026 (OpenCart 3.x)
Сборка для OpenCart 3.0.x подтянута до уровня версий 4.x и 2.3. Код УКТЗЕД теперь задаётся в карточке товара: таблица для него была, чек её читал, но записать код было нечем — работал только код по умолчанию. Суммы чека переводятся в гривну по курсу заказа — раньше ветка пересчёта не выполнялась вообще из-за ошибки в условии, поэтому магазин с негривневой базовой валютой пробивал чек на число базовой валюты. Значения из формы (токен кассы, пароль, cron-токен) больше не сохраняются экранированными, поэтому символы «&» и кавычки в ключах работают. Cron-эндпоинты смены получили токен, проверку времени и защиту от повторного вызова за сутки. Заметки в истории заказа и письмо покупателю теперь переводятся на язык магазина.
1.0.0 — 9 августа 2026 (OpenCart 2.3)
Отдельная сборка под OpenCart 2.3.0.0 – 2.3.0.2 с тем же функционалом. Суммы чека теперь переводятся в гривну по курсу заказа — магазин с негривневой базовой валютой пробивал чек на число базовой. Системный cron для смены кассы, защита cron-эндпоинтов токеном.
0.4.1 — июль 2026
Первый публичный релиз для OpenCart: автофискализация при смене статуса заказа, кассы Вчасно.Каса и Checkbox с fallback, чеки возврата, управление сменой (ручное, по расписанию, авто-открытие на первой продаже), журналы чеков и Z-отчётов, шифрование ключей в БД, УКТЗЕД-коды, email/SMS-чек покупателю. Сборки под OpenCart 4.0.2 – 4.1.x и 3.0.2 – 3.0.5.0.

Частые вопросы

Трогает ли модуль витрину или checkout?

Нет. Вся работа — в админке и на событиях смены статуса заказа. Тема и чекаут магазина не меняются.

Что если смена кассы закрыта, когда пришёл заказ?

Модуль умеет авто-открывать смену на первой продаже дня, а также открывать/закрывать её по расписанию через системный cron. Ручные кнопки на странице «Смены» тоже есть.

Как разделяются наличные и безналичные чеки?

В настройках задаётся список методов оплаты, которые трактуются как наличные (например, cod для наложенного платежа) — остальное фискализируется как карта/безнал.

Поддерживаются ли чеки возврата?

Да, через Checkbox — при переходе заказа в статус возврата. Для Вчасно.Каса возврат пока делается в кабинете сервиса.

У меня OpenCart 3 или 2.3 — подойдёт?

Да. Есть отдельная сборка под OpenCart 3.0.2 – 3.0.5.0 и отдельная под 2.3.0.0 – 2.3.0.2 с тем же функционалом. В 2.3 нет собственного планировщика, поэтому смену кассы по расписанию открывает системный cron — два готовых URL модуль показывает прямо в настройках.

В какой валюте пробивается чек?

Всегда в гривне. Если базовая валюта магазина не UAH, суммы переводятся по курсу того заказа — то есть чек совпадает с тем, что покупатель видел на витрине.

Что останется после удаления модуля?

Заказы OpenCart не меняются, а все пробитые чеки и Z-отчёты хранятся в кабинете вашего ПРРО-сервиса — фискальные данные не теряются.

Умеет ли модуль пробивать чеки возврата?

Да. В бесплатной версии чек возврата на всю сумму заказа пробивает Checkbox по статусу «возвращено», а для Вчасно заказ получает напоминание сделать это в кабинете. Pro пробивает чек возврата сам — в том числе на часть заказа и для Вчасно через API.

Вопросы по модулю?

Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.

@catcode_support

Не тот вариант, что искали?

Мы делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль