# 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. ## Локальная установка без домена ```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 ``` ## Установка с собственными данными ```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 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`