BotShop v0.2.0
BotShop — локальная платформа для запуска нескольких Telegram-магазинов из одной панели управления.
Проект рассчитан на легальную продажу цифровых и физических товаров: файлы, доступы, инструкции, мерч, услуги, коды, подписки, инфопродукты. В проекте нет механики тайников, скрытых адресов, обхода платёжных правил или автоподтверждения платежей по словам пользователя.
Что заложено
- подключение нескольких Telegram-ботов через токен;
- локальный режим без домена через Telegram polling;
- webhook-режим для сервера с HTTPS-доменом;
- главная бота: приветствие, выбор города, баланс, рефералка, последний заказ, поддержка;
- последовательность заказа: город → продукт → район/зона → тип/вариант → итог → оплата/отмена;
- оплата с баланса магазина;
- карта/СБП/банк с уникальной суммой для ручной идентификации;
- Bitcoin-реквизиты с подтверждением оператором;
- баланс пользователя через ledger: рефералы, пополнения, возвраты, списания;
- автовыдача товара после статуса
paid; - управление городами, районами, товарами, вариантами, остатками, заказами, платежами;
- базовые логи Telegram-событий и действий администратора;
- автоустановщик
install.sh.
Важная логика платежей
Пользовательское нажатие Я оплатил не делает заказ оплаченным. Оно переводит платёж в проверку оператором. Автовыдача выполняется только после статуса paid.
Для полностью автоматической оплаты нужен официальный платёжный API банка/эквайринга/крипто-провайдера. Уникальная сумма без API — это полуавтоматический режим с ручной проверкой.
Статусы заказа
draft— черновик;waiting_payment— ожидает оплату;payment_review— пользователь заявил оплату, оператор проверяет;paid— оплата подтверждена;delivered— товар выдан;cancelled— отменён;refunded— возвращён;expired— истёк срок оплаты;rejected— оплата отклонена.
Требования
- Ubuntu/Debian сервер или локальная VM;
- PHP 8.1+;
- MySQL 5.7+/8+ или MariaDB;
- Nginx;
- доступ в интернет для Telegram Bot API.
Локальная установка без домена
sudo apt update
sudo apt install -y git curl
cd /root
git clone https://github.com/viktor138irk/bot.git botshop-installer
cd botshop-installer
sudo bash install.sh --local
После установки скрипт покажет:
Админка: http://IP-СЕРВЕРА/login
Email: admin@local.test
Пароль: сгенерированный пароль
В локальном режиме домен и SSL не нужны. Telegram работает через polling-сервис:
systemctl status botshop-polling --no-pager
journalctl -u botshop-polling -f
Установка с собственными данными
sudo bash install.sh --local \
--admin-email admin@example.local \
--admin-pass 'СЛОЖНЫЙ_ПАРОЛЬ' \
--db-pass 'СЛОЖНЫЙ_ПАРОЛЬ_БД'
После установки
- Откройте админку:
http://IP-СЕРВЕРА/login. - Войдите под админом.
- Создайте Telegram-бота через
@BotFather. - В панели откройте «Боты».
- Добавьте токен.
- Поставьте статус
active. - В локальном режиме webhook не нужен.
- Добавьте город, район, товар, вариант, остатки и реквизиты.
- Напишите
/startсвоему Telegram-боту.
Структура
install.sh # автоустановщик
public/index.php # веб-панель и webhook endpoint
scripts/polling.php # локальный Telegram polling worker
database/schema.sql # схема базы
storage/config.php # создаётся installer'ом, не хранится в git
storage/logs/ # логи
Ближайший roadmap
- v0.2.1 — экран баланса, рефералки и последнего заказа в Telegram;
- v0.2.2 — админ-раздел остатков и автовыдачи;
- v0.2.3 — подтверждение платежа оператором с автоматической выдачей;
- v0.2.4 — поддержка в панели;
- v0.3.0 — аккуратный UI, роли операторов и журнал аудита.
Версия
0.2.0