Back to Projects
</>Project

Metin2 Discord Sales Bot

Automated payment, ticket, and support management bot on Discord. Multi-package selection, bank/crypto payment, receipt approval, and archiving system.

Node.jsdiscord.js v14SupabasePostgreSQLSlash CommandsDiscord ModalsDiscord Embeds
Visit Live Site

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ı

Satış Kanalı

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

E-posta Modal

E-posta Modal

Discord Modal ile e-posta adresi toplama

Satın Alma Talebi

Satın Alma Talebi

Ticket kanalında paket seçimi adımı

Ödeme Yöntemi

Ödeme Yöntemi

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

Ödeme Bilgileri

Ödeme Bilgileri

Banka bilgileri ve dekont yükleme talimatları

Dekont Yükleme

Dekont Yükleme

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

Admin Onay

Admin Onay

/onayla slash komutu ile ödeme onaylama

Onay Bildirimi

Onay Bildirimi

Kullanıcıya DM ile ödeme onay bildirimi

View Project Live

Visit the live site to experience this project in real environment.

Visit Live Site