Кейс: Telegram-бот для подбора автозапчастей
Задача клиента
Бизнесу по продаже автозапчастей требовался инструмент, который сократит ручной труд менеджеров и поможет клиентам быстрее находить подходящие детали. Нужно было объединить поиск по артикулу, названию и VIN/Frame номеру, а также показывать актуальные цены и наличие от нескольких поставщиков.
Решение от Flowcore
Мы разработали асинхронного Telegram-бота, который агрегирует предложения поставщиков в реальном времени и ведет пользователя по понятному сценарию подбора. Бот работает с точными артикулами, нечетким поиском по названию детали и сложной логикой VIN-декодирования.
Система интегрирована с Rossko, Autotrade, MXGroup и каталогом Laximo. Для нестандартных ситуаций добавлены резервные сценарии: браузерная автоматизация через Playwright, AI-декодирование через OpenRouter и fallback через PartsAPI.
Ключевые реализованные возможности:
- Мульти-API интеграция: Единый слой для работы с SOAP, REST API и веб-парсингом, который собирает цены и наличие от разных поставщиков.
- Отказоустойчивый VIN/Frame поиск: Приоритетный парсинг каталога Rossko/Laximo через Playwright, AI-фоллбэк через OpenRouter и резервный запрос к PartsAPI.
- Интерактивный подбор по каталогу: После расшифровки VIN пользователь может навигироваться по дереву категорий, выбирать узлы и получать оригинальные детали с изображениями.
- Нечеткий поиск: Для поиска по названию и сопоставления данных используется rapidfuzz, что повышает релевантность выдачи даже при неточном запросе.
- Telegram-интерфейс на FSM: Динамические клавиатуры, слайдеры товаров, сценарии выбора деталей и оформление заказа внутри бота.
- Асинхронный бэкенд: Сетевые операции выполняются на asyncio и aiohttp, база работает через SQLAlchemy 2.0 и asyncpg, миграции ведутся через Alembic.
- Операционная отчетность: Данные о заказах сохраняются в базе и выгружаются в Google Sheets для удобной работы менеджеров.
Технические детали
Для защиты от лимитов поставщиков в боте внедрен троттлинг запросов, а часто используемые справочники и категории кэшируются. Это снижает нагрузку на внешние сервисы и ускоряет повторные сценарии подбора.
Архитектура проекта построена так, чтобы можно было добавлять новых поставщиков без переписывания пользовательского сценария: бот обращается к унифицированному слою поиска, а конкретные интеграции инкапсулированы отдельно.
Результат
Клиенты получили удобный инструмент для самостоятельного подбора запчастей, а менеджеры — меньше ручных запросов и более структурированные заявки. Бот помогает сравнивать предложения разных поставщиков, быстрее находить OEM-номера и доводить пользователя до заказа прямо в Telegram.
Стек технологий
Python, aiogram 3, asyncio, SQLAlchemy 2.0, Alembic, PostgreSQL, SQLite, Playwright, aiohttp, Pydantic, rapidfuzz, BeautifulSoup, OpenRouter API, Google Sheets API.