diff --git a/README.md b/README.md index 766a3d9..ac0f866 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,61 @@ -# BotShop v0.2.0 +# BotShop v0.2.1 BotShop — локальная платформа для запуска нескольких Telegram-магазинов из одной панели управления. -Проект рассчитан на легальную продажу цифровых и физических товаров: файлы, доступы, инструкции, мерч, услуги, коды, подписки, инфопродукты. В проекте нет механики тайников, скрытых адресов, обхода платёжных правил или автоподтверждения платежей по словам пользователя. +Проект рассчитан на легальную продажу цифровых и физических товаров: файлы, доступы, инструкции, мерч, услуги, коды, подписки, инфопродукты. -## Что заложено +## Безопасный scope -- подключение нескольких Telegram-ботов через токен; -- локальный режим без домена через Telegram polling; -- webhook-режим для сервера с HTTPS-доменом; -- главная бота: приветствие, выбор города, баланс, рефералка, последний заказ, поддержка; -- последовательность заказа: город → продукт → район/зона → тип/вариант → итог → оплата/отмена; -- оплата с баланса магазина; -- карта/СБП/банк с уникальной суммой для ручной идентификации; -- Bitcoin-реквизиты с подтверждением оператором; -- баланс пользователя через ledger: рефералы, пополнения, возвраты, списания; -- автовыдача товара после статуса `paid`; -- управление городами, районами, товарами, вариантами, остатками, заказами, платежами; -- базовые логи Telegram-событий и действий администратора; -- автоустановщик `install.sh`. +В проекте реализуется обычный магазин: -## Важная логика платежей +- несколько Telegram-ботов в одной панели; +- каталог товаров; +- выбор города и зоны доставки; +- выбор товара и варианта; +- итоговая карточка заказа; +- баланс пользователя; +- реферальная программа; +- последний заказ; +- связь с поддержкой; +- ручная проверка оплаты оператором; +- выдача цифрового товара только после подтверждённой оплаты; +- журнал действий администратора и платежных решений. -Пользовательское нажатие `Я оплатил` не делает заказ оплаченным. Оно переводит платёж в проверку оператором. Автовыдача выполняется только после статуса `paid`. +Не реализуется: -Для полностью автоматической оплаты нужен официальный платёжный API банка/эквайринга/крипто-провайдера. Уникальная сумма без API — это полуавтоматический режим с ручной проверкой. +- продажа запрещённых товаров; +- скрытые адреса и тайники; +- автоматическое признание оплаты только по нажатию пользователя; +- обход платёжных правил; +- анонимная схема без проверяемого учёта. + +## Логика заказа + +1. Пользователь открывает бота. +2. Видит главное меню: каталог, баланс, рефералка, последний заказ, поддержка. +3. Выбирает город. +4. Выбирает зону доставки. +5. Выбирает товар. +6. Выбирает вариант. +7. Получает итоговую карточку заказа. +8. Выбирает действие: оплатить или отменить. +9. После сообщения о платеже заказ уходит оператору на проверку. +10. Оператор подтверждает оплату в панели. +11. Система выдаёт цифровой товар из остатков и пишет событие в аудит. ## Статусы заказа - `draft` — черновик; - `waiting_payment` — ожидает оплату; -- `payment_review` — пользователь заявил оплату, оператор проверяет; +- `payment_review` — ожидает проверки оператором; - `paid` — оплата подтверждена; - `delivered` — товар выдан; - `cancelled` — отменён; - `refunded` — возвращён; - `expired` — истёк срок оплаты; -- `rejected` — оплата отклонена. +- `rejected` — отклонён. -## Требования - -- Ubuntu/Debian сервер или локальная VM; -- PHP 8.1+; -- MySQL 5.7+/8+ или MariaDB; -- Nginx; -- доступ в интернет для Telegram Bot API. - -## Локальная установка без домена +## Установка ```bash sudo apt update @@ -57,7 +66,7 @@ cd botshop-installer sudo bash install.sh --local ``` -После установки скрипт покажет: +После установки: ```text Админка: http://IP-СЕРВЕРА/login @@ -65,6 +74,8 @@ Email: admin@local.test Пароль: сгенерированный пароль ``` +## Локальный режим + В локальном режиме домен и SSL не нужны. Telegram работает через polling-сервис: ```bash @@ -72,27 +83,6 @@ systemctl status botshop-polling --no-pager journalctl -u botshop-polling -f ``` -## Установка с собственными данными - -```bash -sudo bash install.sh --local \ - --admin-email admin@example.local \ - --admin-pass 'СЛОЖНЫЙ_ПАРОЛЬ' \ - --db-pass 'СЛОЖНЫЙ_ПАРОЛЬ_БД' -``` - -## После установки - -1. Откройте админку: `http://IP-СЕРВЕРА/login`. -2. Войдите под админом. -3. Создайте Telegram-бота через `@BotFather`. -4. В панели откройте «Боты». -5. Добавьте токен. -6. Поставьте статус `active`. -7. В локальном режиме webhook не нужен. -8. Добавьте город, район, товар, вариант, остатки и реквизиты. -9. Напишите `/start` своему Telegram-боту. - ## Структура ```text @@ -104,14 +94,10 @@ storage/config.php # создаётся installer'ом, не хранитс storage/logs/ # логи ``` -## Ближайший roadmap +## Roadmap -- v0.2.1 — экран баланса, рефералки и последнего заказа в Telegram; -- v0.2.2 — админ-раздел остатков и автовыдачи; -- v0.2.3 — подтверждение платежа оператором с автоматической выдачей; +- v0.2.1 — безопасный scope, совместимость схемы, главное меню бота; +- v0.2.2 — раздел остатков и выдачи цифрового товара; +- v0.2.3 — операторская проверка оплаты и аудит; - v0.2.4 — поддержка в панели; -- v0.3.0 — аккуратный UI, роли операторов и журнал аудита. - -## Версия - -`0.2.0` +- v0.3.0 — роли операторов, улучшенный UI и журнал действий.