Фіскалізація (ПРРО)
Модуль Fiscal перетворює оплачені замовлення на фіскальні чеки через програмний РРО Вчасно.Каса (kasa.vchasno.ua). Нічого не надсилається синхронно: оплачене замовлення потрапляє в чергу чеків, черга опрацьовується у фоні, а покупець отримує лист із посиланням на чек. Модуль вбудований в ECMS9 і «увімкнений» рівно тоді, коли збережено токен каси — з порожнім токеном він не робить жодних запитів.
Сторінка налаштувань — Фіскалізація (ПРРО) у списку модулів (відкривається
/admin/fiscal).
Що робить модуль
- Чеки продажу — реєструються, коли замовлення стає оплаченим.
- Чеки повернення — стають у чергу, коли з уже фіскалізованого замовлення знімають оплату (окремий перемикач), або вручну по конкретному замовленню.
- Зміни каси — перед першим чеком дня зміна відкривається автоматично; нічна задача її закриває (Z-звіт). Зміна ПРРО не може бути відкрита довше 24 годин.
- Коди УКТ ЗЕД для підакцизних товарів (алкоголь, тютюн, пальне) беруться з кастом-поля товару і передаються в рядку чека.
- PDF / друк чека — на сторінці замовлення картка «Фіскальний чек (ПРРО)» показує кожен чек із кнопками Відкрити чек (публічний переглядач Вчасно) і Друк чека (готовий PDF — друкуйте з переглядача).
- Лист покупцю — після чека продажу покупець отримує лист за шаблоном
fiscal_receiptз посиланням на чек і вкладеним PDF (якщо в замовленні коректний e-mail і є поштовий модуль).
Коли чек стає в чергу
Чек продажу ставиться в чергу тієї миті, коли замовлення стає оплаченим, — байдуже, яким шляхом:
- платіжний шлюз підтвердив оплату (LiqPay, Mono, WayForPay та інші онлайн- способи);
- менеджер позначив замовлення оплаченим у формі замовлення або в списку;
- менеджер перевів замовлення у статус, який означає «оплачено» (статус №2 за правилом магазину) — модуль перевіряє підсумковий прапорець оплати.
Кілька подій по одному замовленню не шкодять: черга дедуплікує за замовленням + типом чека. Чек повернення ставиться лише на явну зміну «оплачено → не оплачено» і лише якщо увімкнено відповідний перемикач — звичайні переходи статусів повернень не створюють.
Накладений платіж у перевізника (Нова Пошта тощо) фіскалізує сам перевізник. Поставте таким способам Не фіскалізувати — замовлення позначиться в черзі як «Пропущено», чек не надсилається.
Налаштування
Картка Підключення:

| Поле | Значення |
|---|---|
| Токен каси | Токен бойової каси з кабінету Вчасно.Каса (Торгові точки та каси → шестерня → Токен). |
| Токен тестової каси | Токен тестової каси, яку видають при реєстрації. |
| Тестовий режим (використовувати тестову касу) | Усе йде на тестову касу — для пробного прогону. |
| ПІБ касира (необов’язково) | Друкується в чеку. |
| Мітка джерела (видно у Вчасно.Каса) | Як сайт підписаний у кабінеті; типово CMS9. |
Перевірити з'єднання перевіряє токен і показує стан зміни (відкрита / закрита).
Картка Поведінка:
| Поле | Типово | Значення |
|---|---|---|
| Автоматично фіскалізувати замовлення при оплаті | увімк. | Головний перемикач автоматичних чеків продажу. |
| Ставити чек повернення, коли з фіскалізованого замовлення знімають оплату | вимк. | Чек повернення на «оплачено → не оплачено». |
| Тип оплати за замовчуванням | Безготівка | Безготівка / Картка / Готівка — для способів оплати без власного зіставлення. |
| Податкова група за замовчуванням (з кабінету Вчасно.Каса) | 1 | Номер податкової групи, налаштованої в кабінеті. |
| Додавати платну доставку окремим рядком чека | увімк. | Вартість доставки стає окремим рядком чека. |
| Кастом-поле товару з кодом УКТ ЗЕД (підакцизні товари) | uktzed | Назва кастом-поля товару; порожньо = код не передавати. |
| Мапа способів оплати | — | Для кожного способу оплати магазину: За замовчуванням / Безготівка / Картка / Готівка / Не фіскалізувати. |
Картка й онлайн-оплати → Безготівка, готівка при самовивозі → Готівка, накладений платіж перевізника → Не фіскалізувати. Усе решта бере тип оплати за замовчуванням.
Фонові задачі
Чергу опрацьовують дві задачі, які видно в Налаштування → Планувальник:
- ПРРО: черга чеків (
fiscal:process) — кожні 5 хвилин; реєструє чеки, що настали, і відкриває зміну, якщо треба. Невдалий чек повторюється зі зростаючою паузою (5 хвилин × кількість спроб), до 5 спроб, після чого позначається «Помилка». - ПРРО: закриття зміни (Z-звіт) (
fiscal:close-shift) — щодня о 23:50; уже закрита зміна вважається успіхом.
Інструкція на сторінці налаштувань показує й рівнозначні крон-рядки для сервера, де ви волієте справжній cron. Кнопка Опрацювати чергу на сторінці налаштувань запускає чергу негайно, не чекаючи розкладу.
Стан черги та помилки
Картка Черга чеків (останні 20) на сторінці налаштувань показує кожну задачу: замовлення, тип (Чек продажу / Чек повернення), статус (Очікує, Обробляється, Виконано, Помилка, Пропущено), кількість спроб, посилання Відкрити чек і текст останньої помилки. У задач зі статусом «Помилка» і «Пропущено» є кнопка Повторити, яка повертає їх у чергу. Те саме по одному замовленню видно в картці «Фіскальний чек (ПРРО)» на сторінці його редагування.
Прожените кілька тестових замовлень з увімкненим Тестовим режимом і заповненим тестовим токеном, переконайтеся, що чеки відкриваються в переглядачі й лист доходить, і лише тоді вимкніть тестовий режим. Бойовий токен використовується тільки при вимкненому тестовому режимі.