Бронювання
Онлайн-запис клієнтів: сторінка в інтернеті, на якій людина сама обирає послугу, день і вільний час. Після підтвердження в системі одразу з'являються задача для майстра і рахунок на клієнта — вручну нічого заводити не треба.
Де шукати: Модулі → Розрахунки з клієнтами → Регістри → Бронювання
Сам реєстр — не журнал записів, а налаштування сторінки: одна картка = одна сторінка запису зі своїм переліком послуг, розкладом і оформленням.
Розбір на прикладі

У списку — номер, URL-слаг, коментар і назва компанії. Зазвичай тут один-два записи: окрема картка потрібна, лише якщо точок запису кілька (наприклад, два філіали з різними майстрами й розкладом).

У шапці задано, чия це сторінка і хто відповідає за записи:
| Поле | Що робить |
|---|---|
| Номер | Код картки, підставляється сам |
| URL-слаг | Підпис під назвою компанії на сторінці. Це не адреса: сторінка відкривається за uuid |
| Прейскурант | Разово переносить ціни з прейскуранта у рядки послуг, для товарів яких у ньому є ціна; решта рядків не змінюється |
| uuid | Ідентифікатор сторінки, видається при створенні; змінити не можна |
| Дизайн | Ім'я готового шаблона сторінки. Порожньо — працює стандартна сторінка |
| Назва компанії | Заголовок сторінки. Обов'язкове |
| Працівник | Логіни користувачів через кому, яким дістануться задачі й сповіщення; групу виконавців вікно розгортає в логіни. Обов'язкове |
| Назва телеграм-бота | Бот із підключених, який напише про новий запис |
| Закрито | Сторінка за посиланням замість форми показує напис про тимчасову недоступність запису й записів не приймає |
| Коментар | Опис для себе, на сторінку не виводиться |
| Тип задачі для SMS сповіщення | Лише для шаблона WashUp: заповнено — кожен запис створює ще одну задачу цього типу, пов'язану з рахунком, і за нею одразу шле SMS (SMS-сповіщення). Стандартна сторінка це поле не читає |
Кнопка біля напису «Посилання на бронювання» (підказка «Відкрити сторінку бронювання») відкриває сторінку в новій вкладці — це і є та адреса, яку дають клієнтам. Працює лише для збереженої картки в режимі перегляду, інакше — «Збережіть або скасуйте зміни!».
Якщо в полі «Працівник» вказати код групи виконавців, система розгорне його в перелік логінів учасників групи.
Що можна замовити

Матриця «Товари/Послуги» — це і є меню сторінки. Кожен рядок:
- Товар — послуга з довідника (у вікні вибору типово стоїть фільтр «Робота/Послуга»). Після введення коду підставляються опис, ціна з картки товару і тривалість обслуговування;
- Кількість — скільки одиниць цієї послуги можна взяти в одне замовлення (клієнт побачить лічильник із таким максимумом);
- Тривалість обслуговування — головне поле розкладу: саме з нього рахується, скільки часу займе запис;
- Ціна — те, що клієнт бачить на сторінці;
- Ресурси — конкретний ресурс, тобто майстер або робоче місце, яке виконує цю послугу.

На закладці «B» — інший спосіб призначення. Замість конкретного майстра вказують тип ресурсу: тоді послугу може виконати будь-хто з команди, а система сама обере вільного. Поруч — правило вибору: «Рівномірне розділення» або «Розділення по черзі». Ще одна колонка, «Тип завдання», задає тип створюваної задачі.
У прикладі діагностику робить тільки ПР1, а заміну деталей — уся майстерня з рівномірним розподілом.
Коли працюємо

Тут задається сітка вільного часу:
- Вихідні — галочка означає, що цього дня записів немає. У прикладі відмічені Сб і Нд, решта днів робочі;
- Робочий час — межі дня, з 09:00 до 18:00;
- Крок замовлення у хвилинах — з яким інтервалом пропонується час: 30 хв дають сітку 09:00, 09:30, 10:00…;
- Крок між замовленнями у хвилинах — технічна пауза після кожного запису (10 хв), щоб майстер встиг прибрати місце.
Якою мовою розмовляє сторінка

