Skip to content

kentzu213/telegram-shop-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Shop Bot

🤖 Telegram Shop Bot

Bot bán hàng tự động trên Telegram với thanh toán QR VietQR
Auto-selling Telegram bot with VietQR payment, stock management & Google Sheet sync

🇻🇳 Tiếng Việt | 🇬🇧 English

Setup Stars License

Node.js Telegraf SQLite VietQR Google Sheets


✨ Tính năng nổi bật

Tính năng Mô tả
🛒 Bán hàng tự động Khách chọn sản phẩm → thanh toán → nhận hàng tự động
💳 QR VietQR Tạo mã QR thanh toán tức thì, hỗ trợ 40+ ngân hàng VN
🏦 2 ngân hàng Cho phép khách chọn ngân hàng khi thanh toán
📦 Quản lý kho Thêm/xem/xóa kho hàng, giao tài khoản tự động
📊 Google Sheet Sync Đồng bộ sản phẩm từ Google Sheet (tự động mỗi 5 phút)
🔧 Admin Panel Quản lý đơn hàng, sản phẩm, thống kê doanh thu
📢 Broadcast Gửi thông báo tới tất cả khách hàng
🔄 Giao hàng thủ công Admin cung cấp tài khoản trực tiếp cho sản phẩm hết kho

🔄 Flow mua hàng

Khách: /product → Chọn SP → Chọn SL → Chọn Bank
                        ↓
              Bot tạo QR VietQR → Khách quét mã
                        ↓
            Admin nhấn ✅ Xác nhận (hoặc /confirm)
                        ↓
           Bot tự động gửi tài khoản cho khách ✅

⚡ Cài đặt nhanh

Yêu cầu

1️⃣ Clone & cài đặt

git clone https://github.com/kentzu213/telegram-shop-bot.git
cd telegram-shop-bot
npm install

2️⃣ Tạo Bot Telegram

  1. Mở Telegram → tìm @BotFather → gửi /newbot
  2. Đặt tên bot → nhận Bot Token
  3. Gửi /myid cho @userinfobot → nhận Telegram ID

3️⃣ Cấu hình

cp .env.example .env

Mở .env và điền thông tin:

# Token từ @BotFather
BOT_TOKEN=1234567890:ABCdefGhIjKlMnOpQrS

# Telegram ID của admin
ADMIN_ID=123456789

# Ngân hàng (tra mã BIN: https://www.vietqr.io/danh-sach-ngan-hang)
BANK_BIN=970422
BANK_ACCOUNT=1234567890
BANK_ACCOUNT_NAME=NGUYEN VAN A
BANK_NAME=MB

# Thông tin shop
SHOP_NAME=My Shop
SUPPORT_CONTACT=@your_username

4️⃣ Chạy bot

npm start

💡 Dev mode (auto-restart): npm run dev

📋 Danh sách lệnh

👤 Lệnh người dùng
Lệnh Mô tả
/start 🔄 Bắt đầu / Khởi động lại
/menu 👤 Thông tin tài khoản
/product 📦 Danh sách sản phẩm
/nap [số tiền] 💰 Nạp số dư
/checkpay 🔍 Kiểm tra thanh toán
/support 🆘 Hỗ trợ
/myid 🆔 Lấy Telegram ID
🔧 Lệnh Admin
Lệnh Mô tả
/admin 📊 Admin panel tổng quan
Sản phẩm
/listproduct Xem tất cả sản phẩm
/addproduct catID | tên | giá Thêm sản phẩm mới
/editprice ID giá Sửa giá
/editname ID tên Sửa tên
/toggleproduct ID Bật/tắt sản phẩm
/deleteproduct ID Xóa sản phẩm
/addcategory tên | emoji Thêm danh mục
Kho hàng
/addstock ID Thêm tài khoản vào kho
/viewstock ID Xem kho sản phẩm
/clearstock ID Xóa kho chưa bán
Đơn hàng
/confirm orderID ✅ Xác nhận & giao hàng
/pending Xem đơn chờ
/cancelorder orderID Hủy đơn
/orders Đơn hàng gần đây
Khác
/stats Thống kê chi tiết
/users Danh sách users
/broadcast Gửi thông báo all users
/sync Đồng bộ Google Sheet
/setbank Xem thông tin ngân hàng
/setshop Xem/sửa thông tin shop

