Все работы

Telegram-каталог с управлением через веб-панель

Каталог и корзина в Telegram, ведение содержимого — в отдельной веб-панели. Администратор управляет товарами и предусмотренными текстами, меню и кнопками, а пользователь просматривает каталог и собирает свою корзину.

Задача: самостоятельный инструмент рядом с сайтом

У заказчика уже был сайт. Он обратился за отдельным инструментом в Telegram — дополнительной точкой входа для клиентов. Задача заключалась не в переносе сайта в мессенджер и не в обмене данными между ними: интеграции и синхронизации с сайтом у бота нет.

Историческая предметная область проекта — алкогольная розница. Здесь речь о выполненной разработке: каталоге, пользовательском интерфейсе и средствах управления содержимым.

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

Как устроена работа с каталогом

Администратор ведёт категории и товары в веб-панели: меняет названия, описания, цены и изображения. Отдельные записи можно редактировать через формы, а набор товарных данных — загружать из Excel. В этой же панели доступны предусмотренные тексты сообщений, меню и свойства кнопок.

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

Так у двух участников разные задачи внутри одного инструмента. Администратор отвечает за содержимое, пользователь — за собственный выбор, а программа формирует представление каталога, сохраняет состав корзины и выполняет расчёт.

Схема действий

Администратор · Веб-панель

  • Ведёт товары и категории
  • Правит предусмотренные тексты, меню и кнопки
  • Загружает набор товарных данных из Excel

Ведение содержимого — по мере необходимости

Пользователь · Telegram

Просматривает категории и товары

Пользователь · Корзина

Выбирает позиции и количество

Бот

Показывает состав корзины и сумму по текущим ценам

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

Что я разработал и сделал управляемым

Бота я полностью разработал самостоятельно. В решении объединил каталог, пользовательскую корзину, веб-панель, загрузку из Excel и редактируемые элементы интерфейса. Содержательная часть работы — не только показать данные в Telegram, но и дать средства для их ведения.

Каталог и корзина опираются на связанные данные

Категории и товары хранятся как записи каталога. На их основе бот строит список и карточку, а не использует отдельное вручную написанное сообщение для каждой позиции. Это разделяет сведения о товаре и способ их представления в мессенджере.

Корзина связывает пользователя с выбранными товарами и количеством. Для расчёта используется текущая цена товара из каталога, а не копия цены на момент добавления. Поэтому корзина здесь — способ собрать выбор и увидеть сумму, не механизм фиксации цены, учёта остатков или резервирования.

Ручная правка и Excel решают разные задачи

Веб-панель даёт возможность работать с отдельной записью: добавить товар, изменить его данные или удалить. Загрузка из Excel предназначена для переноса набора товарных данных в каталог бота. Импорт добавляет новые записи либо обновляет поля найденных.

Существенное правило этой версии — сопоставление товара по названию, а не по артикулу. Категории, указанные в таблице, должны уже существовать в каталоге. Это определённый способ загрузки подготовленных данных, а не обработка любой таблицы без дополнительных условий.

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

Содержимое интерфейса отделено от нового поведения

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

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

Результат разработки

Я создал самостоятельный инструмент с каталогом и корзиной в Telegram и веб-панелью для ведения его содержимого. В нём связаны пользовательские действия и средства управления: от загрузки товарных данных до настройки предусмотренных сообщений и меню.

Главное в этой работе — две стороны одного решения. Пользователь взаимодействует с каталогом, администратор ведёт данные и доступные настройки интерфейса, а бот строит представление и рассчитывает корзину. Это и есть функциональный результат разработки.

Технологии: Python, Telegram Bot API / python-telegram-bot, Flask / Flask-Admin, SQLAlchemy, pandas для работы с Excel.

Обсудим вашу задачу?

Коротко опишите, что хотите изменить или создать. Готовое ТЗ не нужно.