WHMAZ User Guide

Complete Manual for Administrators and Customers
Version 1.0.0 Last Updated: February 18, 2026 WHMAZ - Web Host Manager A to Z Solutions

Part 1: Getting Started

Introduction

Welcome to WHMAZ, a lightweight domain hosting management system designed specifically for hosting and service providers. This guide will help you understand and utilize all features of the system effectively.

Live Demo

Try WHMAZ before installing:

PortalURLEmailPassword
Admindemo.whmaz.com/whmazadminadmin@whmaz.comAbcd.1234
Clientdemo.whmaz.comclient@whmaz.comAbcd.1234

What is WHMAZ?

WHMAZ is a complete business management solution that provides:

Who Should Use This Guide?

This guide is for:


System Overview

System Architecture

WHMAZ consists of two main portals:

  1. Customer Portal (Client Area)
    • URL: https://yourdomain.com/auth/login
    • Purpose: Self-service portal for customers
    • Features: Orders, domains, invoices, tickets, knowledge base
  2. Admin Portal (Management Area)
    • URL: https://yourdomain.com/whmazadmin/authenticate/login
    • Purpose: Business management and administration
    • Features: Complete system control and configuration
[Screenshot Placeholder: System architecture diagram showing dual portal structure]

Quick Start Guide

For Administrators

  1. Access Admin Portal
    • Navigate to: https://yourdomain.com/whmazadmin/authenticate/login
    • Login with admin credentials
  2. Complete Initial Setup
    • Configure company settings
    • Set up email configuration
    • Configure payment gateways
    • Create hosting packages
    • Set domain pricing
  3. Create First Customer
    • Go to Customers → Add Customer
    • Fill in customer details
    • Save customer record
  4. Create First Order
    • Go to Orders → New Order
    • Select customer and package
    • Generate invoice
    • Process payment

For Customers

  1. Register Account
    • Visit customer portal
    • Click "Register"
    • Complete registration form
    • Verify email
  2. Place Order
    • Browse available packages
    • Select desired package
    • Complete checkout
    • Make payment
  3. Manage Services
    • View orders in dashboard
    • Access service details
    • Request upgrades/changes
    • Renew services

Accessing the System

Customer Portal Access

URL Format:

https://yourdomain.com/auth/login

Login Page Elements:

Customer Login Page
Customer portal login page

Admin Portal Access

URL Format:

https://yourdomain.com/whmazadmin/authenticate/login

Login Page Elements:

reCAPTCHA Protection:
If Google reCAPTCHA is configured in the admin General Settings, the admin login page will display a reCAPTCHA checkbox to prevent automated brute force attacks. Complete the "I'm not a robot" verification before clicking Sign In.

Admin Login Page
Admin portal login page

Security Features


Default Credentials

Demo Installation

If you installed with demo data, use these credentials:

Administrator:

Email: admin@whmaz.com
Password: Abcd.1234

Demo Customer:

Email: client@whmaz.com
Password: Abcd.1234

Fresh Installation

If you installed without demo data:

Administrator:

IMPORTANT SECURITY STEPS

After first login, immediately:

  1. Change Default Password
    • Go to Profile Settings
    • Click "Change Password"
    • Use strong password (min 8 characters, mixed case, numbers, symbols)
  2. Update Admin Email
    • Ensure admin email is your actual business email
    • Used for important system notifications
  3. Delete Demo Users (if applicable)
    • Remove demo customer accounts
    • Remove demo admin accounts (if multiple exist)

Part 2: Customer Portal Guide

Customer Registration

Creating a New Account

  1. Navigate to Registration Page
    • Go to customer portal
    • Click "Register" or "Sign Up"
  2. Fill Registration Form
    • Personal Information:
      • First Name (required)
      • Last Name (required)
      • Email Address (required, used for login)
      • Phone Number (optional)
    • Account Security:
      • Password (required, min 8 characters)
      • Confirm Password (must match)
    • Company Information: (optional)
      • Company Name
      • Tax ID/VAT Number
    • Address Details:
      • Street Address
      • City
      • State/Province
      • ZIP/Postal Code
      • Country (dropdown selection from countries database)
  3. Complete Security Verification
    • Complete the Google reCAPTCHA checkbox ("I'm not a robot")
    • This prevents automated bot registrations
  4. Accept Terms
    • Read Terms of Service
    • Check "I agree" checkbox
  5. Submit Registration
    • Click "Register" button
    • Check email for verification link
    • Click verification link to activate account
Customer Registration Form
Customer registration form

Email Verification

After registration, a verification email is automatically sent to your registered email address:

  1. Check your email inbox (and spam/junk folder)
  2. Open the email from the system titled "Email Verification - [Company Name]"
  3. Click the "Verify My Email" link
  4. You will be redirected to the login page with a success message
  5. Your account is now activated -- you can login

Important: You cannot login until your email is verified. If you try to login before verifying, you will see a message asking you to check your email.

Verification URL format: https://yourdomain.com/auth/verify/{verification_hash}


Customer Dashboard

Dashboard Overview

The customer dashboard provides a comprehensive overview of your account with a modern, professional design:

Welcome Banner:

Stat Cards (Top Row):

Each stat card features:

Recent Activity Section:

Customer Dashboard
Customer dashboard with welcome banner and stat cards

Main Menu Items:


Managing Profile

Updating Customer Password

  1. Change Password
    • Navigate to /clientarea/changePassword or click "Change Password" in your account menu
    • Enter your current password
    • Enter new password (minimum 8 characters)
    • Confirm new password (must match)
    • Click "Change Password"
    • A confirmation email will be sent to your registered email address notifying you of the password change
    • If you did not initiate the change, contact support immediately

Setting Preferences

Notification Preferences:

Display Preferences:


Ordering Services

Browsing Available Packages

  1. View Package List
    • Go to "Domains" → "Register New Domain" or "Services" → "New Service"
    • Browse available hosting packages
    • Compare features and pricing
  2. Package Information
    • Package name and description
    • Features (CPU, RAM, Disk, Bandwidth)
    • Pricing (monthly, quarterly, annually)
    • Setup fee (if applicable)
Available Packages
Available packages with features and pricing

Placing an Order

There are two ways to place an order depending on whether you start with a hosting package or a domain:

Step 1: Select Hosting Package

Step 2: Configure Domain
A modal will appear asking for your domain information. Choose one of three options:

OptionDescription
Update DNSUse your existing domain - just point the DNS to our servers
Register NewSearch for and register a new domain with your hosting
TransferTransfer your domain from another registrar (requires EPP/Auth code)

Step 3: Add to Cart

Step 4: Review Cart

Step 5: Checkout

Step 6: Payment

Flow 2: Domain First

Step 1: Search Domain

Step 2: Select Domain

Step 3: Add Hosting (Optional)

Step 4: Complete Order

Order Checkout
Order checkout page with linked hosting and domain

Shopping Cart Features

Cart Item Linking:

Cart Actions:

Payment Options:

Order Status

Order Statuses:

Managing Existing Orders

  1. View All Orders
    • Go to "Services" or "My Services"
    • See list of all orders with status
  2. Order Details
    • Click on order to view details
    • See service specifications
    • View billing information
    • Check next due date
  3. Order Actions
    • Upgrade/Downgrade: Request service change
    • Renew: Pay renewal invoice
    • Cancel: Request cancellation
    • Support: Open ticket for this service
Service Details
Service details page with actions

Hosting Usage Sync (Real-Time)

For hosting services with a control panel (cPanel, Plesk, or DirectAdmin), you can sync real-time usage statistics from your hosting account.

Viewing Service Details:

  1. Go to "Services" → "My Services"
  2. Click on a hosting service to view details
  3. The Package / Usage card shows your resource usage

Syncing Usage:

  1. In the Service Detail page, find the "Package / Usage" card
  2. Click the sync button (rotating arrow icon) in the card header
  3. Wait for the sync to complete (button will spin while syncing)
  4. Usage data will update automatically:
    • Disk Space - Used vs allocated storage
    • Bandwidth - Monthly data transfer usage
    • Email Accounts - Number of email accounts created
    • Databases - Number of MySQL databases
    • Addon Domains - Additional domains hosted