Матриця «Мова» — переклади для сторінки. Кожен рядок — це послуга + мова + назва цією мовою; на закладці «B» до них додаються тексти повідомлень: про вихідний день, про відсутність вільного часу, про успішний і невдалий запис.
Коди мов тут — ua, ru, en; перелік мов у перемикачі сторінки збирається саме з цієї колонки. Якщо для обраної мови рядка немає, сторінка візьме англійський, а як не буде й його — опис із матриці послуг.

Вкладка «Контакти» — те, що видно клієнту під назвою компанії: адреса, посилання на карту, телефони, месенджери й соцмережі. Порожні поля просто не показуються.
Адреса клієнта і карта

Вкладка «Google» розвʼязує одну задачу: як клієнт вводить свою адресу на останньому кроці запису.
Поле «Ключ API Google Maps» порожнє — адреса лишається звичайним рядком: що людина набрала, те й потрапить у задачу майстра. Ключ заповнений — поле стає пошуком Google: підказки під час набору, вибрана точка на карті, а в задачі — посилання на неї.
Рамка «Обмеження для вбудованої карти Google» звужує підказки до свого регіону: широта й довгота задають центр, радіус (км) — відстань навколо нього. Із заповненим радіусом пошук обмежений цією областю жорстко, і адресу з іншого міста вибрати не вийде. Порожні поля — підказки по всьому світу.
Ключ видає консоль Google Cloud, і платить за нього фірма: це послуга Google, а не частина системи.
Який вигляд має сторінка

Вкладка «Стиль» — не в нижньому ряду закладок, а вгорі, поряд із «Даними»: вона про оформлення, а не про записи.
- Посилання на шрифти — адреси підключених шрифтів, окремо для першого екрана і для решти сторінок;
- Кольори сторінки — текст, тло сторінки, кнопки й контейнер (картка, у якій лежить вміст першого екрана); обираються палітрою;
- Зображення логотипа і фонове зображення — картинки завантажуються просто тут.
Порожня вкладка не проблема: сторінка візьме стандартне оформлення. Поле «Дизайн» із шапки і ця вкладка розвʼязують різні задачі — «Дизайн» підміняє шаблон сторінки цілком, «Стиль» налаштовує стандартний. Готовий шаблон має право оформлення звідси не читати: приміром, шаблон WashUp живе зі своїм.
Як це бачить клієнт

Перший екран — візитівка: назва, адреса, телефон, іконки месенджерів і кнопка «До бронювання».

Далі — перелік послуг із тривалістю й ціною. Назви взяті з мовної матриці, ціни — з матриці послуг, лічильник обмежений колонкою «Кількість». Унизу видно підсумок: скільки послуг обрано, скільки це часу й грошей.

Після вибору дати сторінка показує вільні проміжки. Це не просто години роботи: система вже врахувала тривалість обраних послуг, паузу між замовленнями і зайнятість майстрів.

