Техническое задание: Telegram-бот для службы поддержки

Цель проекта

Разработать Telegram-бота для автоматизации взаимодействия с клиентами интернет-магазина. Бот должен принимать обращения, консультационные запросы и претензии, структурировать их и передавать оператору для дальнейшей обработки.

Функциональные требования

1. Главное меню

При старте бот должен отображать главное меню с двумя кнопками:

  • Вопрос по товарам / консультация
  • Гарантия/брак/возвраты

2. Обработка обращения "Вопрос по товарам / консультация"

При выборе этого пункта бот должен последовательно запросить у пользователя следующие данные:

  • ФИО - текстовое поле для ввода.
  • Телефон - текстовое поле для ввода.
  • Категория товара и артикул - выбор из предложенных кнопок.
  • Ваш вопрос - текстовое поле для развернутого описания.

После заполнения все данные формы должны быть отправлены оператору в заданный Telegram-чат.

3. Обработка обращения "Гарантия/брак/возвраты"

Логика и этапы сбора данных для этого типа обращений должны быть аналогичны пункту 2 (сбор ФИО, телефона, данных о товаре и сути проблемы). Конкретные поля уточняются в ходе разработки.

4. База знаний

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

Технические требования

  • Язык программирования: Python.
  • Библиотека для работы с Telegram API: aiogram или python-telegram-bot.
  • Для хранения временных данных пользователей (state) рекомендуется использовать FSM (Finite State Machine).
  • Данные завершенных обращений должны передаваться оператору в удобочитаемом формате (сообщением в чат).

Требования к реализации

  • Четкая и логичная структура диалога.
  • Обработка некорректного ввода.
  • Возможность отмены действия на любом этапе.
  • Чистый, документированный код.
  • Инструкция по развертыванию и настройке.

Верстка модального окна popup

Требуется сверстать всплывающее окно (popup) с функционалом открытия по кнопке и закрытия по клику на крестик или вне области окна. Внутри popup будет размещаться заголовок, описание и другие элементы.