Usage Information:

Note: The sync button requires:


Domain Management

Searching for Domains

  1. Access Domain Search
    • Go to "Domains" → "Register Domain"
    • Or use search box on homepage
  2. Enter Domain Name
    • Type desired domain name (e.g., "mybusiness" or "mybusiness.com")
    • Complete reCAPTCHA verification (if enabled by administrator)
    • Click "Search"
  3. View Results
    • Available domains shown with pricing
    • Unavailable domains indicated
    • Alternative domain suggestions displayed below
    • Pricing shown for each available extension
  4. Domain Suggestions
    • System automatically shows alternative domain names
    • Suggestions based on your search keyword
    • Different extensions offered (.com, .net, .org, etc.)
Domain Search Results
Domain search results page

Registering a Domain

Step 1: Select Domain

Step 2: Configure Domain

Step 3: Complete Registration

Managing Domains

Domain List:

Domain Actions:

Domain List
Domain list with management options

Domain Transfer

Transferring Domain to Your Account:

There are two ways to transfer a domain:

Option 1: Transfer with Hosting Purchase

  1. Select a hosting package
  2. In the domain modal, choose "Transfer"
  3. Enter your domain name
  4. Enter the EPP/Auth code from your current registrar
  5. Domain transfer and hosting are added to cart together
  6. Complete checkout and payment

Option 2: Transfer Domain Only

  1. Go to "Domains" → "Transfer Domain"
  2. Enter domain name
  3. Enter authorization/EPP code
  4. Add to cart
  5. Optionally add hosting package
  6. Complete checkout and payment

After Checkout:

Transfer Requirements:


Viewing Invoices

Invoice List

  1. Access Invoices
    • Go to "Billing" → "Invoices"
    • View all invoices (paid and unpaid)
  2. Invoice Information
    • Invoice number
    • Invoice date
    • Due date
    • Total amount
    • Status (Paid, Unpaid, Cancelled)
Invoice List
Invoice list page with filters

Invoice Details

Click on invoice to view:

Invoice Details
Invoice details page

Downloading Invoices

Recurring Invoices

Automatic Invoice Generation:


Making Payments

Payment Methods

Available payment methods (configured by administrator):

Paying an Invoice

  1. Open Unpaid Invoice
    • Go to "Billing" → "Invoices"
    • Click on unpaid invoice
  2. Select Payment Method
    • Choose preferred payment method
    • Click "Pay Now"
  3. Complete Payment
    • For Stripe: Enter card details
    • For SSLCommerz: Complete payment on SSLCommerz page
    • For bank transfer: View payment instructions
    • Confirm payment
  4. Payment Confirmation
    • Payment processed
    • Invoice marked as paid
    • Receipt sent via email
    • Service activated/renewed
Payment Page
Payment page with payment method selection

Payment History

View All Transactions:

Transaction Details:

Account Credit

Adding Credit:

Credit Balance:


Support Tickets

Creating a Support Ticket

  1. Open Ticket Form
    • Go to "Support" → "Open Ticket"
    • Or click "Get Support" from service details
    • Modern, beautified form with organized sections
  2. Contact Information Section
    • Name (pre-filled, read-only)
    • Email (pre-filled, read-only)
  3. Ticket Details Section
    • Subject: Brief description of issue (required)
    • Department: Select appropriate department (required)
      • Technical Support
      • Billing Support
      • Sales
      • General Inquiry
    • Related Service: Select from your active services (optional)
      • Dropdown shows your active hosting accounts with domain names
      • Format: "Product Name (domain.com)"
      • Helps support staff identify the affected service quickly
    • Priority: Select urgency level (required)
      • Low (general questions)
      • Medium (minor issues)
      • High (service affecting)
      • Critical (urgent, service down)
  4. Message Section
    • Rich text editor (Quill) with formatting toolbar
    • Support for bold, italic, underline, lists, links, code blocks
    • Detailed description of your issue
  5. Attachments Section
    • Upload screenshots or files
    • Allowed types: GIF, JPG, PNG, PDF, TXT
    • Maximum 5MB per file
    • Multiple attachments supported (click + button to add more)
  6. Submit Ticket
    • Click "Submit Ticket" button
    • Ticket number assigned
    • Confirmation email sent
    • Support team notified
Create Support Ticket
Create support ticket form with modern design

Managing Tickets

Ticket List:

Ticket Actions:

Support Ticket List
Support ticket list

Replying to Tickets

  1. Open Ticket
    • Click on ticket from list
    • View full conversation history in a modern thread layout
  2. Ticket Information Sidebar
    • Status badge showing current ticket state
    • Department assignment
    • Priority level with color-coded badge
    • Submitted date
    • Last updated date
  3. Conversation Thread
    • Messages displayed as styled bubbles
    • Color-coded by sender:
      • Blue border: Your messages (customer)
      • Green border: Staff/Admin replies
      • Purple border: Original ticket message
    • Each message shows:
      • Sender name with avatar
      • Timestamp
      • Message content with rich text support
      • Helpful/Not Helpful feedback buttons
      • Attachment links (if any)
  4. Add Reply
    • Use the rich text editor (Quill) at the top
    • Format text with bold, italic, lists, links, etc.
    • Attach files (GIF, JPG, PNG, PDF, TXT - max 5MB)
    • Click "Send Reply" button
  5. Email Notifications
    • You receive email when support replies
    • Click link in email to view ticket
    • Reply via portal (not by email reply)

Best Practices for Support

For Faster Resolution:

Avoid:


Knowledge Base

The Knowledge Base is publicly accessible without login, making it easy for visitors to find answers.

Browsing Articles

  1. Access Knowledge Base
    • URL: /supports/KB
    • No login required (public page)
  2. KB List Page Features
    • Search Box: Filter articles by keyword in real-time
    • Category Cards: Visual grid of categories with article counts
    • Article List: All articles with icons, tags, and view counts
    • Sidebar: Category navigation with article counts
    • Pagination: 10 articles per page with page navigation
  3. Browse by Category
    • Click on any category card or sidebar link
    • URL: /supports/kb_category/{id}/{slug}
    • Shows articles filtered by that category
    • Active category highlighted in sidebar
Knowledge Base
Knowledge base categories and popular articles

Searching for Articles

  1. Use Search Box
    • Located at the top of the KB list page
    • Enter keywords or question
    • Articles filter in real-time as you type
    • Results show title, tags, and view count
  2. Filter by Category
    • Click category card in the grid
    • Or use sidebar category links
    • Each category shows article count

Reading Articles

Article Detail Page (/supports/view_kb/{id}/{slug}):

Article Information:

Article Content:

Rating System:

Sidebar Navigation:


Announcements

Announcements are publicly accessible without login, keeping visitors informed of important updates.

Viewing Announcements

  1. Access Announcements
    • URL: /supports/announcements
    • No login required (public page)
  2. Announcement List Features
    • List View: All announcements with icons and view counts
    • Archive Sidebar: Year-month grouping (e.g., "February 2026 (5)")
    • Pagination: 10 announcements per page
  3. Browse by Archive
    • Click on any month in the Archive sidebar
    • URL: /supports/announcements_archive/{year}/{month}
    • Shows announcements from that specific month
    • Active month highlighted in sidebar

Reading Announcements

Announcement Detail Page (/supports/view_announcement/{id}/{slug}):

Announcement Information:

Content:

Share Buttons:

Archive Navigation:


Contact Us

The Contact Us page allows visitors to send messages to the appropriate department without needing to login.

Accessing Contact Us Page

  1. Navigate to Contact Us
    • URL: /supports/contactus
    • No login required (public page)
    • Link in footer navigation

Contact Form Features

Modern Design:

Form Fields:

Security Features:

Submitting a Contact Form

  1. Fill in Your Details
    • Enter your name and email address
    • These are required for the department to respond
  2. Select Department
    • Choose the most appropriate department
    • Examples: Sales, Technical Support, Billing, General Inquiry
  3. Enter Subject and Message
    • Provide a clear subject line
    • Write your detailed message or inquiry
  4. Complete reCAPTCHA (if displayed)
    • Click the "I'm not a robot" checkbox
    • Complete any additional verification if prompted
  5. Submit Form
    • Click "Send Message" button
    • Success message displayed on completion
    • Email sent to selected department

