docs: подробный README (разбор проекта при переносе в Gitea)
Старый README сохранён как README.upstream.md.
Этот коммит содержится в:
@@ -0,0 +1,103 @@
|
||||
# BotShop v0.2.1
|
||||
|
||||
BotShop — локальная платформа для запуска нескольких Telegram-магазинов из одной панели управления.
|
||||
|
||||
Проект рассчитан на легальную продажу цифровых и физических товаров: файлы, доступы, инструкции, мерч, услуги, коды, подписки, инфопродукты.
|
||||
|
||||
## Безопасный scope
|
||||
|
||||
В проекте реализуется обычный магазин:
|
||||
|
||||
- несколько Telegram-ботов в одной панели;
|
||||
- каталог товаров;
|
||||
- выбор города и зоны доставки;
|
||||
- выбор товара и варианта;
|
||||
- итоговая карточка заказа;
|
||||
- баланс пользователя;
|
||||
- реферальная программа;
|
||||
- последний заказ;
|
||||
- связь с поддержкой;
|
||||
- ручная проверка оплаты оператором;
|
||||
- выдача цифрового товара только после подтверждённой оплаты;
|
||||
- журнал действий администратора и платежных решений.
|
||||
|
||||
Не реализуется:
|
||||
|
||||
- продажа запрещённых товаров;
|
||||
- скрытые адреса и тайники;
|
||||
- автоматическое признание оплаты только по нажатию пользователя;
|
||||
- обход платёжных правил;
|
||||
- анонимная схема без проверяемого учёта.
|
||||
|
||||
## Логика заказа
|
||||
|
||||
1. Пользователь открывает бота.
|
||||
2. Видит главное меню: каталог, баланс, рефералка, последний заказ, поддержка.
|
||||
3. Выбирает город.
|
||||
4. Выбирает зону доставки.
|
||||
5. Выбирает товар.
|
||||
6. Выбирает вариант.
|
||||
7. Получает итоговую карточку заказа.
|
||||
8. Выбирает действие: оплатить или отменить.
|
||||
9. После сообщения о платеже заказ уходит оператору на проверку.
|
||||
10. Оператор подтверждает оплату в панели.
|
||||
11. Система выдаёт цифровой товар из остатков и пишет событие в аудит.
|
||||
|
||||
## Статусы заказа
|
||||
|
||||
- `draft` — черновик;
|
||||
- `waiting_payment` — ожидает оплату;
|
||||
- `payment_review` — ожидает проверки оператором;
|
||||
- `paid` — оплата подтверждена;
|
||||
- `delivered` — товар выдан;
|
||||
- `cancelled` — отменён;
|
||||
- `refunded` — возвращён;
|
||||
- `expired` — истёк срок оплаты;
|
||||
- `rejected` — отклонён.
|
||||
|
||||
## Установка
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
После установки:
|
||||
|
||||
```text
|
||||
Админка: http://IP-СЕРВЕРА/login
|
||||
Email: admin@local.test
|
||||
Пароль: сгенерированный пароль
|
||||
```
|
||||
|
||||
## Локальный режим
|
||||
|
||||
В локальном режиме домен и SSL не нужны. Telegram работает через polling-сервис:
|
||||
|
||||
```bash
|
||||
systemctl status botshop-polling --no-pager
|
||||
journalctl -u botshop-polling -f
|
||||
```
|
||||
|
||||
## Структура
|
||||
|
||||
```text
|
||||
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 — безопасный scope, совместимость схемы, главное меню бота;
|
||||
- v0.2.2 — раздел остатков и выдачи цифрового товара;
|
||||
- v0.2.3 — операторская проверка оплаты и аудит;
|
||||
- v0.2.4 — поддержка в панели;
|
||||
- v0.3.0 — роли операторов, улучшенный UI и журнал действий.
|
||||
Ссылка в новой задаче
Block a user