Заказчик - магазин техники и гаджетов, попросил вынести продажи из чатов в Mini App.
До этого работало так: покупатель спрашивал про модель, менеджер открывал сайт поставщика и копировал характеристики в чат руками.
Следом шёл второй вопрос - чем эта модель отличается от соседней.
На сравнение уходило сообщение строк на пятнадцать, и по двадцать минут на каждого покупателя.
Про рассрочку считали на калькуляторе и называли цифру в чате, после чего её ещё раз переспрашивали.
Половина переписок при этом заканчивалась ничем, потому что до вечера менеджер доходил не до всех.
Магазин хотел снять с него повторяющуюся часть и оставить только те диалоги, где нужен живой человек.
Витрину и оформление вынес в Mini App, бот оставил на уведомления, историю заказов и статус доставки.
Характеристики вынес в отдельную таблицу свойств - у каждой категории свой набор полей, поэтому в карточке ноутбука стоят диагональ и процессор, а в карточке наушников время работы и тип подключения.
Сравнение - два товара на одном экране столбцами, различия подсвечены, одинаковые строки сворачиваются.
Фильтры по памяти, цвету и цене работают по вариантам: у связки память-цвет свой артикул, своя цена и свой остаток, так-же своё фото в галерее.
Расчёт рассрочки - покупатель выбирает срок, приложение показывает платёж в месяц и итоговую сумму, заявка уходит менеджеру уже с посчитанными условиями.
Гарантийный талон формируется вместе с заказом, серийник подставляется при отгрузке и остаётся в истории покупателя.
Что ломается в таких магазинах - остатки. Товар продали в точке, а в приложении он ещё висит в наличии, покупатель оформляет и получает отказ.
Закрыл синхронизацией с учётной таблицей магазина раз в несколько минут и блокировкой позиции на время оформления.
Стек - Python, aiogram 3, Mini App на голом JS без сборщика и фреймворков, PostgreSQL, оплата картой и СБП через ЮKassa, VPS в РФ, ежедневный бэкап базы.
Первый месяц дал порядка 170 заказов через приложение, раньше столько же вытягивали перепиской и вдвоём.
Экран сравнения оказался самым посещаемым после каталога, к нему заходят чаще, чем к фильтрам.
Менеджер подключается на рассрочку и на спорную гарантию, остальное покупатель проходит сам.
Магазину остались исходники в приватном репозитории, админка на товары, варианты и заказы, инструкция как завести новую категорию со своим набором характеристик.
После сдачи доработали дважды - добавили уведомление о снижении цены на отложенный товар и выгрузку заказов в Excel для сверки с бухгалтерией.