What Happens After Submission

Best Practices

For Faster Response:

Contact Us
Contact Us form with department selection

Part 3: Administrator Portal Guide

Admin Dashboard

Dashboard Overview

The admin dashboard provides comprehensive business insights:

Key Metrics (Top Row):

Admin Dashboard
Admin dashboard with metrics and charts

Dashboard Widgets

Summary Cards (Top Row):

Pending Orders:

Recent Support Tickets:

Recent Invoices:

Last 12 Months Expenses (Chart):

Domain Selling Prices:

Quick Actions

Accessible from Dashboard:


Customer Management

Customer List

  1. Access Customer Management
    • Go to "Customers" → "Manage Customers"
    • View all customer accounts
  2. Customer List Features
    • Server-side pagination (fast for large datasets)
    • Search by name, email, phone, company
    • Filter by status (Active, Inactive)
    • Sort by any column
    • Export to CSV/Excel
Customer Management
Customer management with DataTables pagination

Customer Details

Click on customer to view:

Adding a New Customer

  1. Click "Add Customer" - Fill in customer form, enter all required fields
  2. Customer Information
    • Personal Details: First Name (required), Last Name (required), Email (required, must be unique), Phone Number
    • Company Information: Company Name, Tax ID/VAT Number
    • Address: Street Address, City, State/Province, ZIP/Postal Code, Country
    • Account Settings: Password (auto-generated or manual), Send welcome email (checkbox), Account status (Active/Inactive)
  3. Save Customer
    • Click "Save"
    • Customer account created
    • Welcome email sent (if enabled)
    • Customer can now login

Editing Customer Information

  1. Find Customer - Search in customer list, click "Edit" button
  2. Update Information - Modify any field except email (requires verification), update address, change status, reset password (if needed)
  3. Save Changes - Click "Save", customer notified of changes (if applicable)

Customer Actions

Available Actions:


Order Management

Order List

  1. Access Order Management
    • Go to "Orders" → "Manage Orders"
    • View all orders/services
  2. Order List Information
    • Order ID, Customer name, Package/Service name, Amount, Billing cycle, Next due date, Status, Actions
Order Management List
Order management list with filters and search

Creating an Order (Manual)

When to Create Manual Order:

Steps:

  1. Click "New Order" - Select customer (or create new), choose package
  2. Order Details - Select billing cycle, choose start date, set custom pricing (if applicable), add setup fee (if applicable)
  3. Service Configuration - Enter domain name, set server location, configure options, add special notes
  4. Pricing Override (optional) - Override standard pricing, add discounts, add custom line items
  5. Generate Invoice - Auto-generate invoice (checkbox), set invoice due date, send invoice to customer (checkbox)
  6. Save Order - Order created, invoice generated (if enabled), email sent to customer (if enabled)

Order Status Management

Order Statuses:

Changing Order Status:

  1. Open order details
  2. Select new status from dropdown
  3. Add reason/note (optional)
  4. Save changes
  5. Customer notified via email

Order Actions

Available Actions:

Bulk Operations

Select Multiple Orders:

Managing Existing Orders

The Order Management page allows administrators to view and modify existing orders, including changing registrars, servers, packages, and cancelling orders.

Accessing Order Management:

  1. Go to "Orders" in the admin menu
  2. Find the order you want to manage
  3. Click the gear icon (Manage) button

Order Management Page Sections:

  1. Order Overview - Order number and date, total amount and discounts, order status, customer information with link to profile
  2. Domain Items - List of all domains in the order, domain name, registrar, order type, registration and expiry dates, status badge
  3. Hosting Items - List of all hosting services in the order, package name, server, billing cycle, hosting domain and control panel username, status badge

Domain Actions:

Hosting Actions:

Cancel Entire Order:

  1. Click "Cancel Entire Order" button
  2. Choose cancellation type: Immediate or End of Period
  3. Enter cancellation reason (optional)
  4. Click "Cancel Order"

What Happens When Order is Cancelled:

Status Indicators:

Domain StatusDescription
Pending RegistrationAwaiting domain registration
ActiveDomain is registered and active
ExpiredDomain has expired
Grace PeriodDomain in grace period after expiry
CancelledDomain cancelled
Pending TransferTransfer in progress
Service StatusDescription
PendingAwaiting setup/activation
ActiveService is active
ExpiredService has expired
SuspendedService temporarily suspended
TerminatedService permanently terminated

Package Management

Package List

  1. Access Packages
    • Go to "Products" → "Packages"
    • View all hosting packages
  2. Package Information
    • Package name, Package group/category, Pricing, Status (Active/Hidden), Order (display order)
Package Management List
Package management list

Creating a Package

  1. Click "Add Package" - Open package creation form
  2. Basic Information
    • Package Name: Display name (e.g., "Starter Hosting")
    • Package Group: Category (Shared, VPS, Dedicated, etc.)
    • Description: Detailed description
    • Features: Bullet points of features
    • Status: Active (visible) or Hidden
  3. Specifications
    • CPU Cores: Number of CPU cores
    • RAM: Memory allocation (MB/GB)
    • Disk Space: Storage allocation (GB/TB)
    • Bandwidth: Monthly transfer limit (GB/TB/Unlimited)
    • Email Accounts: Number allowed
    • Databases: Number allowed
    • Subdomains: Number allowed
    • FTP Accounts: Number allowed
  4. Pricing
    • Setup Fee: One-time setup cost
    • Monthly Price: Recurring monthly cost
    • Quarterly Price: 3-month pricing
    • Semi-Annual Price: 6-month pricing
    • Annual Price: 12-month pricing
    • Bi-Annual Price: 24-month pricing
    • Tri-Annual Price: 36-month pricing
  5. Additional Options
    • Allow Upgrades: Can customers upgrade?
    • Allow Downgrades: Can customers downgrade?
    • Auto-Setup: Automatically provision?
    • Welcome Email: Send welcome email?
    • Order: Display position (lower = higher priority)
  6. Save Package - Click "Save", package available for ordering, appears in customer portal (if Active)

Editing Packages

  1. Find Package - Locate in package list, click "Edit"
  2. Modify Details - Update any field, change pricing, modify features, adjust specifications
  3. Price Changes - New prices apply to new orders only, existing orders keep original pricing, can manually adjust existing orders if needed
  4. Save Changes - Click "Save", changes effective immediately

Package Groups

Organizing Packages:

Managing Groups:


Service Product Management

Service Product List

  1. Access Service Products
    • Go to "Products" → "Service Products"
    • View all service products with server-side pagination
  2. Product List Information
    • Product name, Service group, Service type (Shared Hosting, Reseller Hosting, VPS, etc.), Module (cPanel, Plesk, DirectAdmin), Server package (if applicable), Hidden/Active status, Last updated date, Actions (Manage, Delete)

Creating a Service Product

  1. Click "Add" - Opens the service product creation form
  2. Basic Information
    • Product Name: Display name (e.g., "Basic Shared Hosting")
    • Service Group: Select from configured service groups (type is derived from group)
    • Module: Select provisioning module (cPanel, Plesk, DirectAdmin) -- filters available servers
    • Server: Select which server hosts this product (filtered by selected module)
    • Hidden: Check to hide product from client area
  3. Server Package Selection (when module is cPanel, Plesk, or DirectAdmin)
    • After selecting a module and server, a dynamic dropdown loads available packages from the server API
    • Works with all supported control panels (cPanel/WHM, Plesk, DirectAdmin)
    • Selecting a package auto-fills the Product Description with package details: Disk Space, Bandwidth, Max Addon Domains, Max Subdomains, Max FTP Accounts, Max Email Accounts, Max Databases, Shell Access, CGI Access
  4. Product Description
    • Rich text description of the product
    • Auto-populated from server package details (editable)
    • Displayed to customers when ordering
  5. Save Product - Click "Save", product available for assignment to orders

