Клиент организовывал крупное офлайн-мероприятие с разноформатной аудиторией — посетители, торговцы, волонтёры, артисты. Требовался сайт, обеспечивающий:
приём и обработку заявок по множеству сценариев;
продажу билетов разных категорий с возможностью последующей обработки в личном кабинете;
онлайн-бронь стендов с расчётом стоимости и визуализацией карты;
гибкую работу с ролями пользователей;
подключение платёжных систем;
интеграцию с внешними формами Google;
доступность всех операций через админку, пригодную для распечатки списков и билетов.
Для реализации проекта использована WordPress в качестве основной платформы. С учётом нетипичной бизнес-логики и объёма данных, отказались от тяжёлых визуальных конструкторов и шаблонных решений: архитектура сайта строилась на основе кастомных типов записей, пользовательских ролей и мета-полей.
Вся логика взаимодействий — в виде отдельных модулей: фильтрация, печать, генерация билетов, блокировки стендов, система скидок и условий показа. Карта стендов — на JS с синхронизацией с backend-логикой. Управление галереей реализовано с автоматическим сжатием и стилизованным просмотром.
Для защиты заявок и регистрации реализована двухэтапная проверка, подтверждение через email, а также ограничение доступа к неактивным формам.
Универсальная форма регистрации с автоопределением роли пользователя.
Генерация электронных билетов после оплаты: уникальный номер, тип, ФИО, email, дата рождения.
Отправка билета пользователю на email и сохранение в его личный кабинет. Поддержка нескольких типов билетов. Возможность распечатки билета с минимальной информацией. Промежуточная форма оплаты после выбора билета.
Интеграция с Робокассой и возврат статуса оплаты на сайт.
Интерактивная карта с возможностью выбора стендов.
Автоматическая блокировка выбранного стенда на 3 дня (темно-серый цвет).
После оплаты — смена цвета на светло-серый.
Учет скидок за множественный выбор (минус 500₽ при выборе двух стендов и более).
Валидация заявки через окно согласия с правилами торговли.
Синхронная регистрация и заявка после согласия.
Возможность подачи заявок на участие (StandUP, Karaoke, Defile и пр.).
Каждая форма построена по типу Google Forms.
Все формы отправляются одновременно в ЛК администратора и на почту.
Управление категориями мероприятий и фильтрация по статусу.
Редактируемый блок расписания мероприятий в админке.
Синхронизация с интерактивной картой: прокрутка к нужному стенду по клику.
Лёгкий интерфейс создания новых блоков через ACF.
Загрузка изображений волонтёрами и организаторами через админку.
Автоматическое сжатие изображений (на базе WP Smush + доработки).
Кастомизация логики доступа и прав по ролям.
4 независимых раздела: Посетители, Торговцы, Персонал, Мероприятия. Расширенная фильтрация по статусам, категориям, дате.
Цветовая маркировка заявок по статусу. Табличный вывод с возможностью печати. Взаимодействие с заявками: одобрение, отклонение, комментарии.
Реализовано 6 пользовательских ролей с разграничением прав и доступа.
Сайт обрабатывает до нескольких сотен заявок одновременно.
Отказ от тяжёлых плагинов обеспечил стабильность и быстрые отклики системы.
Карта, билеты, фильтры и формы работают синхронно, без конфликтов.
За счёт модульности — простая доработка и масштабирование системы.
Поддержка печати и email-уведомлений внедрена во всех ключевых точках взаимодействия.