Кейсы 5 мин чтения

Витрина из пересланных постов: объявление собирается само

Продавец уже публикует посты, так что заставлять его заполнять формы бессмысленно. Сделал витрину, которая понимает его пост: альбом склеивается в объявление, а опечатку в курсе разборщик чинит сам.

кейсмини-приложениеботвитрина

Коротко (TL;DR)

  • Владелец пригоняет автомобили и уже публикует их постами в мессенджере. Нужна была витрина, где объявления заводит он сам — без разработчика и без сложной админки.
  • Главное решение: он пересылает боту свой обычный пост с фотографиями, и объявление собирается само. Альбом из нескольких снимков склеивается в одно объявление, а не в несколько.
  • MVP развёрнут и работает. До запуска не хватает токена бота и контактов владельца для кнопки связи, а демонстрационные объявления стоят с чужими фотографиями и подлежат замене.

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

Задача

Владелец пригоняет машины и рассказывает о каждой постом в мессенджере: фотографии, цена, что по документам и срокам. Аудитория к такому формату привыкла, и он работает.

Проблема в другом: пост живёт в ленте один день. Через неделю найти машину невозможно, отфильтровать по марке нельзя, сравнить цены тоже. Нужна была витрина, которую владелец наполняет сам. Условие звучало прямо: без разработчика и без админки, в которой нужно разбираться.

Что получилось на витрине

Каталог сделан одной страницей, и эта же страница работает как мини-приложение внутри бота. Не две версии, а одна: поиск, фильтр по марке, сортировка по цене.

Карточка автомобиля — галерея снимков, цена «под ключ» с разбивкой и срок доставки. Разбивка важнее, чем кажется: покупатель видит стоимость в юанях, пошлину и оформление отдельными строками. Одна итоговая сумма без расшифровки всегда вызывает вопрос «а из чего она», и этот вопрос съедает первое сообщение в переписке.

Кнопка «Связаться» показывает только те каналы связи, которые заполнены. Пустых иконок, ведущих в никуда, на витрине нет. Рядом форма «перезвоните мне»: заявка падает владельцу прямо в бот, без почты и без панели, куда надо заходить.

Объявление собирается само

Это ядро проекта. Владелец пересылает боту свой пост с фотографиями — тот самый, который он и так написал бы, — и получает готовое объявление.

Разборщик читает текст и раскладывает его по полям: марка, модель, год, цена, срок. Фотографии из альбома собираются в одно объявление, а не превращаются в несколько пустых карточек с одним снимком в каждой. Это отдельная работа: мессенджер отдаёт альбом как пачку раздельных сообщений, и склеивать их приходится вручную по признакам.

Логика простая. Если человек уже умеет писать посты и делает это каждую неделю, дешевле научить систему понимать его посты, чем заставить его заполнять формы. Форма из двенадцати полей — это отказ от наполнения, растянутый во времени.

При этом разборщик не просто вынимает числа, а сверяет их между собой. В посте обычно есть стоимость в юанях, курс и итоговая сумма в рублях — три величины, связанные одним умножением.

На реальном посте это сразу и пригодилось: курс был написан с ошибкой, и расчёт по нему не сходился с указанной итоговой ценой. Система это заметила и подставила правильный курс, а не перенесла опечатку в карточку.

Мелочь, но показательная. Автоматическое наполнение без проверки просто переносит ошибки автора на витрину быстрее, чем он успевает их замечать.

Админка, которая открывается с телефона

Вторая половина решения — управление с того же устройства, с которого владелец публикует посты.

В админке загрузка фотографий, порядок снимков, выбор обложки и статусы: опубликовано, черновик, продано. Есть кнопка «заполнить из текста» — вставляешь пост в поле, и поля заполняются сами. Это тот же разборщик, только вызванный руками, когда пересылать пост целиком не хочется.

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

Оптимизация под телефон

Витрину смотрят с телефона, поэтому доводили именно телефонный вид. Ниже — что менялось и почему.

Что менялосьБыло и стало
Размер фотографий в галерее640 пикселей мылили, 1600 весили — остановились на 960
Длина страницы автомобилякороче на треть
Кнопки управления галереей32 → 40 пикселей
Снимки с телефона при загрузкеужимаются до отправки, а не после
Проверка вёрсткиэкран 390 на 844, светлая и тёмная тема