Editing Service Products

  1. Find Product - Search in the product list, click "Manage" button (wrench icon)
  2. Modify Details - Update any field, change service group, type, or module, re-select server package if needed, toggle hidden status
  3. Save Changes - Click "Save", changes effective immediately

Deleting Service Products


Email Template Management

Overview

Email Template Management allows you to create, edit, and manage all email templates used throughout the system. Templates support rich text editing via the Quill editor and a placeholder system for dynamic content.

Access: whmazadmin/email_template

Email Template List

  1. Access Email Templates
    • Go to "Settings" → "Email Templates"
    • View all templates with server-side pagination
  2. Template List Columns
    • Template Name, Template Key (unique identifier, displayed in code format), Subject, Category (color-coded badge), Status (Active/Inactive), Last Updated, Actions (Edit, Delete)
  3. Category Color Codes
    • DUNNING -- Yellow/Warning badge
    • INVOICE -- Blue/Info badge
    • ORDER -- Primary badge
    • AUTH -- Secondary badge
    • SUPPORT -- Green/Success badge
    • SERVICE -- Teal badge
    • GENERAL -- Dark badge

Creating an Email Template

  1. Click "Add" - Opens the email template form
  2. Template Information
    • Template Name: Display name (e.g., "First Payment Reminder")
    • Template Key: Unique identifier used in code (e.g., dunning_first_reminder). Must be alphanumeric with underscores/dashes only. Cannot be duplicated.
    • Category: Select from DUNNING, INVOICE, ORDER, SERVICE, SUPPORT, AUTH, or GENERAL
    • Subject: Email subject line (supports placeholders)
    • Status: Active checkbox (checked = active)
  3. Email Body
    • Rich text editor (Quill) with formatting toolbar
    • Supports: bold, italic, underline, strikethrough, lists, links, colors, alignment, and more
    • Write your email content with placeholders for dynamic data
  4. Available Placeholders
    • {client_name} -- Customer's full name
    • {invoice_no} -- Invoice number
    • {amount_due} -- Outstanding amount
    • {due_date} -- Invoice due date
    • {days_overdue} -- Number of days past due
    • {invoice_url} -- Direct link to the invoice
    • {currency} -- Currency symbol/code
    • {site_name} -- Your website/company name
    • {site_url} -- Your website URL
  5. Save Template - Click "Save", template available for use in the system

Editing Email Templates

  1. Search or browse in the template list, click "Manage" button (wrench icon)
  2. Update any field except template_key, edit the email body using the Quill editor, toggle active status
  3. Click "Save", changes effective immediately

Deleting Email Templates

Default Templates

The system comes with 12 pre-configured email templates:

Template KeyCategoryPurpose
dunning_first_reminderDUNNINGFirst payment reminder
dunning_second_reminderDUNNINGSecond payment reminder
dunning_final_noticeDUNNINGFinal notice before action
dunning_suspension_noticeDUNNINGService suspension notification
dunning_termination_noticeDUNNINGService termination notification
invoice_generatedINVOICENew invoice notification
invoice_payment_confirmationINVOICEPayment received confirmation (sent to customer)
admin_payment_notificationINVOICEPayment received notification (sent to admin)
order_confirmationORDEROrder placed confirmation
auth_welcomeAUTHWelcome email for new customers
auth_password_resetAUTHPassword reset instructions

Automatic Payment Confirmation Emails

When a customer successfully pays an invoice, the system automatically sends confirmation emails:

Customer Email (invoice_payment_confirmation):

Admin Email (admin_payment_notification):

Available Placeholders:

PlaceholderDescription
{client_name}Customer's full name
{company_name_customer}Customer's company name
{client_email}Customer's email
{invoice_no}Invoice number
{amount}Payment amount
{currency_symbol}Currency symbol (e.g., $)
{payment_method}Payment method used
{gateway_name}Payment gateway name
{transaction_id}Transaction/reference ID
{payment_date}Date and time of payment
{company_name}Your company name
{admin_invoice_url}Admin link to view invoice

Dynamic Pages Management

Overview

Dynamic Pages Management allows you to create and manage content pages like Terms & Conditions, Privacy Policy, and Refund Policy. The system includes version history with restore functionality, SEO settings, and public page viewing without login.

Access: whmazadmin/pages

Page List

  1. Access Dynamic Pages - Go to "Settings" → "Dynamic Pages", view all pages with server-side pagination
  2. Stats Cards - Total Pages, Published, Drafts, Total Views
  3. Page List Columns - Page Title (with system page lock icon), URL Slug (in code format), Views count, Published status (toggle switch), Last Updated date, Sort Order, Actions (Edit, History, Delete)
  4. Quick Actions - Toggle publish/unpublish directly from list, system pages show lock icon and cannot be deleted

Creating a Page

  1. Click "Add Page" - Opens the page creation form
  2. Page Details Section
    • Page Title: Display title (e.g., "Terms and Conditions")
    • URL Slug: URL-friendly identifier. Auto-generated from title if left blank.
    • Sort Order: Display position (lower numbers appear first)
    • Published: Toggle to make page publicly visible
  3. SEO Settings Section
    • Meta Title: SEO title (defaults to page title if blank)
    • Meta Description: Brief description for search engines (150-160 characters recommended)
    • Meta Keywords: Comma-separated keywords
  4. Page Content Section - Rich text editor (Quill) with full formatting toolbar
  5. Save Page - Click "Create Page" or "Update Page", page available at /pages/{slug} if published

Editing Pages

  1. Find page in list, click "Edit" button (gear icon)
  2. Page Statistics Sidebar (edit mode) - Total Views, Created date, Last Updated
  3. Recent Changes Sidebar - Last 5 versions, change type badges, "View All" link
  4. Modify content, toggle publish status, update SEO settings
  5. Click "Update Page", new version saved to history

Version History

  1. Access History - From page list: click "History" button, from edit page: click "View All"
  2. Current Version Card - Shows current live page info with "Live" badge
  3. Version Timeline - All versions as cards with version number, change type, changed by user, content preview
  4. View Version - Modal shows full version details
  5. Restore Version - Click "Restore", confirmation dialog, page restored, new history entry created

System Pages

What are System Pages?

System Page Restrictions: Cannot be deleted, URL slug cannot be changed, can still edit content, SEO settings, and publish status

Public Page Viewing

Page URLs:

No Login Required: Published pages accessible to all visitors, uses customer portal header/footer, clean professional design, breadcrumb navigation, mobile-responsive layout.

View Counter: Each page view increments counter, stats visible in admin list and page edit.

Updated Footers: Client portal footer includes page links, admin portal footer includes page links (opens in new tab). Default Links: Terms & Conditions, Privacy Policy, Refund Policy.


Dunning Rules Management

Overview

Dunning rules automate the process of collecting overdue payments by defining a sequence of actions (email reminders, service suspension, termination) that occur at specified intervals after an invoice becomes overdue.

Access: whmazadmin/general_setting/manage?tab=dunning

Accessing Dunning Rules

  1. Navigate to General Settings - Go to "Settings" → "General Settings", click the "Dunning" tab
  2. Dunning Tab Overview - Information alert, "Manage Email Templates" shortcut, "Add Rule" button, rules table, workflow preview card

Creating a Dunning Rule

  1. Click "Add Rule" - Opens the dunning rule modal dialog
  2. Rule Configuration
    • Step Number: Sequential order (must be unique)
    • Days After Due: Number of days after invoice due date to trigger
    • Action Type: EMAIL (send reminder), SUSPEND (suspend service), or TERMINATE (terminate service)
    • Email Template: Select dunning email template (shown when action involves email)
    • Active: Checkbox to enable/disable
  3. Save Rule - Click "Save", workflow preview updates

Action Type Color Codes

Editing Dunning Rules

  1. Click Edit (pencil icon) on the rule row
  2. Modal opens pre-filled, modify any field
  3. Click "Save"

Deleting Dunning Rules

  1. Click Delete (trash icon) on the rule row
  2. Confirm deletion in the SweetAlert2 popup
  3. Rule permanently removed

