104 строки
4.3 KiB
Markdown
104 строки
4.3 KiB
Markdown
# 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 и журнал действий.
|