Metin2 Discord Sales Bot
Automated payment, ticket, and support management bot on Discord. Multi-package selection, bank/crypto payment, receipt approval, and archiving system.
About the Project
Metin2 Discord Sales Bot is a full-featured e-commerce and support bot developed for the metin2serverler.pro platform. The bot fully automates the server showcase sales process on Discord: user ticket creation, email collection (modal popup), package selection (monthly 49₺ / yearly 449₺), payment method selection (bank transfer or crypto USDT), receipt upload, admin approval/rejection workflow, and automatic channel archiving. User inquiries are managed through the support ticket system. All payments are logged in the Supabase PostgreSQL database.
Challenges
The challenges included designing a multi-step e-commerce flow within Discord API's interaction-based architecture, preventing race conditions in concurrent user operations, creating a fallback mechanism when Discord Modal fails, and managing different payment methods in a single flow. Additionally, managing ticket channel permissions, the archiving process, and ensuring database consistency were technically challenging.
Solutions
Race conditions were prevented by creating a 5-second lock mechanism with the ProcessingUsers Set structure. An email collection fallback via channel messages was added when Discord Modal fails. Admin operations were simplified with slash commands (/setup, /approve, /reject, /support-setup). A complete audit trail was created by logging each payment record to Supabase. Channel permissions were dynamically managed to ensure only the relevant user and admin have access. Consistent and professional appearance was achieved with embed templates.
Results
The bot is successfully running on the metin2serverler.pro Discord server. The purchase process has been fully automated. The payment approval/rejection workflow is easily managed by admins via slash commands. User inquiries are effectively resolved through the support ticket system. All transactions are logged in the database, providing a transparent audit trail.
Screenshots

Satış Kanalı
Vitrin paketleri ve satın al butonu ile satış embed'i

E-posta Modal
Discord Modal ile e-posta adresi toplama

Satın Alma Talebi
Ticket kanalında paket seçimi adımı

Ödeme Yöntemi
Havale/EFT ve Kripto ödeme yöntemi seçimi

Ödeme Bilgileri
Banka bilgileri ve dekont yükleme talimatları

Dekont Yükleme
Kullanıcı dekont görseli yükleme ve admin bildirimi

Admin Onay
/onayla slash komutu ile ödeme onaylama

Onay Bildirimi
Kullanıcıya DM ile ödeme onay bildirimi