NMXpert User Manual
Complete guide to the MLM & Network Business Management Platform
Table of Contents
1. System Overview
NMXpert is a multi-tenant SaaS MLM & Network Business Management Platform. It enables companies to run binary, unilevel, matrix, generation, board, breakaway, matching, rank, leadership, pool, and hybrid compensation plans — all from a single installation.
Key Capabilities
11 Plan Types
Binary, Unilevel, Matrix, Generation, Board, Breakaway, Matching, Rank, Leadership, Pool, Hybrid
5 Wallet Types
Commission, Purchase, Cashback, Reward, Main — each for different earning/spending
11 User Roles
Super Admin down to Customer, with granular permission-based access control
Fraud Detection
Automated checks for duplicate KYC, bank accounts, UPI IDs, and multiple registrations
2. Architecture & Tech Stack
┌─────────────────────────────────────────────────────────┐
│ CLIENT BROWSERS │
│ Admin Portal │ Member Portal │ Customer Portal │
│ Bootstrap 5 + Chart.js + Vanilla JS │
└────────────────────────┬────────────────────────────────┘
│ HTTP/HTTPS (JSON API)
┌────────────────────────▼────────────────────────────────┐
│ PHP 8.3+ BACKEND │
│ Controllers (13) │ Services (8) │ Middleware (3) │
│ Helpers (5) │ Models (1) │ Config (3) │
└────────────────────────┬────────────────────────────────┘
│ PDO (MySQL)
┌────────────────────────▼────────────────────────────────┐
│ MySQL 8+ DATABASE │
│ 75 tables │ nmxpert database │
└─────────────────────────────────────────────────────────┘
File Structure
NMXpert/
├── backend/
│ ├── config/ # database.php, app.php, constants.php
│ ├── app/
│ │ ├── Controllers/ # Auth, Dashboard, Member, Product, Order,
│ │ │ # Wallet, Withdrawal, Genealogy, Kyc,
│ │ │ # Report, Notification, Support, Search
│ │ ├── Services/ # Commission, Wallet, PlanEngine, Rank,
│ │ │ # Audit, Notification, Fraud, Currency
│ │ ├── Middleware/ # Auth, Role, RateLimiter
│ │ ├── Helpers/ # Response, Validator, JwtHelper, Logger, FileUploader
│ │ └── Models/ # Database (PDO singleton)
│ └── public/ # index.php (API entry point)
├── web/
│ ├── admin/ # 16 admin pages
│ ├── member/ # 14 member pages
│ ├── customer/ # 1 customer page
│ ├── includes/ # header, footer, topbar, sidebars
│ └── assets/ # css/, js/, img/
├── database/
│ └── schema.sql # 75 tables + seed data
└── docs/
└── MANUAL.md # This manual
3. User Roles & Portals
Three Portals
| Portal | URL | Purpose |
|---|---|---|
| Admin | /web/admin/ | Company management, member oversight, approvals |
| Member | /web/member/ | MLM distributor self-service |
| Customer | /web/customer/ | Product browsing & purchase |
11 Role Types
| # | Role | Slug | Access Level |
|---|---|---|---|
| 1 | Super Admin | super-admin | Full system access |
| 2 | Company Admin | company-admin | Company-level management |
| 3 | Branch Admin | branch-admin | Branch-level management |
| 4 | Finance Manager | finance-manager | Wallets, withdrawals, reports |
| 5 | Sales Manager | sales-manager | Orders, products, members |
| 6 | KYC Manager | kyc-manager | KYC review & approval |
| 7 | Warehouse Manager | warehouse-manager | Inventory & stock |
| 8 | Support Executive | support-executive | Ticket management |
| 9 | Auditor | auditor | Audit logs, read-only reports |
| 10 | Member | member | MLM distributor |
| 11 | Customer | customer | Product purchaser |
Default Login Credentials
| Role | Password | |
|---|---|---|
| Super Admin | admin@nmxpert.com | Admin@123 |
| Demo Member | demo@member.com | password |
4. System Flows
4.1 Registration Flow
4.2 Activation Flow
4.3 Order & Commission Flow
4.4 Withdrawal Flow
5. Admin Portal Guide
5.1 Dashboard
Overview of all key metrics at a glance.
| Metric | Description |
|---|---|
| Total Members | All registered members in the company |
| Active Members | Members with "active" activation status |
| New Today | Members registered today |
| Total Sales | Sum of all confirmed order amounts |
| Total Commission | Sum of all approved/paid commissions |
| Pending Withdrawals | Withdrawal requests awaiting review |
| Pending KYC | KYC submissions awaiting review |
| Total Products | Active products in catalog |
Also includes: Sales Trend chart, Commission Distribution chart, Recent Members, Recent Orders.
5.2 Members Management
- List all members with search, status filter, pagination
- View member details (profile, bank accounts, wallets, rank)
- Create new member (admin-initiated)
- Edit member details
- Deactivate member (soft delete)
5.3 Products
- Product catalog with BV/PV/CV values
- Categories, variants, pricing
- Inventory management
- Product images & descriptions
5.4 Orders
- View all orders with status tracking
- Update status: pending → confirmed → processing → shipped → delivered
- View order items, payments, returns
5.5 Plans
- Configure compensation plan parameters
- Set binary pair bonus, unilevel levels, matrix dimensions
- Plan simulator (preview commissions before activating)
- Activate/deactivate plans
5.6 Commissions
- View all commission transactions
- Filter by type, date, status
- Approve pending commissions
- Commission summary & leaderboard
5.7 Wallets
- Overview of all member wallets
- Transaction history
- Manual adjustments (credit/debit)
5.8 Withdrawals
- Review pending withdrawal requests
- Approve/reject with reasons
- Process payments (bank transfer/UPI)
- View withdrawal history
5.9 Ranks
- Define rank levels (8 ranks seeded by default)
- Set thresholds: BV, team size, direct members
- Rank bonus amounts
- View rank achievements
5.10 KYC
- Review KYC submissions
- View uploaded documents
- Approve/reject with admin notes
- Fraud detection alerts
5.11 Reports
- Member report (registration, activity)
- Sales report (revenue, orders)
- Commission report (by type, by member)
- Wallet report (balances, transactions)
5.12 Settings
- Company profile
- Currency settings
- Withdrawal limits
- KYC requirements
- Notification preferences
- Branding (colors, logo)
6. Member Portal Guide
6.1 Dashboard
| Widget | Shows |
|---|---|
| Member Info | Name, code, rank, activation status |
| Wallet Balances | By type (commission, purchase, etc.) + total |
| Income | Today's income, Monthly income, Total income |
| BV/PV | Personal BV, Team BV, Personal PV, Team PV |
| Team Stats | Direct members, total team, active, inactive |
| Rank Progress | Current rank, next rank, progress bar |
6.2 My Network
- Toggle between Sponsor Tree and Placement Tree
- Visual tree showing up to 3 levels
- Click nodes to expand/collapse
- Shows member code, name, BV, status per node
6.3 Shop
- Browse products with images and descriptions
- Search by product name
- View price, BV, PV per product
- Add to cart & checkout
6.4 Wallet
- View all 5 wallet balances
- Transaction history with filters
- Transfer between wallets
6.5 Withdrawals
- Request withdrawal (select amount, payment method)
- Enter bank details or UPI ID
- View withdrawal history & status tracking
7. MLM Compensation Plans
NMXpert supports 11 plan types. A company can configure one or combine multiple.
7.1 Binary Plan
7.2 Unilevel Plan
7.3 Matrix Plan
7.4 Other Plans
| Plan | Description |
|---|---|
| Generation | Pays on generational depth with leadership bonus on deep legs |
| Board | Cycling boards (2×1, 2×2) with completion bonuses |
| Breakaway | Strong legs "break away" as separate businesses |
| Matching | Matches earning of personally sponsored members |
| Rank | Bonus paid when rank is achieved |
| Leadership | Bonus for leadership positions |
| Pool | Profit pool shared among top rankers |
| Hybrid | Combination of multiple plan types |
8. Commission Engine
Commission Types
| Type | Trigger | Recipient | Calculation |
|---|---|---|---|
direct_bonus | Order placed | Sponsor | % of order BV |
binary_bonus | Binary pair match | Binary parent | Fixed per pair |
level_bonus | Order placed | Upline chain | % per level (up to 10) |
pair_bonus | Binary match | Binary parent | Per matched pair |
matching_bonus | Referral earns | Sponsor | % of referral's commission |
rank_bonus | Rank achieved | Qualified member | Fixed per rank |
leadership_bonus | Monthly | Top performers | Pool distribution |
cashback | Order placed | Buyer | % of order value |
How Commissions Are Calculated
- Member places an order and payment is confirmed
CommissionService.processOrderCommission(orderId)is triggered- Runs inside a database transaction (all or nothing)
- Calculates Binary Bonus: matches left BV vs right BV pairs
- Calculates Direct Bonus: percentage of order BV to sponsor
- Calculates Level Bonus: walks up sponsor chain (5 levels deep)
- Each commission creates a
commission_transactionsrecord - 10% tax deducted, net amount credited to member's commission wallet
- Wallet transaction logged with balance before/after
- Rank evaluation triggered for the member
- Notifications sent to all commission recipients
9. Wallet System
5 Wallet Types
| Wallet | Purpose | Credits From | Debits For |
|---|---|---|---|
| Commission | MLM earnings | Commission payments | Withdrawals, transfers |
| Purchase | Product buying | Admin credit | Product orders |
| Cashback | Cashback rewards | Order cashback | Withdrawals |
| Reward | Bonus rewards | Achievements | Withdrawals |
| Main | General purpose | Admin credit | Various |
Wallet Operations
- Credit: Creates wallet if missing, adds to balance, logs transaction
- Debit: Validates sufficient balance, subtracts, logs transaction
- Transfer: Debits from source wallet, credits to destination, logs both
10. Withdrawal Process
Step-by-Step
- Member requests → Selects wallet type, amount, payment method (bank/UPI)
- Validation → Balance check, KYC check, limit check
- Deductions → Fee (% from plan) + TDS (% from plan) deducted
- Wallet debited → Balance reduced immediately
- Status: pending → Awaits admin review
- Admin reviews → Approves or rejects with reason
- If approved → approved → payment processed → paid
- If rejected → rejected → wallet credited back → member notified
Withdrawal Limits (Default)
| Parameter | Default Value | Configurable |
|---|---|---|
| Minimum | ₹100 | Yes (per plan) |
| Maximum | ₹50,000 | Yes (per plan) |
| Fee | 2% | Yes (per plan) |
| TDS | 5% | Yes (per plan) |
11. KYC Verification
Required Documents
| Document | Type Key | Purpose |
|---|---|---|
| PAN Card | pan | Identity & tax |
| Aadhaar Card | aadhaar | Address proof |
| Passport | passport | Identity |
| Driving License | driving_license | Identity |
| Voter ID | voter_id | Identity |
| Bank Statement | bank_statement | Address proof |
| Photo | photo | Profile photo |
KYC Status Flow
Fraud Detection Checks
- Duplicate KYC — Same PAN/Aadhaar used by another member
- Duplicate Bank — Same bank account + IFSC used elsewhere
- Duplicate UPI — Same UPI ID used elsewhere
- Multiple Accounts — More than 3 registrations from same IP in 30 days
- Risk Score — Composite 0-100 (low/medium/high classification)
12. Rank & Achievement System
8 Default Rank Levels
| Level | Rank | Min Personal BV | Min Team BV | Min Direct |
|---|---|---|---|---|
| 1 | Member | 0 | 0 | 0 |
| 2 | Associate | 500 | 1,000 | 2 |
| 3 | Bronze | 1,000 | 5,000 | 3 |
| 4 | Silver | 2,000 | 15,000 | 5 |
| 5 | Gold | 5,000 | 50,000 | 10 |
| 6 | Platinum | 10,000 | 150,000 | 20 |
| 7 | Diamond | 25,000 | 500,000 | 50 |
| 8 | Crown | 50,000 | 1,000,000 | 100 |
How Rank Promotion Works
RankService.evaluateMember(memberId)is called after every order- Fetches member's current stats (BV, team size, direct members)
- Iterates through ranks in ascending order
- Checks all thresholds: personal BV, team BV, direct members, left/right BV
- If ALL thresholds met → auto-promotes
- Creates
member_ranksandrank_achievementsrecords - Sends rank promotion notification
13. Genealogy / Network Tree
Two Tree Types
Sponsor Tree
Shows who recruited whom. Hierarchical: your recruits → their recruits → etc. Used for tracking the recruitment chain.
Placement Tree
Shows binary position placement (left/right legs). Used for binary pair matching and BV tracking.
Tree Node Data
Each node displays: Member Code, Name, Personal BV, Team BV, Activation Status, Rank.
API Endpoints: GET /genealogy/sponsor and GET /genealogy/placement
14. Product & Order Management
Product Attributes
| Field | Description |
|---|---|
name | Product name |
sku | Stock keeping unit |
price | Retail price |
sale_price | Discounted price |
bv | Business Volume (for commissions) |
pv | Point Volume (for rank) |
cv | Commission Volume |
tax_percentage | GST/VAT rate |
is_active | Published or hidden |
Order Lifecycle
Order Financial Breakdown
subtotal = sum(item_prices)
tax_amount = sum(item_taxes)
discount_amount = coupon discount
shipping_amount = shipping charge
total_amount = subtotal + tax - discount + shipping
total_bv = sum(item_bv × quantity) ← for commissions
total_pv = sum(item_pv × quantity) ← for rank qualification
15. Notifications & Support
Notification Events
System sends in-app notifications for: registration, new_referral, order, payment, commission, rank_achievement, kyc, withdrawal, product, subscription, support_ticket, announcement.
Support Ticket System
16. API Reference
Base URL
http://localhost/NMXpert/backend/public/index.php/
Authentication
All authenticated endpoints require: Authorization: Bearer <jwt_token>
Response Format
{
"success": true,
"message": "Request successful",
"data": { ... },
"errors": []
}
Complete Endpoint List
| Method | Endpoint | Auth | Description |
|---|---|---|---|
| POST | /auth | No | Login |
| POST | /auth/register | No | Register |
| POST | /auth/refresh | No | Refresh token |
| POST | /auth/logout | Yes | Logout |
| GET | /auth/me | Yes | Current user |
| POST | /auth/forgot-password | No | Reset password |
| GET | /dashboard | Admin | Admin stats |
| GET | /dashboard/member | Member | Member stats |
| GET | /members | Admin | List members |
| GET | /members/{id} | Admin | Show member |
| POST | /members | Admin | Create member |
| PUT | /members/{id} | Admin | Update member |
| DELETE | /members/{id} | Admin | Delete member |
| GET | /products | Yes | List products |
| POST | /products | Admin | Create product |
| GET | /orders | Yes | List orders |
| POST | /orders | Yes | Create order |
| GET | /wallet | Yes | List wallets |
| POST | /wallet/transfer | Yes | Transfer funds |
| POST | /withdrawals | Yes | Request withdrawal |
| PUT | /withdrawals/{id}/status | Admin | Approve/reject |
| GET | /genealogy/sponsor | Member | Sponsor tree |
| GET | /genealogy/placement | Member | Placement tree |
| POST | /kyc | Member | Submit KYC |
| PUT | /kyc/{id}/status | Admin | Review KYC |
| GET | /reports/members | Admin | Member report |
| GET | /reports/sales | Admin | Sales report |
| GET | /notifications | Yes | List notifications |
| GET | /support | Yes | List tickets |
| POST | /support | Yes | Create ticket |
| GET | /search | Yes | Global search |
17. Troubleshooting
Fix:
- Ensure XAMPP Apache is running
- Check
http://localhost/NMXpert/backend/public/index.php/loads - Verify
.htaccessis inbackend/public/ - Check Apache
mod_rewriteis enabled
Fix: Open phpMyAdmin → Create database
nmxpert → Import database/schema.sql
Fix: Use default:
admin@nmxpert.com / Admin@123
Fix: Login again. Token expires after 24 hours by default.
Fix: Check user's
role_id in users table. Admin pages require roles 1, 2, or 3.
Fix:
- Open browser DevTools (F12) → Network tab
- Click the failing request
- Check Response tab for error message
- Check Console for JavaScript errors
Fix: Check
orders.payment_status = 'paid' and orders.commission_processed = 0.
Fix: Check
wallets table has record for the member. Check wallet_transactions for credit/debit records.
18. Frequently Asked Questions
General
company_id that isolates their data. Super Admin manages all companies.CommissionService and PlanEngine calculate commissions automatically when an order is marked as paid. It processes binary pairs, direct bonuses, and level bonuses in a single database transaction.Registration & Activation
activation_amount set, purchasing products worth that amount activates the account automatically.Commissions & Income
PV (Point Volume) — Used for rank qualification.
CV (Commission Volume) — Used for commission calculations.
Wallets & Withdrawals
Ranks
Technical
UPDATE users SET password = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi' WHERE email = 'admin@nmxpert.com';This sets the password to
Admin@123.nmxpert database → Export → Quick → Go. Or use command line: mysqldump -u root nmxpert > backup.sqlhttp://localhost/NMXpert/backend/public/index.php/You should see:
{"success":true,"data":{"name":"NMXpert API","version":"1.0.0"}}NMXpert — SMART NETWORK. SMARTER GROWTH.
Document Version 1.0 | September 2026