Прогнаны проверки контраста и состояний кнопок. Две найденные ошибки исправлены. Отдельно скажу про размер фотографий: это компромисс, а не идеал. Меньший вариант заметно мылил на плотных экранах, больший тормозил загрузку на мобильном интернете, и 960 оказалось точкой, где и то и другое терпимо.

Кнопки галереи выросли с 32 до 40 пикселей по той же причине — 32 пикселя нормально выглядят на макете и плохо попадаются пальцем на ходу.

Стек и адрес

Внутри всё скромно: FastAPI и SQLite, веб-сервер Caddy с автоматическим сертификатом, службы systemd. Для витрины с десятками объявлений этого достаточно, а тяжёлая база и очереди на таком объёме только добавили бы точек отказа.

Домен покупать не стали. Адрес работает через сервис, который превращает IP-адрес сервера в имя с настоящим сертификатом. Для MVP этого хватает, а решение про домен можно принять позже — вместе с решением, как проект вообще называется.

Что осталось до запуска

MVP развёрнут и работает. Дальше нужны три вещи от владельца: токен бота, его контакты для кнопки связи и собственные фотографии вместо демонстрационных.

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

Частые вопросы

Что будет, если пост написан не по шаблону?

Разборщик заполняет то, что нашёл, остальное оставляет пустым. Объявление создаётся в статусе черновика, владелец дописывает недостающее с телефона и публикует. Отказа не происходит, просто часть работы остаётся ручной.

Зачем витрина, если посты и так читают?

Пост живёт день, витрина — всё время, пока машина не продана. Плюс поиск, фильтр и сортировка по цене: в ленте это невозможно. Посты при этом никуда не деваются, они становятся входом на витрину.

Почему не сделали полноценную админку на компьютере?

Потому что владелец работает с телефона. Админка, ради которой надо садиться за компьютер, просто не используется, и каталог снова наполняет разработчик. Вход с компьютера есть, но он второстепенный.

SQLite выдержит?

На этом объёме — да, с запасом. Витрина читается гораздо чаще, чем пишется, а записей здесь десятки, не миллионы. Переезд на другую базу — задача на тот момент, когда появится реальная нагрузка, а не заранее.

Можно ли так наполнять не автомобили?

Да, подход не про машины, а про продавца, который уже публикует посты. Меняются поля, которые вынимает разборщик, и правила сверки чисел. Всё остальное — пересылка, склейка альбома, статусы — работает так же.

Коротко о главном

Если продавец уже пишет посты, самый дешёвый способ наполнить витрину — научить систему понимать эти посты. Не форма из десятка полей, а пересылка одного сообщения, после которой объявление собирается само.

Остальное подчинено тому же принципу: админка открывается с телефона, вход по коду из бота, заявки падают туда же в бот. Ни одного места, где владельцу пришлось бы менять свои привычки ради системы.

Если у вас есть канал с товарами и нет каталога — скорее всего, вам нужна не большая платформа, а перевод уже существующих постов в витрину. Опишите, как вы публикуете сейчас, и я скажу, что из этого разбирается автоматически. Напишите в Telegram, MAX или VK.

Услуги по теме

Что я делаю для бизнеса

  • Боты в Telegram, MAX, VK
  • Автоматизация процессов и CRM
  • Аналитика и дашборды
  • Сайты и лендинги под ключ

Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»

12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.

Готовы обсудить вашу задачу?

Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.

Пишу о разработке, ИИ и законах для бизнеса

Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.

Готовые решения под ключTurnkey solutionsSoluciones llave en mano交钥匙解决方案Түлхүүр гардуулах шийдэл 451 готовых IT-решений для бизнеса451 ready-made IT solutions for business451 soluciones IT listas para empresas451 个面向企业的现成 IT 解决方案Бизнест зориулсан 451 бэлэн IT шийдэл Автоматизация, боты, AI, 152-ФЗ и платформы · бесплатная консультацияAutomation, bots, AI, data privacy and platforms · free consultationAutomatización, bots, IA, privacidad de datos y plataformas · consulta gratis自动化、机器人、AI、数据合规与平台 · 免费咨询Автоматжуулалт, бот, AI, өгөгдлийн хамгаалалт ба платформ · үнэгүй зөвлөгөө Смотреть каталогView catalogVer catálogo查看目录Каталог үзэх