📦 Thêm hàng vào kho

# Bước 1: Gửi lệnh với product ID
/addstock 1

# Bước 2: Gửi danh sách tài khoản (mỗi dòng 1 cái)
email1@example.com|password1|extra_info1
email2@example.com|password2|extra_info2

📊 Google Sheet Sync (tùy chọn)

Đồng bộ danh sách sản phẩm tự động từ Google Sheet:

Cột Nội dung
A ID
B Tên sản phẩm
C Giá bán
D Đơn vị
E Số lượng trong kho
F Còn hàng (TRUE/FALSE)
G Link liên hệ (Zalo...)
H Ghi chú / Khuyến mãi

Cách setup:

  1. File → Chia sẻ → Xuất bản lên web → Xuất bản
  2. Copy Sheet ID từ URL: docs.google.com/spreadsheets/d/[SHEET_ID]/edit
  3. Thêm vào .env:
GOOGLE_SHEET_ID=your_sheet_id
SHEET_SYNC_INTERVAL=5

🏦 Hỗ trợ 2 ngân hàng

Thêm ngân hàng thứ 2 vào .env để khách được chọn:

BANK2_BIN=970436
BANK2_ACCOUNT=9876543210
BANK2_ACCOUNT_NAME=NGUYEN VAN A
BANK2_NAME=VCB

🛠 Tech Stack

Công nghệ Mô tả
Node.js Runtime JavaScript
Telegraf v4 Telegram Bot Framework
better-sqlite3 SQLite database
VietQR API Tạo mã QR thanh toán
nanoid Tạo mã thanh toán unique

📁 Cấu trúc dự án

telegram-shop-bot/
├── .env.example          # Mẫu cấu hình (copy → .env)
├── package.json          # Dependencies
├── LICENSE               # MIT License
├── data/                 # SQLite database (tự tạo)
└── src/
    ├── bot.js            # 🚀 Entry point
    ├── config.js         # ⚙️ Load cấu hình từ .env
    ├── database.js       # 💾 Schema + seed data
    ├── commands/          # 📋 Lệnh user
    │   ├── start.js
    │   ├── menu.js
    │   ├── product.js
    │   ├── nap.js
    │   ├── checkpay.js
    │   ├── support.js
    │   └── myid.js
    ├── handlers/          # ⚡ Xử lý callback & admin
    │   ├── adminActions.js
    │   ├── paymentConfirm.js
    │   ├── productSelect.js
    │   └── quantitySelect.js
    ├── services/          # 🔧 Business logic
    │   ├── orderService.js
    │   ├── paymentService.js
    │   ├── productService.js
    │   ├── sheetSync.js
    │   └── userService.js
    └── utils/             # 🎨 Keyboard & messages
        ├── keyboard.js
        └── messages.js

📞 Liên hệ & Hỗ trợ

Nếu cần hỗ trợ cài đặt, tùy chỉnh, hoặc có câu hỏi:

Kênh Liên hệ
💬 Telegram @kentng
📱 Nhóm Zalo Tham gia nhóm chat
🐛 Bug Report Mở Issue

🤝 Đóng góp

Pull requests luôn được chào đón! Với thay đổi lớn, vui lòng mở issue trước.

📄 License

MIT © 2026 kentzu213


Nếu project hữu ích, hãy ⭐ star repo nhé!
💬 Liên hệ: @kentng | 📱 Nhóm Zalo

About

🤖 Telegram Shop Bot - Bán hàng tự động qua Telegram với thanh toán QR VietQR, quản lý kho, đồng bộ Google Sheet | Auto-selling Telegram bot with VietQR payment

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors