Описание
К нам обратился московский клуб виртуальной реальности. Им нужен был сайт, где клиенты могли бы сами бронировать игровые сеансы, записываться на мероприятия (например, дни рождения или корпоративы) и вносить предоплату.
А для администраторов — удобная Booking-панель, в которой легко подтверждать заказы, управлять расписанием и вручную создавать брони на мероприятия продолжительностью от 2 до 7 часов.
Мы поняли, что ни одно готовое решение не справится с этой задачей, и с нуля создали систему бронирования, которая работает именно так, как нужно было нашему клиенту.
Что у нас получилось: удобная и быстрая система бронирования
Пользователь тратит на бронь меньше минуты — а значит, у него просто нет времени устать, запутаться и уйти с сайта:
- Выбирает игру и указывает количество участников;
- Система показывает только свободные временные слоты на нужную дату;
- Пользователь сразу видит итоговую стоимость и кнопку «Подтвердить»;
- После подтверждения получает письмо, и администратор уточняет детали по телефону.
Что мы сделали для администраторов
Отдельную, понятную и логичную панель управления бронированиями. Она избавила администраторов от хаоса в расписании, звонков, Excel-таблиц и «инструкций на 4 листа»
Теперь работа строится так:
Удобный календарь расписания
В Booking-панель администратор видит весь график по дням: кто забронировал, на сколько человек и на какое время.
Свободные ячейки отображаются пустыми, а занятые — подсвечены. Весь интерфейс похож на календарь — это делает его интуитивно понятным.
Добавление брони вручную
Если пользователь решил записаться через звонок, администратор может создать бронь вручную. Он выбирает игру, оборудование, дату и время, указывает количество игроков, вводит данные пользователя и — при необходимости — оставляет комментарий.
Система автоматически рассчитывает итоговую стоимость. Остаётся только нажать «Создать бронь»:
Управление бронью
После создания брони администратор может:
- Подтвердить бронь — кнопка «Выполнить бронь» делает её активной и окрашивает ячейку в зелёный цвет;
- Редактировать бронь — изменить дату, время, количество участников или контактные данные;
- Удалить бронь — бронирование исчезнет из расписания и больше не будет отображаться в календаре.
Брони, которые ещё не подтверждены, автоматически выделяются в расписании оранжевым цветом — это помогает быстро сориентироваться, где есть открытые заявки.
Настройка цен
Во вкладке настроек администратор задаёт разные наценки для каждого дня недели и временного интервала. Например, в субботу утром можно установить одну цену, днём — другую, а ночью — третью.
Так система автоматически рассчитывает стоимость в зависимости от времени брони — вручную ничего пересчитывать не нужно.
Фильтрация по месяцам и годам
Все заказы можно найти по месяцам и годам:
В выбранном месяце сразу видно, какие дни уже заняты — они подсвечены. Если нажать на конкретную дату (например, 29 мая), откроется список всех броней на этот день.
А теперь — как мы это делали
Сбор требований и целей клиента
Мы начали с простого: поговорили с клиентом. Он подробно рассказал о своих целях и пожеланиях. Мы обсудили рабочие сценарии и потенциальные проблемы:
- Как предотвратить двойные брони;
- Как связать оплату с занятием слота;
- Как сделать систему удобной даже для новых администраторов.
Разработка технического задания
Мы собрали всё в один документ: логика бронирования, кто и когда получает письма, и как настраиваются тарифы. Именно этот документ стал основой всей архитектуры проекта.
Создание прототипов и дизайн
Сначала мы нарисовали «каркас» сайта: продумали структуру страниц, показали клиенту логику бронирования. Потом — дизайн: сделали интерфейс современным и удобным.
Реализация логики системы бронирования
На стороне пользователей:
- Выбор количества участников;
- Автоматическая проверка свободных слотов;
- Итоговая цена с учётом времени суток;
- Предоплата 25 % при брони после полуночи;
- Подтверждение заявки с письмом на e-mail.
На стороне администраторов:
- Отдельная Booking-панель, не связанная с административной панелью-WordPress;
- Календарь с возможностью быстро добавить или изменить бронь;
- Гибкие настройки цен, времени, ролей;
- Мгновенное подтверждение/отмена;
- Подсказки, цвета, фильтры — всё, чтобы не запутаться.
Тестирование и обучение сотрудников
Когда всё было готово, мы провели тестирование, убедились, что все работает, а затем дали доступ команде клиента.
Чтобы объяснить, как пользоваться системой, мы нарисовали большую и подробную схему — она показывает весь путь: от момента, когда клиент выбирает слот, до того, как администратор подтверждает или отменяет бронь.
С какими проблемами мы столкнулись
Эквайринг не хотел дружить с кастомом
Когда дело дошло до подключения онлайн-оплаты брони, стандартный модуль эквайринга отказался корректно работать с нашей системой бронирования, написанной специально под нужды клиента.
Нам пришлось разбираться в технических нюансах и адаптировать платёжный модуль под уникальную логику сайта. В итоге удалось создать стабильно работающую интеграцию, и теперь клиенты могут легко вносить предоплату, не сталкиваясь с техническими сложностями.
Стандартные уведомления не подошли — сделали уникальные
Письма-уведомления оказались ещё одним испытанием. Стандартная система отправки писем не могла корректно взаимодействовать с нашей кастомной системой. В результате письма уходили всем сразу или не доходили никому.
Мы разработали собственный механизм рассылки, в котором тщательно продумали каждый вариант письма. Теперь клиент и администратор получают точные и понятные уведомления с необходимой информацией: выбранная игра, дата и время, количество игроков, текущий статус брони. В ночное время в письме будет информация о предоплате.
Бронирование мероприятий: еще одна функция для администраторов
Помимо стандартного бронирования игр на 45 минут, перед нами стояла задача: сделать второй важный формат — мероприятия. Это более продолжительные события: дни рождения, вечеринки, корпоративы, когда зал бронируется сразу на несколько часов и включает не только игры, но и фуршет, музыку и доп. обслуживание.
Чтобы администраторы могли удобно работать с такими заявками, мы сразу спроектировали отдельную вкладку в Booking-панели.
Как это работает
Слоты и мероприятия взаимосвязаны
Если мероприятие уже забронировано на определённое время — обычную игру в это же время забронировать нельзя. И наоборот: если кто-то успел занять 45-минутный слот, система не позволит запланировать на это время мероприятие. Всё работает автоматически — проверять вручную ничего не нужно.
На экране — только доступное время
Администратор видит только доступное время — занятые окна недоступны. Система не даст случайно создать пересекающиеся брони.
Создание разных типов мероприятий
Сейчас сайт нашего клиента предлагает только два стандартных варианта мероприятий — день рождения и корпоратив. Но в реальности пользователи могут запрашивать другие форматы: например, аренду зала для свадебной вечеринки, встречи выпускников или киберспортивного турнира.
Система позволяет администратору вручную создать такой тип мероприятия в панели — с нужным названием, длительностью и вариантами цен: в будни, выходные и праздничные дни.
Это удобно: не нужно менять сайт или ждать обновлений — сотрудник просто вносит данные и бронирует нужный интервал.
Как это видит пользователь
Оставляет заявку на мероприятие через контактную форму. Далее администратор вносит данные в систему. При желании эту часть можно расширить — реализовать полноценный интерфейс бронирования со стороны пользователя.
Функционал панели для бронирования мероприятий показывает, насколько гибкой получилась система. Мы не писали всё заново — мы достроили новую сущность поверх уже продуманной логики.
Результат
Мы сделали не просто сайт с бронированием — мы собрали рабочую систему, которая каждый день помогает бизнесу.
Клиенты бронируют игру или мероприятие за пару кликов. Администраторы видят все записи в календаре, быстро находят нужную бронь и управляют расписанием без путаницы.
Система легко расширяется, если бизнесу нужно что-то ещё: новые форматы, изменения в расписании — всё можно встроить без глобальных переделок.