Telegram-бот · приём оплаты · веб-панель

Запись в салон — прямо в переписке

Клиент выбирает услугу, мастера и свободное время, вносит предоплату картой и получает напоминания. Администратор ведёт расписание в веб-панели — записи из бота попадают туда сразу.

Демо-доступ в панель: demo / demo123 — открыты все разделы, изменения недоступны.

Это работающий стенд, а не макет. Бот принимает настоящие записи, панель показывает настоящую базу. Оплата подключена в тестовом режиме ЮKassa: счёт выставляется по-настоящему, но деньги не списываются — сценарий можно пройти целиком, ничем не рискуя.

Как это выглядит

Экраны сняты на демонстрационных данных — те же, что вы увидите, открыв демо.

Расписание салона по мастерам
Расписание: один день, все мастера, занятые слоты и свободные окна в одной сетке.
Дашборд администратора
Дашборд: записи и выручка за сегодня и неделю, новые клиенты, отмены, доля записей через бота.
Экран платежей
Платежи: суммы, статусы, фильтр по датам и очередь возвратов с идентификатором платежа в ЮKassa.
Сценарий целиком: запись, оплата картой, «Мои записи», отмена визита с возвратом и прайс. Ускорено в два с половиной раза; телефон клиента закрыт.

Что получают обе стороны

Клиенту — в боте

  • Запись за минуту: услуга, мастер, день, время — свободные слоты считаются по графику мастера и длительности процедуры.
  • Предоплата картой прямо в Telegram, без перехода на сторонний сайт.
  • Напоминания: за сутки — с кнопкой отмены, ещё можно освободить время; за два часа — коротко, просто не забыть.
  • «Мои записи»: посмотреть предстоящие визиты и отменить, пока не поздно.
  • Телефон подтягивается кнопкой Telegram — вручную набирать не нужно.

Салону — в панели

  • Расписание по всем мастерам сразу; визит можно завести руками — например, для клиента, позвонившего по телефону.
  • Услуги: цена, длительность, исполнители и размер предоплаты — свой для каждой процедуры.
  • Мастера: график по дням недели, выходные, отключение мастера без потери его истории.
  • Клиенты: история визитов, потраченная сумма, источник — бот или администратор.
  • Настройки салона: шаг сетки записи, глубина календаря, запрет отмены за N часов до визита.
  • Роли: администратор видит всё, мастер — только своё расписание, демо-доступ — только просмотр.

Почему это не «бот на конструкторе»

Запись на приём выглядит простой задачей ровно до первой попытки её написать. Вот места, где всё оказывается сложнее, и что с ними сделано.

Одновременный доступ

Двое не займут одно время

Клиент жмёт «Подтвердить» ровно тогда, когда администратор ставит визит вручную. Защита трёхслойная: блокировка на пару «мастер + день», проверка пересечений под ней и уникальный индекс в базе на случай, если запись пойдёт мимо сервиса.

Деньги

Слот держится, пока идёт оплата

Между «Подтвердить» и приходом денег проходят минуты — всё это время слот закреплён за клиентом. Не заплатил — время возвращается в продажу само, без участия администратора.

Надёжность

Повтор не спишет дважды

Telegram доставляет уведомление об оплате, пока не получит подтверждение, поэтому повтор — штатная ситуация, а не сбой. Сумма сверяется только по собственной базе, повторная обработка не меняет ничего.

Проверено

124 автоматических теста

Включая то, что руками не воспроизвести: оплата, пришедшая в последнюю секунду брони, два одновременных клиента на один слот, два параллельных запуска рассылки напоминаний.

Из чего собрано

124
автоматических теста
7
разделов админ-панели
3
роли с разными правами
24/7
на VPS с HTTPS и автопродлением сертификата
PHP 8.2 — свой роутер, контейнер, миграции MySQL 8 Redis — состояния диалога Telegram Bot API — webhook Telegram Payments + ЮKassa Vue 3 · Vite · Pinia Docker Compose · nginx · Let's Encrypt PHPUnit

Сделаю такой же под ваш салон

Ваши услуги и мастера

Прайс, длительности, графики, размер предоплаты по каждой процедуре, название и контакты салона — всё настраивается в панели, без правок кода.

Боевой приём платежей

Переключение с тестового режима на настоящий — одна настройка. Нужен магазин ЮKassa на ИП или юрлицо; помогу пройти подключение.

Развёртывание и передача

Поднимаю на вашем сервере: домен, HTTPS с автопродлением, резервные копии базы. Обновление — одной командой.

Обсудить проект

Расскажите про салон: сколько мастеров, нужна ли предоплата, есть ли уже сайт или CRM. Отвечу, что из этого закрывается готовым решением, а что придётся дописывать.