Продавец билетов на спектакли и концерты заказал бота с приложением вместо переписки в директе.
Работало это так: человек писал менеджеру, спрашивал что идёт на выходных, получал афишу картинкой, потом отдельно уточнял свободные места и цены по рядам.
Схему зала присылали скриншотом с сайта, места на нём считали глазами.
Счёт выставляли руками, статус заказа держался в голове менеджера и в его переписке.
На хороших спектаклях всё это рассыпалось - два человека могли выбрать одно место, а часть диалогов обрывалась на вопросе, что подешевле в партере.
Отдельная боль - партнёры, которые приводили зрителей: начисления считали в таблице и регулярно спорили о суммах.
Афиша с фильтром по жанрам, карточка события - фото, описание, дата и площадка, трейлер с YouTube открывается прямо в боте.
Схему зала вынес в Telegram Mini App и нарисовал на Canvas: места кликабельные, цвет по цене, фильтр по цене гасит всё что не подходит, сумма пересчитывается на лету, по секторам видно диапазон цен.
Секторы, ряды и цены тянутся из внутреннего API сайта-источника - разобрал его формат, чтобы посадка и стоимость на схеме совпадали с реальным залом до последнего ряда.
Промокоды и общая скидка процентом правятся из админки.
Оформление - заказ падает менеджеру в чат, дальше статусы: Новый, Ожидает оплаты, Оплачен, Билеты отправлены, Возврат.
Партнёрская программа двухуровневая: реф-ссылка и промокод, свой процент за приведённого зрителя и процент за приглашённых партнёров, кабинет с балансом и выводом на СБП или карту.
Начисления замораживаются до даты мероприятия, иначе партнёру уходят деньги за билет, который потом сдадут.
Встроенный чат поддержки и редактор всех текстов бота лежат так-же в админке.
Стек - Python, aiogram 3, Mini App на Canvas, SQLite, VPS в РФ, приватный репозиторий с README, бэкап базы каждый день в 04:00.
Бот стал основной точкой продажи: зритель сам выбирает место на схеме и оформляет заказ, менеджер подключается на выставление счёта и на возвраты.
Схему проверяли на залах разной посадки, включая партер с ложами и площадку без нумерации мест.
Партнёрские начисления теперь считает система, спорных выплат по таблице не осталось.
Заказчику отдал исходники в приватном репозитории, админку на мероприятия, жанры, заказы и партнёров, общую и партнёрскую статистику с выгрузкой в Excel, README по запуску и переносу на другой сервер.
После запуска дорабатывали афишу под второй город и добавили ручную правку схемы для залов, которых нет в источнике.