تخفیف پلاس — راهنمای نصب روی cPanel (نسخه اولیه)

مهم:
- توکن ربات، رمز دیتابیس و اطلاعات کارت را در چت برای کسی نفرستید.
- ابتدا از فایل‌های فعلی خود یک نسخه پشتیبان بگیرید.
- این نسخه پرداخت آنلاین انجام نمی‌دهد؛ پرداخت کارت‌به‌کارت است و مدیر دستی بررسی می‌کند.
- کد تخفیف فقط بعد از تأیید مدیر تحویل می‌شود.
- برای استفاده واقعی، اطلاعات کارت را در config.php روی هاست وارد کنید.
- اگر config.php در پوشه عمومی است، .htaccess باید دسترسی مستقیم به آن را مسدود کند.
- در صورت خطای 500، بخش Errors یا error_log هاست را بررسی کنید.

۱) در cPanel > File Manager وارد همان پوشه‌ای شوید که bot.php فعلی قرار دارد.
۲) از bot.php و config.php فعلی نسخه پشتیبان بگیرید.
۳) فایل‌های این بسته را بارگذاری کنید. اگر config.php موجود است، اول نسخه پشتیبان بگیرید و سپس جایگزین کنید.
۴) در config.php مقادیر زیر را فقط روی هاست خودتان وارد کنید:
   BOT_TOKEN، DB_PASS، CARD_NUMBER، CARD_OWNER، WEBHOOK_SECRET.
   نام دیتابیس و کاربر از قبل تنظیم شده‌اند؛ آن‌ها را با مقادیر پنل خودتان تطبیق دهید.
۵) فایل .htaccess را در همان پوشه قرار دهید. اگر سایت از قبل .htaccess دارد، آن را کورکورانه جایگزین نکنید؛ قوانین را با فایل موجود ادغام کنید.
۶) در phpMyAdmin دیتابیس درست را انتخاب کنید. اگر چهار جدول products, discount_codes, orders, payments از قبل وجود دارند، لازم نیست schema.sql را دوباره اجرا کنید.
۷) جدول جدید admin_sessions را بسازید؛ SQL زیر را در phpMyAdmin > SQL اجرا کنید:

CREATE TABLE IF NOT EXISTS admin_sessions (
    telegram_id BIGINT UNSIGNED PRIMARY KEY,
    action VARCHAR(30) NOT NULL,
    product_id INT UNSIGNED DEFAULT NULL,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

۸) مطمئن شوید PHP cURL و PDO MySQL فعال‌اند.
۹) webhook را با فایل setup_webhook.php تنظیم کنید:
   - داخل این فایل، BOT_WEBHOOK_URL را با آدرس دقیق HTTPS فایل bot.php خودتان جایگزین کنید.
   - مطمئن شوید BOT_TOKEN و WEBHOOK_SECRET در config.php مقدار واقعی دارند.
   - یک‌بار آدرس setup_webhook.php را در مرورگر باز کنید.
   - اگر پیام موفقیت دیدید، فوراً setup_webhook.php را از هاست حذف کنید.
   - هرگز آدرسی که شامل توکن ربات است را برای کسی نفرستید.
۱۰) در تلگرام به ربات /start بفرستید.
۱۱) از حساب مدیر با شناسه ADMIN_ID دستور /admin را بفرستید.

دستورات مدیر:
- /admin — پنل مدیریت
- /addproduct نام | توضیح | قیمت — ساخت محصول
  مثال: /addproduct کد دیجی‌کالا | کد تخفیف خرید | 50000
- /addcodes شناسه_محصول — شروع ورود کدها
  سپس هر کد را در یک خط بفرستید؛ /done برای پایان
- /disable شناسه_محصول — غیرفعال‌کردن محصول
- /enable شناسه_محصول — فعال‌کردن محصول

چرخه خرید:
۱) مشتری محصول را انتخاب می‌کند و سفارش ساخته می‌شود.
۲) ربات اطلاعات کارت و مبلغ را نشان می‌دهد.
۳) مشتری کد پیگیری را به صورت پیام متنی می‌فرستد.
۴) مدیر کد پیگیری را بررسی و تأیید یا رد می‌کند.
۵) هنگام تأیید، ربات یک کد موجود را در تراکنش دیتابیس به سفارش اختصاص می‌دهد و تحویل می‌دهد.
۶) اگر موجودی تمام شده باشد، کد تحویل نمی‌شود و مدیر پیام هشدار می‌گیرد.

محدودیت‌های این نسخه:
- یک پیام متنی عادی از مشتری که سفارش منتظر کد پیگیری داشته باشد، به‌عنوان کد پیگیری ثبت می‌شود.
- این نسخه رسید تصویری را پردازش نمی‌کند.
- کارت‌به‌کارت به‌صورت خودکار قابل راستی‌آزمایی نیست؛ مدیر باید پرداخت را واقعاً در حساب خود بررسی کند.
- اگر چند سفارش هم‌زمان منتظر کد پیگیری باشند، پیام به جدیدترین سفارش منتظر اختصاص داده می‌شود.
- قبل از فروش واقعی، با یک محصول و کد آزمایشی و سفارش تست کنید.
