
О проекте
Нативный Telegram-бот на Laravel для просмотра каталога и оформления заказов без перехода на сайт. Есть админка: товары, категории, заказы, пользователи бота, быстрые рассылки и входящие сообщения для поддержки.
Что сделал
- Архитектура на Laravel 7 + irazasyed/telegram-bot-sdk: обработка апдейтов через вебхук, разнесение логики по «диалогам» (категории → список → товар → корзина → заказ).
- Корзина и заказ: добавление/удаление позиций, подсчёт суммы, сбор телефона/адреса; уведомление админов на почту через jobs.
- Гибкое меню из админки (TgButton) и рассылки (TgMailing) с отправкой изображений/документов; очереди для массовых отправок.
- Панель администратора: CRUD для каталога, заказов и пользователей бота, просмотр входящих сообщений (TgInbox), настройки ответов.
- Техническое: логирование в Telegram-канал, хранение медиа, вспомогательные сервисы для отправки сообщений и работы с файлами.
Зачем так
Диалоговая модель упрощает навигацию в мессенджере: пользователь идёт по цепочке «категория → товар → корзина → заказ», а админ управляет всем из одной панели. Очереди разгружают отправку и рассылки, вебхук даёт быстрый отклик без лишней нагрузки.
Итог
Рабочий магазин в формате бота: быстрый выбор товара, простое оформление и удобная поддержка, плюс полный контроль контента и кнопок из админки.
Как бы сделал сейчас
Обновил бы Laravel и свежей telegram-bot-sdk, вынес шаги заказа в отдельные сервисы с тестами и идемпотентностью, а отправку сообщений — целиком в очереди с бэкоффами и ретраями. Для админки — строгие права/аудит, а для бота — троттлинг и хранение состояния диалогов в кэше/БД.