Workflow Preview

The Dunning tab includes a visual workflow preview card that shows all active rules in sequence, color-coded by action type.

Example Dunning Configuration

StepDays After DueActionTemplate
13 daysEMAILFirst Payment Reminder
27 daysEMAILSecond Payment Reminder
314 daysEMAILFinal Notice
421 daysSUSPENDSuspension Notice
530 daysTERMINATETermination Notice

Domain Pricing Management

Accessing Domain Pricing

  1. Navigate to Domain Pricing - Go to "Domains" → "Domain Pricing", view all TLD pricing configurations
  2. Pricing List Display - Domain extension, Currency, Registration period, Registration price, Transfer price, Renewal price, Status
Domain Pricing Management
Domain pricing management with SSP pagination

Adding Domain Pricing

  1. Click "Add Pricing" - Opens pricing configuration form
  2. Select Extension - Choose from available TLDs (.com, .net, .org, .info, .biz)
  3. Select Currency - Choose currency (USD, EUR, GBP)
  4. Set Registration Period - Number of years (typically 1-10)
  5. Configure Pricing - Registration Price, Transfer Price, Renewal Price
  6. Save Pricing - Click "Save", pricing active immediately

Editing Domain Pricing

  1. Locate pricing entry using search or filter
  2. Click "Edit", modify any price field
  3. Save changes -- new pricing applies to new orders immediately, existing orders unaffected

Managing TLD Extensions

Domain Extensions Table: Located in database dom_extensions, contains available TLDs, enable/disable specific TLDs.

Adding New TLD:

  1. Insert into dom_extensions table
  2. Add pricing in Domain Pricing page
  3. TLD appears in domain search

Popular TLDs: .com, .net, .org, .info, .biz, .name, .io, .co, .me, and country codes (.us, .uk, .ca, etc.)


Invoice Management

Invoice List

  1. Access Invoice Management - Go to "Billing" → "Invoices", view all invoices
  2. Invoice List Columns - Invoice number, Customer name, Invoice date, Due date, Total amount, Status (Paid, Unpaid, Cancelled), Actions
Invoice Management List
Invoice management list

Creating Manual Invoice

When to Create Manual Invoice: Custom service not in system, one-time charge, adjustment or credit, offline sale.

Steps:

  1. Click "Create Invoice" - Select customer, set invoice date and due date
  2. Add Line Items - Click "Add Item", enter description, amount, quantity, tax
  3. Invoice Totals - Subtotal calculated automatically, tax calculated, total displayed
  4. Notes (optional) - Customer-visible notes and internal admin notes
  5. Save Invoice - Click "Save", option to send to customer

Editing Invoices

Editing Allowed for: Unpaid invoices only. Can modify line items, change amounts, adjust due date.
Cannot Edit: Paid invoices (read-only). Use credit notes instead for corrections.

Recording Payments

Manual Payment Recording: For offline payments (cash, check, wire transfer) or payments received outside system.

  1. Open unpaid invoice
  2. Click "Record Payment" - enter amount, payment method, transaction ID, date, notes
  3. Save Payment - invoice marked as paid, payment recorded, customer notified

Invoice Actions

Available Actions: View Invoice, Edit Invoice, Send Invoice, Record Payment, Download PDF, Cancel Invoice, Delete Invoice

Recurring Invoices

Automatic Invoice Generation: System generates invoices before service expiration, configured in cron jobs, typically 7-14 days before due date.


Payment Management

Transaction History

  1. View All Transactions - Go to "Billing" → "Transactions", see all payment records
  2. Transaction Information - Transaction ID, Customer name, Invoice number, Amount, Payment method, Transaction date, Status (Success, Pending, Failed, Refunded)
Transaction History
Transaction history list

Payment Methods

Configure Payment Gateways: Go to "Settings" → "Payment Gateways"

Gateway List Page Features:

ActionDescription
Toggle SwitchEnable/disable gateway (with confirmation)
Configure ButtonOpen gateway settings page
Test ButtonVerify API credentials work correctly
GatewayStatusFeatures
StripeFully WorkingCards, webhooks, refunds
SSLCommerzFully WorkingBangladesh payments, IPN
Bank TransferWorkingManual payment recording

Additional Admin Pages:

Refunding Payments

  1. Find Transaction - Locate in transaction history, click to view details
  2. Process Refund - Click "Refund", enter refund amount (full or partial), enter reason, confirm
  3. Refund Processing - Processed through payment gateway, transaction updated to "Refunded", customer notified, invoice status updated

Promo Code Management

Overview

The Promo Code system allows administrators to create discount coupons that customers can apply during checkout. Promo codes support flexible discount rules, targeting options, and usage limits.

Access: Go to "Settings" → "Promo Codes"

Creating a Promo Code

  1. Navigate to Promo Codes - Go to "Settings" → "Promo Codes", click "Add Promo Code"
  2. Basic Information
    • Promo Code: Enter a code (auto-uppercase) or click the random generator button
    • Description: Optional internal note for this promo code
  3. Discount Settings
    • Discount Type: Fixed Amount or Percentage
    • Discount Value: The discount amount or percentage
    • Currency: (Fixed type only) Restrict to a specific currency, or "Any Currency"
    • Max Discount Cap: (Percentage only) Maximum discount amount; 0 = no cap
    • Min Order Amount: Minimum cart total required; 0 = no minimum
  4. Validity Period
    • Lifetime: Check to make the code never expire
    • Start Date / End Date: Set a date range when the code is valid
  5. Usage Limits
    • Max Total Uses: Total redemptions allowed; 0 = unlimited
    • Max Uses Per Customer: Redemptions per customer; 0 = unlimited
  6. Targeting
    • All Orders: Code applies to any order
    • Specific Products: Select products from multi-select dropdown
    • Specific Customers: Select customers from multi-select dropdown
  7. Status - Active: Enable or disable the promo code
  8. Click "Save Promo Code"

Managing Promo Codes

List Page Features:

How Customers Use Promo Codes

  1. Customer adds items to the shopping cart
  2. In the cart view, a "Promo Code" section appears between cart items and payment options
  3. Customer enters the promo code and clicks "Apply"
  4. System validates the code and shows the discount amount
  5. Cart totals update to show: Subtotal, Discount (with code name), and Order Total
  6. Customer can remove the promo code before checkout
  7. At checkout, the code is re-validated to prevent stale codes
  8. Discount is saved on the order and invoice records

Promo Code on Invoices

When a promo code is used:


Ticket Management

Ticket List

  1. Access Ticket Management - Go to "Support" → "Manage Tickets", view all support tickets
  2. Ticket List Columns - Ticket ID, Customer name, Subject, Department, Priority, Status, Last update, Actions
Ticket Management
Support ticket management with filters

Viewing and Replying to Tickets

  1. Open Ticket - Click on ticket from list, view full conversation
  2. Ticket Details - Customer information, related service, priority level, department, all messages, attached files
  3. Reply to Customer - Type response, attach files if needed, click "Reply", customer notified via email
  4. Internal Notes (optional) - Add notes visible only to staff, useful for documentation, not sent to customer

Ticket Assignment

Assigning Tickets: Assign to specific staff member, assign to department, auto-assignment based on department.

  1. Open ticket
  2. Select staff member from dropdown
  3. Save assignment
  4. Assigned staff notified

Ticket Status Management

Available Statuses:

Ticket Departments

Managing Departments: Technical Support, Billing Support, Sales, General Inquiry, Custom departments.

Department Settings: Department name, department email, auto-assignment rules, email templates.

Canned Responses

What are Canned Responses? Pre-written reply templates for common questions that save time.

Using Canned Responses:

  1. While replying to ticket
  2. Click "Canned Responses" button
  3. Select appropriate response
  4. Customize if needed
  5. Send reply

Managing Canned Responses: Create new responses, edit existing, organize by category, set access permissions.


Knowledge Base Management

Article List

  1. Access Knowledge Base Management - Go to "Support" → "Knowledge Base", view all articles
  2. Article Information - Article title, Category, Author, Published date, Status (Published, Draft), Views count