На останньому кроці клієнт бачить деталі (день, час, послуга, сума) і залишає телефон, ім'я, пошту, адресу й коментар. Кнопка «Зробити замовлення» завершує запис.
Що з'являється в системі після запису
За номером телефону система шукає клієнта серед контактів — за кодом, першим і другим телефоном, а також за збігом закінчення номера. Якщо не знайшла, заводить нову картку клієнта, у якій кодом стає сам номер телефону.
Далі створюється задача на кожен задіяний ресурс: дата, час початку й кінця, назва послуги, клієнт, його телефон, коментар із сайту. У виконавці потрапляють користувачі ресурсу; якщо в ресурсі їх не вказано — працівник із шапки бронювання.
Одночасно виписується рахунок на цього клієнта з обраними послугами — лише тими, що є в матриці послуг цього бронювання, — і всі задачі зв'язуються з ним — у дереві документів видно, що з чого виросло.
Ціна в рахунку рахується заново. Клієнт на сторінці бачить ціну з матриці послуг, а рахунок береться за звичайними правилами: прейскурант клієнта, знижки, ПДВ. Тобто рахунок рахує ціну за прейскурантом рахунку, і вона може відрізнятися від ціни на сторінці.
Якщо в шапці вказано телеграм-бота, всі причетні (працівник із шапки й виконавці ресурсів) отримають повідомлення про новий запис — за умови, що їхні telegram-ідентифікатори прописані в налаштуванні бота.
Ще одна дрібниця, про яку варто знати: адреса, яку клієнт увів на сторінці, дописується в його картку (наступного разу сторінка запропонує її готовою), а пошта — лише якщо в картці її ще немає.
Як рахується вільний час
- День ділиться на проміжки по «кроку замовлення» від початку до кінця робочого часу.
- Береться сумарна тривалість обраних послуг (з урахуванням кількості).
- З сітки прибираються проміжки, у які запис не поміститься до кінця дня.
- Прибираються проміжки, зайняті невиконаними задачами цих ресурсів, плюс пауза між замовленнями. Задача, позначена як виконана, час більше не тримає.
- Якщо день позначено вихідним — сторінка покаже текст про вихідний і жодного часу не запропонує.
Коли послугу виконує тип ресурсу, час вважається вільним, поки вільний хоч один майстер команди. З конкретним ресурсом навпаки: зайнятий він — зайнятий і час.
Як робота ділиться між майстрами
| Спосіб | Кого обере система |
|---|---|
| Рівномірне розділення | Того, у кого на цю дату найменше задач; за рівної кількості — першого за алфавітом коду |
| Розділення по черзі | Першого вільного за алфавітом коду |
Що перевіряється при збереженні
Назва компанії й працівник обов'язкові — без них сторінку нема кому показувати й нема кому обробляти записи. Логін працівника перевіряється: «ІНЖЕНЕР2 Користувача не знайдено».
У рядку послуги має бути рівно одне з двох — конкретний ресурс або тип ресурсу. Обидва разом: «Тип ресурсу та ресурс не можуть бути введені одночасно». Жодного: «Тип ресурсу або ресурс повинні бути введені».
Для типу ресурсу обов'язковий спосіб розподілу, і тільки один: без нього — «Тип розподілу не може бути порожнім, якщо це тип ресурсу», з обома галочками — «Тільки один з типів розподілу повинен бути полем».
Ресурс і тип ресурсу мають існувати в довідниках, інакше — «Цей ресурс не знайдено» або «Цей тип ресурсів не знайдено».
Ім'я дизайну перевіряється за списком готових шаблонів: «Неприпустиме ім'я файлу» (перед текстом — введене ім'я).
Типові ситуації
На сторінці не пропонується жоден час. Найчастіше не заповнений «Крок замовлення у хвилинах» — без нього сітка не будується взагалі. Далі за списком: день позначено вихідним, робочий час не заданий, усі проміжки зайняті задачами майстра.
Запис прийшов не тому виконавцю. Перевірте ресурс: якщо в ньому не вказані виконавці, задача піде працівнику з шапки бронювання.
Сторінка англійською, хоча фірма українська. У матриці «Мова» код української — ua. Якщо там uk або порожньо, сторінка не знайде переклади й покаже англійський варіант.
Клієнт бачив 250 ₴, а рахунок на іншу суму. Рахунок рахує ціну за прейскурантом рахунку (прейскурант клієнта, його знижки), і вона може відрізнятися від ціни на сторінці — та береться з матриці послуг бронювання.
Після запису в довіднику з'явився контакт із дивним кодом на кшталт 0681234567. Це новий клієнт, якого сторінка не знайшла за телефоном і завела сама; код — його номер. Картку варто дозаповнити вручну.
Запис за паролем. Такої можливості немає: клієнт завжди лишає телефон. Вкладку «Реєстрація» з вибором «Телефон» / «Телефон + Пароль» прибрано з картки — сторінка запису цей вибір ніколи не читала.
Тимчасово припинити запис. Поставте галочку «Закрито»: сторінка за посиланням замість форми покаже напис, що запис тимчасово недоступний (одразу українською, російською й англійською), послуг і вільного часу не віддає і замовлень не приймає. Зняли галочку — сторінка працює за тим самим посиланням.