Інструкція HorecaPOS
Ця інструкція складається з трьох частин: спершу для персоналу (офіціантів), потім для менеджера і насамкінець для адміністратора. Кожна частина доповнює попередню: менеджер може все, що й офіціант, а адміністратор може все.
Що саме дозволено вашій ролі, адміністратор налаштовує в Налаштування → Права. Якщо ви не бачите якоїсь кнопки, ваша роль (поки що) не має на неї права.
Ця інструкція є і в касі: торкніться кнопки © праворуч унизу на будь-якому екрані й виберіть Інструкція або відкрийте http://<kassa-pc>:3000/handleiding. Див. також вступ і документацію API.
Частина 1 · Персонал
Початок роботи
Вхід. Відкрийте касу на касі, планшеті чи телефоні й введіть свій PIN-код (від 4 до 8 цифр). Після цього ви побачите план залу.
Відкрити столик. Торкніться столика. Вільний столик отримує нове замовлення; на зайнятому ви продовжуєте вже наявне замовлення. Угорі можна перемикатися між залами (наприклад, Зал і Тераса). Для продажу біля стійки використовуйте Швидкий продаж, для замовлень на виніс — З собою.
Замовлення. Виберіть групу товарів і торкайтеся товарів. Вони з’являються в чеку ліворуч. За потреби спершу виберіть подачу (1 = одразу, 2 і 3 чекають, доки ви їх викличете). Торкніться Замовити: тоді кухонні чеки йдуть на кухню та в бар. Доки ви не торкнулися «Замовити», рядки можна просто видаляти.
Розрахунок. Торкніться Розрахунок, виберіть Картка / Bancontact, Готівка або Подарункова картка, за бажанням чайові, і підтвердіть. Під час оплати карткою платіж автоматично запускається на платіжному терміналі. Чек друкується; його також можна надіслати на e-mail.
Вихід. Вийдіть, коли закінчите, щоб ніхто інший не працював під вашим ім’ям. Через 8 год вихід відбувається автоматично.
Немає інтернету? Каса просто працює далі. Якщо вгорі написано Немає інтернету · картка вручну, проведіть суму на самому платіжному терміналі й виберіть на екрані розрахунку Уже оплачено на терміналі.
Кілька груп за одним столиком
За одним столиком може сидіти кілька груп, кожна зі своїм рахунком і своїм чеком.
- Торкніться столика: вільний = нове замовлення; одна група = одразу ця група; кілька груп = спершу вибрати або + Нова група (назву можна не вказувати).
- Угорі на екрані замовлення є панель груп: перемикання між групами, + Група, Назва групи (напр. "Jansen") і Розділити / перенести.
- Розділити / перенести: для кожного рядка виберіть, скільки переходить (при 3× Pils напр. 1) і в яку групу, або створіть нову групу. Так ви переносите те, що потрапило не на той рахунок, або вже потім розділяєте "кожен платить за себе". Якщо група стає порожньою, вона зникає.
- Кілька частин одночасно: за допомогою + Ще одна частина ви готуєте одну частину й обираєте наступну (напр., рибу й Dry Martini на стіл 2, решту на стіл 35). Частину можна перенести й на + Інший стіл (там як нову групу). З Перемістити усе переноситься за один раз. ½ ділить рядок навпіл, зокрема й пів пляшки (0,667 стає 2 × 0,3335).
- Об'єднати: усе з одного чи кількох інших столів (або груп за цим столом) на цей рахунок, за один раз.
- Бельгія: розділення чи об'єднання за один раз — це для чорної скриньки одна зміна столу, як вимагає ФГС Фінансів (UC242, UC251, UC252, UC4119bis). Якщо після замовлення щось видаляють або на вже замовлений рядок дають знижку, це йде з наступним повідомленням цього столу (замовлення, попередній рахунок, зміна столу), а інакше з продажем: старий рядок від'ємний, новий додатний (UC226, UC4102, UC4104, UC4107, UC4110).
- На екрані столиків помаранчева крапка показує, скільки там груп; сума — це загальна сума всіх груп.
- Касовий і кухонний чек показують "Столик 5 - група 2" або "Столик 5 - Jansen".
Розділення рахунку під час розрахунку
Розрахунок працює як завжди: Усе за один раз. На екрані розрахунку рахунок тепер також можна розділити, кнопками під Назад і Розрахувати (так вони завжди залишаються на виду, без прокручування):
- Поділити порівну: виберіть кнопками − і + на скільки осіб (за замовчуванням кількість гостей або 2, якщо каса не веде облік кількості осіб). На екрані показано суму на особу; кожен сплачує свою частку карткою, готівкою або подарунковим сертифікатом (за бажанням із чайовими). Після кожної частки йде зворотний відлік ("ще 3 осіб"); останній сплачує точно залишок.
- Своя сума: хтось платить фіксовану суму (напр. € 20); решта залишається відкритою.
- За товарами…: відкриває Розділити / перенести, щоб перенести товари на окремий рахунок і розрахувати його окремо (як описано вище).
Часткова оплата проводить лише платіж; рахунок залишається відкритим, а на екрані замовлення видно "уже оплачено … · залишок …". Чек (з усіма платежами) друкується при останній оплаті, як і при звичайному розрахунку. Оплата карткою через підключення йде рівно на суму частки. Якщо вже є часткова оплата, рядки більше не можна переносити в іншу групу й додавати знижки; видаляти можна лише тоді, коли відкритої суми достатньо. Кожна часткова оплата записується в журнал.
Швидкий продаж і їжа з собою (без столика)
Праворуч угорі на екрані столиків є Швидкий продаж і З собою. Обидві кнопки одразу відкривають замовлення без столика. Швидкий продаж — це продаж біля стійки (ПДВ на місці); З собою використовує ставку ПДВ для їжі з собою кожного товару. Через "Ім’я клієнта" можна додати ім’я; воно буде на чеку ("З собою – Jansen") і вгорі кухонного чека. Відкриті замовлення без столика показано під кнопками залів ("Без столика: З собою #12 – Jansen"), тож їх легко знайти. Якщо ви повертаєтеся, нічого не продавши, порожнє замовлення зникає автоматично.
Обидві кнопки можна вмикати й вимикати для кожного закладу в Налаштування → Заклад, одразу під світлою/темною темою (за замовчуванням увімкнено). Вимкнено = кнопку приховано; уже відкриті замовлення без столика залишаються видимими.
Доставка та часові проміжки
Замовлення, які ви приймаєте на касі самі, наприклад телефоном або біля стійки, за тими самими правилами, що й в інтернет-магазині: зони доставки та максимальна кількість замовлень на часовий проміжок. Вмикається в Налаштування → Заклад → Доставка та часові проміжки, одразу під кнопками Швидкий продаж і З собою (за замовчуванням вимкнено).
- Кнопка Доставка на екрані столиків (поруч із З собою): введіть ім’я, телефон і адресу (коли увімкнено Швидке введення адреси: пошук за поштовим індексом і номером будинку). Каса знаходить зону доставки й показує вартість доставки, мінімум і "безкоштовно від". Якщо адреса поза зонами, доставка неможлива.
- Зони доставки: за поштовим індексом (діапазони та окремі індекси, напр.
5000-5049, 5051, 5052 AB), у межах радіуса в км від закладу (по прямій) або область на карті, яку ви малюєте самі. Радіус і область працюють лише з нідерландськими адресами (розташування через PDOK). Для кожної зони: вартість доставки, мінімум, безкоштовно від і додаткові хвилини; діє перша відповідна зона згори, тож типи можна поєднувати (напр. спочатку кілька індексів, потім область, потім радіус для решти). Зони не задано = доставка скрізь, без вартості й мінімуму. Зони інтернет-магазину налаштовуються окремо (керування інтернет-магазином). - Область на карті: для зони доставки виберіть тип Область на карті, а потім Намалювати на карті. Клацайте на карті, щоб ставити точки (щонайменше 3); перетягніть точку, щоб її перемістити, клацніть на точку, щоб її видалити, і перетягніть кружечок посередині краю, щоб додати точку між ними. Карта також показує зони за радіусом і заклад. Плитки карти надходять з OpenStreetMap, тож для карти потрібен інтернет; для самої доставки — ні (крім пошуку адреси). Якщо адресу не вдається знайти, каса повідомляє про це замість "поза зонами доставки".
- Вартість доставки додається до замовлення рядком "Вартість доставки" і перераховується після кожної зміни (безкоштовно від, немає товарів = немає вартості), доки нічого не оплачено. Нижче мінімуму розрахуватися не можна; екран замовлення показує, скільки ще бракує, з кнопкою Все ж самовивіз (вартість доставки й мінімум скасовуються).
- Час: Якнайшвидше (зараз + час доставки, плюс додаткові хвилини зони) або часовий проміжок на сьогодні. Якщо задано години роботи для Thuisbezorgd, вони діють і тут.
- Максимум на проміжок (0 = без максимуму; проміжок від 5 до 60 хвилин): для самовивозу й доставки разом; замовлення інтернет-магазину в касі теж враховуються. Якщо максимум задано, то й З собою запитує час, а заповнені проміжки вибрати не можна. Дві каси одночасно беруть останнє місце: отримає його одна.
- На кухонному чеку вказано адресу, ім’я, телефон і час; у "Без столика" та вгорі кухонного чека, напр. "Доставка – 18:30 Jansen".
Розширення (усе за замовчуванням вимкнено; без цих налаштувань усе працює точно як описано вище):
- Власні години роботи для «з собою» і доставки (по днях тижня, напр.
16:00-21:00або11:30-14:00, 17:00-22:00; після півночі можна:17:00-01:00; порожньо = цього дня зачинено). Вимк. = як раніше (час у Thuisbezorgd, якщо є, інакше весь день). - Неробочі дні (напр.
25-12-2026, 26-12-2026): у ці дні немає «з собою» і доставки. - Замовлення наперед: від 0 (лише сьогодні, як раніше) до 14 днів. У вікні Доставка/З собою спочатку обирається день; пізніший день друкується на кухонному чеку перед часом.
- Завантаженість: стільки хвилин додатково до "якнайшвидше" (каса та інтернет-магазин). Також швидко задається кнопкою Інтернет-магазин на верхній панелі.
- Бельгійські адреси (поштовий індекс із 4 цифр): для радіуса або зони на карті каса визначає розташування через OpenStreetMap (Nominatim; потрібні вулиця та місто).
- Інтернет-магазин слідує за касою: каса головна. Тоді інтернет-магазин використовує зони доставки, час доставки та «з собою», часовий проміжок, максимум на проміжок, години роботи (якщо їх задано тут), неробочі дні та дні наперед із каси й враховує в проміжку замовлення, прийняті на касі. Вимк. = інтернет-магазин має власні налаштування (керування інтернет-магазином), як раніше. Увімкнення та вимкнення «з собою»/доставки залишається за інтернет-магазином.
Код: lib/bezorgen.ts, routes/bezorgen.ts, BezorgDialoog.tsx, BezorgInstellingen.tsx, BezorgKaart.tsx і lib/kaart.ts (карта, без додаткового пакета; той самий код є в інтернет-магазині як public/kaart.js).
Телефонія: розпізнавання клієнта під час телефонного замовлення
Налаштування → Телефонія (за замовчуванням вимкнено; після вимкнення все зберігається). Два окремі перемикачі:
- Пошук клієнта за номером телефону під час доставки та з собою: якщо ввести номер на екрані доставки, каса покаже клієнта з адресою та попередніми замовленнями; Перенести дані заповнює ім'я, e-mail і адресу. Працює й без АТС.
- Визначення номера: коли телефонує клієнт, АТС (або апарат, FRITZ!Box, модем чи Android-смартфон) передає номер. На екранах з'являється сповіщення про те, хто телефонує: ім'я, адреса, останні замовлення (зі стравами та сумою, також з інтернет-магазину, Thuisbezorgd і платформ доставки), підсумок і бронювання. Кнопкою Прийняти доставку або Прийняти з собою відкривається екран доставки з усіма заповненими даними (з увімкненими Доставкою та часовими інтервалами); замовлення прив'язується до дзвінка, а сповіщення зникає з усіх екранів. Кнопка 📞 на верхній панелі: дзвінки за останні 24 год. Можна вимкнути для окремого екрана (Показувати сповіщення на цьому екрані).
Пошук ведеться в картці лояльності, замовленнях на доставку та з собою в касі, інтернет-магазині, Thuisbezorgd, платформах доставки та бронюваннях. Номери зводяться до одного вигляду (+31 6 1234 5678, 0031612345678 і 06-12345678 — той самий номер; також бельгійські номери).
Як надходить номер (можна кілька способів одночасно; той самий дзвінок рахується один раз):
| Джерело | Для | Налаштування |
|---|---|---|
| Webhook / action URL | 3CX (CRM-інтеграція), Aircall, Voys / VoIPGRID, Yeastar серії P, апарати з action URL при вхідному дзвінку (Fanvil, Grandstream, Mitel 6800/6900, Snom, Yealink: працює з будь-якою АТС і оператором), сервіси інтеграції (Zapier, Make, n8n, Power Automate) | адреса з Налаштування → Телефонія (/api/telefonie/oproep?sleutel=...&nummer=...), GET або POST, JSON, форма або query; також через портал: https://<portaal>/telefonie/<kassa-id>/oproep?sleutel=... |
| Asterisk (AMI) | Asterisk, FreePBX, Issabel, VitalPBX, Grandstream UCM | адреса, порт (5038; Grandstream UCM 7777), користувач AMI і пароль (права call) |
| FRITZ!Box | FRITZ!Box з телефонією | адреса (fritz.box) і порт 1012; один раз увімкнути callmonitor за допомогою #96*5* |
| USB-caller-ID-модем | аналогова стаціонарна лінія з визначенням номера | послідовний порт (COM3, /dev/ttyACM0), baud і команда ініціалізації (типово AT+VCID=1) |
| Android-смартфон | вбудований телефон Android-смартфона закладу | застосунок HorecaPOS на цьому телефоні, Налаштування → Телефонія → Прив'язати цей телефон (Android 10+: вибрати застосунок як застосунок для визначення номера) |
Відповідь містить абонента, також як contact (firstname, lastname, phone, email, address) для CRM-шаблону 3CX. Вихідні та внутрішні дзвінки не показуються; Лише ці лінії обмежує певними лініями або апаратами. Дзвінки видаляються після строку зберігання (типово 30 днів, GDPR). Тестовий дзвінок імітує дзвінок із номера.
Код: apps/pos-server/src/lib/telefonie.ts, routes/telefonie.ts, packages/shared/src/telefonie.ts; екрани Telefonie.tsx, BezorgDialoog.tsx; Android android-app/native/java/Beller*.java. Журнал: Телефонія.
Власні кур'єри: рейси, здача виручки та track & trace
Для закладів із власними кур'єрами. Увімкніть у Налаштування → Заклад → Доставка → Власні кур'єри (типово вимкнено). Застосунок для кур'єра не потрібен: кур'єр користується сторінкою в браузері свого телефона (за бажанням — застосунком Optimum Bezorger: див. Застосунок для кур'єрів нижче).
Створення рейсу. У касі є кнопка Рейси (з кількістю доставок, які ще треба відправити, плюс рейси в дорозі).
- У розділі Готово до доставки позначте замовлення, які їдуть. Це замовлення на доставку з каси, інтернет-магазину та Thuisbezorgd (лише власна доставка; замовлення з кур'єром Thuisbezorgd — ні).
- Виберіть кур'єра (працівника) і розмінні гроші, які він бере з собою (за замовчуванням сума з налаштування), і натисніть Створити рейс.
- З'явиться QR-код. Кур'єр сканує його власним телефоном і бачить для кожної адреси ім'я, адресу з кнопкою Маршрут (навігація), Подзвонити, коментар, бажаний час і суму до отримання. Є калькулятор решти (клієнт дає € 50 → решта € 31,50). Входити в систему не потрібно. Діліться посиланням лише з кур'єром: хто його має, бачить адреси цього рейсу. Кнопкою QR-код для кур'єра ви створюєте нове посилання; старе перестає працювати.
- Натисніть Відправити, коли кур'єр їде. Розмінні гроші видаються з шухляди (видача грошей із зазначенням причини). Клієнт отримує повідомлення, що замовлення в дорозі:
- для замовлення з каси — через SMS та/або e-mail, якщо увімкнено Повідомлення клієнту (див. «Доставка та часові проміжки»);
- для інтернет-магазину — як налаштовано в інтернет-магазині (пошта, SMS або push-повідомлення);
- для Thuisbezorgd — через Thuisbezorgd.
Поки рейс не виїхав, його ще можна скасувати.
- У дорозі кур'єр для кожної адреси натискає Доставлено, готівка, Доставлено, картка (власний платіжний термінал) або Доставлено (уже оплачено). Каса бачить це одразу. Якщо кур'єр не може це позначити, це можна зробити в касі. Повернувшись до закладу, кур'єр натискає Я повернувся до закладу.
Здача виручки. Після рейсу натисніть Розрахунок (право Керування грошовою шухлядою):
- Для кожного замовлення виберіть готівка, картка біля дверей, уже оплачено або не доставлено (повернення). Те, що позначив кур'єр, уже заповнено.
- Каса розраховує кожне замовлення з неоплаченою сумою без нового касового чека (у клієнта чек уже є; повторно надрукувати можна в розділі Чеки). Недоставлене замовлення знімається з рейсу й залишається відкритим, щоб його можна було відправити наступним рейсом.
- Ви бачите очікувану суму: розмінні гроші плюс отримана готівка. Введіть, що здає кур'єр, або порахуйте за купюрами та монетами (Порахувати за купюрами та монетами). Каса покаже, чи сходиться сума або скільки забагато чи бракує.
- Розмінні гроші повертаються до шухляди (внесення грошей). Різниця зберігається в рейсі та в журналі, а також відображається як касова різниця в Z-звіті.
Track & trace (вмикається окремо в налаштуванні). Коли замовлення в дорозі, клієнт отримує посилання на сторінку відстеження на порталі. Посилання є в SMS або e-mail, а в інтернет-магазині — на сторінці статусу (Стежте за кур'єром). На сторінці відстеження показано:
- чи замовлення готується, у дорозі чи доставлене;
- очікуваний час: від місцезнаходження кур'єра через адреси, що йдуть раніше, інакше — бажаний час;
- скільки адрес іще попереду (інші адреси не показуються);
- з опцією Кур'єр на карті в реальному часі — також кур'єр, заклад і власна адреса на карті (OpenStreetMap). Кур'єр сам вмикає передавання місцезнаходження на телефоні (Поділитися місцезнаходженням). Місцезнаходження передається, лише поки сторінка відкрита; сторінка не дає екрану згаснути.
Сторінки відображаються мовою телефона (усі мови порталу). У касі біля рейсу видно, коли місцезнаходження передавалося востаннє (з посиланням на карту).
Конфіденційність. Портал зберігає дані рейсу (імена, адреси, номери телефонів, місцезнаходження) лише поки рейс триває. Під час розрахунку все видаляється, інакше — через 24 год. Клієнт бачить лише своє замовлення. Місцезнаходження кур'єра видно лише під час рейсу й більше не видно, щойно кур'єр повернувся.
Планування рейсів (необов'язково)
Увімкніть у Налаштування → Заклад → Доставка → Планування рейсів (типово вимкнено; працює з власними кур'єрами). Тоді у вікні Рейси з'явиться кнопка Запропонувати рейси. Каса об'єднує замовлення, які ще треба доставити, у рейси:
- замовлення, що розташовані близько одне до одного і бажаний час яких потрапляє в часове вікно (типово 30 хвилин), об'єднуються;
- до максимальної кількості адрес на рейс (типово 4), доки рейс (дорога туди, усі адреси й повернення до закладу) не триває довше за максимум (типово 45 хвилин);
- для кожного рейсу — найкращий порядок, відстань (км), час у дорозі туди й назад, а для кожної адреси — очікуване прибуття при виїзді зараз. Якщо воно пізніше за бажаний час, поруч стоїть пізніше за запитаний час.
Кнопкою Використати цей рейс ви позначаєте ці замовлення в цьому порядку; оберіть кур'єра й натисніть Створити рейс. Для рейсу, який ще не виїхав, Найкращий порядок ставить адреси в найшвидшому порядку (також на телефоні кур'єра). Біля кожного рейсу вказано відстань і час у дорозі.
Налаштування: адрес на рейс, скільки може тривати рейс, часове вікно, швидкість кур'єра (велосипед ~15, скутер ~25, авто ~35 км/год у місті) і хвилин на адресу (паркування, дзвінок у двері, розрахунок; типово 2). Ці значення може налаштовувати й менеджер: у вікні Рейси кнопкою Налаштувати планування рейсів (право Налаштувати планування рейсів, за замовчуванням увімкнене для менеджера; змінюється в Налаштування → Права). Увімкнення чи вимкнення планування рейсів і сервіс маршрутів (адреса, API-ключ) залишаються за адміністратором.
Відстань і час у дорозі, на вибір адміністратора:
- Оцінка (типово): відстань по прямій, помножена на 1,35 (коефіцієнт об'їзду), зі швидкістю кур'єра. Працює без інтернету й без облікового запису.
- OSRM: маршрути дорогами через сервер OSRM. Вкажіть адресу (
https://абоhttp://у власній мережі). Публічний демо-сервер (https://router.project-osrm.org) — лише для рідкого використання; для щоденної роботи встановіть власний сервер OSRM або оберіть провайдера. - OpenRouteService: маршрути дорогами з власним API-ключем (безкоштовно створюється на openrouteservice.org, з денним лімітом). Типова адреса —
https://api.openrouteservice.org, її можна змінити на власний сервер. Ключ залишається на касі; екрани показують лише, що його вказано.
Кнопкою Перевірити ви випробовуєте сервіс. Якщо сервіс не працює, планування повертається до оцінки й повідомляє про це. Адреса з невідомим розташуванням (немає дійсного поштового індексу й номера будинку) потрапляє в пропозиції до розділу без відомого розташування і не планується. Експорт конфігурації містить налаштування, але не ключ.
Код: lib/ritplanning.ts.
Застосунок для кур'єрів (необов'язково)
Увімкніть у Налаштування → Заклад → Доставка → Застосунок для кур'єрів (типово вимкнено; працює з власними кур'єрами та порталом керування). Тоді кожен кур'єр прив'язує свій телефон один раз замість сканувати QR-код для кожного рейсу:
- У Прив'язані телефони виберіть кур'єра (працівника), за потреби назву телефона, і торкніться Прив'язати телефон.
- З'явиться QR-код. Кур'єр сканує його в застосунку Optimum Bezorger (кнопка Прив'язати) або камерою телефона: тоді сторінка відкриється в браузері. Вона працює і без застосунку, її можна додати на головний екран.
- Прив'язка діє, доки ви її не відкличете; телефон одразу перестане щось бачити. Нова прив'язка для того самого працівника замінює стару (наприклад, у разі нового телефона).
У застосунку або на сторінці показано усі власні рейси (кожен рейс, який каса створює для цього кур'єра), з тими самими кнопками, що й у рейсі: Маршрут, Подзвонити, сума до отримання з калькулятором решти, Доставлено та Я повернувся до закладу. Окремо можна ввімкнути:
- Самостійно брати замовлення: кур'єр бачить доставки, які ще мають потрапити в рейс, позначає, що бере, і торкається Взяти. Каса створює рейс (або додає їх, якщо в цього кур'єра вже є рейс, який ще не вирушив); стандартні розмінні гроші йдуть із ним. Те, що вже взяв інший, взяти не можна.
- Самостійно вирушати: Вирушити в застосунку робить те саме, що й у касі (розмінні гроші з шухляди, клієнти отримують повідомлення).
- Жива карта: у Рейси є кнопка Карта із закладом, усіма кур'єрами, які на роботі, і адресами, куди ще треба доставити. Кур'єр сам умикає й вимикає На роботі. Застосунок передає місцезнаходження і з вимкненим екраном (Android: сповіщення в рядку стану, поки передавання ввімкнено); вебсторінка — лише поки вона відкрита. Без цього налаштування місцезнаходження передається лише під час рейсу з track & trace.
Застосунок для Android є в Google Play і на сторінці завантаження порталу (/download/). Версія для iPhone готова, але вийде лише тоді, коли буде обліковий запис розробника Apple; до того iPhone користуються вебсторінкою. У рейсі, який кур'єр узяв сам, указано взято самостійно в застосунку.
Код: lib/bezorgersapp.ts, у порталі src/volgen.mjs, а застосунок — у репозиторії horecapos-bezorger.
У журналі записано, хто створив рейс, відправив його, позначив доставку та провів розрахунок, із сумами. Вимкнення: кнопки «Рейси» немає; рейси та налаштування зберігаються.
На порталі: /bezorger/<sleutel> і /volg/<code>. Код: lib/bezorgers.ts, routes/bezorgers.ts, Bezorgers.tsx і в порталі src/volgen.mjs.
Сповіщення про довгий час виконання
Замовлення з собою або на доставку готове пізніше обіцяного: каса помічає це, сповіщає і може одразу надіслати клієнту вибачення, за бажанням з купоном. Вмикається в Налаштування → Заклад → Доставка → Сповіщення про довгий час виконання (за замовчуванням вимкнено).
- Які замовлення: з собою та доставка з обіцяним часом — з каси (доставка та часові інтервали), інтернет-магазину та Thuisbezorgd.nl / Takeaway.com.
- Запізнення: через вказану кількість хвилин (за замовчуванням 10) після обіцяного часу замовлення ще не готове і не в дорозі. Готове або в дорозі означає: усе готово на кухонному екрані, статус «готово» або «у дорозі» в інтернет-магазині чи в Thuisbezorgd, клієнту надіслано повідомлення ✉ Готово / ✉ У дорозі, або замовлення оплачено. Каса перевіряє щохвилини.
- Сповіщення: кнопка Запізнення у верхній панелі з кількістю (зі звуком при новому), для кожного замовлення — обіцяний час і на скільки хвилин запізнення. Замовлення зникає саме, коли воно готове або в дорозі, або кнопкою Вирішено; нижче показано замовлення за останні 24 год із часом готовності. Усе записується в журнал.
- Інтернет-магазин: на сторінці статусу гість бачить, що замовлення затримується, і новий очікуваний час.
- Для Thuisbezorgd це неможливо (клієнт належить Thuisbezorgd): там лише сповіщення. Можна задати власний текст;
{naam},{zaak},{code},{korting}і{geldig}підставляються автоматично. - Купон (лише з увімкненими Промокоди): до вибачення додається персональний промокод на наступне замовлення (напр.
SORRY-7K4Q2M) — сума або відсоток, одноразовий, діє задану кількість днів, на касі та в інтернет-магазині. Ці коди не показуються у списку Промокоди. Якщо надсилання не вдалося, код анулюється. Кнопкою в касі — лише з правом Надати знижку. - Вимк.: сповіщення та видані коди зберігаються (зокрема в резервній копії); налаштування входить до експорту конфігурації.
Код: lib/telaat.ts, routes/telaat.ts, TeLaat.tsx і packages/shared/src/telaat.ts.
Кнопка Замовити: що вона робить і коли вона потрібна
Торкнутися товару й торкнутися Замовити — це два різні кроки:
- Дотик до товару одразу додає його до рахунку (у списку ліворуч) як новий. Бачите його лише ви: кухня й бар про нього ще нічого не знають. Новий рядок — це чернетка: його ще можна прибрати або змінити кількість чи опції, без сторно.
- Замовити надсилає всі нові рядки разом: чеки-замовлення йдуть на принтери кухні та бару (і на кухонний екран), а рядки після цього мають статус замовлено. Прибрати їх тоді можна лише через Сторно (право сторно). На кнопці видно, скільки нових рядків чекає, напр. Замовити (3); якщо нових рядків немає, кнопка сіра.
Чому два кроки? Біля столу ви приймаєте все замовлення (напої, закуску, основну страву), ще коригуєте його, якщо гість передумає, а потім надсилаєте все разом на кухню — один чек на кожну станцію замість чека на кожен товар. Так кухня може почати задовго до оплати.
Що ще відбувається під час Замовити:
- Подачі: подача 1 одразу йде на кухню; подачі 2, 3 і 4 надсилаються як ОЧІКУЄ, і кухня починає, лише коли ви викличете цю подачу (див. Подачі).
- Раунди: кожне Замовити — це один раунд; на цьому працює ↻ Ще раунд.
- Запас списується, а дозований кран розблоковується.
- All-you-can-eat: якщо це забагато, зарано чи запізно для пакета, каса спершу запитає, чи все ж дозволити.
- Бельгія (GKS 2.0): рядки спершу надсилаються як pro forma до чорної скриньки; якщо це не вдається, на кухню нічого не йде, і вони залишаються новими.
- Немає з'єднання: замовлення зберігається й надходить на кухню, щойно з'єднання відновиться. Принтер вимкнено: замовлення все одно проходить, чек потрапляє в чергу друку (див. Кухонний принтер вимкнено або немає кухонного екрана).
Можна й одразу розрахуватися. Якщо ви торкнетеся Розрахунок, коли на рахунку ще є нові рядки, каса спершу автоматично їх замовить, щоб кухня й бар завжди отримали свій чек. Тож за барною стійкою чи на винос не потрібно спершу торкатися Замовити: торкніться товарів і одразу Розрахунок. Якщо автоматичне замовлення не вдається (немає з'єднання, правило all-you-can-eat, чорна скринька), екран розрахунку залишається закритим, і ви бачите чому.
Не хочете, щоб бар отримував чек, коли ви одразу розраховуєте? У Налаштування → Заклад → Замовлення й розрахунок увімкніть позначку Прямий розрахунок без чека-замовлення. Тоді на кухню й у бар надходить лише те, що ви надсилаєте кнопкою Замовити; на те, що ви одразу розраховуєте, чек-замовлення не друкується.
Велика чи маленька кнопка Розрахунок
З позначкою Велика кнопка "Розрахунок" на екрані замовлення одразу під замовленими товарами є велика кнопка Розрахунок: широка, висока й із сумою, щоб швидко влучати. Якщо частину рахунку вже оплачено, на кнопці показано залишок. Маленька кнопка внизу поруч із Замовити тоді зникає.
З великою кнопкою кнопки на екрані розрахунку теж великі: Розрахунок (для Картки, Подарункової картки та інших способів оплати), а для Готівки Готівка без решти і Розрахунок широкі й високі, у них легко влучити навіть брудними пальцями (наприклад, у м'ясній крамниці). Способи оплати трохи більші, а кнопки чайових трохи менші, щоб усе залишалося на екрані.
Під час нової інсталяції позначку вимкнено: тоді маленька кнопка внизу поруч із Замовити і екран розрахунку зі звичайними кнопками. Хочете велику? У Налаштування → Заклад, одразу під світлою/темною темою, увімкніть позначку Велика кнопка "Розрахунок". Каса, яка вже була в користуванні, зберігає попереднє налаштування. Вибір діє для всіх кас і планшетів закладу.
Позначка "закінчився" для товару (розпродано)
Будь-хто може на екрані замовлення довго натиснути товар (або клацнути правою кнопкою миші) і вибрати Закінчився. Товар стає сірим, і його більше не можна замовити на жодній касі. Так само його повертають через Знову доступний. Кожна зміна записується в журнал. Адміністратор, як і раніше, може зробити це в Налаштування → Товари. Касовий сервер теж відхиляє товар із позначкою "закінчився" ("Cola" закінчилася), тож і з планшета, який ще не отримав зміну, або для збережених офлайн замовлень; такий планшет тоді показує "Не вдалося надіслати".
Кухонний екран (KDS)
Окрім (а не замість) принтерів кухонних чеків кухня чи бар можуть користуватися екраном. Відкрийте на планшеті/ПК на кухні http://<kassaserver>:3000/keuken, увійдіть за PIN-кодом і виберіть станцію: це ті самі назви, що й у принтерів (кухня, бар, ...), тож на екрані саме те, що було б на цьому кухонному чеку. "Усі" показує всі станції.
- Для кожного замовлення — окремий чек, найстаріші першими, зі столиком/з собою, номером і часом очікування (помаранчевий після 10, червоний після 20 хвилин).
- Подачі показано окремо; подача, яку ще не викликали, сіра з позначкою "ОЧІКУЄ виклику". Сторно показано закресленим.
- Торкніться рядка, щоб позначити його готовим, або Готово для всього чека. Тоді офіціант отримує у верхній панелі "Кухня: Столик 5 готово". Через Налаштування → Заклад → Кухонний екран → Звуковий сигнал для персоналу (за замовчуванням вимкнено) каса при цьому ще й подає сигнал ("дінь-дон", без звукового файлу). Браузер дозволяє звук лише після першого дотику до екрана; увімкніть гучність на планшеті.
- Повернути показує, що було позначено готовим за останню годину, — випадково прибране можна так повернути.
Екран оновлюється одразу сам. Кухонні чеки й далі друкуються; хто не користується екраном, нічого не помітить.
Кухонний екран: передавання, порядок і подача
Налаштування → Принтери → Кухонний екран. Кожну частину вмикають окремо, типово вимкнено; під час вимкнення все зберігається.
- Передавання між станціями, наприклад холодний → гарячий → видача. Для кожної станції ви задаєте сталу наступну станцію; тоді на замовленні є кнопка → гарячий (і завжди Передати на…, щоб вибрати іншу станцію). Передаються лише відкриті позиції цієї станції. Станції не потрібен принтер: впишіть станції, як-от видача, у Станції без принтера. Готово (і сповіщення офіціанту) з'являється лише на останній станції. У розділі "Усе" біля переданої позиції видно, де вона зараз. Кожен крок видно біля позиції та в журналі.
- Зміна порядку: перетягуйте замовлення (мишею) або переміщуйте їх за допомогою ◀ ▶ (сенсорний екран). Порядок діє для станції та для всіх екранів цієї станції; нові замовлення стають у кінець.
- Наступна подача з кухонного екрана: біля замовлення з подачею, що очікує, є Запитати подачу 2. Офіціант тоді отримує "Кухня запитує подачу 2 для Столик 5" (зі звуком) і викликає як завжди; на кухонному екрані видно "Подачу 2 запитано · n хв", доки подачу не викличуть. Або виберіть Викликати: тоді кухонний екран сам викликає подачу з робочим чеком "ВИКЛИК ПОДАЧІ 2", так само як кнопка в касі.
Кухонний принтер вимкнено або немає кухонного екрана
Каса завжди працює далі, навіть коли кухонний чи барний принтер вимкнено (або закінчився папір, або від’єднано кабель), а також без кухонного екрана:
- Замовлення завжди проходить. Рядки одразу отримують статус замовлено, рахунок правильний, і розрахунок працює як звичайно. Принтери отримують запит одночасно, і кожен має щонайбільше близько 4 секунд: вимкнений принтер не змушує інших (і офіціанта) довго чекати.
- Черга друку. Кухонний чек, який не вдалося надрукувати, потрапляє в чергу друку. Касовий сервер пробує знову кожні 30 секунд протягом чверті години; щойно принтер запрацює, чек друкується з написом LATER GEPRINT угорі. Якщо наступний чек на цьому принтері друкується, чеки з черги одразу йдуть за ним.
- Через чверть години автоматичні повторні спроби припиняються; тоді ще можна натиснути Надрукувати знову зараз.
- Кухонний екран. Якщо замовлення є на кухонному екрані, кухня бачить його там, навіть коли принтер вимкнено. Хто не користується кухонним екраном, нічого не втрачає: каса ніде не чекає на "Готово" від кухні.
- Черга зберігається лише в пам’яті касового сервера (після перезапуску вона порожня).
- Так само з касовим чеком: якщо він не надрукувався, розрахунок усе одно проведено (каса повідомляє "друк не вдався"), і пізніше в Чеки можна надрукувати копію.
Подачі (закуска, основна страва ...)
Кнопки подач показуються лише тоді, коли вони потрібні: щойно в замовленні є меню (складений товар) або коли щось уже є в подачі з 2 по 4. Зі звичайними товарами, як-от кола, ви їх не бачите, і все одразу йде на кухню. Нічого налаштовувати не потрібно.
Під списком замовлення є Подача 1 2 3 4. Стандартно ввімкнено подачу 1, і все працює як завжди: "Замовити" одразу надсилає все на кухню, без заголовків подач на кухонному чеку. Якщо вибрати подачу 2 (або вищу) перед тим, як торкатися товарів, то:
- вони після "Замовити" вже йдуть на кухню під "-- Подача 2 · ОЧІКУЄ виклику --", щоб кухня могла підготуватися;
- у списку замовлення видно "Подача 2 · очікує" з кнопкою Викликати;
- після виклику кухня отримує чек " ВИКЛИК ПОДАЧІ 2 " з тим, що треба готувати зараз.
Подача 1 завжди йде одразу. Якщо подачу 2 уже викликано, страва, дозамовлена пізніше в подачу 2, теж іде одразу.
Алергени для кожного товару
Стандартно вимкнено: тоді алергени ніде не видно. Увімкнути можна в Налаштування → Заклад → Вказувати й показувати алергени для кожного товару.
- Налаштування → Товари: для кожного товару позначте 14 алергенів ЄС (глютен, ракоподібні, яйця, риба, арахіс, соя, молоко, горіхи, селера, гірчиця, кунжут, сульфіти, люпин, молюски). У списку товарів скорочення стоять після назви.
- Екран замовлення: на кожній кнопці товару дрібно показано скорочення (напр.
Gl Me), а кнопка ⚠ Алергени в панелі груп показує для кожного товару вибраної групи алергени повністю, з поясненням скорочень. - Зміни алергенів записуються в журнал (старе → нове). Якщо налаштування вимкнено, раніше введені алергени зберігаються.
All-you-can-eat
Стандартно вимкнено. Вмикається в Налаштування → Заклад → All-you-can-eat (лише адміністратор). Ви створюєте один або кілька пакетів, напр. Риба, М’ясо і Суші, кожен із:
- назвою (з’являється на чеку: "Риба дорослий", "Риба дитина");
- ціною за дорослого і за дитину (з ПДВ) та ставкою ПДВ (стандартно NL
LAAG, BEB); - стравами, що входять у пакет (€ 0): цілими групами товарів та/або окремими товарами (також з інших груп, напр. картопля фрі і до Риби, і до М’яса);
- обмеженням часу у хвилинах (0 = без обмеження);
- раундами: щонайбільше стільки страв на особу за раунд (0 = без обмежень) і щонайменше стільки хвилин між двома раундами (0 = без паузи);
- надбавкою за залишки за штуку (0 = без надбавки).
Кнопками ↑ ↓ задається порядок. Він важливий, коли страва входить у кілька пакетів: тоді вона зараховується до верхнього з тих, які вибрала група. Видалити прибирає пакет для нових столиків; поточні столики зберігають свої цінові рядки (зменшити кількість осіб там ще можна, збільшити — ні).
Біля столика:
- На екрані замовлення над чеком є + All-you-can-eat. Для кожного пакета виберіть кількість дорослих і дітей; можна змішувати (напр. 2× Риба і 2× М’ясо). Ціна з’являється в рахунку окремими рядками; вони не йдуть на кухню. Кількість осіб групи стає загальною кількістю учасників (якщо каса веде облік кількості осіб).
- Панель показує для кожного пакета: кількість осіб, залишок часу (червоний, коли час вийшов), який зараз раунд і максимум, а також скільки ще до наступного раунду. Страви, що входять у пакет, позначено на кнопках як AYCE, а на чеку — міткою AYCE за € 0. Усе, що не входить у жоден вибраний пакет (напої, десерти ...), оплачується як звичайно.
- Замовити: кожне "Замовити" з безкоштовними стравами — це раунд, окремо для кожного пакета (лише для пакетів, страви яких є в замовленні). Те, що введено офлайн і надіслано пізніше, не блокується.
- Змінити: змінити кількості для кожного пакета. Зменшення кількості осіб вважається сторно (право "сторно"). Встановити пакет на 0 (або Зупинити для всіх) можна, доки на рахунку ще немає страв із цього пакета.
- Надбавка (лише якщо вибраний пакет має надбавку за залишки): виберіть кількість (і пакет, якщо їх кілька); на рахунок додається "Надбавка за залишки × кількість".
- Розрахунок, розділення, знижки й чек працюють як завжди: ціни пакетів, надбавка та напої — це звичайні рядки зі своїм ПДВ.
- Якщо адміністратор вимикає all-you-can-eat, поки групи ще їдять, нові введені страви знову коштують звичайну ціну; те, що вже є на рахунку, залишається.
- В інтернет-магазині (необов'язково, стандартно вимкнено): з Також під час замовлення за столиком через QR-код (інтернет-магазин) гість, який замовляє за столиком із пакетом, бачить страви пакета як Включено за € 0, а вгорі — поточний стан (особи, раунд, час). Одне замовлення — це один раунд, з тими самими правилами, що й Замовити; забагато, зарано або запізно інтернет-магазин одразу відхиляє. Напої та інші страви гість оплачує як завжди; усе йде на рахунок столика. Вимкнено = інтернет-магазин рахує звичайні ціни, як і раніше.
Подарункові сертифікати
Два перемикачі в Налаштування → Заклад → Подарункові сертифікати:
- Подарункова картка як спосіб оплати під час розрахунку: типово увімк., як і завжди. Вимк. = кнопки Подарункова картка немає під час розрахунку (і в повернути гроші через при поверненні), а касовий сервер відхиляє оплату подарунковою карткою.
- Продавати подарункові картки з балансом: типово вимк. Увімк.:
- На екрані замовлення є кнопка Подарункова картка: виберіть суму (€ 10, 25, 50, 100 або іншу) і дозвольте касі створити код, або відскануйте код попередньо надрукованої картки. Картка з’являється рядком у рахунку (код ПДВ BON: без виручки, без ПДВ, не йде на кухню). Там же можна перевірити залишок для клієнта.
- Після розрахунку картка активна, і принтер чеків друкує подарунковий сертифікат із сумою, кодом і QR-кодом.
- Використання: під час розрахунку виберіть Подарункова картка і відскануйте або введіть код (кнопка Залишок показує залишок). Сума списується із залишку. Якщо залишок менший за рахунок, увесь залишок списується як часткова оплата, а решту оплачують карткою або готівкою. Залишок можна використовувати частинами.
- Код порожній = подарункова картка без коду, як раніше (напр. старий паперовий сертифікат).
- Звіт → Подарункові сертифікати (право Керувати подарунковими сертифікатами, типово менеджер і адміністратор): пошук за кодом, непогашений баланс, історія кожної картки, заблокувати (загублена/вкрадена) і скоригувати залишок із причиною. Це записується в журнал.
- Звіти: продані подарункові картки не рахуються як виручка й показуються окремо (Продано подарункових карток); отримані гроші відображаються у способах оплати. Те, що оплачено подарунковою карткою, — звичайна виручка (з ПДВ) у способі оплати Подарункова картка.
- Бухгалтерія: продані картки йдуть у кредит, а використані — у дебет рахунку Подарункові сертифікати (кошти клієнтів).
- Продану подарункову картку можна повернути через Чеки → Повернення, поки її ще не використано (залишок = номінал). Після повернення картку анульовано (залишок 0, заблоковано; видно в історії картки). Якщо її вже (частково) використано, встановіть залишок 0 у Звіт → Подарункові сертифікати, а решту поверніть окремо. Знижка на подарункову картку неможлива.
Поповнюваний баланс (необов'язково)
Для клубів, спортивних їдалень, молодіжних центрів і заходів: подарункова картка з балансом стає поповнюваною карткою. Вмикається в Налаштування → Заклад → Поповнюваний баланс, під подарунковими картками (типово вимк.; працює, лише якщо ввімкнено Продавати подарункові картки з балансом).
- Картка або браслет: продайте подарункову картку з Попередньо надрукована картка і відскануйте картку (NFC/RFID-зчитувач, що працює як клавіатура, або штрихкод). Номер картки тоді є кодом; ним гість платить, як подарунковою карткою.
- Поповнення: екран замовлення → Подарункова картка → Поповнити баланс: відскануйте картку й введіть суму. Вона додається рядком у рахунок (код ПДВ BON: без виручки, без ПДВ, як продана подарункова картка) і після розрахунку зараховується на залишок. В історії картки відображається Поповнено.
- Максимальний залишок на картці (типово € 500, можна задати до € 5.000).
- Повернути залишок (позначка, типово вимк.; право Керувати грошовою шухлядою): після Перевірити залишок з'являється Повернути залишок. Залишок стає € 0, а сума відображається як гроші з шухляди в X- та Z-звіті (Баланс повернено …).
- Поповнення можна скасувати через Чеки → Повернення, доки залишок не менший за цю суму; картка залишається дійсною.
- Поповнення в кіоску (необов'язково): див. Кіоск самообслуговування.
Талони на харчування
Лише для закладів у Бельгії, за замовчуванням вимкнено: Налаштування → Заклад → Розрахунок → Талони на харчування. Талони на харчування — це пільга до зарплати: роботодавець зараховує їх на картку працівника (Edenred, Monizze або Pluxee). Гість платить нею на звичайному платіжному терміналі; інтеграція з емітентами не потрібна.
- Увімкнено: під час розрахунку є кнопка Талон на харчування. Виберіть емітента (лише тих, кого приймає заклад) і попросіть гостя прикласти картку до платіжного термінала, як під час оплати карткою. Без інтеграції з терміналом: гість платить на самому платіжному терміналі, а ви натискаєте Розрахунок.
- Без чайових і без решти при оплаті талонами на харчування. Якщо залишку не вистачає, гість оплачує решту іншим способом (рахунок залишається відкритим, доки все не буде оплачено).
- Лише для певних груп товарів (за бажанням, напр. їжа, але не алкоголь): тоді талонами на харчування можна оплатити не більше суми цих товарів у рахунку. Екран розрахунку показує, скільки; решту гість оплачує іншим способом.
- На чеку: Талон на харчування Pluxee (з емітентом після нього).
- Z-звіт і X-звіт: окремий рядок для кожного емітента (Талон на харчування Edenred, … Monizze, … Pluxee).
- Бухгалтерія: окремий рахунок головної книги для кожного емітента (Талони на харчування Pluxee (до отримання) тощо, за замовчуванням 416100, 416200 і 416300), бо гроші надходять від емітента, а не від банку платіжного термінала.
- Потрібно: договір з кожним емітентом, чиї талони ви приймаєте, і платіжний термінал, який приймає ці картки (уточніть у постачальника платіжного термінала).
Іноземна валюта
Оплата готівкою в іншій валюті, напр. для британських чи американських туристів або в прикордонні зі швейцарським франком. За замовчуванням вимкнено: Налаштування → Заклад → Розрахунок → Іноземна валюта. Додайте валюти (CHF, CZK, DKK, GBP, HUF, NOK, PLN, SEK, TRY, USD) і для кожної валюти курс: скільки євро ви рахуєте за 1 одиницю (напр. 1 GBP = € 1,15).
- Введено вручну: фіксований курс; змінюйте його самі, коли він зміниться.
- Онлайн (ЄЦБ): денний курс Європейського центрального банку (довідкові курси, кожного робочого дня близько 16:00; безкоштовно, обліковий запис не потрібен). З націнкою у відсотках (0-20) курс стає на стільки ж нижчим, щоб заклад не оплачував обмін сам. Каса сама завантажує курси, якщо вони старші за 6 годин; Оновити зараз завантажує їх одразу. Без інтернету залишається останній курс.
- Увімк.: під час розрахунку є кнопка Іноземна валюта. Виберіть валюту; каса показує суму в цій валюті. Введіть, скільки дає гість: каса перераховує й видає решту в євро. Якщо гість не хоче решти, позначте Решта — чайові: решта йде в чек як чайові, у Бельгії в цій валюті (GKS 2.0, UC296).
- Якщо гість дає менше за всю суму, це частина; іншу частину він оплачує інакше.
- На чеку: валюта, сума й курс, а також решта в євро.
- X- та Z-звіт: окремий рядок для кожної валюти (Іноземна валюта GBP, у євро), а в розділі грошової шухляди — скільки цієї валюти в шухляді. Решта в євро віднімається від очікуваних грошей у шухляді; саму валюту ви рахуєте окремо.
- Бухгалтерія: враховується як готівка (каса), у євро.
Додаткові кнопки під час замовлення й розрахунку
Кнопки для того, що потрібно не кожному закладу. Усе типово вимкнено; вмикається для кожної кнопки в Налаштування → Заклад → Замовлення й розрахунок (право Налаштування закладу, оплати й принтерів). Вимкнено = кнопки ніде в касі немає, і касовий сервер відхиляє дію. У Нідерландах усе працює без чорної скриньки; у Бельгії кнопка працює лише тоді, коли цю функцію протестовано з чорною скринькою (біля кнопки про це написано, якщо ще ні).
Під час відкриття столу:
- Вести облік кількості осіб: запитання "Скільки осіб?" для вільного столу, кількість осіб на плані залу та на екрані замовлення, а також гості у звітах. Див. Кількість осіб.
Під час замовлення (екран замовлення, для того, що ви натиснете потім):
- Підсумовування однакових товарів (без кнопки, типово увімкнено): якщо ще раз торкнутися того самого товару (ті самі опції, ще не замовлений), кількість збільшиться замість нового рядка: 4 Cola в одному рядку з ціною, помноженою на 4. Кнопкою − один знову прибирається, навіть якщо вже замовлено (сторно одного). З коментарем, місцем або на винос це залишається окремим рядком; те, що вже замовлено, залишається окремим рядком (новий раунд).
- − і + (перед ціною в кожному рядку): − прибирає один, + додає один (той самий товар, опції й коментар; якщо Підсумовування однакових товарів вимкнено, то новий рядок). Ще не замовлено і на 0: рядок зникає. Уже замовлено: на один менше — це сторно, рядок лишається закресленим (для кухні та звітів); на один більше — новий рядок, який ще треба замовити. Натискання на саму ціну більше нічого не прибирає. У меню лише −.
- З собою (лише в закладі): гість бере цей товар із собою, напр. пляшку води чи десерт. Цей рядок отримує ПДВ для винесення (у Бельгії мітка C), решта рахунку — ПДВ у закладі. У чеку біля рядка написано з собою.
- Місце (за столом): натискайте далі для місця 1, 2, 3 ...; рядки отримують цей номер місця (і на кухонному чеку). У Бельгії кожен рядок іде з центром витрат місця (CHAIR, UC4123) до чорної скриньки. Ще раз після місця 12 = знову без місця.
- Прийняти повернення: наступний товар додається з -1, напр. порожня пляшка чи стакан (застава). Це можливо лише для товарів із Можна повернути (застава) (Налаштування → Товари). Якщо весь рахунок від’ємний (лише повернена застава, без продажу), Розрахунок стає поверненням коштів: готівкою назад або карткою (повернено на самому терміналі). У Бельгії як повернення коштів (REFUND, UC4108 і UC4114).
- Погасити SPV: гість оплачує товар чи меню single purpose voucher (ваучером саме на цей товар, напр. "1 menu all-in"). Натисніть Погасити SPV, а потім товар у чеку: він додається з -1 (та сама ціна й ПДВ, для меню з компонентами), з позначкою SPV. Не йде на кухню; прибрати можна як звичайно. Товар-ваучер продається наперед як звичайний товар; позначте в Налаштування → Товари SPV (ваучер). У Бельгії рядок під час продажу йде як VOUCHER до чорної скриньки (UC271).
- Зарахувати аванс: див. нижче.
- Вільна ціна (без кнопки, для товару): для товару з Вільна ціна каса запитує ціну, напр. страва дня чи аванс.
Під час розрахунку:
- Прямий розрахунок без чека-замовлення (не кнопка): за замовчуванням Розрахунок спершу замовляє те, що ще не замовлено, щоб кухня й бар завжди отримували свій чек (див. Кнопка Замовити). Увімкнено: на те, що ви одразу розраховуєте, не натиснувши спершу Замовити, чек-замовлення не друкується, напр., біля бару, де ви берете самі. Те, що вже замовлено, не змінюється.
- Окремий розрахунок (за столом, у Розділити рахунок): виберіть, що один гість платить зараз, і частину рядка (½ для пів пляшки). Це стає окремою частиною, яку ви одразу розраховуєте; решта лишається на рахунку, без попереднього розділення рахунку чи перенесення в іншу групу. Відсоткова знижка на весь чек переноситься пропорційно. Назад без оплати = усе знову на рахунку. У Бельгії продаж лишається на місці столу, без зміни столу (UC4103bis, UC4104).
- Гість пішов, не заплативши (право Закриття без оплати, типово лише менеджер і адміністратор): рахунок закривається як продаж без оплати, з причиною в журналі. У X- і Z-звіті та в денному звіті це Не оплачено (гість пішов); у бухгалтерському журналі на безнадійний борг (типово 4985 / 643000). У Бельгії продаж без оплати (UC4109).
Пізніше (Чеки):
- Виправити ціну (право Виправлення ціни чека, типово лише менеджер і адміністратор): ціна розрахованого чека була неправильна, напр. знижка 50% замість 5%. Каса створює новий чек без столу з рядками старого чека назад (від’ємними, за тим, що тоді заплачено) і тими самими товарами знову за звичайною ціною. Дайте там правильну знижку й розрахуйте різницю (або поверніть кошти, якщо нова ціна нижча). Старий чек лишається як був; один раз на чек і не тоді, коли щось уже повернуто. У Бельгії старі рядки йдуть як CORRECTION (UC4116).
Код: apps/pos-server/src/lib/kassaopties.ts, routes/kassaopties.ts; екран KassaOpties.tsx. Журнал: Налаштування змінено, SPV погашено, Виправлення чека, Неоплачено.
Зарахувати аванс
Аванс (передоплату, напр. за свято чи бронювання) ви продаєте як звичайний товар з увімкненим Аванс (Налаштування → Товари; завжди має вільну ціну). Створіть по одному для кожної ставки ПДВ, якщо аванс має бути за ставками (напр. Аванс їжа і Аванс напої), або один товар, якщо це частина пропозиції. Гість платить аванс наперед і отримує чек.
Увімкнення: Налаштування → Заклад → Замовлення й розрахунок → Зарахувати аванс (типово вимкнено). Під час остаточного розрахунку натисніть на екрані замовлення Зарахувати аванс і введіть номер чека авансу. Каса додає рядки авансу з того чека з від’ємною кількістю на рахунок (той самий товар, ціна й ПДВ). Те, що вже зараховано, не можна зарахувати ще раз. Якщо аванс більший за рахунок, гість отримує різницю назад (повернення коштів). У Бельгії зараховані рядки йдуть як повернення коштів (REFUND) до чорної скриньки (UC4110, UC4111, UC4113). Журнал: Аванс зараховано.
Чек на e-mail
Типово вимк. Увімкнути: Налаштування → Заклад → Чек також на e-mail.
SMTP_HOST=smtp.voorbeeld.nl
SMTP_PORT=587
SMTP_GEBRUIKER=kassa@voorbeeld.nl
SMTP_WACHTWOORD=...
SMTP_AFZENDER=bon@voorbeeld.nl
Після заповнення перезапустіть касу. Тоді в Розрахунок з’явиться поле Також надіслати чек e-mail (необов'язково): порожньо = лише друк, як завжди; введена адреса e-mail = той самий чек (з розшифровкою ПДВ і фіскальними рядками) також надходить гостю на e-mail, відправник — назва закладу.
- Адреса e-mail не зберігається; у журналі є лише «чек N надіслано на a***@domein.nl» і чи вдалося це.
- Якщо надіслати не вдалося (напр. неправильні дані входу), чек усе одно розраховано й надруковано; повідомлення пояснює, що пішло не так.
- Не при частковій оплаті (розділення рахунку): чек формується з останньою оплатою, тож адресу вводять там.
- Надіслати пізніше: у Чеки біля чека є кнопка Надіслати e-mail (право Друкувати копію чека). Вона надсилає чек з позначкою КОПІЯ, як і надруковану копію (у Бельгії реєструється як копія).
- Додаткові пакети не потрібні: каса сама з’єднується з поштовим сервером (STARTTLS на 587, TLS на 465).
Бронювання
Увімкнути в Налаштування → Заклад → Бронювання (за замовчуванням вимкнено). Там же задається, за скільки хвилин до початку заброньований столик з’являється на плані залу (типово 60), і стандартна тривалість бронювання (типово 120 хвилин).
- Кнопка Бронювання у верхній панелі: огляд за днями (◀ ▶) з кількістю бронювань, гостей і неявок. + Нове бронювання: ім’я, телефон, e-mail, кількість осіб, дата, час, тривалість, столик (можна пізніше) і примітка. Бронює персонал; онлайн-бронювання (поки що) немає.
- Якщо на цей столик у цей проміжок уже є бронювання, каса про це повідомить; можна натиснути «Усе одно зберегти».
- Підтвердження на e-mail (позначка або пізніше «Надіслати e-mail»), якщо є адреса e-mail і поштовий сервер (
SMTP_HOST, див. Чек на e-mail). - На плані залу заброньований вільний столик позначено фіолетовим з написом «R 19:30 Jansen (4)». Натисніть на нього: «Jansen прибули» відкриває столик на 4 осіб із «Jansen» як назвою групи; «Інші гості» просто відкриває столик.
- В огляді: Прибули (відкриває столик; без столика спершу виберіть його), Змінити, Неявка, Скасувати і Відновити. Усе записується в журнал.
- Бронювання з онлайн-платформ: див. Платформи бронювання нижче.
Касова інтеграція TheFork: столик відкривається після прибуття, рахунок повертається
Через POS-API TheFork каса працює разом із TheFork Manager (за замовчуванням вимкнено), на додачу до отримання бронювань, описаного вище. Увімкнення: Налаштування → Платформи бронювання → Касова інтеграція TheFork; працює через портал керування.
- Якщо в TheFork Manager ви ставите гостю статус Прибув або За столиком, у касі відкривається столик із такою самою назвою, з кількістю гостей і приміткою: ім'я, алергії та дієта, передоплата, пропозиція/знижка й бонусні бали (Yums). Якщо на цьому столику вже є відкрите замовлення, його буде прив'язано. Немає столика з такою назвою: з'являється повідомлення, і в Платформи ви вибираєте столик.
- Після оплати рахунок надсилається в TheFork (сума та рядки з назвою, групою товарів, кількістю й сумою); тоді TheFork ставить бронюванню статус Пішов. При розділеній оплаті — один рахунок на загальну суму. Якщо не вдалося, каса пробує знову щочверть години (протягом двох днів), або натисніть Надіслати ще раз у Платформи.
- Підключення: каса показує код підключення; введіть його в TheFork Manager (Інтеграції → каса). ID ресторану в TheFork (Customer-id) вводить адміністратор, або він приходить автоматично з першим замовленням.
- Позначки: автоматично відкривати столик, ім'я, алергії та передоплата як примітка, рахунок у TheFork.
- Умова: Pin Voordeel має API-ключ TheFork (лише для партнерів) і зареєстрував там касу як POS (кнопка в порталі керування); TheFork запускає інтеграцію після тестової сесії.
Документація TheFork: https://docs.thefork.io/POS-API/introduction
Список очікування для гостей без бронювання
Для гостей без бронювання, які чекають на столик. Увімкнення: Налаштування → Заклад → Список очікування (без бронювання) (за замовчуванням вимкнено). Видно лише, якщо налаштовано SMS через CM.com; інакше списку очікування ніде в касі немає (навіть у налаштуваннях). Працює окремо від бронювань: навіть якщо вони вимкнені. Там же текст SMS (порожньо = "Hallo {naam}, uw tafel bij {zaak} is klaar. Wilt u zich melden bij de bediening?"; {naam}, {zaak} і {personen} підставляються).
- Кнопка Список очікування на верхній панелі з кількістю тих, хто чекає (помаранчева, якщо хтось чекає). + До списку очікування: ім'я, телефон (для SMS), кількість осіб, назване очікування і побажання (тераса, дитячий стілець).
- Список іде в порядку приходу, з тим, скільки кожен уже чекає (червоним, якщо довше, ніж названо), а вгорі кількість тих, хто чекає, осіб і середній час очікування за сьогодні.
- Якщо SMS не вдалося, видно причину. Можна надіслати SMS ще раз.
- Посадити: виберіть стіл; каса відкриває його з кількістю осіб (якщо каса веде облік кількості осіб) та іменем як назвою групи (так само, як для бронювання, що прибуло).
- Пішов (пішов або скасував) і Відновити. Під списком видно, кого сьогодні посадили або хто пішов, і скільки вони чекали.
- Конфіденційність: номери телефонів видаляються через добу; хто через 12 годин ще в списку, зникає з нього автоматично. Додавання, виклик (лише з останніми 3 цифрами номера) і посадка записуються в журнал.
- Чому не в Бронюваннях? Бронювання — на потім (дата, час, столик заздалегідь); список очікування — на зараз (черга, очікування, SMS, коли столик вільний). Тому окремий перемикач і кнопка, з тим самим "відкрити столик", що й у бронюванні.
- Онлайн у список очікування (необов'язково, стандартно вимкнено; лише з інтернет-магазином): з Гості можуть записатися й самі через інтернет-магазин в інтернет-магазині є Список очікування (і для нього є QR-код біля входу, у керуванні інтернет-магазином у розділі Столики та QR). Гість вводить ім'я, телефон, кількість осіб і побажання та наживо бачить своє місце. У касі він є в списку з позначкою онлайн; виклик, посадка й відхід працюють як завжди, а гість бачить це й на своєму телефоні (там же може й відмовитися).
Картка лояльності / бонусні бали
Увімкнути в Налаштування → Заклад → Картка клієнта / бонусні бали (за замовчуванням вимкнено, тоді цього ніде не видно). Там же задаються: бали за євро (0 = лише картки зі штампами), після скількох балів надається винагорода і скільки євро знижки вона дає.
- На касі над чеком є «+ Картка лояльності»: знайдіть клієнта за ім’ям або номером телефону чи створіть нового (ім’я, за бажанням телефон і e-mail). Після цього ім’я з балансом балів з’являється на чеку.
- Обмін: якщо балів достатньо — «Обміняти 100 балів: € 5 знижки»; при заповненій картці зі штампами — «Безкоштовна кава» (кава має бути в чеку). Це стає рядком знижки; будь-хто може її знову прибрати.
- Бали й штампи нараховуються та списуються лише під час розрахунку: бали — із суми після знижки (без проданих подарункових карток), штампи — за кожну одиницю товару з карткою зі штампами (безкоштовний товар не рахується).
- На чеку: нараховано, обміняно, баланс і стан карток зі штампами.
- Звіт → Клієнти (право Керувати картками лояльності): пошук клієнтів, зміна даних, коригування балів (з причиною), історія і видалення (GDPR: ім’я, телефон і e-mail видаляються; історія залишається анонімною). Унизу — картки зі штампами за товарами (напр. 10 кави = 1 безкоштовно).
- Повернення не скасовує нараховані бали автоматично; за потреби скоригуйте їх у Звіт → Клієнти.
- Картка лояльності з номером (необов'язково): у Звіт → Клієнти → (клієнт) введіть номер картки (або відскануйте картку в це поле). Зі сканером штрихкодів сканування цієї картки прив'язує клієнта до чека — на касі та на кіоску. Шукати за номером картки можна також через + Картка лояльності.
Профіль гостя: VIP, особливості харчування й уподобання (необов'язково)
Вмикається в Налаштування → Заклад → Профіль гостя, під карткою лояльності (за замовчуванням вимкнено; працює, лише якщо картку лояльності увімкнено). Потім:
- На екрані замовлення під прив'язаним клієнтом є "+ Профіль гостя": позначте VIP, виберіть особливості харчування (вегетаріанське, веганське, пескетаріанське, халяль, кошерне) та алергії (14 алергенів) і введіть уподобання (напр. "постійний столик біля вікна", не більше 300 символів). Після цього вони показуються біля клієнта на екрані замовлення, алергії — червоним. Змінити їх можна також у Звіт → Клієнти → (клієнт) → Профіль гостя.
- Якщо ви натиснете товар з алергеном гостя (див. Алергени для кожного товару), каса спершу запитає, чи все одно його додати. Враховується лише те, що вказано в товарі; у разі сумніву завжди питайте кухню.
- VIP-гість отримує ★ на плані залу: при відкритому рахунку і при показаному бронюванні цього клієнта. Коли гості з бронювання приходять, каса прив'язує клієнта з бронювання до рахунку.
- Особливості харчування й алергії (і VIP) друкуються на кухонному чеку для кухні й бару:
GAST: VIP · Vegetarisch · allergie: Noten. - Особливості харчування й алергії — це дані про здоров'я: заповнюйте їх лише за згодою гостя. У журналі записується лише те, що профіль змінено, а не самі побажання. Видалення клієнта видаляє й профіль гостя.
Улюблені товари / швидкі кнопки
Типово вимк. Налаштування → Заклад → Обране / швидкі кнопки:
- Найпопулярніші: на початку панелі груп кнопка ★ Обране з 12 товарами, які найчастіше продавалися за останні 14 днів (оновлюється автоматично). Екран замовлення відкривається на обраному.
- Вибрати самостійно: на екрані замовлення утримуйте товар (або клацніть правою кнопкою) і виберіть ★ Обране (швидка кнопка); ще раз = прибрати. Право Керувати товарами. Усі каси бачать це одразу.
- Додавання, опції, меню, happy hour і «закінчився» працюють в обраному так само, як у звичайних групах.
Ще раунд
На екрані замовлення є кнопка ↻ Ще раунд (щойно щось є в рахунку, навіть якщо це ще не замовлено). Один дотик ще раз додає останній раунд (усе, що було відправлено одним «Замовити», або те, що ви щойно вибрали) новими рядками; потім просто Замовити. Ціни — поточні (також happy hour).
- Довге натискання (або правий клік): обрати самому. Кнопками ◀ ▶ можна гортати попередні раунди, кожен товар можна ввімкнути/вимкнути (напр. зняти позначку з їжі) і змінити кількість кнопками − / +. Опції та примітки переносяться.
- Товари, що закінчилися, і меню не переносяться (меню додаються окремо). Працює й без з’єднання.
- Рядки додаються так, як вони є в рахунку: з увімкненим Підсумовування однакових товарів — один рядок на товар (2 Cola), з вимкненим — кожен рядок окремо (2 рази по 1 Cola).
Час за столиком на плані залу
На кожному зайнятому столику показано ⏱ 45m · 12m: скільки часу столик зайнятий і скільки минуло від останнього додавання (утримуйте столик або наведіть мишу, щоб побачити точний час). Якщо якийсь час нічого не замовляли, столик отримує помаранчеву рамку: варто підійти. Кількість хвилин задається в Налаштування → Заклад → Час за столиком (типово 20, 0 = без помаранчевої рамки). Якщо ще нічого не додано, час рахується від відкриття столика.
Якщо за одним столиком сидять кілька груп (окремі рахунки), для кожної групи є рядок, напр. G1 ⏱ 50m · 12m і Jansen ⏱ 10m (назва групи, інакше номер групи). Група, яка надто довго нічого не замовляє, отримує помаранчеву мітку, а столик — помаранчеву рамку.
Перенесення всього столика
На екрані замовлення є Перенести столик. Оберіть зал (напр., Тераса) і стіл: усі групи столу переносяться, кожна зі своїм рахунком. Якщо обрати зайнятий стіл, столи об'єднуються (групи додаються). Щоб перенести лише частину, використовуйте, як і раніше, Розділити / перенести. Якщо все має бути на одному рахунку, використовуйте Об'єднати.
Робота офлайн (планшет без Wi-Fi)
Якщо зникає з’єднання між планшетом і касовим сервером (Wi-Fi на терасі, сервер ненадовго вимкнено), з’являється жовта смуга, і планшет працює далі з останніми збереженими столиками, товарами та відкритими замовленнями:
- відкриття столиків, додавання товарів і Замовити зберігаються на планшеті (навіть після перезапуску) й показуються в списку замовлення з пунктирною рамкою («ще не надіслано»);
- щойно з’єднання відновиться, усе надсилається на сервер по черзі, і лише тоді кухонний чек іде на кухню. Кожен пакет має ключ, тож нічого не надходить двічі. Якщо хтось інший тим часом відкрив столик, товари додаються до того замовлення;
- розрахунок, знижка, розділення тощо можливі лише зі з’єднанням; «Розрахунок» чекає, поки все з цього столика не буде надіслано.
Кількість гостей
Необов’язково, за замовчуванням вимкнено: Налаштування → Заклад → Замовлення та оплата → Вести облік кількості осіб. Вимкнено = якомога менше натискань: вільний стіл відкривається одним натисканням, кількість осіб ніде не показується, а звіт, панель і підсумок дня не показують гостей і витрати на гостя.
Увімкнено: коли ви натискаєте вільний стіл, каса запитує, скільки осіб (великі кнопки 1-8 або введення вручну; "Пропустити" = 1). На плані залу біля зайнятого столу показано "3/4 ос." (особи/місця, жовтим, якщо людей більше, ніж місць). На екрані замовлення це змінюють кнопкою "3 ос." на панелі груп; якщо груп кілька, стіл підсумовує всі групи.
Без кількості осіб усе працює: Поділити порівну під час оплати починається з 2, all-you-can-eat сам запитує кількість дорослих і дітей, а бронювання та список очікування зберігають власну кількість осіб (стіл тоді відкривається без кількості осіб).
Реєстрація HACCP
Кожен заклад громадського харчування повинен контролювати й документувати безпечність харчових продуктів: у Нідерландах згідно з Hygiënecode voor de Horeca (Гігієнічний кодекс для закладів харчування, контроль NVWA), у Бельгії згідно з самоконтролем FAVV (настанова G-023). Увімкни Реєстрація HACCP у Налаштування → Закони та правила (за замовчуванням вимкнено).
- Точки вимірювання (адміністратор): напр. холодильна камера, морозильник, підтримання в теплі, температура в центрі продукту після термообробки, швидке охолодження та приймання товарів, із мінімумом і/або максимумом у °C і частотою (щодня, двічі на день, щотижня або під час використання). Додати стандартний список створює основу (охолодження до 7 °C, у Бельгії до 4 °C; морозильник до -18 °C; підтримання в теплі від 60 °C; термообробка від 75 °C).
- Прибирання та контроль: завдання на день, тиждень (за бажанням у визначений день) або місяць, із приміщенням та інструкцією, напр. дезінфекція обробних дощок, жирові фільтри, контроль шкідників, перевірка термометра.
- Реєстрація (кожен, хто увійшов): кнопка HACCP у верхній панелі з кількістю того, що сьогодні ще не виконано. Введи температуру або познач завдання (Виконано чи Не вдалося). Якщо температура виходить за межу, потрібно додати коригувальний захід (напр. "зачинив двері, викинув продукт"). Записи не можна змінити; помилку виправляють новим записом.
- Звіт (право Виручка за період): за кожен період усі записи, кількість відхилень і пропущені записи за днями; як CSV (Excel) або для друку / збереження як PDF для перевірки.
Розливна система і витратоміри
Кожен налив, про який повідомляє розливний комп'ютер або витратомір, потрапляє в чек, тож нічого не "витікає". Увімкніть це в Налаштування → Розливна система (типово вимкнено).
- Джерела (адміністратор): розливний комп'ютер або система витратомірів. Виберіть марку; каса заповнить попередні налаштування. З Нідерландів і Бельгії: Van Duijnen Horeca (автоматизація розливу, Dashbar), Beconet (Multi-Tap), TapSystems, Horecatechniek Nederland, Heineken SmartDispense, WeissBeerger / AB InBev та BarTrack; також Gruber, Addimat, WMF / Hogatron (E-Protokoll), Drinkotec (ex-Hartec), , Berg, Easybar, Azbar, Scanabar, PourMyBeer, iPourIt, BeerBoard, US BeerSAVER, Bevchek, Capton/BarVision, Kegtron, Kegbot Kegboard, "розумний кран" або власна система. Під'єднати можна п'ятьма способами (Kegboard: див. Дозований розлив і Kegboard нижче):
- Поля:
kraan(абоtap,plu),ml(абоcl,liter,volumeзeenheid) чиporties,id(той самий налив двічі = облікується один раз),tijdstip,tafel,bediening; один налив, список або{ "taps": [...] }. - Мережа (TCP): каса підключається до розливного комп'ютера (адреса і порт) або сама слухає порт.
- Послідовний порт: COM-порт або USB-serial, 1200–115200 baud, 8N1, 7E1 або 7O1.
- Для мережі й послідовного порту ви задаєте формат повідомлення (одне повідомлення на рядок або STX … ETX з необов'язковою XOR-перевіркою та відповіддю ACK/NAK) і шаблон повідомлення з частинами
kraanабоpluта за потребиml,cl,liter,porties,tafel,bedieningіid(напр.kraan;mlабо лише PLU на келих). Постачальники дають точний формат лише монтажникам; запитайте в постачальника розливного комп'ютера. Тестовий налив надсилає налив так, як це зробив би розливний комп'ютер.
- Поля:
- Крани (адміністратор): для кожного крана або PLU — товар і як він потрапляє в чек: за келих (келих у ml; налив 520 ml при келихах по 250 ml = 2 келихи; від 50% зараховується келих) або за літр (ціна товару — ціна за літр; у чеку напр. "Pils 0,33 l" на правильну суму).
- У чеку: якщо розливний комп'ютер передає стіл, налив одразу йде у відкрите замовлення цього столу. Інакше він потрапляє в Налито: на екрані замовлення з'являється смуга "… разів налито без чека"; виберіть наливи й натисніть У цей чек. Рядки одразу отримують статус замовлено (робочий чек у бар більше не йде), і залишок списується. Кнопка Налито у верхній панелі показує все, що ще не має чека.
- Списання (право Сторно): промивання, бій, дегустація, персонал, безкоштовно або інше (з поясненням); це записується в журнал. Замало для келиха (напр. промивання) потрібно списати.
- Огляд (право Виручка за період): по кожному крану налито, у чеку, списано (за причиною), скасовано і ще відкрито, у літрах, з відсотком проданого, а також як CSV.
- Отримані наливи не можна змінити (лише обробити).
Дозований розлив і Kegboard
З дозованим розливом кран відкривається лише після того, як келих пробито на касі, і тільки на цю кількість. Так не наливається нічого, чого немає в чеку. Це працює лише тоді, коли розливна система увімкнена, і вмикається для кожного крана окремо (за замовчуванням вимкнено).
- Для кожного крана (адміністратор, Налаштування → Розливна система → Крани): позначте Дозований розлив і виберіть, як довго кран може бути відкритим після пробиття (10–600 секунд, за замовчуванням 120). Для Kegboard також вкажіть реле (електромагнітний клапан). Дозований розлив можливий лише по келихах.
- Пробиття: під час Замовити (або безпосереднього Розрахунок) каса створює для кожного рядка чека з цим товаром дозвіл (кількість келихів × келих у ml) і надсилає його розливному комп'ютеру. Розлив, що надходить після цього, належить до цього рядка чека. Тож він не додається до чека вдруге і не потрапляє в «Налито». Розлив без дозволу, як і раніше, потрапляє в Налито.
- Сторно рядка до розливу: кран знову закривається. Дозвіл, за яким не налили вчасно, спливає; кран ніколи не відкривається пізніше.
- Дозволи на екрані замовлення (смуга над чеком): видно, що виконується, Зупинити і Дозволити знову. Дозволити знову можна лише, якщо ще нічого не налито, тож нічого зайвого ніколи не дозволяється. Тестовий дозвіл (адміністратор) дозволяє один келих без чека; це записується в журнал.
- Як дозвіл потрапляє до розливного комп'ютера:
- Kegboard (Kegbot, відкритий код, ESP32 з витратомірами та електромагнітними клапанами; повністю відкритий протокол): каса видає grant для кранів із цим товаром, реле та кількість. Плата сама закриває кран, коли кількість досягнуто або час вийшов.
- Мережа/послідовний порт: налаштовувана команда дозволу з
{kraan},{ml},{porties},{sec}та{id}(напр.V{kraan};{ml}), що надсилається у форматі повідомлень джерела (рядок або STX … ETX з XOR). Додатково можна задати команду зупинки. Точну команду надає постачальник.
- Під'єднання Kegboard: у + Джерело виберіть бренд Kegbot Kegboard. Плата з'являється біля джерела; натисніть Дозволити (або Відхилити). Тоді плата один раз отримує власний ключ, який каса зберігає лише як hash. Інший пристрій або неправильний ключ нічого не змінюють на під'єднаній платі; якщо плата втратила ключ, спершу скористайтеся Від'єднати. Джерело показує прошивку, лічильники й реле плати. Крани — це номери лічильників (0, 1 …). Картку біля плати буде відхилено: оплата відбувається на касі. Якщо розливну систему вимкнено, плата зберігає свої повідомлення й надсилає їх пізніше.
- У джерелі ви задаєте, через скільки секунд без потоку кран закривається (5–300, типово 30). Для кожного крана вкажіть номер лічильника, реле (електромагнітний клапан) і як довго кран може бути відкритим після пробиття на касі.
Керування музикою з каси
Персонал керує музикою із сенсорного екрана каси, тож окремий екран на барі не потрібен. Увімкніть це в Налаштування → Заклад → Екрани та керування → Керування музикою з каси (типово вимкнено). Тоді у верхній панелі з'явиться кнопка Музика: для кожного джерела (напр. Бар і Тераса) Відтворити, Пауза, Наступний, Попередній, Гучніше, Тихіше і повзунок гучності, а також що зараз грає. Назад до каси закриває панель. Після вимкнення джерела зберігаються.
- Плейлист (Sonos, Bluesound і VLC): черга з тим, що зараз грає. Натисніть трек, щоб його відтворити; через Змінити можна прибрати треки (✕), пересунути їх вище чи нижче (↑ ↓; Sonos і Bluesound) або очистити плейлист. Через Вибрати іншу музику увімкніть обране Sonos (напр. радіостанцію чи канал Tunify) або список відтворення Sonos, чи пресет BluOS.
- На окремому екрані: те саме керування і великий плейлист за адресою
http://<kassaserver>:3000/muziek, напр. на другому моніторі біля каси або на планшеті на барі (якщо на цьому пристрої вже виконано вхід, інакше — з PIN-кодом). - На планшеті або телефоні: QR-код з адресою цього окремого екрана в мережі закладу. Працівник сканує його власним планшетом або телефоном (у wifi-мережі закладу) і входить зі своїм PIN-кодом; кнопка Вийти знову закриває екран. Див. «Другий екран на планшеті або телефоні».
Адміністратор додає джерела кнопкою + Джерело музики, вибирає спосіб підключення і перевіряє його кнопкою Перевірити:
- Soundtrack (soundtrack.io): через відкритий API, з API-токеном (отримати в Soundtrack) і звуковою зоною (Завантажити зони). Відтворення, пауза, наступний, гучність і що зараз грає.
- Sonos: IP-адреса колонки (для групи — колонки, що керує групою). Працює з усім, що грає на Sonos, напр. Tunify, Spotify або радіо.
- Bluesound (BluOS): IP-адреса плеєра; теж працює з усім, що на ньому грає, напр. Tunify.
- VLC на музичному комп'ютері: увімкніть вебінтерфейс (Інструменти → Параметри → Показати параметри: Усі → Інтерфейс → Основні інтерфейси: Веб, з паролем у розділі Lua); IP-адреса (за потреби з
:poort, типово 8080) і пароль. - Власний музичний комп'ютер (вебадреси): для музичного комп'ютера або приставки з окремою вебадресою для кожної кнопки; GET або POST, а для гучності —
{volume}(0-100) в адресі. Без адрес Гучніше/Тихіше каса змінює гучність покроково. - Вебплеєр музичного сервісу: вебадреса вебплеєра або сторінки керування (напр. вебплеєр Tunify або Media Tools) відкривається в касі за кнопкою Музика; якщо сервіс не можна показувати всередині іншої сторінки — через Відкрити в окремому вікні.
Каса спілкується з плеєрами зі свого сервера, тому вони мають бути в тій самій мережі, що й каса (Soundtrack — через інтернет). Керувати може кожен, хто увійшов; налаштовувати — з правом Налаштовувати заклад, оплату й принтери. Токен і пароль ніколи не показуються на екрані й не потрапляють до журналу; у журналі записується лише налаштування (увімк./вимк., джерела), а не кожне натискання. Експорт конфігурації переносить лише увімк./вимк. (джерела належать одному закладу).
Другий екран на планшеті або телефоні
Музику й камери можна відкрити також на власному планшеті або телефоні працівника — як другий екран поруч із касою. У вікні Музика або Камери є кнопка На планшеті або телефоні: вона показує QR-код з адресою, напр. http://192.168.1.20:3000/muziek або .../camera.
- Підключіть планшет або телефон до wifi-мережі закладу.
- Відскануйте QR-код камерою (або введіть адресу в браузері).
- Увійдіть зі своїм PIN-кодом. Ви бачите лише те, що вам дозволено: музику — усі, камери — лише з правом Перегляд камер.
- Готово: Вийти праворуч угорі. Якщо сеанс завершився (напр. планшет усю ніч не використовувався), екран знову попросить PIN-код.
Порада: додайте сторінку на головний екран планшета (у браузері: Додати на головний екран), тоді вона відкриватиметься як застосунок.
Тому каса визначає IP-адресу касового ПК у мережі (якщо в ПК їх кілька, напр. wifi і кабель, ви обираєте мережу). На порталі керування (каса віддалено) це адреса порталу. QR-код каса створює сама, без інтернету.
Прив'язка планшетів: однією кнопкою на планшет (необов'язково)
Ще простіше: прив'яжіть планшет один раз, і каса однією кнопкою надішле музику або камери на цей планшет. Увімкніть у Налаштування → Заклад → Екрани та керування → Планшети як другий екран (типово вимк.).
- На планшеті: відкрийте
http://<kassaserver>:3000/tablet(біля налаштування є На планшеті або телефоні з QR-кодом), увійдіть із PIN-кодом і дайте планшету назву, напр. Планшет Бар. Прив'язати. - На касі: у вікні Музика або Камери тепер є кнопка На Планшет Бар (із зеленою крапкою, якщо планшет увімкнений). Натисніть її: планшет сам відкриє цей екран. Для музики передається вибране джерело (напр. Тераса).
- На планшеті: Закрити повертає до очікування; Відв'язати цей планшет видаляє прив'язку.
Залиште сторінку на планшеті відкритою; якщо планшет вимкнений або спить, він відкриє екран, щойно знову ввімкнеться. Планшет залишається в системі під працівником, який на ньому увійшов: надсилати й переглядати камери можна лише з правом Перегляд камер. Адміністратор бачить біля налаштування, які планшети прив'язані та чи вони ввімкнені, і може перейменувати або видалити їх. Планшет зберігає власний ключ; каса зберігає від нього лише хеш. Після вимкнення прив'язані планшети зберігаються. У журналі видно, хто прив'язав, перейменував або видалив планшет.
Екран виклику для замовлень з собою
Екран для гостей: ліворуч Готується, праворуч Готово, з великими номерами, як у закусочній чи фастфуді. Вмикається в Налаштування → Заклад → Екрани та керування → Екран виклику для замовлень з собою (типово вимкнено).
Прив'язка не потрібна: відкрийте на телевізорі з браузером (смарт-ТВ, стік або міні-ПК), планшеті або другому моніторі адресу каси з /oproep, напр. http://192.168.1.20:3000/oproep. У налаштуванні та у вікні Викликати є кнопки На окремому екрані і На планшеті або телефоні (QR-код з адресою). Входити не потрібно: екран показує лише номери. Торкніться екрана один раз, тоді браузер зможе відтворювати звук.
Що відображається:
- замовлення з собою з каси, інтернет-магазину та Thuisbezorgd (а за бажанням і замовлення біля стійки без столика, при швидкому продажі) за останні 12 год;
- щойно щось надіслано на кухню чи в бар (або в інтернет-магазині стоїть статус готується), номер з'являється в колонці Готується;
- Готово ставиться само, коли кухонний екран позначає все замовлення як готове або замовлення інтернет-магазину має статус готово. Номер коротко блимає, і екран видає «дінь-дон»;
- готовий номер залишається на екрані задану кількість хвилин (типово 10) або до Забрано;
- замовлення з кіоску (див. Кіоск самообслуговування) з'являються завжди, щойно вони оплачені або будуть оплачені на касі, також при "їм тут", з номером видачі з їхнього чека;
- за бажанням також замовлення для кур'єрів Thuisbezorgd, Uber Eats, Deliveroo і HubRise (позначка Також замовлення для кур'єрів …): з номером замовлення платформи та назвою платформи під ним, щоб кур'єр бачив, коли його замовлення готове. Видано тоді повідомляє й платформі, що кур'єр його забрав (як у вікні платформи).
Номер: для інтернет-магазину, Thuisbezorgd і платформ доставки — номер замовлення, який уже має гість або кур'єр; інакше номер видачі (від 1 до 999). Він великим шрифтом надрукований на чеку з поясненням, що номер з'явиться на екрані, коли замовлення буде готове (мовою чека).
За бажанням (типово вимкнено, у налаштуванні):
- Оголошувати номер голосом: при новому готовому номері екран каже, наприклад, "Nummer 42…" обраною мовою (нідерландська, англійська, німецька, французька, іспанська, італійська, португальська, польська, турецька або арабська). Голос іде з браузера екрана і звучить по-різному на різних пристроях; після відкриття торкніться екрана один раз. Після дзвінка, якщо звук теж увімкнено.
- Статус замовлення на телефоні: під номером видачі на чеку з'являється QR-код. Гість сканує його, бачить свій номер і статус (замовлено, готується, готово, видано) та отримує сповіщення, коли замовлення готове. Працює через портал керування, тож каса має бути до нього підключена. Не для інтернет-магазину й Thuisbezorgd (у них свій статус) і не для кіоску (у нього своє налаштування).
На касі є кнопка Викликати (з кількістю замовлень, які ще готуються):
- Готово вручну позначає номер як готовий (без кухонного екрана або якщо так швидше). Для замовлення з інтернет-магазину чи Thuisbezorgd статус теж змінюється, тож гість отримує повідомлення.
- Назад повертає номер до Готується.
- Забрано прибирає номер з екрана (з можливістю Скасувати дію).
У налаштуванні також можна вибрати, чи показувати ім'я поруч із номером (типово ні, задля приватності) і чи подає екран звук. Вимкнення: немає кнопки «Викликати» і немає номера видачі на чеку; налаштування зберігаються. У журналі видно, хто вручну позначив номер як готовий, повернув до «Готується» або позначив як забраний.
Відмітка приходу й виходу
Типово облік часу вимкнено: тоді його ніде в касі не видно (немає кнопки у верхній панелі, на екрані входу, немає вкладки Робочий час). Увімкніть його в Налаштування → Заклад, у розділі Відмітка приходу/виходу персоналу:
- Вимк.: не використовувати. Якщо пізніше вимкнути відмітку приходу/виходу, її більше ніде не видно, але вже відмічені години збережуться (нічого не видаляється); якщо знову ввімкнути, вони знову будуть на місці.
- Увімк.: працівники можуть відмічати початок і кінець зміни. Після входу каса питає, чи хочете ви почати зміну (можна Не зараз). У верхній панелі тоді є Почати зміну або Зміну розпочато 17:02; натисніть, щоб завершити зміну.
- Обов’язково: після входу спершу почніть зміну, інакше касою користуватися не можна. Завершення зміни одразу виконує вихід.
Хто не користується касою (напр. кухня), відмічається на екрані входу: натисніть Початок / кінець зміни і введіть свій PIN-код. Це перемикає між початком і кінцем без входу в систему.
Якщо облік часу ввімкнено, адміністратор бачить у Налаштування → Робочий час:
- хто зараз на зміні (і може завершити зміну за того, хто забув);
- відпрацьовані години кожного працівника за період з усіма змінами та завантаження у CSV (години також десятковим числом для нарахування зарплати);
- змінювати або додавати зміни (натисніть зміну або + Додати зміну). Кожна зміна записується в журнал зі старим і новим часом.
У Бельгії кожна відмітка початку й кінця зміни також передається в «чорну скриньку». Якщо вона недоступна, відмітка не проходить (як і розрахунок). Чи повністю це відповідає бельгійській реєстрації персоналу, ще має бути підтверджено.
Зважування та етикетки (вага)
Якщо ваги ввімкнено (Налаштування → Вага), товари можуть мати ціну за кілограм. Усі інші товари продаються поштучно, як і раніше.
- Зважування: торкніться товару з ціною за кілограм (кнопка показує, напр.,
12,95/kg). Вікно Зважування показує вагу з ваг у реальному часі (напр., Aclas OS6X або ваги, на яких працює сама каса); зелений = стабільно. Покладіть товар на ваги й торкніться Додати, щойно вага стабілізується. Ціна — ціна за кг × вага (округлено до цента); тара товару віднімається автоматично. Якщо товар має опції, вони йдуть далі. - Кілька ваг: якщо ваг кілька, виберіть угорі вікна, на яких зважуєте. Кожна каса/планшет пам'ятає свій вибір.
- Вручну: якщо ваг немає (або дозволено вручну), введіть вагу:
0,512або1,2— кілограми,512або512 g— грами. - Етикетка з TS6X: відскануйте штрихкод етикетки сканером на екрані замовлення (просто скануйте, нічого відкривати не треба) або натисніть Етикетка і відскануйте чи введіть 13 цифр. Товар (PLU) і вага беруться з етикетки. Якщо на етикетці є ціна, каса рахує саме цю ціну.
- На екрані, чеку й екрані клієнта вказано вагу, напр.
Gehakt 6,63, а під ним0,512 kg x € 12,95/kg; на кухонному чеку0,512 kg Gehakt. Розділення, перенесення й повернення — у кілограмах. - Зважений товар можна додати лише за наявності з’єднання з касовим сервером (вага надходить через касовий сервер).
Uber Eats, Deliveroo і HubRise
Окрім Thuisbezorgd.nl / Takeaway.com, у касу також надходять замовлення з Uber Eats (Нідерланди та Бельгія), Deliveroo (лише Бельгія; Deliveroo пішов з Нідерландів наприкінці 2022 року) і все, що підключено до HubRise (зокрема Uber Eats, Deliveroo, Just Eat/Takeaway.com і менші застосунки для замовлень). Кожну платформу вмикають окремо в Налаштування → Платформи доставки (за замовчуванням вимкнено; після вимкнення все зберігається). Вкладка показує для кожної платформи, у яких країнах вона працює, і попереджає, якщо вона не працює в країні закладу.
- Увімкніть, потім Увійти в Uber Eats і підключити магазин (заклад входить зі своїм акаунтом Uber Eats). Якщо в акаунті кілька магазинів, введіть ID магазину (store id) і увійдіть ще раз. Для цього Uber Eats спершу має затвердити Pin Voordeel як партнера.
- Deliveroo: напряму, через портал. Введіть ID локації (location id) і ID бренду (brand id). Без планшета (за замовчуванням): каса приймає або відхиляє; з планшетом: заклад приймає на планшеті, а портал лише повідомляє, чи є замовлення в касі.
- HubRise: каса сама забирає замовлення (кожні 20 секунд, портал не потрібен).
- Для кожної платформи: приймати автоматично, кухонний чек одразу на кухню/бар і (Uber Eats, Deliveroo) надсилати меню автоматично після зміни та Надіслати меню зараз. У меню є товари, позначені в Товари в меню Uber Eats і Deliveroo, з варіантами вибору; позначка «розпродано» також передається.
Замовлення. Замовлення стає звичайним замовленням (bezorgen або afhalen, назва групи <platform> <nummer>) з цінами платформи: товари розпізнаються за ID (з меню), кодом або PLU-номером, невідомий = окремий рядок із ціною платформи (і повідомлення); вартість доставки, надбавки та знижка окремими рядками; якщо сума все одно не збігається, додається рядок "Різниця". Кухонний чек одразу йде на кухню/бар. Кнопка Платформи у верхній панелі (з кількістю активних замовлень; помаранчева, якщо є що прийняти): прийняти або відхилити (з причиною), готується, готово, у дорозі, доставлено або забрано, скасувати та Завершити (оплачено онлайн). Що підтримує платформа, те передається назад (Uber Eats: прийняти, відхилити, скасувати; Deliveroo: прийняти, відхилити, готується, готово, забрано; HubRise: усі статуси). Якщо заклад доставляє сам (власна доставка), замовлення також є в Рейси, а виїзд і доставка автоматично передаються платформі. Скасування з боку платформи анулює замовлення. Якщо каса понад 2 хвилин не з'єднана з порталом, портал відхиляє нове замовлення Uber Eats і повідомляє Deliveroo (з планшетом), що не вдалося, щоб заклад побачив це на планшеті.
Код: apps/pos-server/src/lib/bezorgplatforms.ts, routes/bezorgplatforms.ts; екрани Bezorgplatforms.tsx. Бік порталу: horecapos-portaal/src/platforms.mjs. Журнал: Платформи доставки (увімк./вимк., налаштування, замовлення). Усе входить до резервних копій каси.
Менші платформи в Нідерландах і Бельгії (Homie, Hebtrek, sneleten.nl, Bistroo ...) не мають публічної касової інтеграції; якщо вони підключені до HubRise, то працюють через HubRise. Інше: див. backlog.
Автомат для готівки (закрита система обробки готівки)
За замовчуванням вимкнено: готівка працює як завжди. У закритій системі обробки готівки персонал не торкається готівки: клієнт або працівник вносить гроші в автомат, який їх перераховує, перевіряє на справжність і видає решту.
- Автомати, з якими каса зв'язується напряму:
- CashDro (3, 4+, 5, 7, S Compact; NuKassa, KluisKassa): через мережу (вебсервіс). Увімкніть на CashDro Web Integration і створіть окремого користувача для каси.
- Cashmatic (SelfPay 460/860/1060; у Бельгії Xpos): через мережу (порт 50301) під користувачем Cashmatic.
- Azkoyen Cashlogy (POS1000, POS1500): через CashlogyConnector на Windows-ПК біля автомата (порт 8092).
- CashKeeper: через CKMonitor на Windows-ПК (порт 16501).
- Glory CASHINFINITY (CI-5, CI-10, CI-10X; також через Cikam): через контролер (FCC) автомата. Поки що бета: перше підключення нехай перевірить Glory або ваш дилер.
- Зовнішній: автоматом керує інша програма, яка зв'язується з касою (наприклад, Cikam, ImaCash для 25 марок, програма CashGuard/StrongPoint (Merlin), PayComplete (SUZOHAPP), Gunnebo SafePay або французькі марки, як-от CashMag).
- Тестовий автомат: без обладнання, для навчання або демонстрації. Кнопкою Перевірити з'єднання перевіряються адреса та вхід. Розмістіть автомат у власній мережі (ніколи не відкривайте в інтернет) і використовуйте для каси окремого користувача, а не адміністратора.
- Розрахунок з Готівка: Оплатити в автоматі запускає оплату на суму (з округленням готівки, якщо воно ввімкнене, плюс чайові; при розділенні рахунку — на частину). Екран показує, що внесено і що повертається; каса проводить розрахунок лише після того, як автомат повідомить готово. Скасувати = автомат повертає гроші. Якщо автомат не зміг видати всю решту (бракує монет), зазначається, скільки треба видати з грошової шухляди. Успішну оплату, за якою ще не проведено розрахунок (напр. вимкнувся планшет), буде знайдено знову в цьому замовленні.
- Готівка лише через автомат (за замовчуванням увімкнено): тоді сервер каси приймає готівку лише за успішної оплати в автоматі саме за це замовлення і на цю суму. Вимк. = також звичайна готівка в шухляду.
- Грошова шухляда (Звіт → Каса, право Керувати грошовою шухлядою): Запитати стан (за кожною монетою та банкнотою, у Cashmatic, Cashlogy, Glory і тестового автомата), Видати із зазначенням причини (напр. розмінні гроші для шухляди), Поповнення та Вилучення надлишку (розмінні гроші залишаються; у Cashmatic). Очікується в грошовій шухляді не враховує гроші в автоматі (їх указано окремо нижче: В автоматі для готівки), але враховує решту, яку довелося видати з шухляди.
Кнопка ©
У правому нижньому куті кожного екрана (PIN-код, план залу, замовлення і кухня) є маленька кнопка ©. Вона відкриває дані OptimumPOS: логотип, адресу, телефон, e-mail і вебсайт. Іконка зберігається локально в застосунку, тож працює й без інтернету. Ця ж іконка є іконкою застосунку (вкладка й головний екран).
Частина 2 · Менеджер
Початок роботи
Менеджер типово може все, що й офіціант, а також, зокрема, надавати знижки, оформлювати повернення, закривати день, керувати грошовою шухлядою та переглядати журнал і запаси. Здебільшого це під кнопкою Звіт:
- Проміжний підсумок (X): виручка на цей момент, без закриття дня.
- Грошова шухляда: розмінна сума, внесення/вилучення грошей і відкриття шухляди.
- Закрити день (Z): наприкінці дня; після цього починається новий день.
- Попередні Z-звіти, Виручка за період і Панель.
- Журнал, Подарункові сертифікати і Клієнти.
Запаси
Типово вимк. Увімкнути: Налаштування → Заклад → Вести облік запасів. Вимк. = ніде в касі не видно.
- Для кожного товару виберіть у Налаштування → Товари → (товар) → Запаси:
- Ні: як завжди;
- За товаром: кожен продаж списує 1 (напр. пляшки, банки), з рівнем сповіщення для «майже закінчилося»;
- Через інгредієнти: рецепт, напр. гамбургер = 1 булочка + 150 г м’яса + 1 скибочка сиру. Кожен продаж списує інгредієнти.
- Налаштування → Запаси (право Керувати запасами, типово менеджер і адміністратор):
- Товари та Інгредієнти: залишки з позначками закінчився / майже закінчилося; фільтр «Лише ті, що (майже) закінчилися» і експорт у CSV.
- Для кожного товару чи інгредієнта проводиться Надходження (+) (поставка), Інвентаризація (=) (порахована кількість стає новим залишком) або Списати (−) (бій, прострочення; причина обов’язкова).
- Створення інгредієнтів з одиницею (шт, г, кг, мл, сл, л, порція, пляшка, кега) і рівнем сповіщення.
- Історія: усі рухи (продаж, сторно, надходження, інвентаризація, списання) із зазначенням, хто й коли. Адміністративні дії також записуються в журнал.
- Списання відбувається під час Замовити (або під час розрахунку для того, що розраховано одразу). Сторно повертає кількість. Розділення й перенесення не списують двічі. У меню списуються страви, а не рядок меню. Повернення (кредитний чек) не повертають кількість (повернене зазвичай уже не продати); за потреби проведіть це як надходження.
- Якщо запас закінчився (або інгредієнта не вистачає ще на одну порцію), товар автоматично позначається як розпродано на всіх касах. Коли запас майже закінчився, на кнопці товару видно ще N. Після надходження чи інвентаризації його одразу знову можна замовити. Касовий сервер також відхиляє такий товар («Pils» закінчився (запас 0)), тож навіть із планшета, який про це ще не знав.
- Запас може опуститися нижче 0 (напр. два планшети одночасно або замовлення офлайн); інвентаризація це виправляє.
- Список замовлення: Налаштування → Запаси → Список замовлення. Для кожного товару (за товаром) і інгредієнта, крім рівня сповіщення, задаються також поповнювати до і постачальник. У списку замовлення є все, що на рівні сповіщення або нижче (без рівня сповіщення: на 0), за постачальниками, із пропозицією поповнювати до − залишок. Кількості можна змінювати та вмикати/вимикати позначками. Далі Друкувати (принтер чеків), Копіювати (для e-mail або WhatsApp), Експорт (CSV), а після поставки Доставлено: провести як надходження (проводить усе одним разом). Позначка вгорі показує й те, що ще не закінчилося, щоб замовити більше.
- Опції: у групі опцій (Налаштування → Товари → Опції) є кнопка Запаси. Для кожної опції вкажіть інгредієнти на одиницю, напр. Додатковий сир = 1 скибочка сиру, Картопля фрі = 150 г картоплі фрі. Якщо опцію вибрано, ці інгредієнти списуються за кожну одиницю (навіть якщо сам товар не веде облік запасів; при сторно вони повертаються). Якщо інгредієнт закінчився, опція на касі позначена (закінчився) і її не можна вибрати.
Замовлення в постачальників
За замовчуванням вимкнено. Вмикається в Налаштування → Запаси → Замовлення в постачальників (лише з увімкненим Вести облік запасів). Вимк. = список замовлення працює як завжди.
- Постачальники (вкладка Постачальники): виберіть зі списку або створіть власного постачальника. У списку є оптовики та cash & carry (Sligro, Sligro-ISPC/Sligro-M, HANOS, Makro, De Kweker, Horeca Totaal, Van Zon, zegro, Lekkerland), фудсервіс (Bidfood і Bidfood Belgium, Solucious, Chefs Culinar, Java, Q-Food, Agora Culinair, VHC Jongens/Kreko/Actifood, Hocras, Van Hoeckel ...), оптовики напоїв (De Klok, Henk Smit, Horesca, De Monnik, Hansen, Dranken Geers ...), броварні та безалкогольні напої (Heineken через Sligro, AB InBev/BEES, Alken-Maes, Haacht, Duvel Moortgat, Martens, Coca-Cola, Spadel, Grolsch, Bavaria), постачальники свіжих продуктів (Van Gelder, Driessen, FiliusKaas, Bakkers Brigade, Rungis ...), непродовольчі товари (Bunzl, Takeaware, Supplierz), онлайн-магазин вин Vinify.nl і платформи замовлень (Apicbase, Exact Horeko, Growzer, inOne, Cuisin.io, OrderXL). У списку лише постачальники з країни закладу. Якщо вибрати одного з них, спосіб замовлення, файл і стовпці вже налаштовано; для кожного постачальника зазначено, як у нього замовляти.
- Для кожного постачальника: номер клієнта, замовляти через:
- E-mail: замовлення листом (з таблицею) на e-mail для замовлень, за бажання з копією, зі списком замовлення у вкладенні: CSV, Excel, CSV для Care4Fresh (багато оптовиків свіжих продуктів), UBL 2.1 Order (Peppol BIS Order), EANCOM ORDERS (D96A у Нідерландах, D01B/HO2C у Бельгії) або cXML. Відповіді надходять на e-mail закладу.
- Файл: каса створює файл, ви завантажуєте його в інтернет-магазин постачальника (напр. Bunzl Snel bestellen:
artikel;aantal, Takeaware:SKU,Quantity). Роздільник, рядок заголовка і стовпці налаштовуються (artikel,ean,omschrijving,aantal,eenheid,prijs,totaal; черезartikel=SKUзадається власна назва заголовка). - Інтеграція (cXML): cXML OrderRequest з номером клієнта та спільним секретом на адресу для замовлень постачальника — так само, як закупівельні системи надсилають замовлення в Sligro, HANOS і Bidfood. Адресу, номер клієнта та секрет ви отримуєте від постачальника (Sligro: koppelingen@sligro.nl). Секрет ніколи не повертається на екран.
- Для обох інтеграцій можна також вказати ім’я користувача та пароль (Basic) і додаткові заголовки (по одному в рядку, наприклад
X-Api-Key: ...). - Вивантаження (SFTP/FTPS): каса сама розміщує файл (EANCOM, UBL, CSV, Excel ...) у папці на сервері постачальника — так багато оптовиків приймають EDI-замовлення. SFTP (SSH), FTPS (явний на порту 21 або неявний на порту 990) або, лише у власній мережі, FTP. Вхід за паролем або SSH-ключем (OpenSSH, PEM або PuTTY .ppk; ed25519, ECDSA або RSA). Створити ключ створює пару ключів у касі; відкритий ключ ви надсилаєте постачальнику. Перевірити з'єднання виконує вхід і шукає папку. Відбиток SFTP-сервера фіксується під час першого з'єднання і потім перевіряється (інший сервер пароля не отримає); для FTPS із власним сертифікатом ви фіксуєте відбиток сертифіката. Додаткове програмне забезпечення не потрібне.
- Друк: замовлення на чековому принтері, щоб передати його телефоном.
- Паролі, ключі, токени та заголовки ніколи не повертаються на екран (залишити порожнім = зберегти, Видалити = прибрати).
- Запросити інтеграцію: для постачальника каса складає e-mail із запитом на інтеграцію (cXML, EDI через SFTP/FTPS, UBL/Peppol або власний API постачальника) з даними закладу (назва, адреса, номер ПДВ, номер клієнта, GLN) і тим, що потрібно; для EDI — з відкритим ключем. Відредагуйте й надішліть; копія та відповіді надходять на e-mail закладу. Дата запиту зазначається в постачальника. Для Sligro запит іде на koppelingen@sligro.nl, інакше вкажіть адресу вашого менеджера з роботи з клієнтами.
- Власний постачальник (не зі списку) може все, крім того, що має надати сам постачальник: e-mail, файл і друк працюють завжди; інтеграція або вивантаження — лише з даними цього постачальника.
- Дні замовлення та доставка: дні замовлення, крайній час, термін доставки (бажана дата доставки в замовленні) і мінімальна сума замовлення. Автоматично: у дні замовлення починаючи з цього часу каса сама готує замовлення як чернетку (ви його перевіряєте) або одразу надсилає його (e-mail, вивантаженням або через інтеграцію; нижче мінімальної суми замовлення — лише підготовка чернетки). Один раз на день для кожного постачальника.
- За товаром (Налаштування → Товари → (товар) → Запаси, у розділі За товаром) і за інгредієнтом: Замовляти в (постачальник), номер для замовлення в цього постачальника, EAN, в упаковці (ящик по 24 = 24), назва упаковки та закупівельна ціна за упаковку. Рівень сповіщення — момент для замовлення; Поповнювати до — скільки має бути після поповнення.
- Замовлення постачальникам (вкладка Замовлення постачальникам):
- Пропоноване замовлення для кожного постачальника: усе, що на рівні сповіщення або нижче. Уже замовлене і ще не отримане (у дорозі) враховується, щоб ви нічого не замовили двічі. Пропозиція = поповнювати до − залишок − у дорозі (без Поповнювати до: до рівня сповіщення), з округленням угору до цілих упаковок. Змініть кількості та натисніть Створити замовлення.
- Спочатку замовлення підготовлено як чернетку: кількості, окремі рядки (без товару, напр. серветки), примітку та дату доставки ще можна змінити. Потім Надіслати (способом постачальника або цього разу інакше). Якщо не вдалося (напр. постачальник відхилив), поруч зазначається причина, і можна спробувати знову.
- Отримано: для кожного рядка отримана кількість (уже заповнена замовленою кількістю); запаси збільшуються за упаковками (2 ящики по 24 = 48), а замовлення відображається в історії.
- Кожен файл (CSV, Excel, UBL, EANCOM, cXML) можна також завантажити окремо.
- Надіслані, невдалі, отримані та скасовані замовлення записуються в журнал. Звичайний Список замовлення і далі працює; якщо в товару вказано постачальника зі списку, товар відображається там під його назвою.
Керування відгуками
Читання відгуків із Google і Trustpilot та відповіді на них просто в касі. Вмикається в розділі Налаштування → Бали та відгуки → Керування відгуками (за замовчуванням вимкнено, тоді цього ніде не видно). Читання й відповіді: Звіт → Відгуки (право Читати відгуки й відповідати на них, за замовчуванням є й у менеджера). Якщо вимкнути функцію, підключення й відгуки збережуться.
- Потім кожному закладу достатньо натиснути Підключити Google і увійти у власний обліковий запис Google профілю компанії. Ключ Places можна налаштувати й централізовано (витрати тоді несе постачальник). Trustpilot налаштовується для кожного закладу: кожен заклад має власний обліковий запис Trustpilot Business (API входить у платну підписку), з якого беруться ключ, секрет і business user ID. У касі біля кожного способу вказано "Хто цим займається?".
- Застосунок постачальника (через портал клієнта): якщо Google-застосунок і/або Trustpilot-застосунок постачальника є в порталі клієнта (див. README у horecapos-portaal, "Reviews: apps van de leverancier"), адміністратор у розділі Вхід і ключі обирає Застосунок постачальника (типово для нового підключення, якщо в порталі є застосунок). Заклад натискає Підключити Google або Увійти через Trustpilot і входить через власний акаунт; каса сама чекає завершення входу (кожні 3 секунд, щонайбільше 15 хвилин) і один раз забирає tokens з порталу. Оновлення теж відбувається через портал. Client-ID, secret або API-ключ у касі не потрібні; для Trustpilot потрібні домен і, для відповідей, business user ID. Публічний Trustpilot тоді читає відгуки через ключ порталу. Потрібні
PORTAAL_URLіPORTAAL_SLEUTEL. Власний застосунок або API-ключ працює, як описано нижче. - Кому належать відгуки: вони залишаються у власному профілі компанії Google і на власній сторінці Trustpilot закладу, а каса зберігає їх лише у власній базі даних каси. Відповіді з’являються від імені закладу. Портал лише передає вхід (у пам’яті, щонайбільше 15 хвилин, забрати можна один раз) і не зберігає ні відгуків, ні tokens; назву застосунку постачальника видно лише на екрані згоди.
- Зареєструватися самостійно: біля кожної платформи є посилання, щоб самостійно створити профіль компанії Google (business.google.com/create) або акаунт Trustpilot Business (business.trustpilot.com), а для Trustpilot — ще й на тарифи (business.trustpilot.com/plans). Реєстрація й оплата відбуваються на самій платформі; API для цього немає.
- Потім натисніть Підключити Google і увійдіть в обліковий запис, який керує профілем компанії. Одна філія в профілі = вибирається одразу; кілька = вибір у касі.
- Google Places (лише читання): з Place ID і API-ключем Places API (або
GOOGLE_PLACES_API_KEY): середня оцінка, кількість відгуків і 5 найрелевантніших відгуків. Відповідати так не можна. - Trustpilot Business (читання й відповіді): API-ключ і API-секрет застосунку в Trustpilot Business (Integrations → API; або
TRUSTPILOT_API_KEYіTRUSTPILOT_API_SECRET), домен закладу (каса сама знайде business unit) і, для відповідей, business user ID того, хто відповідає. - Trustpilot публічний (лише читання): лише API-ключ.
- Каса отримує відгуки кожні 30 хвилин (і одразу після підключення; Отримати зараз). Адресу ел. пошти й номер замовлення гостя (які передає Trustpilot) каса не зберігає.
- Звіт → Відгуки: середня оцінка, кількість за зірками, без відповіді й непрочитані; фільтри за платформою, зірками, без відповіді й непрочитаними. Для кожного відгуку: Відповісти (не більше 4000 символів; відповідь побачать усі), Змінити відповідь, Видалити відповідь і Прочитано. Новий або змінений відгук вважається непрочитаним. У журнал записуються review_beantwoord і review_antwoord_weg.
- Після відключення отримані відгуки зберігаються.
SMS- та e-mail-маркетинг
Повідомлення клієнтам картки клієнта, які дали на це згоду. Без картки клієнта жоден варіант увімкнути не можна.
- Згода для кожного клієнта й кожного каналу: у нового клієнта на касі є позначки "Клієнт хоче отримувати акції через SMS" і "... на e-mail" (типово вимкнені). У Звіт → Клієнти ви бачите й змінюєте згоду (з датою, коли її надано) та день народження (лише день і місяць). Відписатися: зніміть позначки та збережіть.
- Меню оновлюється одразу: якщо ви вмикаєте або вимикаєте маркетинг чи картку лояльності, каса протягом кількох секунд знову надсилає меню в інтернет-магазин (лише якщо щось змінилося), щоб позначка одразу з’явилася або зникла.
- Згода через інтернет-магазин: якщо заклад має інтернет-магазин, під час оформлення замовлення є позначка "Я хочу отримувати пропозиції e-mail/SMS" (лише увімкнені канали; типово вимкнена). Коли надходить таке замовлення, каса шукає клієнта за номером телефону (інакше за адресою e-mail), за потреби створює його та зберігає згоду з датою. Відсутній номер або адреса в наявного клієнта доповнюються; у журналі з’являється klant_toestemming із джерелом webshop.
- Звіт → Маркетинг (право Керування карткою клієнта): угорі — скільки клієнтів дали згоду на SMS і на e-mail.
- Акції (одноразові): назва, SMS або e-mail, (тема,) текст із
{naam},{zaak}і{punten}та за бажанням лише клієнти, які давно не приходили або мають щонайменше стільки балів. Переглянути показує, скільком клієнтам піде повідомлення, як його побачить клієнт і скільки SMS на клієнта. Надіслати тест — на ваш власний номер або адресу. Потім Надіслати: каса надсилає у фоні (не більше 1000 за раз) і рахує, що надіслано, а що не вдалося. Ніхто не отримає ту саму акцію двічі; якщо каса зупиниться посередині, Продовжити надсилання продовжить з тих, хто ще нічого не отримав. - Надсилання через Mailchimp або Klaviyo (за підключення до вибраного списку, див. нижче): для акції через e-mail у полі Надсилати через виберіть касу (власний поштовий сервер, як описано вище) або Mailchimp чи Klaviyo. Тоді каса спочатку оновлює список (відписки, бали), створює там кампанію саме для вибраних клієнтів, які є в списку (Mailchimp: постійна група в audience; Klaviyo: окремий список для акції), і надсилає її від відправника за замовчуванням для audience або акаунта.
{naam}і{punten}Mailchimp/Klaviyo підставляє для кожного клієнта; посилання для відписки від сервісу стоїть унизу. Немає ліміту 1000 за раз і немає персонального промокоду ({code}). Якщо не вдалося, акція залишається чернеткою з повідомленням про помилку. Вкладка Маркетинг доступна й тоді, коли активна лише інтеграція (тоді лише акції через Mailchimp/Klaviyo; Надіслати тест працює через поштовий сервер каси). Автоматичні повідомлення каса завжди надсилає сама; у Mailchimp/Klaviyo їх створюють як Customer Journey або Flow. Ключ Klaviyo: також права на запис для Campaigns і Templates (якщо ви вже входили — увійдіть знову). - Як push-сповіщення через інтернет-магазин (якщо в керуванні інтернет-магазином увімкнено Push-сповіщення з пропозиціями): у полі Надсилати через виберіть Push-сповіщення (інтернет-магазин як застосунок), із заголовком (не більше 60 символів) і коротким текстом (не більше 200 символів; підставляється лише
{zaak}, бо інтернет-магазин не знає, хто гість). Каса надсилає акцію через портал керування в інтернет-магазин, а той надсилає її гостям, які ввімкнули там Пропозиції у сповіщеннях; натискання відкриває меню інтернет-магазину. За кілька секунд біля акції з’явиться, скільки сповіщень дійшло. Не більше 3 на день, разом із тим, що заклад надсилає з керування інтернет-магазином; інакше акція залишається чернеткою із зазначенням причини. Вкладка «Маркетинг» доступна й тоді, коли ввімкнено лише це (без картки лояльності чи email-маркетингу). Без коду знижки та відбору (дні, бали); для перевірки увімкніть на своєму телефоні в інтернет-магазині Пропозиції у сповіщеннях. - Автоматично: привітання з днем народження (у день народження, раз на рік) і "ми сумуємо за вами" (після стількох днів без візиту, один раз за кожну відсутність клієнта). Увімк./вимк. для кожного повідомлення; надсилаються лише вдень (10:00–20:00).
- Персональний промокод (необов'язково, для кожного повідомлення або акції; лише якщо Промокоди увімкнено в Налаштування → Заклад): кожен клієнт отримує свій код, напр.
TERUG-7K4Q2M(день народженняJARIG-…, акціяACTIE-…), у відсотках або фіксованою сумою, за бажанням з мінімальною сумою замовлення, одноразовий, дійсний задану кількість днів після надсилання (за замовчуванням 30), на касі та/або в інтернет-магазині. Вставте{code}і{geldig}у текст там, де потрібно; інакше каса додасть під повідомленням "Uw kortingscode: … (10% korting, aan de kassa of in de webshop, geldig t/m …)". Переглянути та Надіслати тест показують приклад коду (TERUG-VOORBEELD, не працює). Якщо надіслати не вдалося, код не створюється. В акції видно, скільки кодів видано та використано. - Відписка є під кожним повідомленням: в SMS "Відписатися? Зателефонуйте ... або скажіть під час наступного візиту", в e-mail — посилання для відписки на e-mail закладу (також кнопка Скасувати підписку в Gmail і Outlook). Відповідь на лист надходить закладу.
- Конфіденційність (GDPR): лише клієнти зі згодою та номером або адресою; у журналі немає номерів чи адрес, але для кожної акції видно, скільки надіслано й скільки не вдалося. Якщо ви видаляєте клієнта, він зникає і зі списку розсилки.
- Витрати: SMS надсилаються через ваш власний обліковий запис CM.com (понад 160 символів = кілька SMS на клієнта). Gmail та інші поштові сервери мають денний ліміт; за великої кількості клієнтів надсилайте частинами.
Чайові за працівником
У Налаштування → Заклад → Чайові (лише якщо ввімкнено «Показувати кнопки чайових під час розрахунку») виберіть, як чайові за працівниками показуються в проміжному підсумку (X), Z-звіті (чек і e-mail) та Виручці за період (також у CSV):
| Варіант | Розподіл |
|---|---|
| Вимк. (типово) | лише загальна сума чайових, як завжди |
| Кожному свої чайові | чайові з рахунків, які працівник розрахував сам |
| Спільні за годинами | усі чайові разом, за відпрацьованими (відміченими) годинами в цей період (потрібна відмітка приходу/виходу; ніхто не відмітився = порівну) |
| Спільні порівну | усі чайові разом, порівну між тими, хто був на зміні (без відміток: хто щось додавав або розраховував) |
Залишкові центи отримують ті, хто найближче до наступного цента, тож підсумок завжди сходиться. Це лише огляд: каса нічого не виплачує (це можна зробити через «Гроші з шухляди»). Старі Z-звіти залишаються без змін.
Z-звіт на e-mail
Один раз укажіть у Налаштування → Заклад → Надсилати Z-звіт на адресу e-mail адміністратора (кілька адрес — через кому, макс. 3). Після Закрити день Z-звіт автоматично надходить на цю адресу, крім надрукованого чека. Порожньо = не надсилати, як завжди.
- Надсилання відбувається у фоновому режимі, тож повільний поштовий сервер не затримує закриття дня.
- Не вдалося або потрібно ще раз: Звіт → Попередні Z-звіти → (звіт) → Надіслати ще раз (з позначкою КОПІЯ).
Підсумок дня (необов'язково)
Якщо в полі Надсилати Z-звіт на вказано адресу, під ним є прапорець З коротким підсумком дня на початку листа (за замовчуванням вимкнено). Увімк. = на початку листа із Z-звітом кілька рядків простою мовою, лише з власних даних каси (без ШІ, нічого не передається назовні):
- виторг, чеки й гості та середній чек порівняно з тим самим періодом тижнем раніше (у відсотках); якщо тоді нічого не було, це зазначається;
- 5 найпопулярніших товарів і що привертає увагу: товари, яких продано щонайменше на 3 більше або менше, ніж минулого тижня;
- кількість сторно (порівняно з минулим тижнем) і найзавантаженіша година (чеки й виторг).
Сам Z-звіт (чек і лист) залишається точно таким самим. Приклад за сьогодні показує підсумок від останнього закриття дня до цього моменту. Підсумок нідерландською мовою, як і лист із Z-звітом.
Панель
Вкладка Панель у Звіті (право Виручка за період), лише перегляд:
- Виручка за годину у вигляді графіка: вибраний день (синій) поруч із тим самим днем минулого тижня (сірий). Сьогодні порівнюється з минулим тижнем до того самого часу, щоб відсоток був чесним. Кнопками ◀ ▶ або датою можна вибрати інший день.
- Плитки: виручка (± % порівняно з минулим тижнем), чеки та середній чек, середні витрати на гостя (лише в закладі; з собою/доставка не враховуються) за цей день і за вибраний період.
- Топ-10 товарів і найзавантаженіші години за останні 7, 28 або 90 днів. Найзавантаженіші години — теплова карта «день тижня × година» (середня виручка за робочий день) з трьома найзавантаженішими годинами над нею, зручно для складання графіка.
Продані подарункові картки не рахуються як виручка, знижки й заголовки меню не входять у топ-10 (як і в інших звітах). День триває з 00:00 до 24:00.
Додаткові звіти
Три додаткові вкладки у Звіт, кожну вмикають окремо в Налаштування → Заклад → Керування та звіти → Додаткові звіти (типово вимкнено: тоді вкладки немає). Для них потрібне те саме право, що й для Виручка за період, і вони лише для перегляду. Період: цей тиждень, минулий тиждень, цей місяць, минулий місяць, останні 90 днів, цей рік або власний вибір (не більше ніж трохи понад рік).
- Меню-інжиніринг: для кожного товару — як часто він продається (частка в усіх проданих штуках) порівняно з тим, скільки він приносить за штуку (маржа = ціна продажу без ПДВ мінус собівартість). Кожен товар отримує категорію: Зірка (популярний і з великою маржею: залишити як є), Робоча конячка (популярний, мала маржа: трохи підняти ціну або здешевити приготування), Загадка (продається мало, велика маржа: краще показати) і Собака (продається мало, мала маржа: прибрати з меню або замінити). Популярний = щонайменше 70% від рівної частки; велика маржа = щонайменше середня маржа на продану штуку. Собівартість береться з Apicbase (Налаштування → Рецептури), інакше із закупівельної ціни товару (закупівельна ціна за упаковку, поділена на кількість в упаковці), інакше з рецепта з інгредієнтів із закупівельною ціною (Запаси). Товари без собівартості показано окремо внизу. За бажанням — за групою товарів (
?groep=). - Акції та коди: за кожним промокодом, за кожною акцією з Маркетинг (персональні коди разом) і за кожним happy hour: скільки разів використано (чеки; для happy hour також штуки), яка знижка, виручка та середній чек.
- Втрати: що списано із запасів (Налаштування → Запаси, Списати (−)), за причиною (великі літери та пробіли не важливі) і за товаром чи інгредієнтом, із вартістю за собівартістю; а також що скасовано вже після надсилання на кухню чи в бар, із продажною вартістю та собівартістю.
Знижки
Менеджер або адміністратор бачить на екрані замовлення поруч із сумою кнопку % Знижка:
- на весь чек або на один рядок;
- у відсотках (10, 15, 20, 25, 50, 100% = безкоштовно або ввести свій) чи фіксованою сумою;
- завжди з причиною (Персонал, Постійний клієнт, Скарга, Акція, Власне споживання або ввести свою).
Знижка з’являється окремим рядком у чеку («Знижка 10%», з причиною під ним) з тією самою ставкою ПДВ, тож сума й розшифровка ПДВ сходяться. На весь чек знижка розподіляється за ставками ПДВ. Прибрати: натисніть суму рядка знижки. Якщо скасовано рядок із власною знижкою, ця знижка теж зникає. Якщо прибрати товар із чека з відсотковою знижкою на весь чек, каса перераховує знижку для того, що лишилося (у Бельгії UC226); фіксована сума лишається і під час розрахунку знову розподіляється між рядками. Якщо через 100% знижку платити нічого, закрийте через «Закрити (нічого не платити)». Знижки записуються в журнал, а в X/Z-звіті та огляді за період показуються як «з них знижка». При поверненні чека зі знижкою знижка враховується пропорційно.
Промокоди (за бажанням)
Коди зі знижкою на весь чек, наприклад для акції (ZOMER10). Вмикаються в Налаштування → Заклад → Промокоди (за замовчуванням вимкнено); самі коди створюються в Налаштування → Промокоди (право Керування товарами):
- знижка у відсотках або фіксованою сумою, за бажанням із мінімальною сумою замовлення, терміном дії з/до та не більше стільки разів (порожньо = без обмежень);
- для кожного коду: на касі та/або в інтернет-магазині (каса передає коди разом із меню; використання рахується для каси та інтернет-магазину разом).
На екрані замовлення є кнопка Промокод (вводити код може будь-хто; код заздалегідь створено закладом). Знижка з'являється в чеку рядком "Промокод CODE", розподіленим за ставками ПДВ; один код на чек, і не можна, якщо вже є (часткова) оплата. Якщо видалити рядок або замовлення скасовано, використання більше не рахується. Видалення використаного коду вимикає його (звіти залишаються правильними). Усе записується в журнал (Промокод). Код: lib/kortingscodes.ts, routes/kortingscodes.ts, Kortingscodebeheer.tsx, KortingscodeDialoog.tsx.
Вони не відображаються у списку Налаштування → Промокоди (але кількість для кожної акції видно в Звіт → Маркетинг) і передаються в інтернет-магазин, поки дійсні й не використані.
Звіти та закриття дня
Кнопка Звіт у верхній панелі:
- Проміжний підсумок (X): виручка, ПДВ, способи оплати, за групами та грошова шухляда з моменту останнього закриття дня. Можна надрукувати. Нічого не закриває.
- Закрити день (Z) (менеджер або адміністратор): порахувати гроші в шухляді (показується різниця з розмінною сумою + готівкою), ввести розмінну суму на наступний день, закрити. Z-звіт отримує наскрізний номер, зберігається й друкується на принтері чеків. Неможливо, поки є відкриті замовлення. За бажанням: Рахувати за монетами й купюрами (помічник підрахунку) сам вводить пораховану суму; підрахунок за монетами/купюрами тоді також потрапляє в Z-звіт. Ввести загальну суму самостійно можна, як і завжди.
- Грошова шухляда (менеджер або адміністратор, за бажанням):
- Гроші з шухляди (інкасація в банк, витрата, виплачені чайові) або гроші в шухляду (розмінні гроші) із сумою та причиною. Шухляда відкривається й друкується чек із рядком для підпису, який зберігають разом із грошима (можна вимкнути). Це враховується в очікувано в шухляді й показується окремим рядком у X- та Z-звіті.
- Ввести або виправити розмінну суму на сьогодні (зазвичай її вводять під час закриття дня на наступний день).
- Відкрити шухляду без продажу, із причиною.
- Усе записується в журнал. Якщо ви цим не користуєтеся, закриття дня працює точно як раніше (розмінна сума + готівка = очікувано в шухляді).
- Під виручкою показано кількість гостей (осіб у розрахованих замовленнях) і середнє на гостя, також у надрукованому X/Z-звіті.
- Виручка за період (менеджер або адміністратор): сьогодні, вчора, цей/минулий тиждень, цей/минулий місяць, цей рік або власний період від–до. Показує виручку, ПДВ, способи оплати, чайові, гостей, групи товарів, за днями та за працівниками. Через Експорт (Excel/CSV) ви отримуєте файл для бухгалтера (крапка з комою й десяткова кома, одразу відкривається в нідерландському Excel).
- Попередні Z-звіти: список із виручкою та касовою різницею; відкрити й надрукувати копію (з позначкою «КОПІЯ»).
Експорт у бухгалтерію
Звіт → Виручка за період → Експорт для бухгалтерії (журнал) (право Виручка за період) створює CSV з одним журнальним записом за кожен день, готовий для імпорту в e-Boekhouden, Exact, SnelStart, Twinfield тощо (через їхній імпорт CSV/меморіальних записів), або один із форматів нижче (UBL, XAF і готові формати для 14 програм).
Один документ на день (KASSA-JJJJMMDD), який завжди збалансований (дебет = кредит):
| Сторона | Що |
|---|---|
| Дебет | надходження за способами оплати (готівка, картка, подарункова картка, онлайн, інше), включно з чайовими |
| Кредит | виручка за ставками ПДВ (без ПДВ) і ПДВ до сплати за кожною ставкою |
| Кредит | чайові (до виплати персоналу, не виручка) |
| +/- | різниця округлення (округлення готівки до 5 центів) |
| +/- | гроші в/з шухляди (касові операції) проти транзитних рахунків і касова різниця із Z-звіту |
Повернення та знижки вже враховані в чеках і зменшують виручку. Стовпці: Datum; Boekstuk; Dagboek; Rekening; Omschrijving; Debet; Credit; Btw-code; Btw-% (крапка з комою, десяткова кома). Після завантаження каса повідомляє, чи є дні, які не збалансовані або мають різницю, більшу за округлення.
Біля кнопки ви вибираєте формат (вибір запам’ятовується в браузері). Той самий журнал, але оформлений так, щоб програма могла його одразу імпортувати. У списку показано лише формати для країни закладу (Налаштування → Заклад), спочатку стандарти (CSV, UBL, XAF), потім програми за абеткою:
| Формат | Файл | Завантаження в програму |
|---|---|---|
| Загальний (CSV) | journaal_…csv | будь-яка програма з імпортом CSV/меморіальних записів (зіставлення стовпців) |
| UBL 2.1 / Peppol (XML), NL і BE | journaal_…_ubl.xml (кілька днів: .zip) | за кожен день рахунок-фактура "денні надходження" на Kassaverkopen (уже оплачений) згідно з Peppol BIS Billing 3.0, з одним рядком на кожну ставку ПДВ і рахунком доходу в AccountingCost; лише виручка й ПДВ (способи оплати, чайові, округлення, шухляда й касова різниця не належать до рахунку-фактури). Для завантаження, зокрема, в Adsolut, Billit, BUNNI, DigiBoox, Expert/M, Moneybird, Popsy, Rompslomp, Storecove і TriFact365; не для надсилання через мережу Peppol. Назва, номер платника ПДВ і адреса беруться з Налаштування → Заклад |
| XML Auditfile Financieel (XAF 4.0), NL | journaal_…_xaf.xaf | auditfile податкової служби Нідерландів (Belastingdienst) (XSD XmlAuditfileFinancieel4.0): один файл за період, головна книга, коди ПДВ, періоди й за кожен день одна меморіальна транзакція; імпортується, зокрема, в Caseware, Exact Reeleezee і Visma Cash |
| AccountView (XML), NL | journaal_…_accountview.xml | XML-проводки (VFPData, один transact на кожен рядок проводки з dj_code, period, inv_date, inv_nr, acct_nr, trn_desc і amount: дебет додатний, кредит від'ємний), за кожен день один документ у меморіальному журналі; завантаження через визначення імпорту (Document → Importeren → Importdefinitie aanmaken, тип XML), назви полів — ті самі, що в самому AccountView, тож достатньо один раз зіставити 1-до-1. Попросіть перевірити перший імпорт |
| AFAS Profit (XML) | journaal_…_afas.xml | XML для UpdateConnector FiEntries (фінансові операції), одне проведення за день із роком, періодом, адміністрацією та журналом; у Profit завантажується через Імпорт → XML; вкажіть номер адміністрації (типово 1) |
| Asperion (CSV), NL | journaal_…_asperion.csv | Формат FMUTA (Extra → Import financiële mutaties), за кожен день рядок заголовка й рядки проводок; визначення імпорту налаштовує Asperion через службу підтримки |
| Денний звіт (HTML), NL і BE | journaal_…_dagstaat.html | зручний для читання денний звіт за кожен день (виручка за ставками ПДВ, способи оплати, чайові, касова різниця) і підсумки; друк у PDF або надсилання e-mail, для програм без імпорту (Accountable, Dext, Dexxter, Jortt, Kleisteen, MoneyMonk) |
| e-Boekhouden.nl (CSV) | journaal_…_eboekhouden.csv | Дата; Документ; Опис; Рахунок головної книги; Сума (дебет додатний, кредит від'ємний); код ПДВ GEEN (ПДВ уже на рахунках ПДВ); Імпорт → Операції, вид меморіальний запис |
| Exact Online (XML) | journaal_…_exact.xml | eExact-XML (тема GLTransactions): за кожен день один меморіальний запис (тип 90) у журналі; Імпорт/експорт → Імпорт XML |
| InformerOnline (TXT), NL | journaal_…_informer.txt | меморіальний запис із розділенням табуляцією (Geavanceerd → Memoriaal → uploaden); журнал має бути номером 1–99 (інакше 90) |
| KING ERP (XML), NL | journaal_…_king.xml | KING_JOURNAAL: одна серія проводок (не остаточна) з одним журнальним записом за кожен день |
| KOMAS (CSV), NL | journaal_…_komas.csv | Вільний формат KOMAS (0401 Importeren journaalposten): Datum; Grootboek; Omschrijving; Bedrag |
| Odoo (CSV), NL і BE | journaal_…_odoo.csv | Accounting → Journal Entries → Import records; журнал і рахунок за назвою або кодом |
| Sage BOB 50 (Excel), BE | journaal_…_bob.xlsx | Importation de données externes → Opérations diverses (зіставте стовпці один раз) |
| SAP Business One (ZIP), NL і BE | journaal_…_sapb1.zip | Data Transfer Workbench, Journal Entries: JournalEntries.csv і JournalEntries_Lines.csv |
| SnelStart (CSV) | journaal_…_snelstart.csv | Дата; Документ; Опис; Рахунок головної книги; Дебет; Кредит (дд-мм-рррр, десяткова кома, без BOM); імпорт меморіальних записів, журнал вибираєте під час завантаження |
| Twinfield (XML) | journaal_…_twinfield.xml | проводки журналу як чернетка (destiny="temporary"), бухгалтер проводить їх остаточно; вкажіть код адміністрації (порожньо = адміністрація, у яку ви імпортуєте) |
| Winbooks (CSV), BE | journaal_…_winbooks.csv | K_DOC.CSV, за кожен день один документ у журналі (Winbooks нумерує сам) |
| Yuki (XML) | journaal_…_yuki.xml | Journal-XML (GeneralJournal), один меморіальний запис за день, така сама структура, як у прямого підключення; ID адміністрації необов’язковий |
Огляд: яка бухгалтерська програма в який спосіб
За сегментами, за абеткою. NL/BE = у якій країні працює програма: у Налаштування → Бухгалтерія → Бухгалтерська програма ви бачите лише програми для країни закладу (нідерландські програми не працюють у Бельгії, і навпаки). Напряму = каса щодня сама робить проводки (вибір у Налаштування → Бухгалтерія → Бухгалтерська програма); за запитом = API є, але спершу потрібна реєстрація партнера або схвалення постачальника (повідомте нам). Файл = формат у Експорт до бухгалтерії. Де можливо і те, і те, можна використовувати обидва. Список міститься в packages/shared/src/boekhoudcatalogus.ts і також показується в Налаштування → Бухгалтерія.
| Програма | NL | BE | Напряму | Файл | Примітка |
|---|---|---|---|---|---|
| Малий бізнес і самозайняті | |||||
| Accountable | – | ✓ | – | Денний звіт (HTML, для PDF або e-mail) | |
| AccountView (Visma) | ✓ | – | за запитом | AccountView (XML), Загальний (CSV) | Файл: XML-проводки для визначення імпорту (Document → Importeren); загальний CSV теж можна завантажити через визначення імпорту. Онлайн через API AccountView.Net за запитом в AccountView. |
| Acumulus | ✓ | – | ✓ | – | Напряму як оплачений рахунок-фактура на продаж за день, з одним рядком на кожну ставку ПДВ. |
| AFAS Profit | ✓ | – | ✓ | AFAS Profit (XML) | |
| Asperion | ✓ | – | за запитом | Asperion (CSV) | Напряму після реєстрації як API-партнера в Asperion. |
| Billit | – | ✓ | за запитом | UBL 2.1 / Peppol (XML) | Завантаження UBL через Fast input; напряму після схвалення Billit. |
| BUNNI | ✓ | – | – | UBL 2.1 / Peppol (XML) | Публічної документації API ще немає. |
| Dexxter | – | ✓ | – | Денний звіт (HTML, для PDF або e-mail) | |
| DigiBoox (Visma DigiBTW) | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| e-Boekhouden.nl | ✓ | – | – | e-Boekhouden.nl (CSV) | Також для колишніх клієнтів Ficsus. |
| Exact Online | ✓ | ✓ | ✓ | Exact Online (XML) | |
| Exact Reeleezee | ✓ | – | – | XML Auditfile Financieel (XAF 4.0) | |
| Horus | – | ✓ | ✓ | – | |
| InformerOnline | ✓ | – | – | InformerOnline (TXT) | |
| Jortt | ✓ | – | – | Денний звіт (HTML, для PDF або e-mail) | Без імпорту: проведіть денну виручку як дохід, додавши денний звіт як вкладення. |
| KING | ✓ | – | за запитом | KING ERP (XML) | Напряму після реєстрації партнера в KING Software. |
| Kleisteen | ✓ | – | – | Денний звіт (HTML, для PDF або e-mail) | |
| KOMAS (Adfinis) | ✓ | – | – | KOMAS (CSV) | |
| Minox | ✓ | – | за запитом | – | Напряму після партнерського підключення через Minox. |
| Moneybird | ✓ | – | ✓ | UBL 2.1 / Peppol (XML) | |
| MoneyMonk | ✓ | – | – | Денний звіт (HTML, для PDF або e-mail) | MoneyMonk у 2026 році отримає API для підключень. |
| Octopus | – | ✓ | за запитом | – | Напряму після запиту software house ID в Octopus. |
| Popsy / Allegro | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Rompslomp | ✓ | – | – | UBL 2.1 / Peppol (XML) | |
| Sage BOB 50 | – | ✓ | – | Sage BOB 50 (Excel) | |
| Silvasoft | ✓ | ✓ | ✓ | – | Напряму як проводка продажу за день, з одним рядком на кожну ставку ПДВ; способи оплати, чайові й касова різниця не передаються. |
| SnelStart | ✓ | – | ✓ | SnelStart (CSV) | |
| Twinfield | ✓ | – | ✓ | Twinfield (XML) | |
| Visma Cash | ✓ | – | за запитом | XML Auditfile Financieel (XAF 4.0) | API з ключем із CASHWeb; формат записів для проводок ще уточнюється. |
| Visma eAccounting | ✓ | – | за запитом | – | Напряму після схвалення Visma (реєстрація партнера). |
| Winbooks | – | ✓ | за запитом | Winbooks (CSV) | |
| Wolters Kluwer Adsolut | – | ✓ | за запитом | UBL 2.1 / Peppol (XML) | UBL з рахунком доходу в кожному рядку; увімкніть в Adsolut "grootboekrekening verwerken bij verkopen". |
| Wolters Kluwer Expert/M | – | ✓ | – | UBL 2.1 / Peppol (XML) | |
| Yuki | ✓ | ✓ | ✓ | Yuki (XML) | |
| Міжнародні | |||||
| QuickBooks Online | ✓ | ✓ | ✓ | загальний CSV | Немає нідерландської чи бельгійської версії: перевірте налаштування ПДВ. |
| Xero | ✓ | ✓ | ✓ | загальний CSV | |
| Zoho Books | ✓ | ✓ | ✓ | загальний CSV | |
| Великі компанії та мережі | |||||
| Exact Globe+ | ✓ | ✓ | – | Exact Online (XML) | Той самий XML, що й Exact Online; попросіть перевірити перший імпорт. |
| Microsoft Dynamics 365 Business Central | ✓ | ✓ | ✓ | – | |
| Odoo | ✓ | ✓ | ✓ | Odoo (CSV) | |
| Oracle NetSuite | ✓ | ✓ | за запитом | загальний CSV | |
| SAP Business One | ✓ | ✓ | ✓ | SAP Business One (ZIP) | |
| Unit4 ERPx | ✓ | ✓ | – | загальний CSV | |
| Платформи та агрегатори | |||||
| Apicbase | ✓ | ✓ | за запитом | – | Продажі за чеками для складу й food cost: інтеграція в Налаштування → Рецептури (не як бухгалтерська програма). |
| Caseware | ✓ | ✓ | – | XML Auditfile Financieel (XAF 4.0) | |
| Combidesk | ✓ | – | за запитом | – | Combidesk сам створює й обслуговує підключення (зокрема до Exact, Moneybird, SnelStart і Twinfield); за запитом як партнер. |
| Dext | ✓ | ✓ | – | Денний звіт (HTML, для PDF або e-mail) | Надішліть денний звіт (PDF) на свою адресу Dext. |
| Jamix | ✓ | ✓ | за запитом | – | Продажі для складу й собівартості страв (food cost) через інтерфейс JAPI від Jamix; індивідуальне рішення за запитом у Jamix. |
| Omniboost | ✓ | ✓ | за запитом | – | Через партнерську програму Omniboost підключається далі до багатьох бухгалтерських і готельних систем. |
| Storecove (Peppol) | ✓ | ✓ | за запитом | UBL 2.1 / Peppol (XML) | |
| TriFact365 | ✓ | – | – | UBL 2.1 / Peppol (XML), Денний звіт (HTML, для PDF або e-mail) | |
| Будь-яка інша програма | ✓ | ✓ | – | загальний CSV, UBL або XAF (NL) |
Попросіть бухгалтера перевірити перший імпорт. Формат описано в packages/shared/src/journaalexport.ts (з тестами).
Налаштування → Бухгалтерія (право Налаштовувати заклад, оплату й принтери): код журналу (типово MEM) і рахунок головної книги для кожної частини. Порожньо = рахунок-приклад (NL: 8000/8010/8020 виручка, 1500/1510 ПДВ, 1000 каса, 1100 картка; BE: 7000xx виручка, 451000 ПДВ, 570000 каса). Нехай бухгалтер укаже справжні рахунки.
Підключення до бухгалтерської програми
Прямі підключення до Acumulus, AFAS Profit, Microsoft Dynamics 365 Business Central, Exact Online, Horus, Moneybird, Odoo, QuickBooks Online, SAP Business One, Silvasoft, SnelStart, Twinfield, Xero, Yuki і Zoho Books. Після кожного дня каса проводить той самий журнал, що й в експорті вище (виручка та ПДВ за ставками, способи оплати, чайові, округлення, шухляда й касова різниця) як меморіальний запис у вибраній програмі, з журналом і рахунками головної книги з Налаштування → Бухгалтерія. Завжди увімкнено щонайбільше одну програму.
- Список поділено за сегментами (малий бізнес і самозайняті, міжнародні, великі компанії та мережі), і в ньому показано лише програми, які працюють у країні закладу; сервер відхиляє програму з іншої країни (400) і не проводить через неї (409). Одразу під ним адміністратор отримує саме поля цієї програми; підключення та список проведених днів містяться під рахунками головної книги, а під ними — огляд усіх програм для цієї країни. Якщо під час оновлення було увімкнено дві (у старішій версії це було можливо), Exact Online залишається увімкненим, а іншу програму буде вимкнено.
| Програма | Країна | Для підключення | Що проводить каса |
|---|---|---|---|
| Acumulus | NL | код договору, користувач і пароль API-користувача | за кожен день оплачений рахунок-фактура на продаж з одним рядком на кожну ставку ПДВ; помилки Acumulus надсилає на ACUMULUS_FOUTMAIL |
| AFAS Profit | NL | середовище, токен, адміністрація | меморіальний запис (FiEntries) |
| Business Central | NL, BE | tenant, середовище, компанія, ID клієнта й секрет застосунку Microsoft Entra (API.ReadWrite.All) | рядки в загальному журналі з кодом із поля Журнал |
| Exact Online | NL, BE | вхід (OAuth, власний застосунок: див. Exact Online нижче; Бельгія: start.exactonline.be) | меморіальний запис у журналі (напр. 90) |
| Horus | BE | вхід (OAuth, застосунок нижче), за бажанням досьє | різна операція |
| Moneybird | NL | API-токен, за бажанням адміністрація | меморіальний запис (general journal document) |
| Odoo | NL, BE | адреса, база даних, користувач, API-ключ | журнальний запис у журналі з коротким кодом (напр. MISC) |
| QuickBooks Online | NL, BE | вхід (OAuth, застосунок нижче; QUICKBOOKS_OMGEVING) | journal entry; рахунки за номером |
| SAP Business One | NL, BE | адреса Service Layer, база даних, користувач, пароль | журнальний запис (JournalEntries) |
| Silvasoft | NL, BE | користувач і API-ключ | проводка продажу на контрагента Kassaverkopen, один рядок на кожну ставку ПДВ (способи оплати, чайові й касова різниця не передаються) |
| SnelStart | NL | ключ підключення й ключ підписки | меморіальний запис |
| Twinfield | NL | вхід (OAuth, застосунок нижче), за бажанням офіс | транзакція журналу |
| Xero | NL, BE | вхід (OAuth, застосунок нижче), за бажанням організація | manual journal; рахунки за кодом |
| Yuki | NL, BE | API-ключ, за бажанням адміністрація | меморіальний запис (GeneralJournal) |
| Zoho Books | NL, BE | вхід (OAuth, застосунок нижче; типово європейський центр обробки даних), за бажанням організація | журнальний запис; рахунки за кодом |
- OAuth (Horus, QuickBooks, Twinfield, Xero, Zoho): один раз зареєструйте застосунок у програмі.
- Для деяких програм поля API неможливо повністю підтвердити за публічною документацією (зокрема Horus, Zoho Books, знак у Business Central і структура в SAP Business One): завжди просіть бухгалтера перевірити першу проводку.
- Exact Online: проводить журнал як меморіальний запис у вибраній адміністрації.
- Вибір у Налаштування → Бухгалтерія → Бухгалтерська програма → Exact Online (за замовчуванням Вимк.). Бельгія: каса автоматично використовує
start.exactonline.be. - Налаштування → Бухгалтерія → Exact Online: Підключитися до Exact Online відкриває вхід в Exact; після цього видно, до якої адміністрації підключена каса. У полі Журнал вкажіть код меморіального журналу в Exact (напр.
90) і переконайтеся, що рахунки головної книги існують в Exact. - Коли: одразу після Закрити день і далі щогодини, за всі минулі дні (до вчора включно) починаючи з Проводити з (типово день підключення; попередні дні в бухгалтера вже є). Кожен день один раз; дні без виручки пропускаються. Провести зараз можна будь-коли.
- Помилки (рахунку немає в Exact, день не збалансований, немає інтернету) показані з причиною біля цього дня; каса спробує пізніше знову, а наступні дні чекають, доки це не вдасться (так порядок залишається правильним). У журналі: "exact_geboekt".
- ПДВ проводиться на рахунки ПДВ (без коду ПДВ, як і в експорті). Попросіть бухгалтера перевірити перші проводки.
- Exact: підключення працює, поки каса ним користується (кожні 10 хвилин новий токен, щоразу новий refresh token). Якщо його відкликано або давно не використовували, каса попросить Підключити знову. Відв'язати видаляє токени; те, що вже проведено, залишається.
- Вибір у Налаштування → Бухгалтерія → Бухгалтерська програма → Exact Online (за замовчуванням Вимк.). Бельгія: каса автоматично використовує
- AFAS Profit: номер середовища (напр.
12345; робоче, тестове або приймальне), токен app-connector з UpdateConnector FiEntries і номер адміністрації (типово 1). Журнал = код меморіального журналу в AFAS (напр.90). - Журнал = номер або назва меморіального журналу; якщо меморіальний журнал лише один, каса бере його. Рахунки головної книги мають бути номерами.
- Twinfield: вхід через OAuth. Без цього застосунку каса не може підключитися. Каса шукає кластер і адміністрацію (порожньо = перша); журнал = код меморіального журналу (напр.
MEMO). Проводить остаточно (destiny="final"). - Yuki: API-ключ адміністрації (Yuki → Налаштування → Вебсервіси); порожня адміністрація = перша для цього ключа. Проводить меморіальний запис (GeneralJournal); Yuki не використовує код журналу.
- Коли: одразу після Закрити день і щогодини, за всі минулі дні починаючи з Проводити з (типово день підключення; для іншої програми знову з цього дня). Кожен день один раз на програму; дні без виручки пропускаються; у разі помилки причина вказана біля цього дня, а наступні дні чекають. Провести зараз можна завжди. У журналі подій: "boekhoudpakket_geboekt".
- Ключі й токени ніколи не показуються на екрані (залиште порожнім під час повторного підключення = зберегти). У копії каси на порталі проводки не виконуються.
Аудиторський файл каси (XAA)
Для нідерландських закладів у Звіт → Виручка за період поруч з експортом до бухгалтерії є кнопка Аудиторський файл каси (XAA): XML Auditfile Afrekensystemen 3.2 Податкової служби Нідерландів (Belastingdienst) і XML Platform (SRA) за вибраний період (щонайбільше трохи більше року; право Виручка за період). Саме цей файл Belastingdienst рекомендує для надання даних каси під час перевірки або бухгалтерові; правила наведено в Handreiking voor een betrouwbaar afrekensysteem (Посібник із надійної касової системи) (docs/xaa).
У файлі (auditfile_kassa_<van>_tm_<tot>.xml, схема docs/xaa/XmlAuditfileAfrekensystemen3.2.xsd):
- основні дані: заклад (назва, номер платника ПДВ, адреса), коди ПДВ, усі працівники (з роллю та датою створення; плюс
SYSTEEMдля того, що каса робить сама, як-от вебмагазин і підключення) і всі товари з їхньою групою; - події: усе з журналу за період (вхід і вихід, відкриття грошової шухляди, закриття дня, зміна налаштувань і цін, сторно, знижка, повернення, копія чека, відмітки приходу й виходу ...) і відкриття касового дня з розмінною сумою, кожна з кодом Belastingdienst (18001 вхід, 18003 шухляда, 18006 зміна встановлення, 18008 Z-звіт, інше 18999);
- касові транзакції: кожен чек (продаж, повернення та проформа, з номером чека, працівником і фіскальним статусом, якщо він не в порядку) з усіма позиціями (товар, група, кількість, ціна, ПДВ; також знижки, подарункові сертифікати, заголовки меню та позиції, скасовані до оплати, — із сумою 0), ПДВ за ставками, округлення, оплати за способом оплати (готівка, картка, подарунковий сертифікат, онлайн; чайові окремо) і внесення/вилучення грошей із грошової шухляди.
Суми додатні з позначкою C (продаж, надходження) або D (повернення, виплата); час — нідерландський із зсувом. Усі ключі — це id з бази даних без дефісів, тож їх можна знайти в касі.
Підписання (розділ 6 специфікації): якщо Optimum POS налаштував сертифікат, аудиторський файл надходить підписаним у конверті (XML Signature), а файл називається …_ondertekend.xml; інакше це окремий аудиторський файл, і каса повідомляє про це під час завантаження.
Оплата за рахунком
Бізнес-клієнти (компанія, яка щотижня замовляє обід, готель, клуб) купують за рахунком і платять пізніше за рахунком-фактурою. Вмикається в Налаштування → Рахунки → Оплата за рахунком (лише з увімкненими Рахунками; за замовчуванням вимкнено).
- Клієнти: у розділі Звіт → За рахунком ви додаєте бізнес-клієнтів із даними для рахунку (назва, адреса, номер платника ПДВ, номер KvK / номер підприємства, Peppol-ID, e-mail), за бажання ліміт (скільки максимум може бути несплачено) і власний термін оплати (інакше як у налаштуваннях рахунків), а також чи надсилати рахунок одразу.
- Розрахунок: спосіб оплати За рахунком, виберіть клієнта (видно, скільки вже несплачено, і ліміт). Чек — звичайний продаж: виручка й ПДВ за цей день, у Бельгії як завжди через «чорну скриньку», на чеку «За рахунком». Каса одразу створює рахунок (UBL/Peppol і для друку) на суму, що залишилася, з датою оплати й надсилає його, як налаштовано для рахунків (e-mail, Peppol через Billit/Storecove/Banqup або власна адреса). «За рахунком» — одна сума на залишок рахунку (частину можна спершу сплатити інакше), без чайових; подарункову картку не можна продати за рахунком. Якщо ліміт перевищено, каса відмовляє.
- Оплата: клієнт платить у закладі готівкою, карткою або подарунковою карткою (Звіт → За рахунком → Оплату отримано; можна частково). Це не новий продаж і не новий чек: готівка потрапляє в гроші в шухляді (шухляда відкривається), усе відображається в X- і Z-звітах у розділі Отримано за рахунками. Коли все сплачено, рахунок отримує статус «сплачено». Онлайн-оплата сюди не входить.
- Переказ: якщо в Дані в рахунку вказано IBAN, він друкується в рахунку (і в UBL) з приміткою "Сплатити можна й у закладі". Якщо клієнт зробив переказ, зафіксуйте це через Оплату отримано → Переказано (банк): не в шухляду, але в X- і Z-звітах в «Отримано за рахунками». Без IBAN вказано "Оплата в закладі". У Бельгії в рахунку (і в UBL) вказується структуроване повідомлення (+++123/4567/89012+++, з номера рахунку), щоб банк передавав його разом із платежем.
- Банк: проведення переказів без ручного введення, див. нижче.
- Баланс (гроші наперед): у Звіт → За рахунком → Поповнити баланс ви вносите гроші наперед на рахунок клієнта, готівкою (шухляда відкривається) або карткою, напр. за серію обідів. Під час наступного продажу за рахунком баланс спершу віднімається від рахунку-фактури; якщо у рахунку-фактурі більше, решта лишається відкритою. Баланс видно в клієнта (баланс € ...), у X і Z у розділі Отримано за рахунками (Баланс внесено, З балансу клієнта) і в бухгалтерському журналі як отримане наперед (типово 1640 / 460000). У Бельгії внесення йде як внесення грошей (signMoneyInOut) до чорної скриньки (UC4100).
- Зведений рахунок-фактура (для кожного клієнта, типово вимк.): з Один рахунок-фактура на всі чеки клієнт при продажу за рахунком ще не отримує рахунок-фактуру. Чек залишається відкритим у клієнта (Чеки, ще не включені до рахунку-фактури, враховується в ліміті) і вже може бути оплачений. З Створити зведений рахунок-фактуру (напр., наприкінці місяця) усі відкриті чеки потрапляють до одного рахунку-фактури, кожен рядок із номером чека перед ним; уже оплачене позначено як оплачене. Повернення на рахунок потрапляє туди від'ємними рядками. Вимк. = як завжди, рахунок-фактура на кожен продаж. У Бельгії один рахунок-фактура з усіма чеками в чорній скриньці (signInvoice, UC4121 і UC4122).
- Бельгія: якщо клієнт пізніше оплачує продаж за рахунком (готівкою, карткою, подарунковою карткою чи переказом), каса повідомляє це як коригування оплати в чеку: з кредиту клієнта на справжній спосіб оплати (signPaymentCorrection, UC4118).
- Огляд: несплачені рахунки з датою оплати (прострочені — червоним), для кожного клієнта — рахунки й платежі. У Налаштування → Рахунки — стовпець Не сплачено.
- Бухгалтерія: у журналі продаж за рахунком іде на Дебіторську заборгованість (за замовчуванням 1300 у Нідерландах, 400000 у Бельгії; налаштовується в Налаштування → Бухгалтерія), а оплата — з каси, картки, подарункової картки або банку (за замовчуванням 1050 / 550000) на дебіторську заборгованість. XAA: спосіб оплати «За рахунком».
- Право: Розрахунок за рахунком і прийом платежів за рахунком (за замовчуванням офіціант — ні, менеджер — так). Усе записується в журнал.
- Вимкнено: клієнти, рахунки й платежі зберігаються (також у резервній копії); перемикач входить до експорту конфігурації, клієнти — ні (вони належать до одного закладу).
- В інтернет-магазині (необов'язково, стандартно вимкнено): з Також в інтернет-магазині бізнес-клієнти замовляють онлайн за рахунком (самовивіз і доставка). У Звіт → За рахунком ви створюєте для кожного клієнта код клієнта і передаєте його клієнтові; каса зберігає лише зашифровану версію, тож ви бачите його лише один раз. Новий код клієнта = старий більше не працює; Видалити код клієнта = цей клієнт більше не може замовляти онлайн за рахунком. Інтернет-магазин дотримується ліміту. У вікні Інтернет-магазин таке замовлення завершують кнопкою Завершити (за рахунком): розрахунок за рахунком, одразу з рахунком-фактурою.
Банк: провести перекази
У Звіт → За рахунком → Банк каса для кожного надходження шукає відповідний рахунок з оплатою за рахунком:
- Завантажити банківську виписку: файл з інтернет-банку у форматі CAMT.053 (XML, усі банки Нідерландів і Бельгії), MT940 (.sta/.940) або CODA (.cod, Бельгія). Лише надходження; повторне завантаження виписки не створює дублікатів.
- Пошук: за номером рахунку або структурованим повідомленням у призначенні платежу (точно), інакше за сумою (та ім'ям): тоді це пропозиція. Кожен рядок можна провести (за пропозицією або до іншого рахунку), ігнорувати або пізніше все ж провести. Провести = Переказано (банк) на дату банківської операції, ніколи не більше відкритої суми; не в шухляду.
- Підключення до банку (PSD2, за бажанням): у Налаштування → Рахунки → Підключення до банку каса щогодини сама отримує надходження через Enable Banking (банки Нідерландів, Бельгії та решти Європи). Виберіть банк і увійдіть у нього (бізнес-рахунок); дозвіл діє 180 днів, потім підключіть знову. Відключення відкликає дозвіл; надходження зберігаються. Без договору з Enable Banking це працює лише для ваших власних рахунків (restricted production).
- Автоматичне проведення (за замовчуванням вимк.): надходження, яке точно належить до рахунку, каса проводить одразу (також під час завантаження виписки).
- Право: проведення — з Розрахунок за рахунком і прийом платежів за рахунком; налаштування підключення до банку — з Налаштовувати заклад, оплату й принтери. Завантаження, підключення, отримання та проведення записуються в журнал.
- Вимк.: якщо оплату за рахунком вимкнено, каса нічого не отримує; надходження й підключення зберігаються (також у резервній копії).
Відео з камер у касі
Усі камери закладу на одній сторінці, без окремого екрана чи застосунку. Увімкніть у Налаштування → Заклад → Екрани та керування → Відео з камер у касі (типово вимк.). Тоді у верхній панелі з'явиться кнопка Камери для тих, хто має право Перегляд камер (типово менеджер і адміністратор; у Налаштування → Права можна ввімкнути й для офіціантів). Усі камери показано поруч; натисніть камеру, щоб збільшити. Після вимкнення системи відеоспостереження зберігаються.
Також на окремому екрані: На окремому екрані відкриває http://<kassaserver>:3000/camera (напр. монітор за баром), а На планшеті або телефоні показує QR-код: працівник сканує його власним планшетом або телефоном і входить зі своїм PIN-кодом (і там лише з правом Перегляд камер). На вузькому екрані камери розташовані одна під одною. Див. «Другий екран на планшеті або телефоні».
Адміністратор додає системи відеоспостереження через + Система відеоспостереження, перевіряє їх кнопкою Перевірити і для кожної камери задає назву та чи показувати її на сторінці:
- Hikvision, Dahua, Axis і Reolink: камера або реєстратор (NVR) у мережі: IP-адреса (за потреби з
:poort), користувач (бажано лише з переглядом) і канали, напр.1-8або1,3,5. Вхід через Basic або Digest; https із власним сертифікатом допускається. - Synology Surveillance Station: адреса NAS (типово порт 5000, з https 5001) і користувач; Отримати камери отримує камери з їхніми назвами.
- UniFi Protect: адреса консолі (https) і локальний обліковий запис; Отримати камери.
- ONVIF: будь-яка камера або реєстратор з ONVIF (напр. Hanwha, Bosch, Uniview, Annke); Отримати камери знаходить адресу знімка для кожного відеоджерела.
- Власна вебадреса: знімок (JPEG), потік MJPEG або адреса
rtsp://. - Вебсторінка системи відеоспостереження (напр. Frigate, Blue Iris або go2rtc): відкривається в касі за кнопкою «Камери» (або в окремому вікні).
Без ffmpeg: знімок.
Конфіденційність: каса отримує зображення від системи відеоспостереження і лише передає їх далі; нічого не зберігається (ні записів, ні кешу). Користувачі й паролі залишаються на сервері й ніколи не показуються на екрані чи в журналі. У журналі видно, хто дивився камери. Самі зображення сторінка запитує з ключем (діє 12 год, поки працівник у системі), бо зображення в браузері не може передати токен. Експорт конфігурації містить лише увімк./вимк.
Журнал чутливих дій
Звіт → Журнал (менеджер або адміністратор) показує, хто що зробив і коли.
- Виберіть період (сьогодні, вчора, цей тиждень, цей/минулий місяць або власний від–до), що саме показувати (типово Чутливі дії, або, напр., лише сторно та знижки, або Усі) і, за бажанням, одного працівника.
- Угорі — за працівниками: кількість і сума сторно (скасовано після замовлення), знижок і повернень, а також скільки разів шухляду відкривали без продажу, гроші з шухляди, копії чеків, pro forma та ручні оплати карткою. Натисніть ім’я, щоб бачити лише цього працівника. Також кількість введень неправильного PIN-коду.
- Нижче — кожна дія з часом, хто, що і зрозумілим описом (напр. «2x Cola скасовано після замовлення € 5,60 · столик 4 · причина: клієнт передумав»).
- Завантажити (CSV) для Excel.
Що записується: сторно, знижки (та їх скасування), повернення, копії чеків, проформи, ручна оплата карткою, відкриття шухляди, внесення/вилучення грошей, розмінна сума, закриття дня, перенесення позицій або столів, закриття порожніх замовлень, зміна ціни/назви/ПДВ товарів, нові або видалені товари, зміни персоналу та налаштувань, коригування робочого часу, вхід і вихід, неправильні PIN-коди, а також відмітки приходу й виходу. З оплатою в рахунок також: клієнти, продажі та платежі в рахунок, завантаження банківських виписок, банківська інтеграція та отримання даних із банку. Зі сповіщенням про довгий час виконання: запізнені замовлення та надіслані вибачення. З Mailchimp або Klaviyo: підключення, вибір списку, відв'язування та відписки звідти. З керуванням музикою: увімк./вимк., а також додавання, зміна та видалення джерел музики. З відео з камер: хто дивився камери (не частіше ніж раз на пів години на працівника), увімк./вимк. і системи відеоспостереження. Із сигналізацією: кожен сигнал, його обробка, а також увімкнення й вимкнення.
Сигналізація: шахрайство та відхилення
Налаштування → Сигналізація. Дві частини, кожна вмикається окремо й типово вимкнена; вимкнення зберігає всі сигнали та налаштування. Налаштовувати може той, хто має право Налаштування сигналізації (типово менеджер і адміністратор); бачити й обробляти сигнали може той, хто може бачити журнал. Каса перевіряє кожні 5 хвилин (і кнопкою Перевірити зараз); не на тіньовій касі.
Виявлення шахрайства та крадіжок (на працівника, за робочий день від 05:00), кожне правило окремо вмикається з власним порогом:
- сторно після pro forma: видалено після того, як гість уже бачив рахунок;
- сторно, знижки та повернення: від певної кількості разів або разом від певної суми (0 = не за сумою);
- шухляда відкрита без продажу (кнопка «Відкрити шухляду»);
- чек довго відкритий: замовлено, але через задану кількість хвилин ще не оплачено.
Сповіщення про відхилення у порівнянні з тим самим днем тижня й тим самим часом за останні тижні (типово 4; дні без обороту не враховуються, щонайменше два дні для порівняння):
- оборот дотепер нижчий (та/або вищий) за звичайний більше ніж на допуск, лише від звичайного обороту заданої суми;
- час кухні (від надсилання чека на кухню до готовності на кухонному екрані) за останню годину понад допуск або понад фіксовану кількість хвилин;
- сторно сьогодні понад допуск, лише від мінімальної кількості.
Кожен сигнал надходить один раз (на правило, працівника й день; час кухні не частіше разу на годину) і надсилається:
- у касу: кнопка Сигнали (n) у верхній панелі із сигналами за останній день, тиждень або 30 днів; Вирішено з нотаткою. Інші екрани отримують лише сповіщення без імен;
- push-сповіщенням через ntfy (безкоштовний застосунок; ntfy.sh або власний сервер, topic і за потреби токен), Pushover (API-токен застосунку й user key) або Telegram (токен бота й chat-id);
Для кожного каналу є кнопка Тестове повідомлення. Токени й ключі залишаються на касі (екрани бачать лише, чи їх заповнено). Сигнал — не доказ: перегляньте чек і журнал та обговоріть це з працівником.
Чеки: копія та повернення (кредитний чек)
Кнопка Чеки у верхній панелі:
- Список чеків з моменту останнього закриття дня або за останні 7 днів; старіший чек шукайте за його номером.
- Друкувати копію: той самий чек з позначкою «КОПІЯ» (у Бельгії з FDM-блоком оригінального чека). Записується в журнал.
- Повернення / кредитний чек (менеджер або адміністратор): для кожного рядка виберіть, скільки повертається, причину і як повертаються гроші (готівка, картка, подарункова картка, інше). Старий чек залишається незмінним: створюється новий кредитний чек із власним номером у журналі (тип квитка
retour, від’ємні суми, у Бельгії як NR до FDM). Повернути більше, ніж продано, неможливо. У X- та Z-звіті повернення рахується як мінус-виручка. - Для CCV або іншого термінала: спершу поверніть гроші на самому терміналі, а потім позначте «Уже повернено на самому терміналі».
- Готівка з округленням до 5 центів: сума до повернення також округлюється.
- Назад на рахунок клієнта (продаж за рахунком): якщо чек був за рахунком бізнес-клієнта, виберіть За рахунком. Сума віднімається від відкритого рахунку-фактури, і каса одразу створює кредит-ноту (в UBL — CreditNote, тип 381, з посиланням на рахунок-фактуру; у Бельгії підписано signInvoice, UC4122). Більше, ніж відкрито в рахунку-фактурі, на рахунок повернути не можна; решту поверніть готівкою або карткою. Кредит-нота є в Рахунки, і ви надсилаєте її як рахунок-фактуру.
Грошова шухляда з датчиком і шухляда для кожного працівника
За замовчуванням вимкнено. Налаштовується в Налаштування → Оплата → Грошова шухляда.
- Датчик: багато шухляд через чековий принтер повідомляють, чи вони відкриті або закриті (ESC/POS
DLE EOT 1, контакт 3 порту DK). Це можливо лише з мережевим чековим принтером. Натисніть Виміряти: шухляда закрита і Виміряти: шухляда відкрита; якщо є різниця, застосуйте правильне значення (високий = відкрита або низький = відкрита). Немає різниці = у цієї шухляди (або кабелю) немає датчика. Немає відповіді від принтера = невідомо, ніколи не "закрита".- Не проводити розрахунок, доки шухляда відкрита: сервер каси тоді відхиляє новий розрахунок із повідомленням "Грошова шухляда ще відкрита".
- Власна шухляда для кожного працівника: чековий принтер може відкривати дві шухляди (шухляда 1 і шухляда 2). Виберіть шухляду для кожного працівника; під час розрахунку готівкою, внесення/вилучення грошей і Відкрити шухляду каса відкриває шухляду того, хто ввійшов у систему. У Звіт → Каса тоді з'являється Шухляда за працівниками: розмінна сума за працівниками, готівка (без автомата для готівки), очікується, Підрахувати і різниця для кожної особи (у журналі як
ladetelling). Звичайне закриття дня залишається без змін. - Тест шухляди 1 і Тест шухляди 2 відкривають шухляду для перевірки.
- Відкрити шухляду без продажу (із причиною) завжди й так записується в журнал і в аудиторський файл каси (XAA), як того вимагає Податкова служба (Belastingdienst) (винятки, як-от "no sale").
Частина 3 · Адміністратор
Початок роботи
Встановлення. HorecaPOS встановлюють інсталятором для вашої системи, який є на сторінці завантажень OptimumPOS: Android (застосунок), Windows (інсталятор), macOS (інсталятор для Mac з Apple Silicon та Intel), Linux (графічний інсталятор або пакет .deb чи .rpm), Raspberry Pi (графічний інсталятор або .deb для Raspberry Pi 3, 4 або 5 з 64-бітною Raspberry Pi OS) і Chromebook (Android-застосунок із Google Play). Оберіть для всіх користувачів для касового сервера, до якого підключаються планшети та екран кухні, або лише для мене — лише для каси на цьому пристрої. Інсталятор встановлює все потрібне, зокрема базу даних, і щоночі робить резервну копію. Щоб оновити, встановіть нову версію: ваші дані залишаться. Інсталятор запускається мовою вашого комп’ютера (інакше англійською); у Windows і Linux на першому екрані можна вибрати іншу мову. Після цього каса одразу запускається цією мовою. Пакети .deb і .rpm та застосунок для Android використовують мову системи, інакше нідерландську.
Адміністратор налаштовує касу в Налаштування. Там є вкладки Заклад, Персонал, Права, Робочий час, Товари, Happy hour, Запаси, Плани залу, Оплата, Принтери, Бухгалтерія, Резервні копії, Імпорт/експорт і База даних. Які вкладки бачить менеджер, залежить від прав.
База даних. У розділі Налаштування → База даних (лише адміністратор) ви обираєте між MySQL / MariaDB, вбудованою базою даних і PostgreSQL; під час перемикання переносяться всі дані (див. База даних). Якщо Optimum POS під час встановлення вже задав сталу адресу, діє ця адреса і полів для введення немає. Інакше ви самі заповнюєте Сервер, Порт, База даних, Користувач і Пароль. Каса сама зберігає їх, потім знову показує заповненими, і їх завжди можна змінити кнопкою Змінити дані MySQL/MariaDB або Змінити дані PostgreSQL. Залишити пароль порожнім означає: зберегти попередній пароль (для того самого користувача). Інсталятор і оновлення нічого не змінюють у DATABASE_URL чи у вибраній базі даних.
Бухгалтерія
Усе для бухгалтерії міститься в Налаштування → Бухгалтерія. Разом із бухгалтером заповніть журнал і рахунки головної книги. Якщо ви хочете, щоб каса щодня сама проводила денну виручку, виберіть угорі в полі Бухгалтерська програма свою програму, зокрема й Exact Online: ви бачите лише програми, які працюють у країні вашого закладу. Одразу під ним введіть дані цієї програми й підключіться. Для програм, у які потрібно входити (як-от Exact Online, Twinfield або Xero), спочатку введіть застосунок: ID клієнта й секрет клієнта. Якщо Optimum POS під час встановлення жорстко задав програму або певне значення, цього вибору чи поля ви не побачите. Там також є огляд усіх програм: які можна підключити напряму, а які отримують файл. Файл створюється в Звіт → Виручка за період → Експорт до бухгалтерії: виберіть формат своєї програми або UBL (Peppol), XAF чи денний звіт. Завжди просіть бухгалтера перевірити першу проводку або імпорт.
Для нідерландського закладу там також є Аудиторський файл каси (XAA): XML Auditfile Afrekensystemen Податкової служби Нідерландів (Belastingdienst) з усіма чеками, позиціями, оплатами та подіями каси за вибраний період. Його ви передаєте своєму бухгалтерові або під час перевірки — до Belastingdienst.
Зарплата і планування
Якщо ваш персонал відмічає прихід і вихід, то в Налаштування → Робочий час унизу є Зарплата і планування у двох блоках. У блоці Розрахунок зарплати ви вибираєте свою зарплатну програму або (у Бельгії) свій соціальний секретаріат і вводите для кожного працівника його табельний номер у цій програмі. Потім ви створюєте за період файл із відпрацьованими годинами й виручкою за працівником і імпортуєте його у свою зарплатну програму. У блоці Планування персоналу ви вибираєте систему планування: у Deputy, Dyflexis і Shiftbase виручка надходить щогодини автоматично, для інших ви створюєте файл виручки. Так у своєму плануванні ви бачите витрати на персонал поруч із виручкою. Якщо ви працюєте без відмітки приходу/виходу, виручку все одно можна надсилати у планування: тоді це внизу в Налаштування → Бухгалтерія, у розділі Виручка у ваше планування. Якщо Optimum POS під час встановлення щось зафіксував, ви не бачите цього вибору або поля.
Резервні копії
Каса щоночі автоматично створює резервну копію, а також завжди перед оновленням. У Налаштування → Резервні копії видно всі резервні копії (коли, ким чи автоматично, розмір), а кнопкою Створити резервну копію можна зробити її самостійно. Якщо остання резервна копія старша за два дні, з’являється червоне попередження: тоді зверніться до Optimum POS.
Відновлення виконується кнопкою Відновити біля резервної копії. Усе, що відбулося після цієї копії, буде втрачено. Це треба підтвердити позначкою й повторно ввести свій PIN-код. Каса спершу створює страхувальну копію поточного стану, а потім виконує вихід для всіх. У Бельгії це неможливо зробити з каси (лічильники «чорної скриньки» йдуть далі); там це робить Optimum POS.
База даних
У розділі Налаштування → База даних (лише адміністратор) видно, де каса зберігає свої дані. Угорі показано поточну базу даних: програму, версію, таблиці, рядки та адресу або папку. Для персоналу й планшетів каса працює однаково з будь-якою базою. У Windows, macOS, Linux і на Raspberry Pi ви обираєте з трьох баз даних:
- MySQL / MariaDB: окрема програма баз даних (MySQL 8.0 або новіша, MariaDB 10.6 або новіша), наприклад на вже наявному сервері чи NAS. Тоді всі дані зберігаються у звичайних таблицях MySQL або MariaDB і доступні для читання вашій програмі для звітів або BI. Каса рахує точно так само, як із PostgreSQL.
- Вбудована (PGlite): міститься в самій касі, нічого встановлювати не треба. Найкращий вибір для більшості закладів і база даних на Android та Chromebook.
- PostgreSQL: окрема програма баз даних на комп'ютері каси або деінде в мережі.
Коли MySQL або MariaDB? Якщо заклад уже має сервер MySQL або MariaDB, якщо з ним працює ваш ІТ-адміністратор або якщо ви хочете читати дані у власних звітах, Excel чи BI-програмі. Якщо вагаєтеся, оберіть вбудовану: вона працює одразу.
Що потрібно для MySQL або MariaDB?
- MySQL 8.0 або новіша чи MariaDB 10.6 або новіша, доступна з сервера каси.
- Окрема база даних для каси (або для кас однієї мережі), з кодуванням utf8mb4.
- Користувач бази даних, якому дозволено створювати, змінювати, перейменовувати й видаляти таблиці в цій базі (CREATE, ALTER, DROP, INDEX, SELECT, INSERT, UPDATE, DELETE), наприклад так:
CREATE DATABASE horecapos CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'horecapos'@'localhost' IDENTIFIED BY 'wachtwoord';
GRANT ALL PRIVILEGES ON horecapos.* TO 'horecapos'@'localhost';
Якщо MySQL або MariaDB працює на іншому комп'ютері, укажіть в останніх двох рядках IP-адресу сервера каси замість localhost.
Перенесення до MySQL / MariaDB:
- У розділі Адреса MySQL/MariaDB заповніть поля: Сервер (типово localhost), Порт (типово 3306), База даних (типово horecapos), Користувач і Пароль; для MariaDB так само. Якщо адресу вже задано, поля вже заповнені; якщо залишити пароль порожнім, лишиться збережений пароль (для того самого користувача). Каса сама зберігає адресу; якщо Optimum POS уже задав сталу адресу, діє ця адреса і полів немає. Якщо каса вже працює на MySQL/MariaDB, пізніше дані змінюються кнопкою Змінити дані MySQL/MariaDB. Шифроване з'єднання налаштує для вас Optimum POS.
- Торкніться Перевірити з'єднання: ви побачите програму й версію або причину помилки.
- Торкніться Перенести до MySQL/MariaDB, позначте, що розумієте наслідки, і введіть свій PIN-код.
Перенесення працює в будь-якому напрямку між трьома базами даних, і всі дані переносяться:
- Каса ненадовго не приймає запитів (зазвичай менше хвилини); потім планшети самі продовжують роботу.
- Спершу каса робить резервну копію поточного стану (у розділі Налаштування → Резервні копії).
- Усе переноситься до нової бази, і каса по кожній таблиці перераховує, чи все на місці точно.
- Лише коли все збігається, каса продовжує роботу з новою базою. Працівники, що увійшли, залишаються в системі.
Якщо щось не вдається, нічого не змінюється, і каса далі працює зі старою базою. Стара база залишається, тож повернутися можна завжди. Дані каси, що вже були в новій базі MySQL/MariaDB або PostgreSQL, замінюються. У Бельгії це теж можливо: лічильники «чорної скриньки» переносяться точно.
Резервне копіювання та відновлення працюють однаково з усіма трьома базами (Налаштування → Резервні копії). Резервну копію однієї бази можна відновити в будь-якій іншій, зокрема копію з PostgreSQL у MySQL або MariaDB.
Що зберігається в MySQL або MariaDB? Кожна таблиця каси з тією самою назвою та стовпцями (час в UTC). Кожна таблиця отримує додатковий ключовий стовпець _hp_sleutel, а в допоміжних таблицях _horecapos_stand, _horecapos_kolom, _horecapos_reeks і _horecapos_wijziging (журнал змін, зберігається 14 днів) каса веде стан, типи стовпців, лічильники та зміни. Інші програми читають дані; записують лише каси.
Як це працює: каса рахує у швидкій робочій копії на сервері каси й записує кожну зміну в MySQL/MariaDB на тому самому кроці. Якщо це не вдається, зміна не виконується, і каса повідомляє про помилку; тому MySQL/MariaDB має бути доступною. Під час запуску каса зчитує все з MySQL/MariaDB.
Кілька кас в одній базі. Як і з PostgreSQL, кілька кас можуть працювати з однією базою MySQL/MariaDB, наприклад кожен заклад мережі зі своїм сервером каси. Зміни виконуються по черзі, і кожна каса спершу переймає те, що зробили інші, тож за одночасних змін нічого не втрачається. Якщо каса відновлює резервну копію або каса новішої версії оновлює базу, інші каси самі перечитують усе заново; тому оновлюйте всі каси одночасно. Каса, вимкнена довше ніж 14 днів, під час запуску перечитує все заново.
Під час встановлення ви теж обираєте базу даних: MySQL / MariaDB, вбудовану (рекомендовано) або PostgreSQL з адресою. Якщо вона недоступна, каса встановлюється з вбудованою базою; перенести можна потім тут. Під час оновлення вибір зберігається.
Підключення планшетів і екранів
- На кожному планшеті/касі відкрийте адресу касового сервера, напр.
http://192.168.1.20:3000, і додайте ярлик на головний екран (Chrome: Додати на головний екран). - Кухонний екран:
http://192.168.1.20:3000/keuken. - Екран клієнта (повернутий до клієнта, за бажанням):
http://192.168.1.20:3000/klantscherm, див. Екран клієнта. - Екрани самі знаходять касовий сервер (та сама адреса, порт 4000).
Екран клієнта
Екран на касі, повернутий до клієнта. Клієнт бачить приблизно, що замовлено, і дуже чітко — суму та спосіб оплати. На ньому немає керування: екран лише повторює те, що робить каса. Типово вимк.; увімкнути: Налаштування → Заклад → Екран клієнта. На касовому ПК з двома екранами каса вперше вмикає його сама; якщо потім його вимкнути, він залишиться вимкненим. Без екрана клієнта (вимкнено або його немає) усе працює точно як завжди: каса передає зображення у фоновому режимі, і персонал ніколи не помітить помилки чи відсутнього екрана.
Що бачить клієнт:
- Очікування (ніхто не розраховується): назва закладу й власний вітальний текст (Налаштування → Заклад; порожньо = «Ласкаво просимо»).
- Замовлення: товари з кількістю та сумою (однакові рядки разом, меню одним рядком зі складовими дрібно під ним, знижка одним рядком) і великим шрифтом — підсумок. Уже сплачене при розділеному розрахунку показано нижче. З Налаштування → Заклад → Фото товарів → на екрані клієнта біля кожного товару є маленьке фото.
- Розрахунок: спосіб оплати (Картка, Готівка, Подарункова картка), чайові й великим шрифтом До сплати. Готівка: що дає клієнт і яку решту отримує, щойно це введено на касі. Картка: «Дотримуйтесь інструкцій на платіжному терміналі».
- Дякуємо: після розрахунку на кілька секунд «Дякуємо!» зі сплаченою сумою (готівка: решта клієнту), потім знову екран очікування.
Підключення — двома способами (обидва налаштовуються на самому пристрої):
- Другий монітор на касовому ПК (Windows, Linux/Raspberry Pi, macOS): автоматично. Під час входу та після встановлення каса відкриває екран клієнта на весь екран на найменшому екрані, який не є головним (за однакового розміру — на крайньому правому); у Windows — завжди на іншому екрані, ніж каса (каса розташована на сенсорному екрані й під час запуску теж відкривається сама). Розмір і положення бере система, тож підходить будь-який формат. Без другого екрана нічого не відбувається. У Windows закритий екран клієнта повертається сам; у Linux і macOS ярлик HorecaPOS klantscherm у меню знову все виправляє. У Windows він відкривається в режимі кіоску Chrome (або Edge): на весь екран, без рядка заголовка й без панелі завдань (закрити — Alt+F4). Екран клієнта стежить за касою на тому самому ПК без коду прив'язки.
- У будь-якому браузері тривале натискання ніде не відкриває меню браузера, і не з’являється пропозиція перекласти сторінку.
- Каса закрита = екран клієнта закритий. Якщо програма каси зупиняється (Перезапуск, оновлення, каса зупинена або видалена), екран клієнта теж закривається трохи більше ніж через 10 секунд; коли каса знову працює, він повертається сам. У Windows він закривається й тоді, коли ви закриваєте лише вікно каси. У Wayland (Linux) каса не може сама закрити вікно.
- Екран клієнта випадково закрито? У Windows він за кілька секунд повертається сам, доки каса відкрита й другий екран підключений.
- Завжди лише один екран клієнта. У Windows екран клієнта працює лише в режимі кіоску на другому екрані. Екран клієнта у вікні каси (наприклад, відновлений Edge після відключення електроенергії або відкритий кнопкою в касі) за кілька секунд закривається сам; його місце тоді займає правильний екран клієнта.
- Ніхто не ввійшов = лише привітання. Якщо каса на екрані PIN-коду (зокрема після перезапуску чи виходу), екран клієнта показує лише текст привітання, ніколи — попередній рахунок.
- У Windows автоматичне відкриття можна також вимкнути прапорцем Відкривати екран клієнта автоматично ... в інсталяторі.
- У Linux каса переміщує вікно за допомогою wmctrl (входить до пакета). У Wayland (зокрема Raspberry Pi OS з labwc) це неможливо: один раз самостійно перемістіть екран клієнта на другий екран (браузер це запам'ятає) або виберіть X11 у raspi-config. У macOS Mac першого разу попросить дозвіл у розділі Універсальний доступ.
- Вручну: Налаштування → Заклад → Екран клієнта → Відкрити екран клієнта (другий монітор). У Chrome та Edge (також на Chromebook) кнопка одразу переносить вікно на екран клієнта (першого разу браузер попросить дозвіл); один клік по екрану клієнта розгортає його на весь екран. В інших браузерах: перетягніть і натисніть F11.
- Android-каса з вбудованим екраном клієнта (напр. Sunmi D2/T2) або монітор через HDMI/USB-C: теж автоматично. Щойно застосунок встановлено на касі, екран клієнта з'являється на другому екрані; підключення й відключення працюють одразу.
- Sunmi T1 mini / T2 mini з маленьким текстовим дисплеєм (2 рядки): застосунок автоматично показує там суму: Разом, До сплати, при готівці Решта, після оплати Дякуємо!, а в режимі очікування — назву закладу. Екран клієнта має бути увімкнений.
- iPad (робочий екран) із зовнішнім екраном через HDMI/USB-C або AirPlay: застосунок автоматично відкриває екран клієнта на цьому екрані (підготовлено; застосунок для iOS ще не випущено).
- Chromebook: як робочий екран у Chrome кнопка Відкрити екран клієнта (другий монітор) працює, як описано вище. В Android-застосунку екран клієнта автоматично з'являється на другому екрані, щойно ChromeOS передає цей екран Android-застосункам; якщо ні — використовуйте окремий пристрій із кодом прив'язки.
- Окремий пристрій (планшет або власний ПК поруч із касою): відкрийте
http://<kassaserver>:3000/klantscherm. У правому нижньому куті екран показує код підключення з 6 символів. Введіть його на касі в Налаштування → Заклад → Екран клієнта → Прив'язати. Відв'язати повертає екран до коду підключення. Прив’язка зберігається для кожної каси (у браузері цієї каси), тож кожна каса може мати свій екран клієнта.
Екран клієнта не запитує PIN-код (керувати там нічим) і показує лише зображення каси, до якої він прив’язаний. Зображення зберігається лише в пам’яті касового сервера; після перезапуску екран порожній до наступної зміни. Налаштування (увімк./вимк. і вітальний текст) входить до резервної копії та до Імпорт/експорт (Інші налаштування).
Електронний чек через QR (за бажанням)
Типово вимкнено. Вмикається в Налаштування → Заклад → Кухня та екран клієнта → Електронний чек (опція з'являється, коли екран клієнта збережено ввімкненим). Після розрахунку на екрані Дякуємо показується QR-код; тоді цей екран лишається 45 секунд замість кількох секунд. Гість сканує код своїм телефоном і бачить чек точно таким, як паперовий (той самий текст, на бельгійській касі — також із блоком FDM). На телефоні він може надрукувати чек, зберегти його як pdf або завантажити як текстовий файл.
- Це працює через портал керування:
https://kassa.<portaal>/__bon/<kassa>/<sleutel>. Тож каса має бути підключена до порталу; інакше QR-код не з'являється і нічого не змінюється. - Ключ випадковий, його неможливо вгадати, і він діє 30 днів. Потім каса видаляє його автоматично. Портал нічого не зберігає.
- Працює з другим монітором і з окремим екраном клієнта. Паперовий чек і чек електронною поштою працюють як завжди.
Екран клієнта в режимі очікування: слайд-шоу (за бажанням)
Типово вимкнено. Вмикається в Налаштування → Заклад → Кухня та екран клієнта → Екран клієнта в режимі очікування. Якщо на екрані клієнта немає рахунку, слайди змінюють один одного (типово кожні 8 секунд, налаштовується від 4 до 60):
- Акції: happy hour (якщо happy hour увімкнено) зі знижкою, днями та часом і товарами чи групами; ті, що діють зараз, ідуть першими, з позначкою "Зараз!".
- Рекомендовані товари (не більше 12, наприклад новинки меню) з ціною та (якщо фото товарів на екрані клієнта ввімкнено) фото. Розпроданий товар екран пропускає.
- Бонусна картка: бали за євро, винагорода та штампові картки (лише якщо картку лояльності ввімкнено).
- Власні тексти: не більше 5, кожен на окремому слайді (наприклад, "З п'ятниці новинка: наше літнє меню").
Без слайдів екран клієнта, як завжди, показує екран привітання.
Happy hour
Типово вимк. Увімкнути: Налаштування → Заклад → Використовувати happy hour; після цього з’являється вкладка Налаштування → Happy hour.
- Для кожної happy hour: назва (друкується на чеку), дні, з–до (можна через північ, напр. 23:00–01:00), знижка у % або фіксована ціна, а також для яких груп товарів і/або окремих товарів.
- У цей проміжок каса під час додавання автоматично рахує ціну happy hour (ніколи не дорожче за звичайну; при фіксованій ціні опції додаються як зазвичай). На кнопці товару стара ціна перекреслена, поруч нова ціна й HH; у замовленні та на чеку вказано назву happy hour. Те, що вже додано, зберігає свою ціну.
- Пропозиція дня: позначте Увесь день (00:00–24:00) і виберіть день (дні), напр. щовівторка свинячі реберця за фіксованою ціною.
- Сезон: позначте Лише в сезон (щороку) і виберіть дати «з» і «по» (день і місяць, напр. з 1 червня по 31 серпня; можна й через Новий рік, напр. з 1 грудня по 28 лютого). Поза сезоном happy hour не діє.
- Зміни записуються в журнал.
Періоди меню та сезони
Типово вимк. Увімкнути: Налаштування → Заклад → Періоди меню та тип замовлення → Асортимент за періодами меню та сезонами; після цього з’являється вкладка Налаштування → Періоди меню. Якщо вимкнути, усі товари знову продаються завжди, а періоди меню зберігаються.
- Для кожного періоду меню: назва (напр. Сніданок, Обід, Вечеря, Літнє меню), дні, час «з–до» (можна через північ; Увесь день = 00:00–24:00), за потреби сезон (щороку, день і місяць), а також які групи товарів і/або окремі товари до нього входять.
- Товари й групи товарів, що входять в один або кілька періодів меню, продаються лише тоді, коли триває один із цих періодів; те, що не входить у жоден період, продається завжди. Екран замовлення показує лише те, що продається зараз, і сам перемикається, коли період починається або закінчується; сервер відхиляє решту ("зараз не продається, лише в період Сніданок").
- Інтернет-магазин показує й рахує той самий асортимент (на момент замовлення).
- Інша ціна в певний день або сезон — це happy hour (пропозиція дня, див. вище).
- Меню для кожної точки: кожна каса (філія) має власні товари, періоди меню та ціни.
- Зміни записуються в журнал.
Асортимент і ціни за типом замовлення
Типово вимк. Увімкнути: Налаштування → Заклад → Періоди меню та тип замовлення → Асортимент і ціни за типом замовлення. Якщо вимкнути, скрізь знову діє звичайна ціна і все продається скрізь; введені ціни зберігаються.
- У Налаштування → Товари для кожного товару: Ціна з собою і Ціна доставки (порожньо = звичайна ціна) та Продається для (у закладі, з собою, доставка; щонайменше один варіант). Група товарів також має Продається для — для всіх товарів цієї групи.
- Для замовлення з собою або з доставкою екран замовлення показує ціну цього типу замовлення і лише те, що для нього продається; сервер рахує цю ціну й відхиляє решту. Happy hour, меню та опції рахуються від цієї ціни.
- Ставка ПДВ для «з собою» (у товарі) від цього не залежить, як і завжди.
- Під час самовивозу й доставки інтернет-магазин показує ціни й товари вибраного варіанта (під час зміни сторінка меню перезавантажується), а за столиком — ціни й товари для закладу.
- Експорт та імпорт конфігурації (Налаштування → Імпорт/експорт) містять ціни за типом замовлення, "продається для", періоди меню та сезони happy hour.
Меню
Типово вимк. Увімкнути: Налаштування → Заклад → Використовувати меню.
- Меню — це звичайний товар (з ціною меню), для якого в Налаштування → Товари → (товар) → Меню задаються складові:
- фіксована: завжди цей товар (напр. «Напій: Домашнє вино»);
- на вибір: вибрати 1 (або більше) з групи товарів, за бажанням лише з певних товарів (напр. «Основна страва: виберіть 1 з Основних страв»).
- Для кожної складової — подача (1 = одразу, 2/3 = чекає на виклик).
- Коли ви додаєте меню, для кожної складової вибираєте страви. Для кожної страви (також фіксованої) можна вибрати опції, як для окремого товару (ступінь просмаження, додатковий сир; обов’язкові опції мають бути вибрані), і примітку. Доплата за опції додається до ціни меню. Меню показується одним рядком зі стравами (та їхніми опціями) під ним.
- Страви йдуть на кухню/бар окремими рядками (кухонний чек і кухонний екран), кожна у своїй подачі. Сам рядок меню — ні.
- Для ПДВ ціна меню розподіляється між складовими пропорційно до їхніх звичайних цін, тож їжа й напої мають кожен правильну ставку. На чеку — меню із загальною ціною та стравами під ним.
- Якщо саме меню має опції (напр. розмір), їх вибирають угорі вікна меню. Вони показуються біля рядка меню на чеку, а біля кожної страви меню на кухонному чеку й кухонному екрані — як «(меню)».
- Прибрати/сторнувати можна лише ціле меню (натисніть рядок меню).
- Розділити / перенести: виберіть рядок меню; страви переносяться разом. При 2× однакового меню можна перенести й 1 (заголовок і страви розділяються).
- Без з’єднання меню можна додавати як завжди; вони зберігаються на планшеті й надсилаються, щойно з’єднання відновиться (як окремі товари).
- Happy hour може діяти й на меню.
Рецептури та собівартість (Apicbase)
Інтеграція з Apicbase (рецептури, собівартість, склад і закупівлі) через Generic POS API від Apicbase (за замовчуванням вимкнено, кожну частину вмикають або вимикають окремо). Налаштування в Налаштування → Рецептури (право Налаштування закладу, оплат і принтерів). Каса сама обмінюється даними з Apicbase (лише вихідний трафік, портал не потрібен).
- Підключення (усе заповнює адміністратор), одним із трьох способів:
- Вставити token: в Apicbase Library Settings → API Settings → New token → Service Account Token (scopes accounts, library, sales); вставити access token і refresh token;
- Увійти через власний API-app закладу (client-id і секрет з API Settings): Увійти в Apicbase і вставити код, який потім покаже Apicbase;
- Прострочений token (через 7 днів) каса сама оновлює за допомогою refresh token.
- Outlet: Завантажити outlets і вибрати outlet цього закладу. Каса встановить там POS на Generic POS API з власним location-id (можна вказати; за замовчуванням
HORECAPOS-…, унікальний для кожної каси). - Увімк., з позначками:
- Товари, групи й опції до Apicbase: групи товарів, товари (PLU = PLU-номер товару, інакше код, інакше id), опції як modifiers, з ціною та ПДВ. Автоматично після кожної зміни (через хвилину) і щодня. Потім в Apicbase ви прив'язуєте кожен товар каси до рецепту;
- Кожен оплачений чек до Apicbase: спочатку найстаріші, не більше 100 за раз, протягом чверті години після оплати (і кожні 5 хвилин). Знижка розподіляється по рядках; довільні суми, збір за одноразову упаковку й застава йдуть як окремі товари в Apicbase; вагові товари — як 1 шт. на загальну суму. Якщо не вдається, каса зупиняється (Apicbase приймає чеки по черзі) і пробує пізніше: на оплату це не впливає. Під час увімкнення ви вибираєте, з якого дня (за замовчуванням від зараз);
- Отримувати собівартість порції (кожні 6 год): для кожного прив'язаного рецепту food cost (інгредієнти та втрати), з витратами на персонал, ціна продажу й маржа за даними Apicbase. Розрахунок за найдешевшим постачальником, останньою ціною замовлення або середньою вартістю запасів;
- Брати ціну продажу з Apicbase (за замовчуванням вимк.): встановлює в касі ціну продажу прив'язаних товарів (записується в журнал).
- Унизу: Собівартість за товарами із собівартістю, собівартістю з персоналом, ціною в касі, собівартістю % і маржею. Кнопки Надіслати каталог зараз, Надіслати чеки зараз і Отримати собівартість зараз.
Код: apps/pos-server/src/lib/apicbase.ts, routes/apicbase.ts; екран Apicbase.tsx. Журнал: Apicbase. Умова: API-модуль Apicbase. Для застосунку Pin Voordeel для всіх клієнтів: партнерство й сертифікація в Apicbase (див. backlog). Документація: https://developers.apicbase.com/docs/generic-pos-api-guide
Готельне ПЗ: на номер
Для ресторану чи бару при готелі: рахунок записується на номер гостя. Типово вимкнено: Налаштування → Готель (право Налаштування закладу, оплати й принтерів).
- Один список з усім готельним ПЗ (Готельне ПЗ готелю). Вбудовані інтеграції:
- Mews (Connector API: client token і access token, сервіс ресторану та для кожної ставки ПДВ код ПДВ у Mews), apaleo (власний застосунок з client ID і client secret, property ID; для кожної ставки ПДВ за потреби тип ПДВ) і Cloudbeds (API-ключ і property ID), кожна з тестовим і робочим середовищем;
- Oracle OPERA Cloud (OHIP), protel (protel I/O), RoomRaccoon, Booking Experts, Amadeus (XMLPOS), VIPS, Stayntouch, Clock PMS+, Guestline (Rezlynx), Hotelogix, eviivo, Little Hotelier, Shiji і Infor HMS (Databridge). Після вибору показуються саме ті поля, які потрібні цьому готельному ПЗ (ключі, ID готелю, за потреби адреса їхнього API та їхній код для кожної ставки ПДВ), з коротким поясненням, що треба запросити в постачальника. Ці інтеграції створено за документацією постачальників; попросіть постачальника підтвердити інтеграцію та спершу спробуйте Перевірити з'єднання і один чек;
- демо (чотири люкси, номери з 4 по 7), щоб спробувати;
- Sirvoy, як половинчаста інтеграція і лише з Sirvoy Pro. Sirvoy не має API, через яке каса могла б щось додати до бронювання, навіть через файл (імпорт CSV створює лише нові бронювання). Завдяки цьому каса знає гостей (номер, ім’я, заїзд, виїзд): пошук у На номер, а також самообслуговування в кіоску та в інтернет-магазині працюють як звичайно. Чек не потрапляє в Sirvoy сам: після розрахунку він відображається в Налаштування → Готель у розділі Внести в Sirvoy з номером кімнати, гостем, номером чека та сумою за ставками ПДВ. Готель вручну додає його до бронювання як додаткову послугу й натискає Внесено (скасування — Поки ні). Потрібно:
- бажано каса, підключена до порталу керування: тоді адреса йде через портал (
https://<portaal>/hotel/<kassa-id>/sirvoy?sleutel=...) і в готелі не потрібно відкривати порт. Інакше сама каса має бути доступна з інтернету через https (власний домен із сертифікатом або переадресація портів; Sirvoy вимагає TLS 1.2 або вище), і ви вводите цю адресу; - Адресу видно лише один раз; каса зберігає тільки хеш. Створити нову адресу = стара перестає працювати;
- бажано каса, підключена до порталу керування: тоді адреса йде через портал (
Sirvoy надсилає щось лише тоді, коли бронювання змінюється: бронювання, зроблені до підключення, каса дізнається лише після зміни в Sirvoy. Повідомлення можуть надходити не по черзі; повідомлення, старіше (generatedAt) за те, що вже є в касі, пропускається. У готелі = не скасовано й виїзд не оформлено, заселено або заїзд сьогодні чи раніше, а виїзд сьогодні чи пізніше. Перевірити з'єднання показує, скільки бронювань надійшло.
Усе це готельне ПЗ продається в Нідерландах та/або Бельгії. Перевірити з'єднання перевіряє дані. Код кожної інтеграції: apps/pos-server/src/lib/pms/<naam>.ts.
- Самообслуговування (типово вимкнено): гість готелю сам записує замовлення на свій номер, у кіоску та/або в інтернет-магазині (самовивіз і доставка, не під час замовлення за столом). Він вводить номер кімнати й прізвище; каса перевіряє в готельному ПЗ, чи цей гість зараз проживає в цьому номері. Є максимум на замовлення (типово € 150), а після 5 невдалих спроб за 15 хвилин гостя спрямовують до рецепції. Повідомлення ніколи не показує, хто проживає в номері.
- Розрахунок: коли інтеграцію увімкнено, є спосіб оплати На номер. Знайдіть гостя за ім’ям або номером кімнати (лише гості, які зараз проживають у готелі) і натисніть Записати на номер .... Каса проводить чек за ставками ПДВ на готельний рахунок гостя; гість платить під час виїзду.
- Бельгія: якщо замовлення вже є за столом у чорній скриньці, воно спершу переходить зі столу на номер (signCostCenterChange на ROOM, UC4101); чек іде як кредит номера (ROOM_CREDIT) до чорної скриньки.
- Якщо проведення в готельному ПЗ не вдається (немає інтернету), продаж усе одно є, а проведення показано як Не вдалося в Налаштування → Готель, з кнопкою Ще раз.
- Звіти й бухгалтерія: На номер (готель) — окремий спосіб оплати в X- і Z-звіті, у денному звіті та в аудиторському файлі (XAA).
Код: apps/pos-server/src/lib/hotel.ts, routes/hotel.ts, інтеграції в lib/pms/, каталог packages/shared/src/hotelcatalogus.ts; екран Hotel.tsx. Журнал: Готель. Секрети (токени) зберігаються лише в базі даних, ніколи на екрані.
Керування винами з Vinify
Налаштування → Керування винами (за замовчуванням вимкнено; після вимкнення все зберігається). Vinify веде винний льох, винну карту та запаси і є головним джерелом вин. Згідно з POS-вимогами Vinify каса надає API, через який Vinify:
Входить усіма трьома способами, які знає Vinify (адміністратор вмикає, яким):
- API ID і API-ключ (
X-Api-IdіX-Api-KeyабоAuthorization: Bearer <id>:<sleutel>); - API-ключ і API secret з підписом:
X-Api-Key,X-TimestampіX-Signature= hex HMAC-SHA256(secret,<timestamp>\n<METHODE>\n<pad met query>\n<sha256 van de body>), не старший за 5 хвилин.
Ключ і secret створює каса (показуються один раз); екрани бачать лише, чи їх заповнено. Доступно через портал за адресою https://<portaal>/vinify/<kassa-id>/... (без відкритого порту в закладі; адреса є в Налаштування → Керування винами). Які товари є винами: те, що створює Vinify, плюс групи, які ви позначите. Якщо Vinify дає адресу для надсилання продажів, каса надсилає їх і сама (push, з токеном): після кожного оплаченого чека і кожні 5 хвилин те, що ще не вдалося. Vinify вмикає інтеграцію з HorecaPOS (hello@vinify.no). Усе в журналі. Не плутати з Vinify.nl — онлайн-магазином вин: він є серед постачальників (Замовлення в постачальників).
Швидке введення адреси за поштовим індексом і номером будинку
Увімкніть у Налаштування → Заклад → Швидке введення адреси (за замовчуванням вимкнено; лише для закладу в Нідерландах). Введіть поштовий індекс і номер будинку (також з літерою чи доповненням, напр. 12A або 12-1) і натисніть Знайти адресу: вулиця, номер будинку, поштовий індекс і населений пункт заповнюються. Якщо за цим номером кілька адрес (12, 12A, 12B), виберіть потрібну. Потім усе можна змінити вручну.
- У даних закладу (Налаштування → Заклад, над адресою).
- У клієнта картки клієнта: на касі для нового клієнта та у Звіт → Клієнти. Для цього клієнти отримують (необов’язкову) адресу: вулиця й номер будинку, поштовий індекс і населений пункт.
- Адреси надходять із безкоштовного Locatieserver від PDOK (офіційні адреси Нідерландів, BAG): обліковий запис чи ключ не потрібні, але потрібен інтернет. Без інтернету або для бельгійської адреси просто введіть адресу вручну.
Сповіщення про нову версію
Увімкнути в Налаштування → Заклад → Сповіщення про оновлення (за замовчуванням вимкнено).
- Касу оновлено: якщо касовий сервер оновлено, поки на планшеті ще відкриті старі екрани, угорі з’являється «Касу оновлено (версія …)» з кнопкою Оновити. Планшет перевіряє кожні 5 хвилин, коли екран знову стає видимим, і після перезапуску сервера.
- Доступне оновлення: якщо каса прив’язана до порталу керування (
PORTAAL_URL/PORTAAL_SLEUTEL) і там указаноNIEUWSTE_VERSIE, ті, хто може керувати налаштуваннями, бачать «Доступне оновлення: версія …» (з поясненням зUPDATE_NOTITIE). Пізніше приховує сповіщення на цьому планшеті до появи ще новішої версії. Оновлення виконується як завжди черезscripts\windows\update.cmd(див. Оновлення).
Платформи бронювання
Бронювання з TheFork, Formitable, Zenchef, Resengo (лише Бельгія), OpenTable (лише Нідерланди), PlanPanther, RestoManager та Aqqo (лише Нідерланди) автоматично потрапляють у касу й на план залу. Вмикається в Налаштування → Платформи бронювання (типово вимкнено). Працює лише тоді, коли увімкнено Бронювання.
- Країна закладу: можна вибрати лише платформи, що працюють у країні закладу (Resengo лише в Бельгії, OpenTable та Aqqo лише в Нідерландах). Сервер також це перевіряє.
- Кілька платформ одночасно: можна підключити кілька платформ одночасно, наприклад TheFork і Formitable. Дві платформи ніколи не отримають той самий стіл в один і той самий час; тоді друге бронювання надійде без столу.
- + Підключити платформу: виберіть платформу та введіть дані. Секрети (client secret, ключ зворотного повідомлення) ніколи не показуються в огляді; залишити порожнім = зберегти, Очистити = видалити.
- TheFork (відкритий B2B-API): Restaurant-UUID, Client ID і Client Secret (запитати в TheFork). Якщо каса скасовує бронювання, воно скасовується і в TheFork.
- Formitable, Zenchef, Resengo, OpenTable, PlanPanther, RestoManager, Aqqo: їхній API лише для партнерів або непублічний (PlanPanther, RestoManager і Aqqo: підключення до каси — за домовленістю з ними). Події Formitable (
booking.created,.changed,.canceled,.checkin,.checkout) розпізнаються. - На плані залу: якщо стіл у касі називається так само, як стіл на платформі, і він вільний у цей час, бронювання потрапляє на цей стіл; інакше — без столу (виберіть його під час прибуття). Повторне бронювання оновлюється, а не дублюється. В огляді вказано "через TheFork".
- Статус: якщо платформа скасовує бронювання або повідомляє про no-show, каса це переймає. Що в касі вже позначено як прибуле, таким і залишається.
- Зворотне повідомлення (no-show назад): введіть адресу зворотного повідомлення (наприклад, вашого сервісу інтеграції). Каса надсилає кожну зміну з каси (прибув, no-show, скасовано, оплачено із сумою) у форматі JSON:
{ platform, id, status, statusEn, bedrag, valuta, tafel, tijdstip, gemeldOp }(сума в центах, лише при оплаті), зAuthorization: Bearer <terugmeld-sleutel>, якщо ви його вказали. Якщо не вдається, каса повторює спробу щохвилини, а помилка показується біля платформи. Те, що надійшло від самої платформи, назад не надсилається. - Тестове бронювання: створює бронювання так, як його надіслала б платформа.
- Видалити: підключення та ключ видаляються; бронювання залишаються.
- Усі зміни записуються в журнал (без секретів).
Програми лояльності та відгуки
Два окремі перемикачі в Налаштування → Бали та відгуки (обидва за замовчуванням вимкнено, тоді цього ніде не видно). Якщо їх вимкнути, налаштування і те, що вже відбулося, зберігаються.
Програма лояльності іншої платформи: гість накопичує бали в Joyn (Бельгія) та/або Piggy (Leat; Нідерланди та Бельгія). Це не залежить від власної картки лояльності каси; вона може працювати паралельно.
- Кілька одночасно: у Бельгії Piggy та Joyn можуть бути ввімкнені разом, кожен із власними даними (виберіть платформу, заповніть, Зберегти; Змінити та Видалити для кожної платформи). Гість отримує для кожної програми власний QR-код на чеку, власне посилання в чеку електронною поштою та власну кнопку в інтернет-магазині й накопичує бали в кожній програмі один раз за замовлення. Те, що вже було налаштовано, працює далі.
- QR-код на чеку: після розрахунку під чеком є QR-код із текстом "Скануйте й накопичуйте бали в ...". У чеку на e-mail є посилання, а в інтернет-магазині (самовивіз і доставка) — кнопка на сторінці замовлення та посилання в листі-підтвердженні. Одне замовлення дає бали лише один раз: чек, лист та інтернет-магазин використовують той самий унікальний код (номер замовлення). "QR-код на друкованому чеку" можна вимкнути; лист та інтернет-магазин усе одно отримують посилання.
- Piggy, спосіб "QR-код і посилання": введіть адресу вашого клієнтського порталу Piggy, Shop UUID і Account secret (Piggy Business Dashboard). Працює без інтернету: каса сама створює посилання.
- Piggy, спосіб "Одразу нараховувати": додатково введіть personal access token (Piggy → Marketplace → Private App). Якщо каса надсилає чек на e-mail і гість із цією адресою вже учасник, каса одразу нараховує бали; на чеку тоді написано "Бали нараховано в Piggy". Каса ніколи не створює нового учасника; не учасник (або немає e-mail) = QR-код.
- Joyn, спосіб "QR-код і посилання": з partner key, shop reference і shared secret від Joyn (запитати через api-integration@joyn.be). Працює без інтернету. QR-код дійсний 2 год.
- Joyn, спосіб "Через API": з shop API key (увімкніть підключення в порталі продавця Joyn). Під час розрахунку каса запитує в Joyn код для балів. Списання балів, як завжди, на Joyn-iPad.
- Створити пробне посилання: перевіряє, чи правильні дані (посилання на € 10; відкривайте його лише для перегляду).
- Можна вибрати лише платформи країни закладу; секретні дані зберігаються лише в базі даних і ніколи не з’являються на екрані (залишити порожнім = зберегти).
Просити відгуки: після візиту один лист із кнопкою на Google та/або Trustpilot.
- Через кілька годин (налаштовується, за замовчуванням 3) гість отримує лист мовою чека.
- Інтернет-магазин: при самовивозі й доставці інтернет-магазин сам надсилає лист через кілька годин після того, як замовлення закрито в касі, мовою гостя.
- Google: вставте посилання для відгуку з профілю компанії (Google → ваш профіль компанії → Попросити відгуки,
https://g.page/r/.../review) або введіть Place ID. - Trustpilot: введіть домен вашого закладу (кнопка веде на
trustpilot.com/evaluate/<domein>). Якщо у вас у Trustpilot є адреса для запрошень (Automatic Feedback Service,...@invite.trustpilot.com), введіть і її: тоді лист іде в Trustpilot прихованою копією (BCC) з невидимими ім’ям, адресою e-mail і номером чека, а Trustpilot сам надсилає запрошення (тоді без власної кнопки Trustpilot). Лише Trustpilot з адресою для запрошень: каса надсилає лист лише в Trustpilot. - Не надто часто: той самий гість (адреса e-mail) отримує не більше одного прохання за період (за замовчуванням 90 дн.; 0 = щоразу). Для цього каса зберігає лише хеш адреси; саму адресу e-mail видаляють, щойно лист надіслано (якщо не вдалося — після трьох спроб, інакше через 14 дн.).
- QR-код на чеку (необов’язково): також QR-код для відгуку під друкованим чеком.
- Приклад листа і Видалити листи в очікуванні (адреси тоді одразу видаляються). Журнал показує review_gevraagd з a***@domen.ua.
- Google і Trustpilot забороняють винагороду за відгук і прохання лише до задоволених гостей ("review gating"). Тому каса питає всіх однаково й нічого не дає натомість за відгук.
- Читання відгуків і відповіді на них у касі: див. «Керування відгуками» нижче.
Інтеграція з Mailchimp і Klaviyo
Клієнти з карткою лояльності — у вашій власній програмі розсилок: у Налаштування → Заклад → Mailchimp і Klaviyo (під SMS- та e-mail-маркетингом). Перемикача немає: без інтеграції з вибраним списком нічого не відбувається.
- Підключення: за допомогою API-ключа (Mailchimp: Профіль → Extras → API keys; Klaviyo: приватний ключ
pk_…з правами на запис для Lists, Profiles, Subscriptions, Events, Campaigns і Templates). Секрет клієнта й ключ більше ніколи не показуються на екрані (залишити порожнім = зберегти). Потім виберіть список (Mailchimp: audience). - Клієнти: хто дав згоду на e-mail, потрапляє до списку (підписаний) з ім’ям, прізвищем, телефоном, днем народження і балами (Mailchimp: поле
PUNTEN, каса створює його сама; Klaviyo: властивістьpunten). Згоду відкликано, e-mail змінено або клієнта видалено — відписаний. Повторно передається лише те, що змінилося. З інтеграцією каса (і позначка "пропозиції" в інтернет-магазині) також запитує в нового клієнта згоду на e-mail, і її можна змінити в Звіт → Клієнти, навіть без власного e-mail-маркетингу. - Відписка: хто відписується в Mailchimp або Klaviyo, у касі теж втрачає згоду на e-mail (журнал: "відписано в Mailchimp"). Тих, хто відписався сам, каса повторно не підписує.
- Замовлення: кожен оплачений чек клієнта зі списку передається як подія (Mailchimp:
bestelling, із сумою, номером чека та кількістю; Klaviyo:Placed Order, з вартістю в євро). Так у програмі розсилок можна налаштувати автоматичні листи, наприклад після першого замовлення або якщо клієнт не приходив місяць. Чеки, створені до вибору списку, не передаються. - Акції: у Звіт → Маркетинг акцію можна також надіслати через Mailchimp або Klaviyo (див. SMS- та e-mail-маркетинг); каса тоді створює там кампанію і надсилає її.
- Оновлення: кожні 5 хвилин або кнопкою Оновити зараз. Відв'язати: зникає з каси; у Mailchimp і Klaviyo все залишається. Ключі зберігаються в базі даних (входять до резервної копії, але не до експорту конфігурації).
Код: lib/mailinglijst.ts, routes/mailinglijst.ts і MailingKoppelingen.tsx.
BI та експорт даних
Дані продажів у Power BI, Looker Studio, Excel, Google Sheets, Tableau, Qlik Sense, Metabase, BI-сервіс (наприклад YourBI, BI4Horeca або Moore DRV) або власне сховище даних. Вмикається в Налаштування → BI та експорт даних (за замовчуванням вимкнено). Лише читання: через інтеграцію в касі нічого не можна змінити. Жодних даних гостей.
- Дані: чеки (також чеки повернення), продані товари (рядки чеків), платежі, виторг за день, виторг за годину, сторно, товари, працівники (без PIN-коду) та відпрацьовані години. Суми в євро з крапкою як десятковим роздільником, час — за часом закладу.
- + Інтеграція: виберіть пакет і спосіб. Кожен пакет підтримує один або кілька способів; можна мати кілька інтеграцій одночасно (також для того самого пакета).
- Пакет отримує сам (API): каса один раз видає ключ лише для читання. Період через
?van=&tot=(РРРР-ММ-ДД) або фіксована адреса з?periode=(vandaag, gisteren, 7d, 30d, 90d, 365d, week, maand, vorigemaand, jaar); не більше 366 днів, не більше 200 000 рядків. Ключ уAuthorization: Bearer,X-Sleutelабо?sleutel=. - Через портал: якщо касу підключено до клієнтського порталу, та сама адреса працює й поза закладом, без відкриття порту:
https://<portaal>/bi/<kassa-id>/<gegevens>?periode=90d&formaat=csv&sleutel=.... Так служба Power BI оновлює її за розкладом (без gateway), а Google Sheets може отримувати її через=IMPORTDATA("...")(це також джерело для Looker Studio). Каса показує адресу в інтеграції. - Огляд мережі через портал клієнта (кілька закладів): одна адреса й один ключ для всіх ваших кас разом. На кожній касі, яка має брати участь, увімкніть Огляд мережі через портал клієнта (під перемикачем BI) і створіть ключ у порталі клієнта в розділі Мої каси → BI для всіх ваших закладів. Далі:
https://<portaal>/bi/keten/<gegevens>?periode=90d&formaat=csv&sleutel=hpk_.... Портал отримує дані з кожної каси й об'єднує їх, ізkassaIdіzaakу кожному рядку. Каси, які офлайн або не беруть участі, вказано вontbrekend(JSON) і в заголовкуX-Ontbrekend. Самій касі для цього не потрібен власний ключ; вимкнення на касі або в порталі клієнта зупиняє це. - Якщо є токен, він передається як
Authorization: Bearer, а вX-HorecaPOS-Handtekeningміститься підпис (sha256=HMAC вмісту). Якщо не вдається, каса повторює спробу щохвилини; нічого не надсилається двічі. З від вона надсилає й старіші чеки. - Каса надає файли: щодня (у заданий час, за попередній день; пропущені дні доганяються) або щогодини (сьогодні до цього моменту), як CSV (кома або крапка з комою для нідерландського Excel) чи JSON, у папку на комп’ютері каси (наприклад папку OneDrive чи SharePoint для Power BI або Excel), на FTP(S)- чи SFTP-сервер або e-mail. Імена файлів:
horecapos_<gegevens>_<datum>.csv. - Надіслати тест (push) і Експортувати зараз (файл) в інтеграції.
- Завантажити самостійно: виберіть дані, період і формат.
- Шаблон Power BI (
.pbit): готовий звіт для Power BI Desktop, кнопка Завантажити шаблон Power BI у розділі BI та експорт даних. Спочатку створіть API-підключення (Power BI). У моделі: таблиця для кожного набору даних із правильними типами, календар (рік, місяць, тиждень, день тижня), зв'язки (дата → календар, рядки чеків → товари, відпрацьовані години → працівники) і міри (виручка з ПДВ і без, ПДВ, чайові, чеки, гості, середнє на чек і на гостя, продана кількість, виручка товарів, оплачено, сторно, відпрацьовані години, виручка на відпрацьовану годину). Три сторінки: Огляд (ключові показники, виручка за днями, днями тижня й годинами, способи оплати), Товари (за групами й за товарами) і Персонал (години та виручка за працівниками). Через портал сервіс Power BI також оновлює його за розкладом. - Секрети (токен, пароль, ключ) ніколи не показуються в огляді; залишити порожнім = зберегти, Стерти = видалити. Усе записується в журнал (без секретів).
Зарплата і планування
Коли Відмітка приходу/виходу ввімкнена (Налаштування → Заклад), у Налаштування → Робочий час унизу є Зарплата і планування (право Керування налаштуваннями) у двох окремих блоках. Якщо відмітку вимкнено, годин немає: тоді лише блок Планування персоналу (виручка, наживо або як файл виручки) розташований унизу в Налаштування → Бухгалтерія, під заголовком Виручка у ваше планування:
- Розрахунок зарплати (payroll): виберіть зарплатну програму або (Бельгія) соціальний секретаріат, заповніть її поля та для кожного працівника його табельний номер у цій програмі. Потім ви створюєте за період файл із відпрацьованими годинами (закриті зміни, за працівником за днем відмітки приходу) і виручкою за працівником (без ПДВ, те, що він/вона розрахував(-ла)): готовий для Loket.nl (Variabele gegevens, підсумок за працівником за період, рядок заголовка
aanslnr;persnr;ploeg;<looncomponent>) і SD Worx Бельгія (Tijdsregistratie, фіксовані позиції, за працівником за день), інакше — табель (CSV: Дата; Табельний номер; Ім’я; Години; Виручка без ПДВ). Працівники без табельного номера не потрапляють у файл Loket або SD Worx; каса повідомляє, хто це. - Планування персоналу (WFM): виберіть систему планування. Повторне надсилання перезаписує дані. Крім того, список виручки (CSV за днем і годиною, без ПДВ і з ПДВ) і для Strobbo файл Excel для Importeer omzet.
- Лише програми, що працюють у країні закладу, за групами та в алфавітному порядку; сервер відхиляє програму з іншої країни (400).
- Ключі й токени ніколи не показуються на екрані.
- Стосується бухгалтерії: витрати на персонал проводить у бухгалтерії зарплатна програма, виручку проводить каса (Налаштування → Бухгалтерія). AFAS Payroll і Exact Online Loon працюють у тому самому середовищі, що й бухгалтерія AFAS і Exact.
- У копії каси на порталі це неможливо (це робить каса в закладі).
- API деяких програм не є публічним або доступний лише партнерам (зокрема Loket, Nmbrs, Nostradamus, Employes, Shyfter, Planday, Eitje): вони позначені за запитом; до того — файл. Формат SD Worx і Strobbo взято з їхньої документації: попросіть перевірити перший імпорт.
| Програма | NL | BE | Напряму | Файл | Примітка |
|---|---|---|---|---|---|
| Зарплатні програми та розрахункові бюро | |||||
| ADP | ✓ | ✓ | за запитом | Табель за працівником і днем (CSV) | Підключення через ADP (за запитом); до того — табель за працівником і днем. |
| AFAS Payroll | ✓ | – | за запитом | Табель за працівником і днем (CSV) | Розрахунок зарплати в AFAS Profit (те саме середовище, що й бухгалтерія в AFAS); підключення за запитом, до того — табель. |
| BCS HR | ✓ | – | за запитом | Табель за працівником і днем (CSV) | Підключення через BCS (за запитом); до того — табель. |
| Buddee | ✓ | – | за запитом | Табель за працівником і днем (CSV) | Програма для кадрів і зарплати; підключення за запитом, до того — табель за працівником і днем. |
| Employes | ✓ | – | за запитом | Табель за працівником і днем (CSV) | Employes має API для відпрацьованих годин (токен клієнта); підключення з’явиться після узгодження з Employes. До того — табель. |
| Exact Online Loon | ✓ | – | за запитом | Табель за працівником і днем (CSV) | Розрахунок зарплати в Exact Online (те саме середовище, що й бухгалтерія в Exact); підключення за запитом, до того — табель. |
| Humanwave | ✓ | – | за запитом | Табель за працівником і днем (CSV) | Підключення через Humanwave (за запитом); до того — табель. |
| Loket.nl | ✓ | – | за запитом | Loket.nl Variabele gegevens (CSV), Табель за працівником і днем (CSV) | Файл для Werkgever → Collectieve mutaties → Importeren → Variabele gegevens (години за працівником за період). Наживо через Loket API після реєстрації в Loket. |
| Nmbrs | ✓ | – | за запитом | Табель за працівником і днем (CSV) | Табель за працівником і днем для перенесення в Nmbrs. Наживо через Nmbrs API після реєстрації застосунку в Nmbrs. |
| Salar (Van Winckel) | ✓ | – | – | Табель за працівником і днем (CSV) | Табель за працівником і днем для бухгалтерської фірми; формат імпорту Salar не є публічним. |
| Соціальні секретаріати | |||||
| Acerta | – | ✓ | за запитом | Табель за працівником і днем (CSV) | Соціальний секретаріат: формат файлу виконаних робіт ви отримуєте від Acerta; до того — табель. |
| Group S | – | ✓ | за запитом | Табель за працівником і днем (CSV) | Соціальний секретаріат: формат файлу виконаних робіт ви отримуєте від Group S; до того — табель. |
| Liantis | – | ✓ | за запитом | Табель за працівником і днем (CSV) | Соціальний секретаріат з API, який Liantis відкриває для кожної компанії окремо; до того — табель. |
| Partena Professional | – | ✓ | за запитом | Табель за працівником і днем (CSV) | Соціальний секретаріат: формат файлу виконаних робіт ви отримуєте від Partena; до того — табель. |
| SD Worx | ✓ | ✓ | – | SD Worx Tijdsregistratie (TXT), Табель за працівником і днем (CSV) | Бельгія: файл Tijdsregistratie (облік часу; фіксовані позиції, за працівником за день) для "Tijdsregistratie importeren". Нідерланди: табель. |
| Securex | – | ✓ | за запитом | Табель за працівником і днем (CSV) | Соціальний секретаріат: підключення відбуваються через партнерів; до того — табель. |
| Планування та облік годин | |||||
| Book'u | – | ✓ | за запитом | Виручка за днем і годиною (CSV) | Book'u подає декларації Dimona; підключення каси — за запитом. До того — список виручки. |
| Deputy | ✓ | ✓ | ✓ | Виручка за днем і годиною (CSV) | Наживо: погодинна виручка щогодини надсилається до Deputy (Sales). Постійний токен створюєте в Deputy в розділі API-підключень. |
| Dyflexis | ✓ | – | ✓ | Виручка за днем і годиною (CSV) | Наживо: погодинна виручка щогодини надсилається до Dyflexis (information streams). API-токен ви отримуєте через Dyflexis. |
| Eitje | ✓ | – | за запитом | Виручка за днем і годиною (CSV) | Eitje підключається через свою партнерську програму; до того — список виручки за днем і годиною. |
| Exact Horeko | ✓ | – | за запитом | Виручка за днем і годиною (CSV) | Підключення через Horeko (за запитом); до того — список виручки. |
| Fooks | ✓ | – | за запитом | Виручка за днем і годиною (CSV) | Fooks сам створює підключення до кас; до того — список виручки за днем і годиною. |
| L1NDA | ✓ | – | за запитом | Виручка за днем і годиною (CSV) | L1NDA створює підключення до кас разом із партнерами; до того — список виручки за днем і годиною. |
| Mr. Einstein | ✓ | – | за запитом | Виручка за днем і годиною (CSV) | HR, графік і витрати на зарплату для закладів харчування; Mr. Einstein створює підключення до кас разом із постачальником каси (запит через mreinstein.nl/contact). До того — список виручки за днем і годиною. |
| Nostradamus | ✓ | ✓ | за запитом | Виручка за днем і годиною (CSV) | Nostradamus приймає виручку через свій касовий інтерфейс (API-токен і домен закладу, за запитом у Nostradamus); до того часу — список виручки за днями та годинами. |
| Plan-Me | – | ✓ | за запитом | Виручка за днем і годиною (CSV) | Plan-Me подає декларації Dimona; підключення каси — за запитом. До того — список виручки. |
| Planday | ✓ | ✓ | за запитом | Виручка за днем і годиною (CSV) | Planday має відкритий API для касових систем; підключення з’явиться після узгодження. До того — список виручки. |
| Shiftbase | ✓ | – | ✓ | Виручка за днем і годиною (CSV) | Наживо: денна виручка щогодини надсилається до журналу відділу в Shiftbase. API-ключ створюєте в Shiftbase в розділі App center. |
| Shyfter | – | ✓ | за запитом | Виручка за днем і годиною (CSV) | Shyfter подає декларації Dimona і приймає денну виручку через свій API; підключення з’явиться після узгодження з Shyfter. До того — список виручки. |
| Strobbo | ✓ | ✓ | – | Імпорт виручки Strobbo (Excel), Виручка за днем і годиною (CSV) | Файл Excel для Planning → € → Importeer omzet (виручка за день за робочим місцем). |
| Tamigo | ✓ | ✓ | за запитом | Виручка за днем і годиною (CSV) | Підключення через Tamigo (за запитом); до того — список виручки. |
| Werktijden.nl | ✓ | – | – | Виручка за днем і годиною (CSV), Табель за працівником і днем (CSV) | Werktijden.nl сам реєструє години і (поки що) не приймає виручку через свій API; списки слугують для порівняння. |
| XPS Logic | ✓ | – | за запитом | Виручка за днем і годиною (CSV) | XPS Logic орієнтований на гнучкий та агентський персонал; підключення — за запитом. До того — список виручки. |
Вимоги законодавства в Бельгії та Нідерландах
Чого вимагає закон і що для цього робить HorecaPOS (попросіть бухгалтера підтвердити, що стосується вашого закладу):
| Країна | Вимога | HorecaPOS |
|---|---|---|
| Бельгія | Зареєстрована касова система (GKS 2.0) з чорною скринькою для закладів громадського харчування, які мають їй відповідати (зокрема при виручці від страв понад 25.000 € на рік без ПДВ) | підключення до чорної скриньки (FDM), обов’язкові дані на чеку й лічильники в Z-звіті (країна Бельгія в Налаштування → Заклад, FDM_API_KEY і FDM_TERMINAL_ID); угорі в Налаштування → Заклад ви вибираєте, чи зобов'язаний заклад використовувати GKS: Так = розрахунок лише з робочою чорною скринькою, Ні = без неї, із заявою адміністратора (щороку знову); доки нічого не вибрано, розрахунок неможливий. Каса рахує виручку від страв і попереджає понад 25.000 € |
| Бельгія | Електронні рахунки-фактури через Peppol: з 1 січня 2026 року рахунки-фактури між бельгійськими компаніями — платниками ПДВ обов’язково є структурованими електронними (UBL, Peppol BIS 3); касові чеки для споживачів під це не підпадають | експорт денної виручки у форматі UBL за Peppol BIS Billing 3.0 для бухгалтерської програми (Експорт до бухгалтерії); і рахунки за чеком для бізнес-клієнтів (Налаштування → Рахунки): UBL за Peppol BIS Billing 3.0 плюс рахунок для друку, надсилання e-mail, через Billit у мережу Peppol, на власну адресу або завантаження (див. «Рахунки для бізнес-клієнтів») |
| Бельгія | ПДВ у громадському харчуванні з 1 березня 2026: їжа на винос і безалкогольні напої 12% (у закладі й на винос), алкоголь 21%, страви, які клієнт готує сам (фондю, гурме), 6% | Помічник з ПДВ (Налаштування → Закони та правила): тип кожного товару, правильна ставка одразу або з певної дати; описи ставок A/B/C оновлено |
| Нідерланди | Закон про алкоголь: жодного алкоголю особам до 18 років, також під час онлайн-продажу й доставки (перевірка віку під час передавання) | Перевірка віку: товари з алкоголем; в інтернет-магазині клієнт сам підтверджує 18+ (прапорець не встановлено заздалегідь) з повідомленням, що вік перевірять під час передавання; "18+" на кухонному чеку, чеку доставки й касовому чеку |
| Нідерланди | Одноразові стакани й контейнери (SUP): з 2024 окрема видима ціна за пластикове одноразове пакування під час самовивозу й доставки | Збір за одноразове пакування для кожного товару, окремим рядком у чеку (ПДВ товару) і окремо у виручці |
| Нідерланди | Застава за банки й пластикові пляшки | Застава для кожного товару (€ 0,15 / € 0,25), окремий рядок без ПДВ під час самовивозу й доставки, окремо у виручці |
| Нідерланди | Оплата готівкою: з 1 січня 2026 не можна приймати € 3.000 або більше готівкою за товари | Попередження під час самовивозу й доставки (також на касовому автоматі); можна підтвердити, це записується в журнал |
| Нідерланди та Бельгія | Зміна ПДВ: ставка або товар отримує інший відсоток ПДВ з певної дати | Планування зміни ПДВ: каса виконує її в той самий день (у Бельгії для кожного товару, літери A/B/C/D фіксовані) |
| Нідерланди | Проживання (ночівлі) 21% з 1 січня 2026 | ставку ПДВ можна налаштувати для кожного товару |
| ЄС | Директива Omnibus: закреслена ціна «було» може бути лише найнижчою ціною за останні 30 днів | інтернет-магазин закреслює ціну лише відносно найнижчої ціни за 30 днів (каса зберігає історію цін; щотижневі happy hours враховуються) |
| ЄС | European Accessibility Act (з 28 червня 2025): інтернет-магазини мають бути доступними (WCAG 2.1 AA) | інтернет-магазин працює з клавіатурою й програмою зчитування екрана (посилання "До вмісту", видимий фокус, підписи) і має заяву про доступність (посилання внизу) |
| Нідерланди | XML Auditfile Financieel (XAF): стандарт податкової служби Нідерландів (Belastingdienst) для передачі бухгалтерських даних (або їх частини); XAF 4.0 обов’язковий з 2027 року | експорт як XAF 4.0 (Експорт до бухгалтерії) |
| Нідерланди | Надійна касова система: зберігати касові дані (усі чеки, коригування та події) і мати змогу надати їх у цифровому вигляді під час перевірки; Belastingdienst рекомендує для цього XML Auditfile Afrekensystemen (XAA) | експорт як XAA 3.2 (Звіт → Виручка за період → Аудиторський файл каси), за бажанням підписаний сертифікатом постачальника |
| Бельгія | Облік присутності у зареєстрованій касовій системі: реєстрація початку й кінця робочого часу працівників у касовій системі | Відмітка приходу/виходу (Налаштування → Заклад; Обов’язково = спочатку відмітити прихід) реєструється в чорній скриньці |
| Бельгія | Dimona: кожне працевлаштування (зокрема flexi-jobs і студентів) повідомляти до RSZ до його початку | це робить ваш соціальний секретаріат або інструмент планування (напр. Shyfter, Book'u, Plan-Me); HorecaPOS надає відпрацьовані години й виручку (Налаштування → Робочий час → Зарплата і планування) |
| Нідерланди | Облік робочого часу та часу відпочинку (Закон про робочий час, Arbeidstijdenwet) | Відмітка приходу/виходу з відпрацьованими годинами за працівником, які може змінювати адміністратор (з журналом), і табель для зарплатної програми |
| Нідерланди та Бельгія | HACCP / безпечність харчових продуктів: реєстрація температур (охолодження, морозильник, підтримання в теплі, термообробка, швидке охолодження, приймання) і прибирання; NL Hygiënecode voor de Horeca (NVWA), BE самоконтроль FAVV (настанова G-023) | Реєстрація HACCP у касі (Налаштування → Закони та правила, кнопка HACCP угорі): точки вимірювання з межами, завдання з прибирання та контролю, обовʼязковий коригувальний захід у разі відхилення, записи без можливості зміни, звіт із пропущеними записами як CSV або друк (див. Реєстрація HACCP) |
| Нідерланди та Бельгія | Обов’язок зберігання (NL 7 років, BE 10 років) | чеки, Z-звіти й журнал подій зберігаються в базі даних і в резервних копіях; журнал подій неможливо змінити чи видалити з каси |
Закони та правила
Налаштування → Закони та правила (адміністратор; помічник з ПДВ також із правом Керування товарами). За замовчуванням усе вимкнено; без цих налаштувань каса працює як завжди.
- Перевірка віку для алкоголю (18+): у розділі «Товари» позначте Містить алкоголь (або скористайтеся помічником з ПДВ). Під час самовивозу й доставки з алкоголем на кухонному чеку, касовому чеку й на екрані замовлень стоїть "18+". В інтернет-магазині клієнт сам підтверджує, що йому 18 років або більше (прапорець не встановлено заздалегідь), і бачить, що вік перевірять під час передавання.
- Збір за одноразове пакування (Нідерланди): сума для кожного товару (орієнтовні ціни: стакан € 0,25, контейнер для страви € 0,50, маленький контейнер € 0,05). Під час самовивозу й доставки каса сама додає в чек рядок "Збір за пакування" (з ПДВ товару); він автоматично йде разом із товарами (база даних відстежує його й після видалення, перенесення або зміни типу замовлення) і обліковується окремо у виручці. У закладі збору немає. Thuisbezorgd.nl та інтернет-магазин нараховують власний збір.
- Застава (Нідерланди): для кожного товару (€ 0,15 банка/пляшка, € 0,25 велика пляшка), рядок "Застава" без ПДВ, лише під час самовивозу й доставки.
- Готівка від € 3.000 (Нідерланди, з 1-1-2026 заборонено для товарів): під час самовивозу й доставки — попередження під час оплати й на касовому автоматі; працівник може підтвердити (напр. кейтеринг як послуга), це записується в журнал. Їжа й напої в закладі — послуга: без попередження.
- Помічник з ПДВ: тип кожного товару (страва, безалкогольний напій, алкогольний напій, продукти без приготування, інше; спершу припущення за назвою та групою). Каса показує правильну ставку в закладі й на винос (Бельгія з 1-3-2026: страви й безалкогольні напої 12%, також на винос; алкоголь 21%; продукти без приготування 6%. Нідерланди: 9% і 21%) і застосовує її одразу або з певної дати.
- Планування зміни ПДВ: товар на іншу ставку або (лише Нідерланди) ставка з новим відсотком, починаючи з певної дати. Каса виконує це того дня сама (перевірка кожні 15 хвилин і під час запуску).
Рахунки (у Бельгії обов'язкові між компаніями) описано в розділі «Рахунки для бізнес-клієнтів». Ще зробити: GKS 2.0, дізнатися, як просувається сертифікація (див. docs/backlog-concurrenten.md).
Рахунки для бізнес-клієнтів
Налаштування → Рахунки (адміністратор; за замовчуванням вимкнено): увімкніть Рахунки для бізнес-клієнтів (UBL / Peppol). Нижче, якщо увімкнено, є Оплата за рахунком, Дані в рахунку, Сервіси Peppol, Підключення до банку (з оплатою за рахунком) і список усіх рахунків. У Бельгії електронні рахунки між компаніями обов'язкові з 1-1-2026.
- Рахунки-фактури для бізнес-клієнтів: Чеки → виберіть чек → Рахунок. Введіть клієнта (або виберіть попереднього); каса створює рахунок із номером (напр. F2026-0001, наскрізна нумерація за рік) як UBL згідно з Peppol BIS Billing 3.0 і як рахунок для друку або збереження у PDF. Надсилання електронною поштою (обидва як вкладення, за бажанням копія бухгалтеру), через Billit до мережі Peppol (
BILLIT_API_KEY,BILLIT_PARTY_ID), через Storecove (STORECOVE_API_KEY,STORECOVE_LEGAL_ENTITY_ID; одержувач визначається за Peppol-ID клієнта, напр. 0208 → BE:EN, 0106 → NL:KVK, інакше електронною поштою через Storecove) або через Banqup від Unifiedpost (BANQUP_CLIENT_ID,BANQUP_CLIENT_SECRET,BANQUP_SPACE_ID;BANQUP_SANDBOX=1для тестового середовища; Banqup перевіряє UBL і сам його доставляє), на власну адресу (FACTUUR_HTTP_URL, напр. бухгалтерська програма або інший сервіс Peppol) або завантаження. Один рахунок на чек; чек уже оплачено, тому "сплачено". Номер KvK/підприємства, IBAN, Peppol-ID, префікс і термін оплати — у розділі Дані в рахунку. Усі рахунки — внизу вкладки (право Оборот за період). - Ключі, секрети та заголовки ніколи не показуються (лише "заповнено"; залишити порожнім = зберегти, Видалити = прибрати) і не записуються в журнал (лише які поля змінилися). Вони зберігаються в базі даних (
vestiging.peppol_gegevens): входять до резервних копій, але не до експорту конфігурації.
Кіоск самообслуговування
Гості замовляють самі на стійці чи планшеті, як у фастфуді, і платять на касі або карткою біля кіоску. Екрани замовлення — частина самої каси, тож меню, ціни, опції, комплекси, happy hours, частини дня, фото, алергени, мови та чек беруться з каси, і їх не треба налаштовувати деінде. На кіоску працює застосунок PinPortal Kiosk 2 (Android, зокрема Sunmi, а також Windows, Linux і macOS), який показує сторінку і друкує чек. Типово вимкнено.
Увімкнення й налаштування (адміністратор): Налаштування → Заклад → Екрани та керування → Кіоск самообслуговування.
- Виберіть, що може вибрати гість: Тут і/або З собою (з собою рахується за ціною з собою і ставкою ПДВ для винесення, якщо їх задано).
- Вітальний текст, через скільки секунд без дотиків кіоск повертається на початок (кошик тоді очищується), і які групи товарів є на кіоску (нічого не позначено = всі).
- Ще щось до цього?: позначте групи товарів (напр. напої, десерти); біля кошика кіоск тоді запропонує кілька товарів із них.
- Оплата, для кожного кіоску (див. Додавання й під'єднання кіоску):
- На касі (типово, як у старому кіоску): гість замовляє, отримує номер видачі й платить на касі. Термінал біля кіоску не потрібен.
- Карткою біля кіоску: гість платить на терміналі біля кіоску.
- Гість обирає: на касі або карткою. Якщо в кіоску немає термінала, оплата на касі.
- На кухню (при оплаті на касі): одразу після замовлення в кіоску (типово) або лише після оплати на касі.
- Чек: на принтері кіоску (типово), на чековому принтері каси або без чека (лише номер на екрані). При оплаті на касі кіоск друкує листок із номером і написом ще не оплачено; касовий чек видається під час розрахунку на касі.
- Статус замовлення на телефоні (за бажанням, типово вимкнено): на чеку кіоску та на фінальному екрані з'являється QR-код. Гість сканує його, бачить свій номер і статус (замовлено, готується, готово) та отримує сповіщення, коли замовлення готове. Працює через портал керування, тож каса має бути до нього підключена.
- Алкоголь і вагові товари ніколи не потрапляють на кіоск: без персоналу не можна перевірити вік, і ваг немає.
- Сканер штрихкодів (необов'язково, типово все вимкнено): позначте, що може робити сканування на кіоску:
- товар у кошик (код товару);
- промокод;
- картка лояльності (гість накопичує бали);
- подарункова або передплачена картка як оплата. Якщо залишку достатньо, замовлення одразу оплачено. Інакше картка оплачує частину, а решту гість сплачує карткою або на касі (тоді це можна й на кіоску лише з оплатою карткою). Після такої часткової оплати гість більше не може скасувати замовлення; замовлення з'являється на касі як Кіоск … · номер.
Сам сканер налаштовують на кіоску: у застосунку PinPortal Kiosk 2 у розділі керування → Сканер штрихкодів (як клавіатура, вбудований сканер або COM-порт), з тестом сканера. Сканер, що працює як клавіатура, працює і без застосунку.
- Поповнити баланс (необов'язково, типово вимкнено; працює лише тоді, коли ввімкнено Поповнюваний баланс): на стартовому екрані кіоску тоді з'являється Поповнити баланс. Гість сканує свою клубну чи подарункову картку (або вводить код), бачить залишок і вибирає суму. Суми ви задаєте самі (від 1 до 6, типово € 10, € 20 і € 50). Оплата — як налаштовано для кіоску: карткою або на касі за номером видачі. Після розрахунку сума зараховується на залишок. Таке поповнення не надсилається на кухню, не показується на екрані виклику й не отримує QR-коду. Максимальний залишок із параметра Поповнюваний баланс діє і тут.
- На мій номер (інтеграція з готелем, типово вимкнено; Налаштування → Готель → Самообслуговування): тоді біля кошика з'являється Записати на мій номер. Гість готелю вводить номер кімнати й прізвище; якщо вони збігаються з гостем, який зараз проживає в цьому номері, замовлення йде на кухню й записується на номер як оплачене (див. Готельне ПЗ: на номер).
- Бельгія (чорна скринька): усе, що ще не протестовано з чорною скринькою, у кіоску автоматично вимкнено (подарункова картка або баланс як оплата, поповнення, промокод, комплексні меню, опції з доплатою, happy hour), так само як на касі.
Додавання й під'єднання кіоску
- У розділі Кіоски введіть назву (напр. Кіоск вхід) і виберіть Додати кіоск. Ви отримаєте код під'єднання з 6 цифр (дійсний 30 хвилин).
- Оберіть у кіоску, як платить гість: типово на касі. Якщо це кіоск із терміналом, оберіть карткою або гість обирає і виберіть термінал цього кіоску (з Налаштування → Оплата).
- Відкрийте на кіоску сторінку кіоску:
- у закладі: у застосунку в керуванні → Vast adres адресу, указану біля налаштування, напр.
http://192.168.1.20:3000/kiosk; - або через портал керування (https, навіть якщо кіоск не в тій самій мережі): прив'яжіть адресу кіоску, указану біля налаштування, до коду кіоску в застосунку, як зі старим кіоском.
- у закладі: у застосунку в керуванні → Vast adres адресу, указану біля налаштування, напр.
- Введіть код під'єднання на кіоску. Готово: кіоск запам'ятовує свій ключ. Під'єднати знову дає новий код; Видалити від'єднує його.
Біля кожного кіоску видно, чи він у мережі.
Як замовляє гість
- Стартовий екран із вітальним текстом; гість вибирає мову (усі мови каси) і торкається, щоб замовити.
- Тут або з собою.
- Меню за групами товарів, з фото, ціною (з happy hour), алергенами і тим, що закінчилося. Товари з вибором або комплекс відкривають вікно вибору.
- Кошик: зміна кількості та, за бажанням, Ще щось до цього?.
- Замовити (оплата на касі): гість бачить свій номер видачі великим на екрані разом із сумою, отримує листок і платить на касі. У касі замовлення відкрите як Кіоск Вхід · 42 (номер, який називає гість); розрахунок як завжди. Після цього воно показується як оплачене на екрані виклику і йде на кухню, якщо це мало статися лише після оплати.
- Оплатити карткою: каса надсилає суму на термінал цього кіоску (те саме підключення оплати, що й на касі). Якщо не вдалося, гість може спробувати ще раз або скасувати (або, якщо можна обирати, усе ж оплатити на касі). Лише після успішної оплати замовлення йде на кухню і закривається. Гість бачить свій номер видачі великим на екрані й отримує чек.
- За кілька секунд кіоск повертається на початок.
У разі збою: сповіщення й аварійний режим (у застосунку кіоску, керування → Bij storing; типово вимкнено). Якщо кіоск не може зв’язатися з касою, на ньому показано Even gesloten. Дві додаткові функції:
- Teams, Slack, Discord, ntfy, Home Assistant, Make або Zapier), а також повідомлення hersteld, коли все знову працює. Кнопкою Testmelding sturen ви перевіряєте адресу.
- Аварійний режим: кіоск зберігає просте меню, яке йому передає сторінка кіоску: товари без варіантів вибору та без комплексних меню, за ціною «тут» (або «з собою», якщо це єдиний варіант).
- Якщо каси немає певний час (типово 60 секунд), гість замовляє з цього меню.
- Гість платить карткою або на стійці. Оплата карткою можлива, лише якщо в застосунку ввімкнено Pinbetaling.
- Друкуються два аварійні талони: один для гостя (N1, N2 …) і один для стійки/кухні. На них зазначено, що це не касовий чек.
- Коли каса повертається, сторінка кіоску заносить аварійні замовлення в касу як Nood N… <кіоск>. Вони не йдуть на кухню (вона вже мала аварійний талон) і не показуються на екрані виклику.
- Оплачено карткою і сума та сама, що в касі: розраховано як Ручна оплата карткою. Інакше (оплата на стійці або інша сума) замовлення залишається відкритим для офіціантів.
- Усе записується в журнал.
- Бельгія: із зареєстрованою касовою системою (GKS, чорна скринька) кожен продаж має одразу проходити через касу та FDM. Аварійний режим тоді, найімовірніше, не дозволено; спершу уточніть. У Бельгії застосунок кіоску вмикає його лише після додаткового підтвердження, а каса показує попередження біля кіоску.
У касі замовлення з кіоску — звичайне замовлення (з собою чи на місці, з назвою Кіоск Вхід) на ім'я працівника Kiosk. Каса створює його сама; ніхто не може увійти під ним. Не робіть його неактивним, інакше кіоск не зможе замовляти. Замовлення з кіоску є у звітах, у розділі Чеки та на екрані виклику. Замовлення, не завершене в кіоску (не замовлене або не оплачене карткою), саме спливає через 30 хвилин.
Оплата карткою в тестовому режимі (Налаштування → Оплата)? Тоді кіоск насправді не приймає гроші; зручно для проби. Без інтернету оплатити карткою неможливо; кіоск тоді повідомляє, що замовити можна біля стійки.
Збій: якщо каса недоступна, застосунок кіоску показує "Тимчасово зачинено" і сам продовжує роботу. Якщо кіоск працює через портал керування і зникає інтернет, застосунок може перейти на касу в локальній мережі (у застосунку: керування → Розширення → У разі збою переходити на локальну мережу); адресу передає сам кіоск.
Вимкнення: кіоск повідомляє, що ненадовго зачинений. Кіоски й налаштування зберігаються. У журналі фіксуються ввімкнення/вимкнення, налаштування, додані й видалені кіоски, під'єднання та скасовані замовлення.
Цифровий меню-борд
Меню з цінами на телевізорі (або іншому моніторі з браузером), прямо з каси. Типово вимкнено; вмикається в Налаштування → Заклад → Екрани та керування → Цифровий меню-борд. Потім відкрийте на телевізорі http://<kassaserver>:3000/menubord (або кнопку На окремому екрані / На планшеті або телефоні з QR-кодом). Без входу і без прив'язки.
- За кожною групою товарів — товари з ціною, у порядку каси. Самі виберіть, які групи (і в якому порядку), від 1 до 4 колонок, темне чи світле оформлення, власний заголовок (порожньо = назва закладу), фото товарів і алергени.
- Завжди актуально: борд запитує меню кожні 10 секунд (і одразу при зміні), тож розпроданий товар (закреслений із позначкою Розпродано або прибраний з борду), вичерпані запаси, happy hour (акційна ціна із закресленою звичайною ціною, а назва й час завершення вгорі) та періоди меню (лише те, що продається зараз) відображаються правильно автоматично.
- Якщо все не вміщується на екрані, сторінки змінюються (типово кожні 12 секунд, налаштовується від 5 до 120).
Персонал і PIN-коди
Налаштування → Персонал (лише адміністратор): додавати працівників, змінювати ім’я, роль і PIN-код, деактивувати.
- Ролі: офіціант (замовлення, розрахунок, X-звіт), менеджер (додатково знижки, повернення, закриття дня, грошова шухляда й журнал) і адміністратор (усе, включно з усіма Налаштуваннями). Це типові права; що можуть офіціант і менеджер, можна змінити (див. Права за ролями).
- PIN-код від 4 до 8 цифр, унікальний серед активних працівників. PIN-коди зберігаються в базі даних лише в зашифрованому вигляді (hash), і прочитати їх неможливо.
- Повністю видалити неможливо (чеки й журнал посилаються на працівника); деактивовано = більше не може увійти.
- Завжди залишається щонайменше один активний адміністратор.
- Інша роль, новий PIN-код або деактивація: поточні сеанси цього працівника одразу завершуються.
- Бельгія: за бажанням — національний реєстраційний номер для реєстрації персоналу.
- Мова: мова екранів для цього працівника (або "Мова пристрою"). Після входу каса одразу працює цією мовою; працівник також може сам змінити її за допомогою прапорця внизу праворуч (див. Мови).
- Порада: замініть демо-PIN-коди 1111 і 2222, перш ніж каса почне працювати.
Вхід за карткою (за бажанням)
За замовчуванням вимкнено. Увімкнути: Налаштування → Персонал, позначка Вхід за карткою (NFC, RFID або iButton). Потрібно: USB-зчитувач карток, що працює як клавіатура (для NFC- або RFID-карток, брелоків, браслетів або ключів iButton). Такий зчитувач "друкує" номер картки й натискає Enter; драйвер чи інтеграція не потрібні.
- Прив'язка: натисніть на працівника, потім Прив'язати картку і прикладіть картку до зчитувача. Одна картка належить одному працівнику. Прибрати картку, якщо її загублено.
- Вхід: на екрані входу прикладіть картку до зчитувача. PIN-код також і далі працює як звичайно.
- Початок і кінець зміни (якщо ввімкнено): на екрані входу Початок / кінець зміни і картку до зчитувача.
- Номер картки зберігається в базі даних лише в зашифрованому вигляді (hash), як і PIN-код. Деактивовані працівники не можуть увійти й за своєю карткою.
- Вимк.: вхід лише за PIN-кодом, як завжди. Прив'язані картки зберігаються.
Права за ролями
Налаштування → Права (лише адміністратор): для кожної ролі позначте, що можуть офіціант і менеджер. Типово все точно як описано вище (як каса працювала завжди); клітинка, що відрізняється, виділена кольором.
| Право | Офіціант | Менеджер |
|---|---|---|
| Скасовувати рядки після замовлення (сторно) | так | так |
| Надавати знижку / прибирати знижку | ні | так |
| Позначати товар як «закінчився» | так | так |
| Друкувати копію чека | так | так |
| Повернення (кредитний чек) | ні | так |
| Розрахунок за рахунком і прийом платежів за рахунком (лише з увімкненою оплатою за рахунком) | ні | так |
| Проміжний підсумок (X-звіт) | так | так |
| Закрити день (Z-звіт) | ні | так |
| Виручка за період | ні | так |
| Керувати грошовою шухлядою | ні | так |
| Керувати подарунковими сертифікатами (лише з подарунковими картками з балансом) | ні | так |
| Читати відгуки й відповідати на них (лише з увімкненим керуванням відгуками) | ні | так |
| Керування карткою лояльності (лише з увімкненою карткою лояльності) | ні | так |
| Переглядати журнал | ні | так |
| Перегляд камер (лише з увімкненим відео з камер) | ні | так |
| Керувати запасами (лише з увімкненим обліком запасів) | ні | так |
| Керування товарами | ні | ні |
| Керувати планами залу | ні | ні |
| Налаштовувати заклад, оплату й принтери | ні | ні |
| Переглядати й коригувати робочий час | ні | ні |
- Адміністратор завжди може все. Зміна персоналу й прав завжди лишається тільки за адміністратором (інакше хтось міг би надати собі більше прав).
- Кнопки та вкладки, недоступні ролі, для неї приховано; касовий сервер теж це перевіряє. Якщо менеджер отримує, напр., Керувати товарами, він бачить кнопку Налаштування лише з вкладкою Товари.
- Зміни одразу діють на всіх касах і записуються в журнал. Повернути стандарт відновлює все, як було.
Дані закладу
Налаштування → Заклад (лише адміністратор): назва, адреса, поштовий індекс, місто, телефон і номер платника ПДВ закладу. Вони друкуються вгорі кожного чека та pro forma. Тут також налаштовується текст унизу чека (можна кілька рядків; порожньо = без тексту; типово «Bedankt en tot ziens!»), а під ним — мова касового чека (типово нідерландська; див. Мови). Попередній перегляд чека оновлюється наживо. Після збереження наступний чек одразу використовує нові дані. Країну й фіскальні дані (GKS) тут навмисно змінити не можна. У Бельгії номер платника ПДВ обов’язковий. Позначка Округлювати оплату готівкою до 5 центів (за замовчуванням вимкнено) округлює суму при оплаті готівкою (€ 6,62 → € 6,60, € 6,63 → € 6,65); різниця вказується в чеку як «Округлення». Картка — завжди точно до цента.
Керування товарами
Увійдіть як адміністратор і виберіть Налаштування → Товари.
- Додавати, змінювати (назва, ціна, група, ставка ПДВ у закладі та з собою, назва на чеку, код, розпродано) і видаляти групи товарів і товари. І групи, і товари можуть мати власний колір; товар із кольором отримує кольорову кнопку на екрані замовлення (текст автоматично білий або темний для читабельності).
- Порядок змінюється перетягуванням групи чи товару за ≡. Це працює мишею та пальцем на планшеті. Саме цей порядок потім буде на екрані замовлення; відкриті екрани каси оновлюються одразу.
- Видалення прибирає товар із каси, але старі замовлення та фіскальний журнал і далі його пам’ятають. Групу можна видалити лише тоді, коли вона порожня.
- Опції: відкрийте товар або групу товарів і додайте в розділі «Опції» групи опцій, напр. «Ступінь просмаження» (рівно одна, обов’язково), «Соус» (не більше однієї) або «Додатково» (кілька, з мінімумом і максимумом; порожній максимум = без обмежень). Кожна опція має назву й доплату (може бути від’ємною, напр. -0,50). Групи опцій групи товарів діють для всіх товарів цієї групи, на додачу до власних опцій товару. Порядок — кнопками ▲▼. Видаляти можна завжди: наявні замовлення й чеки самі зберігають вибрані опції. Сервер також перевіряє обов’язкові опції та максимум.
- Фото товару: див. Фото товарів.
- Ціна за кілограм, номер PLU і тара (лише якщо ваги ввімкнено): див. Налаштування ваг. Без позначки товар продається поштучно, як і раніше.
Фото товарів
Кожен товар може мати фото.
- Додати фото: Налаштування → Товари → виберіть товар → Вибрати фото (на планшеті чи телефоні можна одразу з камери). Фото зменшується в браузері максимум до 512 × 512 пікселів (JPEG, зазвичай 20–80 kB) і одразу зберігається; Інше фото замінює його, Видалити фото прибирає. У списку товарів перед назвою є маленьке фото. Лише з правом Керувати товарами; jpg, png і webp, максимум 512 kB.
- Показ адміністратор вибирає в Налаштування → Заклад → Фото товарів, окремо для кожного варіанта й типово вимк.:
- Фото товару на кнопках екрана замовлення: фото вгорі кнопки товару, під ним назва й ціна.
- Фото товару біля товарів на екрані клієнта: маленьке фото перед кожним рядком на екрані клієнта (сам екран клієнта теж має бути ввімкнений). Товари без фото лишаються як є; якщо вимкнено, усе працює точно як раніше.
Сканер штрихкодів
Сканером штрихкодів на касі ви скануєте товари, промокоди, картки лояльності та подарункові картки. Увімкнення: Налаштування → Сканер (вкладка поруч із принтерами та вагою; типово вимкнено). Позначте, що робить сканування на екрані замовлення:
- Товар у чек: товар із цим кодом (Налаштування → Товари, поле Код; напр. штрихкод EAN на упаковці). Якщо є варіанти, меню або ціна за кілограм, спочатку відкривається вікно вибору або вага, як при натисканні. Те саме робить Сканування на екрані замовлення в Друк етикеток; воно й далі працює як раніше.
- Промокод у чек (якщо промокоди ввімкнено).
- Картка лояльності: клієнт із цим номером картки додається до чека (якщо картку лояльності ввімкнено). Якщо ви скануєте невідомий код на чеку з клієнтом, каса запитає, чи це його нова картка.
- Подарункова або передплачена картка: каса показує залишок (якщо подарункові картки з балансом увімкнено). Оплата — у Розрахунок → Подарункова картка; там картку теж можна відсканувати.
Каса шукає спочатку серед товарів, потім серед карток лояльності, подарункових карток і промокодів. Сканування працює на екрані замовлення, якщо курсор не стоїть у полі введення. У полі введення код просто потрапляє в це поле.
Тест сканера: у Налаштування → Сканер при кожному скануванні видно код і як каса його розпізнає, навіть якщо сканер ще вимкнено. Якщо не працює:
- Перемкніть сканер у режим клавіатура (USB-HID) з Enter після коду. У більшості сканерів так уже є.
- Вбудований сканер (напр. каси Sunmi) налаштовують у налаштуваннях сканера пристрою на введення з клавіатури.
- Етикетки ваги TS6X (вага й ціна) обробляє сама вага, навіть коли сканер увімкнено.
На кіоску сканер налаштовують окремо (Налаштування → Заклад → Кіоск); див. Кіоск самообслуговування.
Друк етикеток
Етикетки товарів із назвою, ціною і штрихкодом на принтері етикеток (Brother, Dymo, Zebra ...), встановленому на комп'ютері чи планшеті. Вмикається в Налаштування → Заклад → Друк етикеток (за замовчуванням вимкнено). Там же вибирається розмір етикетки (38 × 25, 57 × 32, 62 × 29 або 100 × 50 мм) і чи будуть на ній ціна й штрихкод. Пробний друк друкує одну пробну етикетку.
- Налаштування → Товари → (товар) → Етикетки: виберіть кількість і натисніть Друкувати.
- Закупівлі → (отримане замовлення) → Друк етикеток: для кожного товару стільки етикеток, скільки надійшло (отримані одиниці замовлення × кількість в одиниці замовлення; без інгредієнтів). Не більше 500 етикеток за раз.
- Каса відкриває діалог друку: виберіть у ньому принтер етикеток і формат паперу рулону. Кожна етикетка — одна сторінка.
- Штрихкод — це код товару (Налаштування → Товари): 8 або 13 цифр із правильною контрольною цифрою = EAN (12 цифр: контрольна цифра додається), інакше Code 128 (літери, цифри й розділові знаки, до 30 символів). Без коду немає штрихкоду.
- Сканування на екрані замовлення (прапорець, за замовчуванням вимкнено): сканер штрихкодів, що працює як клавіатура, додає товар із цим кодом зі звичайними варіантами вибору (опції, вага, алергія). Не разом із вагою TS6X, яка має власні етикетки з вагою і ціною.
- Право: Керувати товарами або Керувати запасами.
Налаштування ваг (A&D, Aclas, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec, Zebra)
Окрема вкладка Налаштування → Вага (право Налаштовувати заклад, оплату й принтери, типово лише адміністратор; вкладка є завжди, навіть якщо ваги ще вимкнені). Типово вимк.: тоді каса працює точно як раніше. Не бачите вкладку?
Автоматичний пошук. Якщо ще нічого не налаштовано, каса під час відкриття цього розділу сама виконує пошук (кнопка Пошук повторює його):
- каса (сервер) сама працює на ПК- або ШІ-вагах Aclas (TS6X, TS3X, TS5EX/NX/GX, iS6X, iS2X, iR6X, Ti6X, iL8X; марка/модель пристрою: Windows через WMI, Android через
getprop, Linux через DMI) і відповідає Aclas Scale Module? Тоді ці ваги налаштовуються як На цьому пристрої, і ваги з етикетками також; у Linux (немає Scale Module) вбудовані ваги на знайденому внутрішньому порту (/dev/ttyS...) як "TS6X (ingebouwd)", з моделлю; - чи підключено OS6X до COM-/USB-порту? Кожен порт перевіряється на 9600, 4800, 2400 і 19200 бод: спершу коротке прослуховування (безперервно), потім надсилання
W(Toledo), а інакше Dialog 06 (9600, 7 біт даних, непарність: запит стану).
Знайдене вноситься у форму з кнопкою Увімкнути й використовувати: один дотик — і все працює. (Пошук надсилає W на кожен вільний COM-порт; зайнятий порт, напр. платіжним терміналом, пропускається.)
Усі ваги Aclas. Для кожних ваг ви вибираєте модель; тоді каса знає, як їх можна підключити. Є два види:
- На цьому пристрої (налаштовується один раз): каса працює на вагах (ПК- або ШІ-ваги). З Windows або Android вона зважує через Aclas Scale Module, без порту, швидкості чи протоколу; з Linux (немає Scale Module) через внутрішній порт ваг (зазвичай
/dev/ttyS0або/dev/ttyS1), з портом, швидкістю і протоколом. На касу є лише одні такі ваги; пошук знаходить їх сам. ПК- або ШІ-ваги (TS6X, iS6X ...) завжди На цьому пристрої: у списку вони можуть бути лише один раз, а інші моделі ПК/ШІ тоді вже не можна вибрати. TS6X в іншому місці закладу все одно може друкувати етикетки (тоді ввімкніть лише Сканувати етикетки). - Підключені (кілька одночасно): ваги підключені до сервера каси кабелем (RS232/USB), через Bluetooth або мережу. Скільки потрібно (не більше 8), кожні з власною назвою.
Один список, дві позначки. Усі ваги в одному списку. Для кожних ваг ви позначаєте, що вони роблять: Зважування біля каси (каса запитує вагу під час замовлення) та/або Сканувати етикетки (ваги друкують етикетку зі штрихкодом, яку сканує каса, і отримують PLU від каси). ПК- або ШІ-ваги, як-от TS6X, вміють обидва; ваги з друком етикеток LS — лише етикетки. Етикетки можуть надходити лише з одних ваг на заклад.
| Модель | Вид | Підключення | У касі |
|---|---|---|---|
| OS6X | POS-ваги | RS232, USB, Bluetooth | підключені, кілька одночасно |
| OS2X | POS-ваги | RS232, USB | підключені, кілька одночасно |
| CS6X, CS3X | Касові ваги | RS232, USB, Ethernet, wifi | підключені, кілька одночасно |
| TS6X, TS3X, TS5EX, TS5NX, TS5GX | ПК-ваги (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | на цьому пристрої (1x), також як ваги з етикетками |
| iS6X, iS2X, iR6X, Ti6X, iL8X | ШІ-ваги з розпізнаванням товарів (Windows, Android, Linux) | RS232, USB, Ethernet, wifi | на цьому пристрої (1x), також як ваги з етикетками |
| iS5X, OiT2X | ШІ-ваги (лише Linux) | RS232, USB, Ethernet | підключені або як ваги з друком етикеток |
| LS2S, LS2RX, LS2CX, LS2NX, LS5SX, LS5RX, LS5CX, LS5NX, LS6CX, LS6RX, LS6NX | Ваги з друком етикеток | RS232, Ethernet, wifi | сканування етикеток і PLU |
| PS1CX, PS1DX, PS6CX, PS6DX | Ваги з розрахунком ціни | RS232 | підключені, кілька одночасно |
| PS1BX | Ваги з розрахунком ціни без підключення | немає | вага вручну |
| LH15X | Підвісні ваги з принтером етикеток | RS232, Ethernet, wifi | підключені або як ваги з друком етикеток |
A&D, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec і Zebra. Додано поширені моделі цих марок, для яких точно відомо, як каса з ними спілкується (потребує перевірки = протокол не вказано дослівно в жодному джерелі; каса обирає найімовірніший). Усі підключені (кілька одночасно) або як ваги з етикетками, етикетку яких сканує каса:
| Марка | Модель | Вид | Підключення | Протокол (заводський) | У касі |
|---|---|---|---|---|---|
| A&D | EK-i (зокрема EK-610i), HV-WP | Касові ваги (лише вага) | RS232, EK-i також USB | Безперервно (режим stream), 2400 бод, 7E1 | підключені, кілька одночасно |
| Adam Equipment | Swift | Ваги з розрахунком ціни | RS232, USB (опція) | Безперервно (безперервно на ПК), 9600 8N1 (потребує перевірки) | підключені, кілька одночасно |
| Avery Berkel | FX110, FX120, FX131 (вбудовані, зі сканером) | Касові ваги | RS232, FX131 також USB | Mettler Toledo 82/7 = Toledo 8217 (каса надсилає W), 9600 бод, 7E1 | підключені, кілька одночасно |
| Avery Berkel | FX125 | Ваги з розрахунком ціни | RS232 | Checkout-Dialog 06 (9600, 7O1) | підключені, кілька одночасно |
| Avery Berkel | Xs, XTs, XTi | Ваги з друком етикеток | Ethernet, Wi-Fi, USB | власні PLU на вагах | сканувати етикетки |
| Avery Weigh-Tronix | 7820, 7829, ZP900 | Касові ваги | RS232, 7820 також USB, ZP900 також USB і Ethernet | NCI (каса надсилає W), 9600 бод, 7E1 | підключені, кілька одночасно |
| Balanzas Marques | BM1000P TOP | Касові ваги (лише вага) | RS232 | METTLER (каса надсилає W, Toledo), 9600 бод, 7E1 | підключені, кілька одночасно |
| Balanzas Marques | BM5 Junior Tower Label, BM500 ETQ | Ваги з друком етикеток | Ethernet, USB, RS232, BM500 ETQ також wifi | власні PLU на вагах | сканувати етикетки |
| Baxtran | TW, VW, XTA, XTA-P | Ваги з розрахунком ціни | RS232 | Toledo (каса надсилає W), 9600 бод, 7E1 | підключені, кілька одночасно |
| Bizerba | CS 300 (також вбудовані) | Касові ваги | RS232 | Checkout-Dialog 06 (9600, 7O1) | підключені, кілька одночасно |
| Bizerba | K-Class Flex, KH II | Ваги з друком етикеток | Ethernet | власні PLU на вагах | сканувати етикетки |
| Brecknell | 6702U, 6710U, 6720U | Касові ваги | RS232, USB (віртуальний COM-порт) | NCI (каса надсилає W), 9600 бод, 7E1 | підключені, кілька одночасно |
| CAS | PD-II, PDN, PDI, PDS-B | Касові ваги | RS232, PDN також USB і Bluetooth, PDI також USB | ECR type 2 = Toledo (каса надсилає W), 9600 бод, 7E1 | підключені, кілька одночасно |
| CAS | CL3000, CL5500, CL7200 | Ваги з друком етикеток | Ethernet, USB, RS232, CL5500 і CL7200 також wifi | власні PLU на вагах | сканувати етикетки |
| Datalogic | Magellan 9300i, 9400i, 9800i (сканер із вагами) | Касові ваги | RS232 (окремий ваговий порт), USB | Mettler Toledo 8217 (каса надсилає W), 9600 бод, 7E1 | підключені, кілька одночасно |
| Dibal | KS-400, D-POS 400 | Касові ваги | RS232, D-POS 400 також USB | Checkout-Dialog 06 (9600, 7O1) | підключені, кілька одночасно |
| Dibal | G-325, PI-100 | Ваги з розрахунком ціни | RS232 | Checkout-Dialog 06 (9600, 7O1) | підключені, кілька одночасно |
| Dibal | M-500 (Mistral), D-900, CS-2200 | Ваги з друком етикеток | Ethernet, Wi-Fi, USB | власні PLU на вагах | сканувати етикетки |
| DIGI | DS-781 | Ваги з розрахунком ціни | RS232 | DIGI Type B (каса надсилає ENQ), 9600 8N1 | підключені, кілька одночасно |
| DIGI | SM-120, SM-6000 | Ваги з друком етикеток | Ethernet, Wi-Fi | власні PLU на вагах | сканувати етикетки |
| Dini Argeo | DFW, DGT, 3590E | Касові ваги (лише вага) | RS232, USB, Ethernet, DFW і 3590E також wifi | Безперервно (ST,GS, 0.512,kg), 9600 8N1 | підключені, кілька одночасно |
| Excell Precision | TPE, AM4, FD4-P, FDP4-P, GE4, GEP4 | Ваги з розрахунком ціни | RS232 | Безперервно (ST,GS,+0.876kg), 9600 8N1 (крім TPE, потребує перевірки) | підключені, кілька одночасно |
| Gram | XFOC RS, XFOC+ RS, ZFOC RS | Ваги з розрахунком ціни | RS232, USB (кабель Gram) | Gram (каса надсилає ENQ, потім DC1), 9600 8N1 (XFOC потребує перевірки) | підключені, кілька одночасно |
| Ishida | Uni-3, Uni-5, Uni-7, Uni-9 | Ваги з друком етикеток | Ethernet, Wi-Fi, USB | власні PLU на вагах | сканувати етикетки |
| Kern & Sohn | RPB, RFC | Ваги з розрахунком ціни | RS232, USB | Checkout-Dialog 06 (Prot = DLG-06, 9600, 7O1) | підключені, кілька одночасно |
| Kern & Sohn | RFE (з ціною), IFB, EOC | Ваги з розрахунком ціни / касові ваги | RS232 | Безперервно, 9600 8N1 | підключені, кілька одночасно |
| Mettler Toledo | Ariva-S | Касові ваги | RS232, USB (віртуальний COM-порт) | Toledo 8217 (каса надсилає W), 9600 бод, 7E1 | підключені, кілька одночасно |
| Mettler Toledo | Viva | Касові ваги | RS232 | Toledo 8217, 9600 бод, 7E1 | підключені, кілька одночасно |
| Mettler Toledo | bPlus, UC Evo | Ваги з друком етикеток | Ethernet, Wi-Fi | власні PLU на вагах | сканувати етикетки |
| Minebea Intec | Signum, Combics, Midrics, Puro | Касові ваги (лише вага) | RS232, USB, Signum і Combics також Ethernet | Безперервно (SBI, автоматичний друк), 9600 8N1 | підключені, кілька одночасно |
| Ohaus | Aviator 7000 | Ваги з розрахунком ціни | RS232 або USB | Checkout-Dialog 06 (9600, 7O1) | підключені, кілька одночасно |
| Ohaus | Valor 7000, Ranger 3000, Ranger 4000, Ranger 7000, Defender 3000 | Касові ваги (лише вага) | RS232, USB, Ethernet | Безперервно (Auto Print Continuous), 9600 8N1 | підключені, кілька одночасно |
| Precia Molen | DP400 | Касові ваги | RS232, USB | Checkout-Dialog 06 (9600, 7O1) | підключені, кілька одночасно |
| Precia Molen | DPOS CR, C 210 B, C 210 C | Ваги з розрахунком ціни | RS232 | Checkout-Dialog 06 (9600, 7O1; C 210 потребує перевірки) | підключені, кілька одночасно |
| Precia Molen | Corail 500 | Ваги з друком етикеток | Ethernet, Wi-Fi | власні PLU на вагах | сканувати етикетки |
| Precisa | XB, XT, LS, LX (прецизійні ваги) | Касові ваги (лише вага) | RS232, LS і LX також USB | Безперервно (режим друку CONTINUOUS), 9600 8N1 | підключені, кілька одночасно |
| Rice Lake | BenchPro BP-S, BenchPro BP-R | Касові ваги | RS232 | BP-S Toledo 8213, BP-R NCI (в обох випадках каса надсилає W), 9600 бод, 7E1 (потребує перевірки) | підключені, кілька одночасно |
| Rongta | RLS1000, RLS1100 | Ваги з друком етикеток | Ethernet, RS232, wifi | власні PLU на вагах | сканувати етикетки |
| Sartorius | Entris, Quintix | Касові ваги (лише вага) | RS232, USB | Безперервно (SBI, автоматичний друк), 9600 8N1 | підключені, кілька одночасно |
| Star Micronics | mG-T12, mG-T30, mG-T60, mG-S8200 | Касові ваги (лише вага) | RS232, USB (віртуальний COM-порт) | Безперервно, 9600 8N1 (потребує перевірки) | підключені, кілька одночасно |
| T-Scale | PA10, PA15, PEA10 | Ваги з друком етикеток | Ethernet | власні PLU на вагах | сканувати етикетки |
| UWE | ASEP | Ваги з розрахунком ціни | RS232 | Безперервно, 9600 8N1 (потребує перевірки) | підключені, кілька одночасно |
| Wedderburn | TSDS983 | Касові ваги | RS232 | DIGI Type B (каса надсилає ENQ), 9600 8N1 (потребує перевірки) | підключені, кілька одночасно |
| Wedderburn | TSDS781T, TSDS782T | Ваги з розрахунком ціни | RS232 | DIGI Type B, 9600 8N1 (потребує перевірки) | підключені, кілька одночасно |
| Wedderburn | TSSM120 | Ваги з друком етикеток | Ethernet, RS232 | власні PLU на вагах | сканувати етикетки |
| Wintec | ScalePOS ACS-S60E (каса з вбудованими вагами) | Касові ваги | внутрішній COM6 (Windows) або COM4 (Android) | Безперервно, 9600 8N1 (потребує перевірки) | підключені |
| Zebra | MP7000, MP72 (сканер із вагами) | Касові ваги | RS232 (порт AUX) | SASI = Toledo (каса надсилає W), 9600 бод, 7E1 (потребує перевірки) | підключені, кілька одночасно |
- A&D EK-i і HV-WP: переведіть ваги в режим stream (EK-i:
prt 0; із заводу стоїть друк клавішею PRINT), а на касі встановіть Безперервно з 2400 бод і 7E1 (так A&D налаштовані із заводу). Повідомлення:ST,+00512.00 g(US= вага нестабільна,OL= завелика вага). - Adam Equipment Swift: встановіть на вагах безперервно на ПК (8N1); тоді каса стоїть на Безперервно.
- Avery Berkel FX110, FX120 і FX131: оберіть на вагах протокол Mettler Toledo 82/7, а на касі встановіть Запит (Toledo) з 7E1 (9600 бод). Dialog 06 теж підходить. FX125 (з дисплеєм ціни) не підтримує Toledo: там Dialog 06. Каса налаштує це сама, коли ви оберете модель.
- Avery Weigh-Tronix 7820, 7829 і ZP900 та Brecknell 6702U, 6710U і 6720U: NCI, протокол Weigh-Tronix. Каса надсилає
W(як і для Toledo), ваги відповідають вагою (1.234KG) і рядком стану; він показує, чи вага нестабільна, завелика чи замала. Каса стоїть на Запит (Toledo) з 7E1 (9600 бод). USB працює як віртуальний COM-порт. Для ZP900 встановіть на касі порт 2 (NCI). Для 67xxU на вагах можна також обрати 8213 (SCP03). - Balanzas Marques BM1000P TOP: для COM-порту оберіть протокол B (METTLER) і 9600 бод, 7 біт даних, парну парність; тоді каса стоїть на Запит (Toledo) з 7E1.
- Baxtran TW, VW, XTA і XTA-P (ваги з розрахунком ціни; VW і XTA-P зі стійкою): у меню RS232 ваг оберіть протокол Toledo, 9600 бод і 7 біт даних з парною парністю (7E1); тоді каса стоїть на Запит (Toledo) з 7E1. Каса налаштує це сама, коли ви оберете модель. CONT (ваги надсилають самі) теж працює: тоді встановіть на касі Безперервно з тією самою швидкістю і бітами даних. Підключення кабелем RS232 (9-контактним) або кабелем USB–RS232.
- Bizerba CS 300: Checkout-Dialog 06 (специфікація Bizerba): каса надсилає ціну за кг, повірені ваги рахують суму. Якщо ваги просять контрольні коди, ви отримаєте їх від Bizerba або постачальника.
- CAS PD-II, PDN, PDI і PDS-B (PDS-B, зокрема, у LRE): оберіть на вагах ECR type 2 (Toledo), а на касі встановіть Запит (Toledo) з 7E1 (9600 бод).
- Datalogic Magellan 9300i, 9400i і 9800i: встановіть Scale Interface Type окремого вагового порту на Mettler Toledo 8217, а на касі Запит (Toledo) з 7E1.
- Dibal KS-400, D-POS 400, G-325 і PI-100: оберіть на вагах протокол Checkout_Dialog06 (протокол 24) і 9600 бод, 7 біт даних, непарність (тип параметра 5); тоді каса стоїть на Dialog 06. D-POS 400 також підключається через USB.
- DIGI DS-781: встановіть на вагах Type B / стандартна команда (data transmission
00011); каса надсилаєENQі отримує нетто, тару, ціну за кг і суму. - Dini Argeo DFW, DGT і 3590E: налаштуйте послідовний порт на безперервне надсилання (9600 8N1); тоді каса стоїть на Безперервно.
- Excell Precision TPE (і 4-ге покоління AM4, FD4-P, FDP4-P, GE4, GEP4): встановіть вихід RS232 на безперервно (9600 8N1); тоді каса стоїть на Безперервно.
- Gram XFOC RS, XFOC+ RS і ZFOC RS: протокол Gram (9600 8N1). Каса надсилає
ENQ, ваги відповідаютьACK, каса надсилаєDC1, і ваги надсилають вагу:SOH STX S/U/F teken gewicht eenheid BCC ETX EOT(S= стабільна,U= рухається,F= помилка; BCC = XOR від статусу до одиниці виміру включно). Підключення через RS232 або USB-кабель Gram. - Kern & Sohn RPB і RFC: встановіть на вагах
Prot = DLG-06(підключення до каси — опція 965-419); тоді каса стоїть на Dialog 06. RFE, IFB і EOC: безперервне надсилання (8N1), каса на Безперервно. - Mettler Toledo Ariva/Viva: встановіть на вагах протокол Toledo (8217), а на касі Запит (Toledo) з Біти даних / парність = 7E1 (Mettler: 9600 бод, 7 біт даних, парна парність; Ariva також підключається через USB як віртуальний COM-порт). Каса налаштує це сама, коли ви оберете модель.
- Minebea Intec Signum, Combics, Midrics і Puro та Sartorius Entris і Quintix: SBI з автоматичним друком (9600 8N1); тоді каса стоїть на Безперервно. Повідомлення:
N + 0.512 kg; без одиниці виміру вага ще не стабільна. - Ohaus Aviator 7000: у налаштуваннях ваг (крок 20) оберіть протокол Dialog 06; тоді каса стоїть на Dialog 06. RS232 або USB, залежно від кабелю.
- Ohaus Valor 7000, Ranger 3000/4000/7000 і Defender 3000 (зважування без ціни): встановіть на вагах Auto Print Continuous (9600 бод, 8N1), а на касі Безперервно. Ваги надсилають
0.512 kg G;?після ваги означає, що вага ще не стабільна. Ranger 7000 також підключається через Ethernet (TCP-порт 9761). - Precia Molen DP400, DPOS CR і C 210 (торговельні ваги з 2025 року належать Dibal): Dialog 06 (9600 7O1), як у Dibal. Якщо з C 210 не працює, спробуйте Запит (Toledo) з 7E1.
- Precisa XB, XT, LS і LX: встановіть режим друку CONTINUOUS і 9600 8N1, без дати, часу та ID у рядку; тоді каса стоїть на Безперервно. Без одиниці виміру вага ще не стабільна.
- Rice Lake BenchPro BP-S (Toledo 8213) і BP-R (NCI): каса стоїть на Запит (Toledo) з 7E1.
- Star Micronics mG-T і mG-S8200: через RS232 або USB (віртуальний COM-порт, із драйвером Star) на Безперервно.
- UWE ASEP: RS232 до ПК/каси, каса на Безперервно (потребує перевірки).
- Wedderburn TSDS983, TSDS781T і TSDS782T — це ваги DIGI під власним номером: DIGI (Type B), як і DIGI DS-781. Якщо не працює, спробуйте Запит (Toledo) з 7E1.
- Wintec ScalePOS ACS-S60E: каса працює на самому ScalePOS; вбудовані ваги підключені до COM6 (Windows) або COM4 (Android), 9600 8N1. Оберіть Безперервно; якщо ваги нічого не надсилають, Пошук знайде правильний протокол.
- Zebra MP7000 і MP72: порт RS232 AUX із заводу налаштований на SASI (9600 7E1, каса надсилає
W): на касі Запит (Toledo) з 7E1. - Ваги з етикетками цих марок (Avery Berkel, Balanzas Marques, Bizerba, CAS, Dibal, DIGI, Ishida, Mettler Toledo, Precia Molen, Rongta, T-Scale, Wedderburn) — це самостійні системи з власним файлом PLU. Увімкніть для ваг Сканувати етикетки і задайте той самий штрихкод, що й на вагах (EAN-13, початок 20–29, PLU і вага або ціна). PLU задають на самих вагах або в програмі марки; Надіслати на TS6X і Завантажити файл PLU є лише для Aclas.
Той самий список є в касі в Налаштування → Вага → Усі ваги (ACLAS_MODELLEN у packages/shared/src/weegschaal.ts, з маркою для кожної моделі).
Якомога менше заповнювати: коли ви обираєте модель, каса готує решту так, як марка налаштовує на заводі: підключення COM-порт / USB на першому вільному порту, 9600 бод (A&D: 2400) і протокол марки (Toledo: Aclas з 8N1, а з 7E1 Avery Berkel FX, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo, Rice Lake і Zebra; Dialog 06: Avery Berkel FX125, Bizerba, Dibal, Kern & Sohn RPB/RFC, Ohaus Aviator і Precia Molen; DIGI Type B: DIGI і Wedderburn; Gram: Gram; Безперервно: A&D, Adam Equipment, Dini Argeo, Excell Precision, інші Kern & Sohn, Minebea Intec, інші Ohaus, Precisa, Sartorius, Star Micronics, UWE і Wintec), а також назву (напр. OS6X, OS6X 2). ПК- або ШІ-ваги стають На цьому пристрої (напр. TS6X (ingebouwd); у Linux на внутрішньому порту /dev/ttyS0). Якщо щось не так, Пошук знайде правильний порт, швидкість і протокол.
На цьому пристрої (Aclas Scale Module): ваги показують повірену вагу; каса надсилає ціну за кг і тару (як попередню тару) та бере суму, яку рахують ваги, так само як з Dialog 06.
- Android: застосунок Aclas AclasScaleDriver (
com.aclas.aclasscaledriver) зазвичай уже є на вагах; якщо ні, встановітьaclas-android/AclasScaleDriver.apk. Застосунок HorecaPOS напряму спілкується зі службою цього застосунку, тож додаткова бібліотека не потрібна. - Linux: Aclas не має Scale Module для Linux. Просто оберіть модель (напр. TS6X): підключення тоді стає На цьому пристрої (внутрішній порт) на
/dev/ttyS0, 9600 бод, Toledo. Вбудовані ваги зазвичай на/dev/ttyS0або/dev/ttyS1; пошук перевіряє їх і заповнює правильний порт, швидкість і протокол. Тут також лише один раз.
Програмне забезпечення Aclas входить до каси: Scale Module для Windows (aclas-module), AclasScaleDriver для Android (aclas-android) і Aclas Sync SDK для Windows і Linux (aclas-sdk). Aclas дозволяє нам їх постачати. Інсталятори для Windows і Linux їх містять; нічого не треба окремо завантажувати чи встановлювати.
Bluetooth (напр., OS6X): спершу з'єднайте ваги. Windows робить із них COM-порт (Параметри Bluetooth → Інші параметри Bluetooth → COM-порти), Linux /dev/rfcomm0: введіть цей порт. У застосунку Android ви вводите адресу Bluetooth (00:11:22:AA:BB:CC); застосунок один раз просить дозвіл на Пристрої поблизу і підключається через Bluetooth SPP.
ШІ-ваги (розпізнавання товарів): камера розпізнає товар у програмі Aclas на вагах. Зважування працює через Scale Module (на цьому пристрої) або порт RS232; ШІ-ваги з друком етикеток після розпізнавання друкують етикетку зі штрихкодом, яку сканує каса (як з TS6X).
Aclas AI Recognition Plugin (ШІ-ваги, на яких працює каса, напр. iS6X з Windows): плагін Aclas розпізнає товар і вводить його штрихкод у касу, як сканер (з Enter після нього); екран замовлення додає товар із вагою до замовлення. Як це налаштувати:
- Увімкніть для ваг Сканувати етикетки з тим самим штрихкодом, що й у плагіні. Рекомендовано: починається з
27, PLU 5 цифр, вага (Aclas тип 17): тоді каса сама рахує за ціною за кілограм. З ціною (тип 12, починається з22) теж можна. - Для цих ваг вимкніть Зважування біля каси: плагін і Scale Module не можуть одночасно працювати з вагами. Вага береться зі штрихкоду. Якщо плагін відповідає на Пошук, каса пропонує його результат і не запускає Scale Module. Без коду активації плагін зважує й розраховує суму, але не розпізнає товари.
- У самому плагіні: штрихкод у Scale and Barcode Format Settings → Default Barcode Format (тип 17), а в налаштуваннях вікна — точка, де плагін клацає і вводить код. Виберіть для цього порожнє місце на екрані замовлення, не на кнопці. Нових товарів заклад навчає плагін сам на вагах (навчання ШІ).
- Призначте ваговим товарам номер PLU і надішліть PLU на ваги (Надіслати на TS6X або файл PLU); плагін розпізнає за номером PLU.
- Каса дозволяє плагіну розпізнавати лише доки екран замовлення відкритий на самих вагах (
POST /aiplugin/resume, під час закриття/aiplugin/suspend, порт 5003 на вагах; першого разу також EmployeeMode: екран клієнта на вагах не показує товарів). На інших касах і планшетах та через портал керування нічого не відбувається. - Плагін завжди запускається в режимі Resume і не може повідомити свій стан. Тому екран замовлення кожні 30 с знову надсилає resume; якщо цього немає (екран закрито, плагін або ваги перезапущено), каса протягом хвилини переводить плагін у Suspend і тримає його там.
- Плагіну потрібен код активації від Aclas для кожних ваг (прив’язаний до серійного номера). Зараз працює у Windows; версія Aclas для Android буде згодом (каса там робить те саме).
Aclas OS6X (POS-ваги біля каси, RS232/USB; так само працюють інші підключені ваги):
- Одні або кілька ваг (не більше 8), кожні з назвою (напр. Прилавок, Бар) і власним підключенням: COM-порт / USB (
COM3у Windows,/dev/ttyUSB0у Linux/Android) зі швидкістю, або мережа через перетворювач «послідовний порт — мережа» (IP-адреса й TCP-порт, напр. 4001). - Протокол: Запит (Toledo) = каса надсилає
W, а ваги відповідають вагою (Toledo 8217, так зазвичай налаштовані OS6X; також повідомлення нестабільно/перевантаження/нижче нуля) або Безперервно = ваги самі постійно надсилають вагу (ST,GS, 0.512kg,US= нестабільно) або Dialog 06 (повірені), див. нижче, або DIGI (Type B) = каса надсилаєENQ, а DIGI відповідає станом, нетто, тарою, ціною за кг і сумою (37 символів:<status> <toestand> CR 0<netto> CR 4<tarra> CR U<kiloprijs> CR T<bedrag> CR LF; стан біт 1 = стабільно, біт 2 = нижче нуля, біт 3 = завелика вага, біт 4 = замала вага), або Gram = каса надсилаєENQ, чекає наACK, надсилаєDC1і зчитуєSOH STX <S/U/F> <teken> <gewicht> <eenheid> <BCC> ETX EOT. Задайте на вагах той самий протокол і швидкість. Біти даних / парність: 8N1 (Aclas, Adam Equipment, DIGI, Dini Argeo, Excell Precision, Gram, Kern & Sohn, Minebea Intec, Ohaus, Precisa, Sartorius, Star Micronics, UWE, Wedderburn, Wintec) або 7E1 (A&D, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Brecknell, CAS, Datalogic, Mettler Toledo 8217, Rice Lake, Zebra); Dialog 06 завжди 7O1. Запит читає також NCI (Avery Weigh-Tronix, Brecknell, Rice Lake BP-R): наWваги відповідаютьLF 1.234KG CR LF S00 CR ETX; рядок стану (S+ 2 або 3 байти) показує, чи вага нестабільна (байт 1 біт 0), замала (байт 2 біт 0) або завелика (байт 2 біт 1);^^^^^= завелика вага,_____= замала вага. - Dialog 06 (Checkout-Dialog 06, європейський протокол для повірених ваг біля каси): каса надсилає ціну за кілограм (і тару товару) на ваги; ваги зважують, самі розраховують суму й показують ціну за кілограм, вагу та суму на власному (повіреному) дисплеї. Каса переймає вагу й суму; у вікні зважування написано «розраховано вагами». Завжди 9600 бод, 7 біт даних, непарність, 1 стоп-біт (швидкість у налаштуванні тоді не враховується). Послідовність:
EOT STX 01 ESC <kiloprijs 6> ESC ETX(з тарою: запис03з 4 цифрами грамів) → ACK;ENQ→STX 02 ESC 3 ESC <gram 5> ESC <kiloprijs 6> ESC <bedrag 6> ETX; NAK →EOT STX 08 ETX→STX 09 ESC <code> ETX(22 = ще не готово, тоді повтор через 100 мс; 20 = рухається; 21 = спершу зняти; 30/31 = надто легко; 32 = надто важко; 11 = недійсна ціна). Контрольні коди: багато ваг Dialog 06 час від часу (напр. кожні 30 зважувань) запитують контрольні коди касового ПЗ (запис 11 → запис 10). Ці коди та спосіб їх обчислення виробник ваг надає лише постачальнику каси. Введіть їх у Контрольні коди (пари з 4 шістнадцяткових символів, напр.74AE 1B2C); каса надсилає їх, коли ваги запитують. Якщо ваги рахують зі змінним числом (Z) і фіксовані коди тому не підходять, каса про це повідомить; тоді попросіть постачальника налаштувати ваги без цієї перевірки або використовуйте Toledo. - Ваги підключаються до ПК чи пристрою, на якому працює касовий сервер; усі каси й планшети зважують через касовий сервер і у вікні зважування вибирають, які ваги використовувати. Перевірити зважує один раз.
- Мережа працює всюди.
- Також вводити вагу вручну: увімк. = вагу можна ввести вручну навіть за наявності ваг; без OS6X це можливо завжди.
Сканувати етикетки (позначка біля ваг: Aclas TS6X, інші ПК- чи ШІ-ваги, серія LS або LH15X; ваги + принтер етикеток, одні на заклад):
- IP-адреса: потрібна лише для Naar TS6X sturen. Зважування й сканування етикеток працюють без неї. Якщо каса працює на самій TS6X, залиште її порожньою: тоді каса надсилає сама собі (127.0.0.1). Якщо ті самі ваги також зважують біля каси, обидві позначки стоять біля тих самих ваг (пошук так і налаштовує).
- Сканувати етикетки: сканування етикеток на екрані замовлень. Налаштуйте вигляд штрихкоду, як на TS6X: починається з (20–29, типово
28), кількість цифр PLU (4, 5 або 6), а далі вага в грамах або ціна в центах, плюс контрольна цифра (EAN-13). Під налаштуванням є приклад. - Номери PLU: у Налаштування → Товари товар для зважування отримує ціну за кілограм, за бажанням тару й номер PLU (унікальний). Номер PLU вибирається зі списку (Без PLU, наступний вільний, Інший номер…); коли ви позначаєте Ціна за кілограм, наступний вільний номер уже підставлено. Потрібно лише для етикеток і PLU TS6X: без TS6X можна залишити Без PLU.
- Пряме надсилання працює у Windows і Linux; в Android і macOS використовуйте файл PLU. Під час першого встановлення звірте назви полів файлу PLU та коди в
aclas-plu.ps1з посібником SDK до постачених ваг (одне місце для змін:ACLAS_PLU_KOLOMMENуpackages/shared/src/weegschaal.ts).
Портал керування: повідомлення в портал має функцію Ваги (A&D, Aclas, Adam Equipment, Avery Berkel, Avery Weigh-Tronix, Balanzas Marques, Baxtran, Bizerba, Brecknell, CAS, Datalogic, Dibal, DIGI, Dini Argeo, Excell Precision, Gram, Ishida, Kern & Sohn, Mettler Toledo, Minebea Intec, Ohaus, Precia Molen, Precisa, Rice Lake, Rongta, Sartorius, Star Micronics, T-Scale, UWE, Wedderburn, Wintec, Zebra) з увімк./вимк. і вагами за моделями (напр. TS6X (op dit apparaat), 2x OS6X, PS1CX, Ariva-S, DS-781, LS6RX, 5 producten per kilo); без IP-адрес, COM-портів і Bluetooth-адрес.
Закон про метрологію: ваги, на яких ви продаєте, мають бути повірені (клас III, як OS6X). З Toledo/безперервним режимом каса рахує з вагою, яку передають ваги; з Dialog 06 повірені ваги самі розраховують ціну.
Код: packages/shared/src/weegschaal.ts (протоколи, етикетки, файл PLU), apps/pos-server/src/lib/weegschaal.ts і routes/weegschaal.ts; екрани WeegschaalInstellingen.tsx і WeegDialoog.tsx.
Thuisbezorgd.nl / Takeaway.com
Замовлення з Thuisbezorgd.nl надходять прямо в касу, без посередників (без Deliverect, HubRise тощо): Just Eat Takeaway JET Connect зв’язується з порталом керування Pin Voordeel, а каса забирає звідти свої повідомлення.
У Бельгії платформа називається Takeaway.com: та сама компанія (Just Eat Takeaway) і те саме підключення. Для бельгійського закладу на екранах, у сповіщеннях, на кухонному чеку та в порталі керування всюди показано Takeaway.com замість Thuisbezorgd.nl. Нижче Thuisbezorgd означає обидва.
Чому через портал? Касі потрібні лише PORTAAL_URL і PORTAAL_SLEUTEL (див. Портал керування), і вона робить лише вихідні запити.
Налаштування (Налаштування → Платформи доставки → Thuisbezorgd.nl / Takeaway.com, право Налаштування закладу, оплати та принтерів; раніше це було в Налаштування → Заклад):
- Увімкніть Використовувати Thuisbezorgd (діє одразу, незалежно від «Зберегти»).
- Зареєструватися в Thuisbezorgd. Після цього заклад вибирає в Thuisbezorgd (Partner Hub або через акаунт-менеджера) OptimumPOS / Pin Voordeel як касу. JET тоді запускає сеанс підключення; портал знаходить зареєстровану касу (за поштовим індексом і назвою, інакше Pin Voordeel прив’язує сеанс у порталі вручну), надсилає конфігурацію і запитує в каси меню. Після цього підключення починає працювати.
- Позначте товари, які можна замовити через Thuisbezorgd (за групою або окремо), за бажанням з описом для Thuisbezorgd. Меню (ціна, опції як модифікатори, алергени, ПДВ) передається автоматично; PLU = id товару/опції. Після зміни в каталозі каса оновлює меню протягом 30 секунд; лише «закінчився»/«знову в наявності» йде через API доступності.
- Години роботи Thuisbezorgd: окремо для доставки й самовивозу (напр.
16:00-22:00, кілька блоків через кому). Їх зберігають кнопкою Зберегти години роботи під ними, і вони надсилаються в Thuisbezorgd як service times, щойно інтеграція готова. - Тимчасово закрито / Знову відкрито (у NL/BE відкривається знову найпізніше наступного ранку о 07:00).
Замовлення. Замовлення стає звичайним замовленням без столика (bezorgen або afhalen, назва групи TB <ordernummer>) з цінами, які сплатив клієнт, плюс плата за доставку/обслуговування окремим рядком і знижка Thuisbezorgd рядком знижки; якщо сума все одно не сходиться — рядок «Різниця Thuisbezorgd». Кухонний чек одразу йде на кухню/бар (можна вимкнути). Каса за кілька секунд підтверджує порталу, а той повідомляє JET; якщо це не вдається протягом 3 хвилин або каса офлайн, JET отримує «не вдалося», і заклад повертається до Orderpad.
Кнопка Thuisbezorgd у верхній панелі (з кількістю поточних замовлень): список, клієнт і адреса, час готовності/доставки та хронологія (track & trace): отримано, кур’єр їде до закладу, кур’єр у закладі, у дорозі до клієнта, доставлено (від JET), плюс власні кроки (готується, готово, у дорозі/доставлено при власній доставці, забрано). Живої карти з кур’єром JET Connect касі не надає; її бачить клієнт у застосунку Thuisbezorgd. Нове замовлення, скасування та «кур’єр у закладі» супроводжуються помаранчевою смугою і звуковим сигналом. Завершити (оплачено онлайн) розраховує зі способом оплати online; якщо клієнт платить біля дверей, просто розрахуйтеся як звичайно. Скасування з боку Thuisbezorgd анулює замовлення й друкує кухонний чек «СКАСОВАНО».
Код: apps/pos-server/src/lib/thuisbezorgd.ts, routes/thuisbezorgd.ts; екрани ThuisbezorgdInstellingen.tsx і Thuisbezorgd.tsx. Бік порталу: horecapos-portaal/src/thuisbezorgd.mjs (див. README порталу).
Підрахунок на порталі керування. Кількість замовлень Thuisbezorgd за день входить до повідомлення на портал керування (verkoopTelling у lib/portaal.ts): ті, що надійшли й не скасовані, за днем надходження. Замовлення Thuisbezorgd, розраховане в касі (також Завершити (оплачено онлайн)), не рахується там удруге в самовивозі/доставці. Дані Thuisbezorgd зберігаються в базі даних каси, тож потрапляють у резервні копії каси як звичайно.
Інтернет-магазин і онлайн-замовлення
Кожен заклад може отримати власний інтернет-магазин: сайт замовлень (і застосунок) у фірмовому стилі закладу для самовивозу, доставки, замовлення за столиком через QR-код і бронювання, з онлайн-оплатою (MultiSafepay або Buckaroo) або оплатою під час самовивозу/доставки. Інтернет-магазин — окремий проєкт, horecapos-webshop (Node.js, див. README там), і працює на тому ж сервері, що й портал керування.
Увімкнення й налаштування виконуються в керуванні інтернет-магазином: кнопка Керувати інтернет-магазином у клієнтському порталі (власник) або біля інсталяції в порталі керування (Pin Voordeel). Там є увімк./вимк., веб-адреса (<zaak>.<webshopdomein> або власний домен), фірмовий стиль (кольори, логотип, фото в шапці, шрифт), години роботи та часові проміжки для самовивозу й доставки, зона доставки (поштові індекси, радіус або область на карті, із вартістю й мінімумом), оплата, промокоди, тексти, мови, QR-коди для столиків, бронювання та застосунок (встановлюється як PWA; Android-застосунок через Trusted Web Activity). Крім того, push-сповіщення (за бажанням, типово вимкнені): гість вмикає сповіщення на сторінці свого замовлення й отримує push-сповіщення, коли замовлення готове або в дорозі; охочі також час від часу отримують пропозицію, яку заклад надсилає з керування інтернет-магазином (вкладка Push-сповіщення). Працює на Android і комп’ютерах (Chrome, Edge, Firefox, Samsung Internet), в Android-застосунку, а також на iPhone та iPad (iOS 16.4 або новіше), якщо гість додасть інтернет-магазин на початковий екран. SMS чи e-mail не надсилаються, ім’я чи номер не зберігаються. Подробиці в README інтернет-магазину.
Меню. Каса надсилає меню автоматично: усі активні товари (не вагові), за групами товарів, з ціною, варіантами вибору, алергенами, позначкою «розпродано» та фото товару, а також столики, дані закладу і те, які маркетингові канали увімкнено (для позначки "отримувати пропозиції" під час оформлення, див. SMS- та e-mail-маркетинг). Це відбувається під час запуску, щойно вмикається інтернет-магазин, протягом 30 секунд після зміни в каталозі та протягом кількох секунд після зміни в Налаштування → Заклад, наприклад маркетингу чи картки лояльності (або кнопкою Надіслати меню зараз). Прибрати товар з інтернет-магазину можна в керуванні інтернет-магазином (приховати) або в базі даних за допомогою artikel.webshop = false.
Замовлення. Самовивіз і доставка стають звичайним замовленням без столика (назва групи WEB <bestelnummer>) з цінами, які бачив гість, плюс вартість доставки та транзакційний збір окремими рядками й промокод рядком знижки; якщо підсумок усе ж не збігається — рядок "Різниця інтернет-магазину". Чайові гостя не рахуються як виручка: вони потрапляють у Завершити (оплачено онлайн) як чайові в оплаті. Замовлення за столиком (QR-код) додається до відкритого рахунку цього столика (оплачено онлайн: окремою групою за цим столиком). Кухонний чек одразу йде на кухню/бар (вимикається у вікні Інтернет-магазин). Каса протягом кількох секунд підтверджує замовлення з номером чека; гість отримує "отримано" і лист. Якщо каса офлайн, інтернет-магазин не приймає замовлень (гість бачить це одразу) і надсилає лист закладу, якщо замовлення надто довго не оброблено. Бронювання з інтернет-магазину потрапляють у Бронювання (лише якщо бронювання в касі увімкнено). Якщо задано максимум на проміжок (Доставка та часові проміжки), замовлення інтернет-магазину з часом у цьому проміжку враховуються.
Бельгія (чорна скринька). Замовлення з інтернет-магазину одразу йде до чорної скриньки як замовлення (signOrder), ще до кухонного талона, так само як Замовити на касі. Якщо це не вдається, замовлення не потрапляє в касу, і інтернет-магазин пізніше надсилає його повторно. Усе, що ще не протестовано з чорною скринькою, вимкнено в меню для інтернет-магазину (подарункові картки, промокоди, за рахунком, на номер, комплексні меню, опції з доплатою, happy hour і чайові) і відхиляється, якщо старий інтернет-магазин усе ж це надсилає. Завершити перевіряє чайові, оплату за рахунком і на номер так само, як каса.
На номер (інтеграція з готелем, Налаштування → Готель → Самообслуговування → В інтернет-магазині): меню отримує kamer: { maxBedrag }; інтернет-магазин надсилає betaling.wijze = "kamer" разом із kamer і achternaam. Каса перевіряє гостя в готельному ПЗ (не за столом, не з подарунковою карткою) і зберігає його разом із замовленням; Завершити (на номер) проводить розрахунок на номер і записує чек на готельний рахунок. Зведений рахунок-фактура при оплаті за рахунком: чек тоді значиться як відкрита позиція.
Кнопка Інтернет-магазин у верхній панелі (з кількістю поточних замовлень): список, клієнт і адреса, бажаний час або "якнайшвидше", спосіб оплати та хронологія. Кроки Готується, Готово і У дорозі гість бачить наживо в інтернет-магазині (і e-mail, якщо заклад цього хоче). Розраховано в касі = Завершено; Скасувати анулює лише рядки цього замовлення інтернет-магазину, друкує кухонний чек "СКАСОВАНО", а за замовлення, оплачене онлайн, інтернет-магазин повертає гроші. Прибув, неявка або скасовано в бронюванні теж передаються назад в інтернет-магазин. Нове замовлення або бронювання показує помаранчеву смугу та звуковий сигнал.
Код: apps/pos-server/src/lib/webshop.ts, routes/webshop.ts; екран Webshop.tsx. Сторона порталу: horecapos-portaal/src/webshop.mjs.
Каса та інтернет-магазин однаково (кожну частину вмикають окремо, за замовчуванням вимкнено; старіший інтернет-магазин ігнорує нові поля). Що увімкнено в касі, працює і в інтернет-магазині:
- Happy hour: інтернет-магазин рахує ту саму ціну, що й каса в цей момент (закреслена звичайна ціна та назва happy hour), зокрема із сезоном.
- Періоди меню та тип замовлення (якщо вони увімкнені): інтернет-магазин показує лише те, що продається зараз, а під час самовивозу й доставки — ціну й товари вибраного варіанта (за столиком: у закладі). Меню отримує для кожного товару
prijzen(afhalen,bezorgen) іnietBij, а також списокdagdelen. - Меню: гість обирає страви (фіксовані та на вибір, з їхніми опціями); у касі це рядок меню зі стравами під ним і розподіленою ціною меню (ПДВ для кожної страви правильний). Страви, які входять лише до меню, передаються як
menuArtikelen. Старий інтернет-магазин без вибору: меню потрапляє в чек як звичайний товар, як раніше. - Запас закінчився = розпродано, зокрема опції з інгредієнтом, що закінчився.
- Алергени: вимкнено в касі = не показуються в інтернет-магазині.
- Картка лояльності: гість може під час оформлення накопичувати бали (за номером телефону або e-mail); каса прив'язує клієнта до замовлення, бали нараховуються під час розрахунку (списання — у закладі). Інтернет-магазин показує баланс.
- Подарункові сертифікати (Налаштування → Заклад → Подарункові сертифікати → Продавати подарункові картки в інтернет-магазині, лише з балансом): гість купує картку й оплачує онлайн; каса створює картку, яка одразу активна, а код повертається через портал до інтернет-магазину (статус і лист). Якщо також увімкнено Подарункова картка як спосіб оплати, гість під час замовлення «з собою» може обрати "подарунковою карткою в закладі".
- Промокоди (Налаштування → Промокоди, з перемикачем у розділі Заклад): для кожного коду на касі та/або в інтернет-магазині; використання рахується для обох разом.
- Пауза та завантаженість: кнопка Інтернет-магазин на верхній панелі: Призупинити інтернет-магазин (з текстом для гостя) і Завантаженість (дод. хвилини). Доходить до інтернет-магазину за кілька секунд.
- Онлайн-бронювання за правилами каси (Налаштування → Заклад → Бронювання): максимум осіб, днів наперед, слот, мінімум заздалегідь і час по днях тижня.
- Доставка та часові проміжки: див. Інтернет-магазин слідує за касою в розділі Доставка та часові проміжки.
- All-you-can-eat за столиком (Налаштування → Заклад → All-you-can-eat → Також під час замовлення за столиком через QR-код): якщо за столиком триває пакет, гість бачить страви пакета як Включено за € 0, з раундами, максимумом на особу, часом очікування та обмеженням часу. Решту він оплачує як завжди; усе йде на рахунок столика. Якщо стан за столиком щойно змінився, каса відхиляє замовлення, і гість замовляє знову.
- За рахунком (Налаштування → Рахунки → Оплата за рахунком → Також в інтернет-магазині): див. В інтернет-магазині у розділі Оплата за рахунком.
- Онлайн у список очікування (Налаштування → Заклад → Список очікування): див. Онлайн у список очікування у розділі Список очікування для гостей без бронювання.
- Допродаж: "Ще щось до цього?" (за бажанням, за замовчуванням вимкнено; Налаштування → Заклад → Розрахунок → Допродаж в інтернет-магазині): виберіть групи товарів (напр. напої, соуси, десерти) і скільки пропозицій. Тоді в інтернет-магазині біля кошика та під час розрахунку показуються товари з цих груп, яких ще немає в кошику (лише те, що зараз продається, не розпродане й без обов'язкового вибору); гість додає їх одним дотиком. Групи не вибрано = вимкнено, як раніше. Кіоск має власний допродаж (див. Кіоск самообслуговування).
Для цього меню для інтернет-магазину має versie: 2 з полями menuArtikelen, allergenenAan, happyhours, menus, klantenkaart, cadeaubon, kortingscodes, pauze, drukteMin, volgt, bezetting, reserveren.online, ayce, opRekening, wachtlijst і upsell. Підтвердження для порталу додатково містить cadeaubonnen (коди), klant (бали) та plek (список очікування).
Підрахунок на порталі керування. Самовивіз і доставка через інтернет-магазин рахуються окремо (webshop, webshopGeannuleerd у verkoopTelling), за днем надходження, і не рахуються вдруге в самовивозі/доставці. Замовлення за столиком рахується як звичайно за столиком.
Оплата карткою та платіжні термінали
Налаштування → Оплата (лише адміністратор):
- Термінали: для кожного термінала назва, ID термінала та власний API-ключ із PinPortal (Klant → Bewerk klant → Overige → API Keys). Після збереження від ключа видно лише кінець; він ніколи не повертається до браузера. Кнопкою Перевірити з'єднання ви перевіряєте ключ і термінал.
- Тестовий режим: імітує термінал (через ±7 с успішно; сума, що закінчується на 13 центів, відхиляється). Зручно для тестування без платіжного термінала.
Якщо є хоча б один термінал з API-ключем (або ввімкнено тестовий режим), Розрахунок → Картка / Bancontact автоматично запускає оплату на терміналі на суму, яку розраховує сервер.
Поки підключення ввімкнене, сервер приймає «картку» лише з успішною оплатою на терміналі саме за це замовлення й на цю суму. Запити, як і в офіційному PHP-SDK, надсилаються звичайною формою, із резервним API (api-backup.pinvandaag.com), якщо основний API не відповідає. Кожна відповідь API показується з [pin] у вікні сервера — зручно під час збоїв. Успішна, але ще не оброблена оплата (напр. планшет вимкнувся) знаходиться під час наступного розрахунку цього замовлення.
Чайові (картка, готівка й подарункова картка)
На екрані розрахунку для кожного способу оплати є ряд кнопок чайових: Немає, 5%, 10%, 15% (з округленням угору до 10 центів), Округлення (до наступного цілого євро) та Інша сума. При оплаті карткою клієнт платить суму + чайові одним платежем на терміналі; при готівці чайові враховуються в решті та в грошовій шухляді. На чеку — сплачена карткою сума з «з них чайові» під нею; ПІДСУМОК і ПДВ не змінюються, бо чайові — не виручка. У X/Z-звіті чайові вказано за способами оплати та як «Чайові разом».
Адміністратор налаштовує кнопки чайових у Налаштування → Заклад → Чайові: увімк./вимк., які відсотки (не більше 4, напр. «5, 10, 15»), чи є кнопка «Округлення» і для яких способів оплати (картка, готівка, подарункова картка) можливі чайові. «Немає» та «Інша сума» є завжди.
«Нехай буде …» є завжди, для кожного способу оплати, навіть якщо кнопки чайових вимкнено (без налаштування): клієнт сам округлює рахунок угору, а різниця — чайові. Є кнопки з наступним цілим євро й наступними круглими сумами (напр. € 28,00 → 29, 30, 40; € 44,00 → 45, 50, 60) та Інший підсумок, щоб ввести підсумок самостійно. Повторне натискання вибраної кнопки = без округлення. Не більше € 500 чайових (така сама межа, як на касовому сервері).
Немає інтернету
Каса працює в локальній мережі й не потребує інтернету; він потрібен лише для оплати карткою через підключення. Якщо в закладі немає інтернету, у верхній панелі з’являється Немає інтернету · картка вручну (перевіряється щохвилини). Тоді на екрані розрахунку, а також після невдалого запуску на терміналі, з’являється кнопка Уже оплачено на терміналі: проведіть суму на самому терміналі й зафіксуйте її так.
Плани залу та столики
Налаштування → Плани залу (лише адміністратор):
- Додавайте плани залу (напр. Зал, Тераса, Зимовий сад), перейменовуйте, видаляйте й змінюйте порядок кнопками ◀ ▶.
- Додавайте столики кнопками над сіткою (круглий, квадратний, довгий, високий) і перетягуйте їх мишею або пальцем на місце. Синій кутик вибраного столика збільшує або зменшує його.
- Для кожного столика задайте назву/номер, кількість осіб (стільчики навколо столика враховуються) і форму; дублюйте або видаляйте.
- З клавіатури: стрілки переміщують (Shift = більший крок), Delete видаляє.
- Зміни набувають чинності лише після Зберегти; «Скасувати дію» повертає все назад.
- Столик або план залу з відкритим замовленням видалити не можна. Видалені столики зберігаються в старих замовленнях.
Перенесення конфігурації в другий заклад
Налаштування → Імпорт/експорт (лише адміністратор). Якщо ви повністю налаштували один заклад, експортуйте конфігурацію у файл .json і імпортуйте його в касу другого закладу. Можна вибрати окремі частини:
- Товари: групи, товари, ціни (зокрема за типом замовлення), ПДВ, опції, меню, happy hour (із сезоном), періоди меню, алергени, інгредієнти/рецепти, картки зі штампами, пакети all-you-can-eat і фото товарів.
- Плани залу: зони й столики.
- Інші налаштування: усі параметри закладу, принтери (без IP-адрес), права за ролями та бухгалтерія.
Ніколи не переносяться: назва, адреса, поштовий індекс, місто, телефон, e-mail, номер платника ПДВ і завершальний рядок чека закладу, адреса e-mail для Z-звіту, платіжні термінали та їхні ключі, персонал і PIN-коди, а також уся виручка, чеки, клієнти й кількості запасів.
Імпорт надійно захищений: велике червоне попередження, позначка «Я розумію...», повторне введення власного PIN-коду адміністратора, відсутність відкритих замовлень, та сама країна (ставки ПДВ) і попередня автоматична резервна копія. Імпорт виконується однією транзакцією: якщо щось піде не так, нічого не зміниться. Наявні товари, групи, інгредієнти й столики не стираються, а прибираються з каси (як під час видалення), тож старі чеки й звіти лишаються правильними.
Імпорт з іншої каси
Перехід без повторного введення всього. Завжди доступно (без перемикача): у Налаштування → Імпорт/експорт (лише адміністратор) є розділ Імпорт з іншої каси.
- Що: товари (назва, ціна з ПДВ, ПДВ, група, код/PLU, запаси) або клієнти картки клієнта (ім’я, телефон, e-mail, бали, адреса, поштовий індекс, населений пункт; ім’я та прізвище об’єднуються).
- Файл: експорт з вашої попередньої каси (Dobizzz/DoPos, Lightspeed, MplusKASSA, unTill, Tebi ...) або власний список: CSV (; , табуляція або |; UTF-8 або нідерландський Excel) чи Excel (.xlsx), перший аркуш, з назвами стовпців у першому рядку. Старий файл .xls спершу збережіть як .xlsx або CSV.
- Попередній перегляд: каса розпізнає стовпці за назвою (Omschrijving, Verkoopprijs incl. BTW, BTW %, Omzetgroep, Artikelnummer, GSM, Spaarpunten ...) і показує перші 10 рядків. Якщо стовпець не той, виберіть самі. Нічого не змінюється до Імпортувати.
- Товари: ціни як 3,50, € 3,50 або 1.234,50; ПДВ як 21, 9%, 0,09, високий або низький (невідомо чи порожньо: ставка, яку ви виберете, типово найвища). Групи товарів, яких ще немає, створюються (без групи: "Імпортовано").
- Запаси (стовпець Voorraad, Stock, Aantal ...): якщо ввімкнено Вести облік запасів (Налаштування → Заклад), товар веде облік запасів і запас стає цією кількістю (інвентаризація в історії запасів, причина "Імпортовано"). Порожньо: запас лишається як є.
- Приклад файлу (CSV): список для самостійного заповнення (Naam;Productgroep;Prijs;Btw;Voorraad;Code), наприклад в Excel.
- Клієнти: бали додаються як коригування "Імпортовано з іншої каси" (видно в історії). Згода на SMS або e-mail не переноситься (GDPR): її потрібно запитати знову. Спершу увімкніть картку клієнта.
- Наявні товари (той самий код або, без коду, та сама назва) і клієнти (той самий телефон або e-mail) пропускаються або оновлюються, якщо ви це позначите (у товарів: назва, ціна, ПДВ, група й запаси). Дублікати рядків у файлі беруться один раз.
- Після завершення: скільки нових, оновлених і пропущених, з поясненням для кожного рядка, що було не так (напр. немає ціни). Не більше 5000 рядків за раз. У журналі це записано як "Конфігурацію імпортовано".
Мови (42, зокрема турецька, арабська, дарія, берберська, польська, болгарська, угорська, російська, сербська, албанська, перська, тигринья, амхарська, сомалійська, пап’яменто, сранан-тонго, гінді, урду, індонезійська, в’єтнамська, сирійсько-арамейська, китайська та українська)
Поруч із кнопкою © у правому нижньому куті кожного екрана є кнопка з мовою (напр. NL і прапорець). Натисніть її, щоб відкрити меню вибору: мови розташовані за алфавітом, з назвою рідною мовою перед прапорцем: Bahasa Indonesia (індонезійська), Čeština (чеська), Darija (марокканська арабська латиницею), Deutsch, English, Español, Français, Hrvatski (хорватська), Italiano, Kurdî (Kurmancî), Latviešu (латиська), Lietuvių (литовська), Magyar (угорська), Nederlands, Papiamentu (пап’яменто), Polski, Português, Română, Shqip (албанська), Slovenčina (словацька), Soomaali (сомалійська), Sranantongo, Srpski (сербська, латиницею), Tarifit (рифська берберська), Tiếng Việt (в’єтнамська), Türkçe, потім кирилицею Български (болгарська), Русский (російська) і Українська (українська), далі мови арабським письмом: اردو (урду), الدارجة (дарія), العربية (арабська), دری (дарі), فارسی (перська, фарсі), پښتو (пушту) і کوردی (سۆرانی) (курдська сорані), потім сирійським письмом ܣܘܪܝܝܐ (сирійсько-арамейська, сурйойо), деванагарі हिन्दी (гінді), письмом геез ትግርኛ (тигринья) і አማርኛ (амхарська), письмом тифінаг ⵜⴰⵎⴰⵣⵉⵖⵜ (тамазіхт, берберська), і останньою 中文(简体)(китайська, спрощене письмо). Перекладаються всі екрани, кнопки, повідомлення та повідомлення про помилки касового сервера.
- За працівником: вибрана мова зберігається для працівника, що увійшов (
gebruiker.taal). Якщо хтось входить з іншою мовою, каса одразу перемикається. На самому пристрої запам’ятовується остання використана мова, тож і екран PIN-коду вже відображається цією мовою. Якщо вибрати мову (на екрані PIN-коду або після входу) і протягом 10 хвилин (знову) увійти, цей вибір має пріоритет і стає мовою цього працівника. Перемикання перезавантажує екран; ви залишаєтеся в системі, а відкритий рахунок лишається відкритим. - Уперше на пристрої: якщо на планшеті чи ПК ще не задано мову, каса запускається мовою, вибраною під час встановлення. Якщо мову не вибрано, використовується мова самого пристрою (браузера або операційної системи, також у застосунку для Android), а якщо її немає серед доступних — нідерландська. Далі кожен пристрій пам’ятає свій вибір.
- Східна Європа: польська, чеська, словацька, угорська, румунська, болгарська, хорватська (також для боснійської), литовська, латиська, українська та російська: мови більшості трудових мігрантів із Центральної та Східної Європи в Нідерландах і Бельгії.
- Балкани: сербська (латиницею, як пише більшість сербів у Нідерландах і Бельгії; також для чорногорської) та албанська (Албанія, Косово та Північна Македонія).
- Африканський Ріг: тигринья (Еритрея) і амхарська (Ефіопія), обидві письмом геез, і сомалійська (латиницею).
- Іран: перська (фарсі). Пристрій з афганською перською (fa-AF) отримує дарі, решта — фарсі.
- Карибські Нідерланди та Суринам: пап’яменто (Papiamentu, правопис Кюрасао й Бонайре; також для Аруби) і сранан-тонго.
- Азія: гінді (деванагарі; також для сарнамі-гіндустані), урду (справа наліво), індонезійська та в’єтнамська (латиницею, також на чеку).
- Марокканські: дарія (марокканська арабська, розмовна мова) як арабським, так і латинським письмом (так багато нідерландців марокканського походження пишуть у месенджерах), поряд зі стандартною арабською. Берберські: тарифіт (рифська, латинським письмом; більшість нідерландців марокканського походження родом із Рифу) і стандартна марокканська тамазіхт письмом тифінаг.
- Справа наліво: арабська (стандартна арабська), урду, дарія арабським письмом, дарі й пушту (Афганістан), перська (фарсі, Іран), курдська сорані (Ірак/Іран) і сирійсько-арамейська (сурйойо, сирійським письмом). Суми, коди й цифрові клавіші лишаються зліва направо. Курдська курманджі (Туреччина/Сирія) — латинським письмом.
- Кухонний чек (кухня/бар): типово мовою працівника, який передає замовлення. Для кожного принтера в Налаштування → Принтери → Мова кухонного чека можна також задати сталу мову (напр. мову кухаря), латиницею: Nederlands, Čeština, Darija, Deutsch, English, Español, Français, Hrvatski, Italiano, Kurdî, Latviešu, Lietuvių, Magyar, Papiamentu, Polski, Português, Română, Shqip, Slovenčina, Soomaali, Sranantongo, Srpski, Tarifit, Tiếng Việt, Bahasa Indonesia або Türkçe. Болгарська, російська та українська друкуються на кухонному чеку в латинській транскрипції (принтер чеків не підтримує кирилицю). Арабське, сирійське письмо, деванагарі, геез і тифінаг, а також китайська на принтері чеків неможливі: тоді дарія друкується латиницею, тамазіхт — як тарифіт, а решта — нідерландською. Сталі тексти (TAFEL, Gang, WACHT op afroep, AFROEP GANG, LATER GEPRINT, Afhalen, Balie) перекладаються; назви товарів і примітки лишаються такими, як їх введено. Принтери, на яких була нідерландська, тепер ідуть за мовою працівника.
- Касовий чек (для всіх клієнтів): типово нідерландською, незалежно від мови екранів. Іншу мову вибирають у Налаштування → Заклад → Мова касового чека (одразу під текстом унизу чека), лише мови з латинським письмом. Це стосується також pro forma, чека повернення, копії, подарункового сертифіката й чека електронною поштою. Суми, коди ПДВ, номер платника ПДВ закладу та фіскальні рядки (Бельгія) не змінюються; власний текст унизу чека лишається таким, як його ввів заклад.
- Товари, групи й опції називаються так, як їх вводить заклад; вони не перекладаються.
- Мову для кожного працівника також можна задати в Налаштування → Персонал.
- Вступ і посібник також доступні всіма цими мовами. Кнопкою © вони відкриваються мовою каси; угорі прапорцями можна вибрати іншу мову (це нічого не змінює в касі).
Для розробників: кожен видимий текст записано в коді як vt('Nederlandse tekst') (apps/pos-web/lib/i18n.ts); нідерландський текст є ключем. Переклади зберігаються в apps/pos-web/lib/vertalingen/<taal>.ts. Якщо перекладу бракує, каса показує нідерландський текст; тест i18n (pos-web) перевіряє, що кожен текст перекладено кожною мовою і що місця {0} збігаються. Повідомлення касового сервера лишаються нідерландською й перекладаються в браузері (також із {0}, напр. назва товару в повідомленні).
Налаштування принтерів
Нова каса не має принтерів. Увійдіть як адміністратор (демо: 1111) і виберіть Налаштування у верхній панелі.
- Принтери: додайте стільки принтерів, скільки є в закладі (напр. каса, кухня, бар, піца), кожен зі з'єднанням (зазвичай мережа: IP-адреса і порт 9100) і шириною паперу. Кнопкою Тестовий друк перевірте, чи він працює. Угорі виберіть, який принтер друкує чек і pro forma (і відкриває грошову шухляду). Для кожного принтера також вибирається мова кухонного чека (див. Мови); касовий чек лишається нідерландською.
- З'єднання для кожного принтера:
- Мережа (IP-адреса): IP-адреса і порт (зазвичай 9100). Так було завжди, і так працює й надалі: наявні принтери автоматично мають з'єднання через мережу.
- USB: у Linux — пристрій, наприклад
/dev/usb/lp0. В Android — USB-принтер, підключений до пристрою (кабель OTG; порожньо = перший USB-принтер). У Windows і macOS виберіть Системний принтер. - Послідовний (COM / ttyUSB): COM-порт (Windows),
/dev/ttyUSB0або/dev/ttyS0(Linux, Android) чи/dev/cu.…(macOS), зі швидкістю (зазвичай 9600, 19200 або 38400 baud). Також для Bluetooth-принтера, який Windows або Linux підключає як COM-порт або/dev/rfcomm0. - Bluetooth: у застосунку HorecaPOS на Android, з адресою Bluetooth з'єднаного принтера (напр. мобільного принтера чеків). Спершу з'єднайте принтер у налаштуваннях Bluetooth Android.
- Системний принтер (Windows / CUPS): принтер так, як його знає Windows або CUPS (Linux, macOS), з власним драйвером або як Generic / Text Only. Чек надсилається на принтер без обробки (RAW), без форматування драйвером.
- Вбудований (Sunmi, iMin ...): принтер у самій Android-касі.
- Пошук показує принтери й порти, які бачить каса. Виберіть один — і адресу буде заповнено.
- Протокол: ESC/POS (майже всі принтери чеків, також принтери Star у режимі ESC/POS) або Star (Star Line Mode). Для Star каса сама перетворює чек; виглядає він так само.
- Екран обслуговування з власним принтером: Android-екран обслуговування із застосунком HorecaPOS (напр. портативний термінал із мобільним Bluetooth-принтером або Sunmi як екран обслуговування) може друкувати сам. Зареєструйте його на самому пристрої (Налаштування → Принтери → Екрани обслуговування з власним принтером) і в принтера виберіть Підключено до. Екран обслуговування забирає свої чеки з каси; тримайте там застосунок відкритим. Якщо це не вдається (застосунок закрито, поза зоною Wi-Fi), кухонний чек потрапляє в чергу друку, так само як і при вимкненому мережевому принтері. Скасувати реєстрацію пристрою повертає принтери на саму касу.
- Принтер для групи / товару: для кожної групи товарів виберіть, на який принтер іде кухонний чек. Для окремого товару це можна перевизначити власним принтером або «без кухонного чека».
Однакові товари під час друку об’єднуються: двічі 1x Cola стає 2x Cola, на кухонному чеку й на касовому чеку. Об’єднуються лише товари з однаковими опціями та приміткою.
Інсталятор для Linux додає користувача каси до груп lp і dialout, щоб каса могла використовувати USB- і послідовні принтери.
Потрібна допомога?
Optimum POS · 085 560 00 60 · support@optimumpos.nl · пн–пт 9:00–20:00, сб–нд 14:00–20:00