Creating Articles

  1. Click "New Article" - Open article editor
  2. Article Details - Title, Category, Summary, Content, Tags, Status, Featured
  3. Content Editor - Rich text editor (Quill), format text, add images, links, code blocks, preview before publishing
  4. SEO Settings (optional) - Meta description, keywords, URL slug
  5. Publish Article - Click "Publish" or "Save as Draft"
Knowledge Base Editor
Knowledge base article editor

Managing Categories

Article Categories: Organize articles by topic, help customers find relevant articles.

Managing Categories:

  1. Go to "Knowledge Base" → "Categories"
  2. Create new category
  3. Set category name and description
  4. Set display order
  5. Save category

Common Categories: Getting Started, Account Management, Billing & Payments, Technical Support, Troubleshooting, FAQs

Editing Articles

  1. Find article, click "Edit"
  2. Modify content, change category, update content, add/remove images
  3. Version History (if enabled) - View/restore previous versions
  4. Save changes, reflected immediately

Article Analytics

Track Article Performance: View count, helpful ratings, search terms, popular articles report.

Using Analytics: Identify knowledge gaps, improve low-rated articles, create content on popular topics.


Announcement Management

Announcement List

  1. Access Announcements - Go to "Support" → "Announcements", view all announcements
  2. Announcement Information - Title, Category, Published date, Status (Published, Draft)

Creating Announcements

  1. Click "New Announcement" - Open announcement form
  2. Announcement Details
    • Title: Announcement headline
    • Category: General, Maintenance, New Feature, Service Update
    • Content: Full announcement text
    • Publish Date: When to display
    • Status: Draft or Published
  3. Notification Options - Send email to all customers, display on customer dashboard, mark as important
  4. Publish Announcement - Click "Publish", appears in customer portal, email sent (if enabled)

Managing Announcements

Editing: Find announcement, click "Edit", modify content, save changes.

Scheduling: Set future publish date, announcement automatically published on date.

Expiring: Set expiration date (optional), announcement automatically hidden after date.


System Settings

General Settings

Access: whmazadmin/general_setting/manage

The General Settings page allows you to configure all core application settings in one place.

Site Information:

Company Information: Company Name, Company Address, Zip Code

Contact Information: Email, Phone, Fax

SMTP Configuration:

Google reCAPTCHA Configuration:

Company Settings

Access: Settings → Company Settings

Configuration: Company Name, Email, Phone, Address, Tax ID, Website, Logo (displayed on invoices)

Email Configuration

Access: Settings → Email Settings

SMTP Configuration: SMTP Host, SMTP Port, SMTP Username, SMTP Password, Encryption (None/TLS/SSL), From Email, From Name.

Testing Email: Send test email, verify delivery, check spam folder if not received.

Email Templates: Managed via dedicated Email Template Management page. See Email Template Management for full details.

Invoice Settings

Access: Settings → Invoice Settings

Configuration: Invoice Prefix, Next Invoice Number, Tax Name, Tax Rate, Tax Inclusive, Invoice Due Days, Late Fee, Payment Terms.

Currency Settings

Access: Settings → Currency Settings

Managing Currencies: Add currencies, set symbol and code, set default currency, set exchange rates, enable/disable currencies.

Security Settings

Access: Settings → Security Settings

Configuration: Session Timeout, Password Requirements (minimum length, uppercase, numbers, symbols), Login Attempts, Lockout Duration, Two-Factor Authentication, IP Whitelist.

Automation Settings

Access: Settings → Automation

Database Table: sys_cnf (group: AUTOMATION)

SettingDescriptionDefault
cron_enabledEnable/disable all cron jobs1 (enabled)
invoice_generation_days_beforeDays before expiry to generate invoice7
payment_reminder_firstFirst reminder (days before due)3
payment_reminder_secondSecond reminder (days before due)1
payment_reminder_overdueOverdue reminder (days after due)3
suspension_days_after_dueDays after due to suspend service5
cancellation_days_after_suspensionDays after suspension to cancel30
domain_reminder_firstFirst domain reminder (days before expiry)30
domain_reminder_secondSecond domain reminder15
domain_reminder_thirdThird domain reminder7

Cron Job Command:

php /path/to/whmaz/index.php cron/run

Set to run every hour or as needed.

Feature Flags

Access: Settings → Features

Database Table: sys_cnf (group: FEATURES)

SettingDescriptionDefault
feature_customer_registrationAllow new customer registration1 (enabled)
feature_domain_registrationEnable domain registration features1 (enabled)
feature_support_ticketsEnable support ticket system1 (enabled)
feature_knowledge_baseEnable knowledge base1 (enabled)
feature_announcementsEnable announcements system1 (enabled)
feature_affiliate_systemEnable affiliate/referral system0 (disabled)
feature_two_factor_authEnable two-factor authentication0 (disabled)
feature_social_loginEnable social login (Google, Facebook)0 (disabled)

Notification Settings

Access: Settings → Notifications

Database Table: sys_cnf (group: NOTIFICATIONS)

SettingDescriptionDefault
admin_notification_emailEmail for admin notificationsadmin@yourcompany.com
notify_admin_new_orderNotify on new order1 (enabled)
notify_admin_new_ticketNotify on new support ticket1 (enabled)
notify_admin_new_customerNotify on new customer registration1 (enabled)
notify_admin_paymentNotify on payment received1 (enabled)

Customer Portal Settings

Access: Settings → Customer Portal

Database Table: sys_cnf (group: PORTAL)

SettingDescriptionDefault
allow_customer_registrationAllow self-registration1 (enabled)
email_verification_requiredRequire email verification1 (enabled)
default_account_statusNew account statusactive
dashboard_show_servicesShow services widget1 (enabled)
dashboard_show_invoicesShow invoices widget1 (enabled)
dashboard_show_ticketsShow tickets widget1 (enabled)
dashboard_show_announcementsShow announcements widget1 (enabled)

Support System Settings

Access: Settings → Support

Database Table: sys_cnf (group: SUPPORT)

SettingDescriptionDefault
default_ticket_departmentDefault department for new ticketsGeneral Support
ticket_departmentsAvailable departments (comma-separated)Technical Support,Billing Support,Sales,General Inquiry
ticket_prioritiesPriority levels (comma-separated)Low,Medium,High,Urgent
auto_close_tickets_afterAuto-close resolved tickets (days)7
notify_customer_ticket_replyNotify customer on staff reply1 (enabled)
ticket_attachments_enabledAllow file attachments1 (enabled)
ticket_max_attachment_sizeMax attachment size (KB)5120

Configuration Storage Overview

WHMAZ stores configuration in the database for easy management via Admin Portal:

Configuration TypeDatabase TableAdmin Location
Company Informationapp_settingsSettings → General
Google reCAPTCHAapp_settingsSettings → General
Payment Gatewayspayment_gatewaySettings → Payment Gateways
Email Templatesemail_templatesSettings → Email Templates
Domain Registrardom_registersSettings → Domain Registrar
Billing Settingssys_cnfSettings → Billing
Automation/Cronsys_cnfSettings → Automation
Feature Flagssys_cnfSettings → Features
Notificationssys_cnfSettings → Notifications
Customer Portalsys_cnfSettings → Customer Portal
Support Systemsys_cnfSettings → Support

Environment File (.env): Only contains server-specific settings: Database credentials, Encryption key, Session configuration, Environment mode (development/production).


Part 4: Advanced Features

Email Configuration

SMTP Setup

Recommended SMTP Providers:

Gmail SMTP Configuration

Settings:

SMTP Host: smtp.gmail.com
SMTP Port: 587
Encryption: TLS
Username: your-email@gmail.com
Password: Your App Password (not regular password)

Important: Enable "Less Secure App Access" or use App Password

SendGrid Configuration

Settings:

SMTP Host: smtp.sendgrid.net
SMTP Port: 587
Encryption: TLS
Username: apikey
Password: Your SendGrid API Key

Testing Email Delivery

  1. Go to Settings → Email Settings
  2. Click "Send Test Email"
  3. Enter test email address
  4. Click "Send"
  5. Check inbox (and spam folder)
  6. Verify email received correctly

