System Installation & Configuration Guide

Last Updated: 05/2026
1. Minimum System Requirements
  • PHP Version: PHP 7.4 or higher (PHP 8.1+ Stable recommended) Required
  • PHP cURL Extension: Required for API connections (WHM, ResellerClub, Dynadot, Payment Gateways). Required
  • SSL Certificate (HTTPS): Required for Stripe, PayPal Webhooks, and Google reCAPTCHA v3 security. Required
  • PHP allow_url_fopen: Must be enabled for RDAP/WHOIS JSON HTTP queries to work smoothly. Recommended
2. File Upload & Folder Permissions
  1. Extract the downloaded archive file on your local computer.
  2. Upload all files to your website's root directory (usually public_html or www) via an FTP client (e.g., FileZilla) or your Hosting Control Panel. Uploading the files into /domaincart directory is recommended.
  3. Check the folder permissions (CHMOD) if necessary (Default 755 is sufficient):
      The /config directory and its underlying files must be readable and writable by the server.

3. Editing Configuration Files

File 1: config/config_pricing.php

This file manages your domain registrars, WHM/cPanel servers, store currency, reCAPTCHA keys, domain pricing matrix, and hosting packages.

A. Automation & API Integrations:

To enable automatic domain provisioning and hosting account creation upon successful payment, update these keys:

  • registrar: Set to 'resellerclub' or 'dynadot' to enable automatic domain registration. Set to false to disable.
  • hostingpanel: Set to 'cpanel' to enable automatic hosting provisioning. Set to false to disable.
  • Fill in the corresponding resellerclub_apikey, dynadot_apikey, or whm_token fields based on your selected providers.
B. Taxes, Currency & Security:
VariableExample ValueDescription
taxRate0.20Adds a 20% VAT/Tax at checkout. Set to 0 to disable tax.
currency / currencyName'$' / 'USD'The currency symbol and short name displayed across the store.
captchaEnabledtrue / falseEnables or disables Google reCAPTCHA v3 security.
C. Hosting Package Structure & Billing Cycles:

Hosting plans are defined under the "hosting" array. You can define custom billing cycles like this:

"Starter" => [
    "label" => "10GB SSD",
    "base"  => 7.95,
    "cycles" => [
        ["m" => 1,  "l" => "Monthly",       "p" => 7.95,  "recurring" => true],
        ["m" => 12, "l" => "Annually",      "p" => 75.40, "recurring" => false]
    ]
]
m: Month duration, l: Display label, p: Total cycle price, recurring: True if it auto-renews.
File 2: config/config_gateways.php

Manage your virtual POS and gateway integrations here. Each gateway operates with its own localized currency and routing rules.

Security Warning: Before switching to Production, make sure to disable test_mode or demo flags, and enter your live secret keys for Stripe, Mollie, or 2Checkout.
Enabling/Disabling Payment Methods:

Toggle the 'enabled' => true/false flag inside the main return [...] array at the very bottom of the file to hide or show gateways to customers:

return [
    'stripe' => ['value' => 'stripe', 'label' => 'Stripe', 'enabled' => true, 'settings' => $stripe],
    'manual' => ['value' => 'manual', 'label' => 'Bank Transfer', 'enabled' => true, 'settings' => $manual],
];
Note: For automated order processing, you must map the callback or webhookUrl parameters into your provider's dashboard (e.g., Mollie Webhook settings).
File 3: config/config_coupons.php

The discount coupon engine parses cart-based business rules through a comma-separated string format.

Coupon String Pattern:
"DomDiscount, DomMinCart, HostDiscount, HostMinCart, CycleType(R/O), ExpiryDate(DDMMYYYY)"
Coupon Field Breakdowns:
  • 'SAVE10' => '10%,0,15%,20,R,31122027'
    Grants 10% off on domains with no minimum spending. Grants 15% off on hosting if the hosting subtotal exceeds 20 units. Marked as R (Recurring), meaning discounts apply to future renewal billing. Expires Dec 31, 2027.
File 4: config/config_contact_form.php

Controls validation behaviors, field formatting, and field visibility of the checkout contact and billing profile form.

'company' => ['label' => 'Company Name',   'type' => 'text',  'required' => false, 'value' => ''],
'country' => ['label' => 'Country',        'type' => 'country', 'required' => true, 'value' => 'US'],
Customization Tips:
  • To make an optional field mandatory or vice-versa, toggle the Boolean 'required' => true / false key.
  • Modify the default selection country by altering the country key value attribute (e.g., changing 'US' to 'GB').
File 5: whois_servers.php

The system supports modern RDAP (JSON API via HTTP) engines along with fallback traditional WHOIS (Port 43 TCP sockets) engines to process availability looks.

Adding New Top-Level Domains (TLDs):

To scale up your extension portfolio, append custom items to the core array using either methodology:

Option A: Mapping an RDAP Endpoint (Highly Recommended)

'.com' => [
    'type' => 'rdap',
    'url'  => 'https://rdap.verisign.com/com/v1/domain/'
],

Option B: Mapping a Port 43 WHOIS Host

'.eu' => [
    'type'   => 'whois',
    'server' => 'whois.eu',
    'match'  => 'Registrar:'
],
The match property represents the target phrase found inside raw text returns when a domain name is already registered. If the phrase is matched, the engine outputs 'Registered'; otherwise, it flags it as 'Available'.
Final Phase: Testing & Going Live
  1. Debug Mode: If you encounter white screens during local staging, change the error suppression lines in index.php from error_reporting(0); to error_reporting(E_ALL); ini_set('display_errors', 1); to view underlying runtime alerts.
  2. Security Hardening: Revert debug statements back to 0 when deploying the script to a public environment to block error leaking.
  3. Mail Integrity: Configure out-of-the-box system notifications by populating the SMTP parameters inside config_pricing.php with verified mail server endpoints.