Troubleshooting Email Issues

Emails Not Sending:

Emails Going to Spam:


Payment Gateway Setup

Gateway Status Overview

GatewayStatusDescription
StripeFully WorkingComplete integration with PaymentIntent API and webhook support
SSLCommerzFully WorkingFull integration with automatic session restoration for external redirects
Bank TransferWorkingManual payment recording

Payment Notification Emails

When a payment is successfully processed, the system automatically sends email notifications:

EmailRecipientTemplateConfigurable
Payment ConfirmationCustomerinvoice_payment_confirmationAlways sent
Payment NotificationAdminadmin_payment_notificationSettings → Notifications

What triggers payment emails:

To customize payment emails:

  1. Go to Admin → Settings → Email Templates
  2. Search for "payment" templates
  3. Edit subject and body as needed
  4. Use placeholders for dynamic content

Stripe Configuration

  1. Create Stripe Account - Go to stripe.com, sign up, complete business verification
  2. Get API Keys - Go to Developers → API Keys, copy Publishable Key (pk_) and Secret Key (sk_)
  3. Configure Webhook (Required)
    • Go to Developers → Webhooks in Stripe Dashboard
    • Click "Add endpoint"
    • Enter Webhook URL: https://yourdomain.com/webhook/stripe
    • Select events: payment_intent.succeeded, payment_intent.payment_failed, checkout.session.completed, charge.refunded
    • Copy the "Signing secret" (whsec_)
  4. Configure in WHMAZ
    • Go to Admin → Settings → Payment Gateways
    • Click "Configure" on Stripe
    • Test Mode: Toggle ON for testing, OFF for live
    • Enter test or live credentials (Public Key, Secret Key, Webhook Secret)
    • Enable the gateway and Save
  5. Test Payment - Use test card: 4242 4242 4242 4242, any future expiry, any 3-digit CVC

Stripe Test Cards:

Card NumberDescription
4242 4242 4242 4242Successful payment
4000 0000 0000 0002Card declined
4000 0000 0000 9995Insufficient funds

SSLCommerz Configuration (Bangladesh)

  1. Create SSLCommerz Account - Go to sslcommerz.com, sign up for merchant account, complete verification
  2. Get API Credentials - Login to Merchant Panel, go to Developers → API Credentials, copy Store ID and Store Password
  3. Configure IPN (Webhook) - IPN URL: https://yourdomain.com/webhook/sslcommerz
  4. Configure in WHMAZ - Go to Admin → Settings → Payment Gateways, configure SSLCommerz, enter Store ID and Store Password, enable and Save
  5. Test Payment - Enable Sandbox Mode, create test invoice with BDT currency, complete payment using sandbox credentials

Note: SSLCommerz uses external redirect flow. The system handles session restoration automatically using secure payment tokens.

Bank Transfer

Setup: Enable Bank Transfer payment method, add bank account details, instructions displayed to customers.

Instructions Template:

Bank Transfer Instructions:

Bank Name: [Your Bank Name]
Account Name: [Your Company Name]
Account Number: [Account Number]
Routing Number: [Routing Number]
SWIFT/BIC: [For international transfers]

Reference: Please include your invoice number as reference

Manual Processing: Customers transfer funds, notify you or upload proof, you verify payment, manually mark invoice as paid.


Domain Registrar Integration

Supported Registrars

RegistrarPlatformAPI TypeStatus
ResellerClubresellerclubJSON RESTSupported
Resell.bizresellbizJSON RESTSupported
NamecheapnamecheapXMLSupported

Default Registrar System

WHMAZ uses a default registrar system:

Resell.biz / ResellerClub Setup

Prerequisites: ResellerClub reseller account, API credentials, funded account.

Configuration Steps:

  1. Get API Credentials - Login to control panel, go to Settings → API, note auth-userid and API key
  2. Configure in WHMAZ - Go to Admin → Settings → Domain Registrars, enter API Base URL: https://httpapi.com/api/domains/, enter auth-userid and API key, check "Set as Default"
  3. Whitelist Server IP - In ResellerClub control panel, go to Settings → API → IP Whitelist, add your server's IP
  4. Test Domain Search - Go to customer portal, use domain search, verify results return correctly

Namecheap Setup

Prerequisites: Namecheap reseller account, API credentials, funded account, server IP whitelisted.

Configuration Steps:

  1. Get API Credentials - Login to Namecheap dashboard, go to Profile → Tools → API Access, enable API access, note Username and Key
  2. Whitelist Server IP - In Namecheap dashboard → Profile → Tools → API Access, add your server's IP
  3. Configure in WHMAZ
    • Set Platform: NAMECHEAP
    • Set API Base URL: https://api.namecheap.com/xml.response (production) or https://api.sandbox.namecheap.com/xml.response (sandbox)
    • Enter API Username and Key
    • Check "Set as Default"
  4. Test Domain Search - Go to customer portal, verify results

Namecheap-Specific Notes:

General Troubleshooting

"Sorry, you have been blocked" / 403 Error: API IP whitelist issue, whitelist your server IP in registrar panel, verify API credentials.

No Results Returned: Check API URL, verify credentials, check server can make external CURL requests, review error logs at src/logs/.

Domain Not Registering: Verify account funded, check domain availability, verify customer details complete, check extension supported.

Adding Domain Extensions

  1. Check Supported TLDs - Review registrar's supported TLDs
  2. Add to Database - Insert into dom_extensions table, set extension name, set status to active
  3. Configure Pricing - Go to Domain Pricing management, add pricing for new extension
  4. Test in Portal - Search for domain with new extension, verify pricing displays correctly

Automation & Cron Jobs

Setting Up Cron Jobs

Required Cron Jobs:

  1. Invoice Generation - Generates renewal invoices before due date. Daily. php /path/to/whmaz/index.php cron/generate_invoices
  2. Payment Reminders - Sends reminder emails for unpaid invoices. Daily. php /path/to/whmaz/index.php cron/payment_reminders
  3. Service Suspension - Suspends services with overdue invoices. Daily. php /path/to/whmaz/index.php cron/suspend_services
  4. Domain Expiry Reminders - Reminds customers of upcoming expirations. Daily. php /path/to/whmaz/index.php cron/domain_reminders

cPanel Cron Setup

  1. Access Cron Jobs - Login to cPanel, find "Cron Jobs" icon
  2. Add New Cron Job - Select frequency (e.g., daily at 3:00 AM), enter command:
    php /home/username/public_html/index.php cron/generate_invoices
    Save cron job.
  3. Repeat for Each Cron Task - Add separate cron jobs, stagger times to avoid overload

Linux Server Cron Setup

  1. Edit Crontab
    crontab -e
  2. Add Cron Entries
    # Invoice generation - Daily at 3:00 AM
    0 3 * * * php /var/www/html/whmaz/index.php cron/generate_invoices
    
    # Payment reminders - Daily at 9:00 AM
    0 9 * * * php /var/www/html/whmaz/index.php cron/payment_reminders
    
    # Service suspension - Daily at 11:00 AM
    0 11 * * * php /var/www/html/whmaz/index.php cron/suspend_services
    
    # Domain reminders - Daily at 10:00 AM
    0 10 * * * php /var/www/html/whmaz/index.php cron/domain_reminders
  3. Save and Exit - Press Ctrl+X, then Y, then Enter (in nano)

Verifying Cron Execution

Check Cron Logs:

tail -f /var/log/syslog | grep CRON

Check Application Logs: View logs in application/logs/ directory, look for cron execution entries, verify no errors.


Customization Options

  1. Prepare Logo File - Format: PNG or JPG, recommended size: 200x50 pixels, transparent background (PNG)
  2. Upload Logo - Go to Settings → Company Settings, click "Upload Logo", select file, save changes
  3. Logo Usage - Displayed on invoices, customer portal header, admin portal header, emails

Customizing Colors/Theme

CSS Customization: Main CSS file: resources/css/custom.css. Modify colors, fonts, spacing. Use browser inspector to find CSS selectors.

Common Customizations:

/* Primary color */
.btn-primary {
    background-color: #your-color;
}

/* Header background */
.header {
    background-color: #your-color;
}

/* Links */
a {
    color: #your-color;
}

Customizing Email Templates

  1. Access Email Template Management - Go to Admin Portal → "Settings" → "Email Templates" or navigate to whmazadmin/email_template
  2. Edit Template - Click "Manage" on the template, use Quill editor, use placeholders, save changes
  3. Create New Template - Click "Add", assign unique template key, category, subject, and body
  4. Test Email - Send test email, verify formatting, check all placeholders replaced correctly

Adding Custom Pages

Creating Custom Page:

  1. Create Controller - File: application/controllers/Custom_page.php, extend appropriate base controller
  2. Create View - File: application/views/custom_page.php, add your HTML content
  3. Add to Menu (optional) - Edit navigation menu file, add link to custom page

Part 5: Troubleshooting & FAQ

Common Issues

Issue: Cannot Login to Admin Panel

Possible Causes: Incorrect email or password, account suspended or deleted, session expired, browser cache issues.

Solutions:

  1. Verify email and password correct
  2. Use "Forgot Password" to reset
  3. Clear browser cache and cookies
  4. Try different browser
  5. Check database for user account status

Issue: Blank White Page

Possible Causes: PHP error, missing files, insufficient permissions, memory limit exceeded.

Solutions:

  1. Check error logs in application/logs/
  2. Enable error display temporarily: Set ENVIRONMENT to 'development' in index.php
  3. Check file permissions (755 for directories, 644 for files)
  4. Increase PHP memory_limit in php.ini
  5. Contact server administrator

Issue: 404 Error on Pages

Possible Causes: .htaccess file missing or incorrect, mod_rewrite not enabled, base URL not configured correctly.

Solutions:

  1. Verify .htaccess exists in root directory
  2. Check .htaccess content:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
  3. Verify mod_rewrite enabled on server
  4. Check base_url in application/config/config.php

Issue: Database Connection Error

Possible Causes: Incorrect database credentials, database server down, firewall blocking connection, database not created.

Solutions:

  1. Verify credentials in application/config/database.php
  2. Test database connection:
    mysql -u username -p database_name
  3. Check database server is running
  4. Verify database exists
  5. Check user has permissions on database

Issue: Emails Not Sending

Possible Causes: SMTP settings incorrect, SMTP port blocked, authentication failed, email provider blocks.

Solutions:

  1. Verify SMTP settings in Settings → Email
  2. Send test email and check error
  3. Try different SMTP port (587, 465, 25)
  4. Check server firewall allows outbound on SMTP port
  5. Enable "less secure apps" if using Gmail
  6. Check email logs for specific errors

Issue: Payment Gateway Not Working

Possible Causes: API credentials incorrect, gateway in test mode, SSL certificate issues, account not verified.

Solutions:

  1. Verify API credentials
  2. Check test/live mode setting
  3. Ensure site uses HTTPS (SSL)
  4. Verify gateway account approved and active
  5. Check gateway logs for specific errors
  6. Test with different payment gateway

Issue: Domain Search Not Working

Possible Causes: API credentials incorrect, IP not whitelisted, API URL incorrect, no domain pricing configured.

Solutions:

  1. Verify API credentials in database (domain_register table)
  2. Contact registrar to whitelist server IP
  3. Check API URL format correct
  4. Verify pricing exists for searched extensions
  5. Check CURL enabled on server
  6. Review error logs

Issue: Slow Performance

Possible Causes: Server resources limited, database not optimized, too many plugins/modules, large log files.

Solutions:

  1. Enable OPcache
  2. Optimize database tables
  3. Increase PHP memory_limit
  4. Clear old log files
  5. Enable caching
  6. Upgrade server resources
  7. Use CDN for static assets

Frequently Asked Questions

General Questions

Q: Can I use WHMAZ for other types of businesses besides hosting?
A: Yes, while designed for hosting providers, WHMAZ can be adapted for any service-based business that needs customer management, billing, and support.

Q: Does WHMAZ support multiple currencies?
A: Yes, you can configure multiple currencies and set exchange rates.

Q: Can I customize the look and feel?
A: Yes, you can customize CSS, logos, colors, and email templates.

Q: Is WHMAZ mobile-friendly?
A: Yes, both customer and admin portals are fully responsive and work on mobile devices.

Q: Can I import customers from another system?
A: Currently manual import. You can insert directly into database with proper SQL knowledge, or contact support for assistance.

Billing Questions

Q: How do I set up recurring billing?
A: Configure cron jobs for automatic invoice generation. Set up payment gateway for auto-payments (if supported).

Q: Can I offer discounts or coupons?
A: Coupon functionality may need custom development. You can manually adjust invoice amounts.

Q: How do I handle taxes?
A: Configure tax rate in Settings → Invoice Settings. Tax applies to all invoices.

Q: Can I accept payments in multiple currencies?
A: Yes, configure multiple currencies in Settings → Currency.

Q: How do I issue refunds?
A: Process refund through payment gateway, then record in WHMAZ or cancel invoice.

Domain Questions

Q: Which domain registrars are supported?
A: ResellerClub, Resell.biz, and Namecheap are fully supported. Set one as the "Default" registrar in Admin → Settings → Domain Registrars.

Q: Can customers transfer domains to me?
A: Yes, domain transfer functionality is included.

Q: Do domains auto-renew?
A: Renewal invoices are generated automatically. Payment must be made (auto-payment depends on gateway).

Q: How do I set domain pricing?
A: Go to Domains → Domain Pricing in admin panel.

Support Questions

Q: Can I have multiple support departments?
A: Yes, create departments in ticket settings.

Q: Can customers reply to tickets via email?
A: Email-to-ticket functionality requires additional configuration (pipe to email).

Q: How do I create canned responses?
A: Go to Support → Canned Responses in admin panel.

Q: Can I assign tickets to specific staff?
A: Yes, assign tickets to staff members from ticket details page.

Technical Questions

Q: What are the server requirements?
A: PHP 8.2+, MySQL 5.7+, Apache/Nginx. See README.md for complete requirements.

Q: Can I run WHMAZ on shared hosting?
A: Yes, as long as server meets minimum requirements.

Q: Is the source code encrypted?
A: No, full source code is provided and can be customized.

Q: Can I use WHMAZ on multiple domains?
A: Regular license: One domain. Extended license: Multiple under one business/SaaS.

Q: How do I backup WHMAZ?
A: Backup database (MySQL dump) and files (entire directory). See INSTALLATION.md for commands.


Getting Support

Support Channels

Documentation:

Email Support:

Knowledge Base: Search for common issues, step-by-step guides, video tutorials (if available).

Community Forum (if available): Ask questions, share solutions, connect with other users.

Before Contacting Support

Information to Provide:

  1. WHMAZ Version: Check in footer or about page
  2. Server Environment:
    • PHP version: php -v
    • MySQL version: mysql --version
    • Server OS: Linux, Windows, etc.
  3. Detailed Description: What were you trying to do? What happened instead? Error messages (exact text)
  4. Screenshots: Error page, relevant configuration pages, console errors (F12 in browser)
  5. Steps to Reproduce: Step 1, Step 2, Step 3... Helps support team replicate issue

Support Limitations

Support Includes: Installation assistance (guidance, not service), configuration help, bug fixing, feature usage questions, troubleshooting.

Support Does NOT Include: Custom development, server management, third-party plugin support, training sessions, consulting services.

These services available separately at additional cost.

Support Period


Conclusion

Thank you for using WHMAZ!

This guide covered:

Next Steps:

  1. Complete initial configuration
  2. Create first customer and order
  3. Test billing and payment flow
  4. Configure automation/cron jobs
  5. Customize branding and emails
  6. Train staff on admin functions
  7. Create knowledge base articles for customers

Need Help?

Stay Updated:


Document Information:
Version: 1.0.0 | Last Updated: February 18, 2026
Product: WHMAZ - Web Host Manager A to Z Solutions. Lightweight Domain Hosting Management System
Copyright 2026 WHMAZ. All Rights Reserved.