SCW Mobility Group Dealership Landing Pages + Automotive Lead CRM

Version scwmobility_v1 · cPanel / shared hosting installation & operations guide

1. What is in this package

PathPurpose
index.phpSCW Mobility Group central landing / portal page
gwm/GWM Lenasia landing page (Tank 300 hero, full range, enquiry forms)
omoda-jaecoo/OMODA JAECOO Boksburg promotions landing page
suzuki/Suzuki Lenasia deals & offers landing page
virtual-test-drive/Virtual Test Drive experience (360° view, cabin hotspots, drive simulation)
admin/Dealership CRM dashboard (leads, follow-ups, test drives, service, finance, campaigns, reports, settings)
forms/submit.phpSingle secure lead-capture endpoint used by every page
includes/Bootstrap, database, helpers, CSRF, mailer, lead pipeline, auth, shared UI partials
config/database.php, mail.php, app.php — the only files you must edit
database/schema.sqlFull MySQL schema (tables, indexes, foreign keys)
database/demo_data.sqlDemo dealerships, 31 vehicles, sales staff, 36 leads, campaigns, admin user
assets/CSS, JS, vehicle photography, logos, favicon
vendor/phpmailer/PHPMailer 6.9.1 (SMTP sending, no Composer required)
unsubscribe.phpPublic token-based marketing opt-out page (POPIA)
.htaccess, robots.txt, sitemap.xml, 404.phpApache rules, SEO files, error page

2. Server requirements

3. Installation on cPanel (about 15 minutes)

Step 1 — Upload the files

  1. cPanel → File Manager → open public_html (or the document root of the add-on domain).
  2. Upload TshepoTech_v1.zip.
  3. Select the file → Extract.
  4. Open the extracted scwmobility_v1 folder, select all items, and Move them into the document root so that index.php sits directly in public_html. Then delete the empty folder and the ZIP.
Hidden files: in File Manager click Settings → Show Hidden Files so .htaccess is moved along with the rest.

Step 2 — Create the database

  1. cPanel → MySQL® Database Wizard.
  2. Database name: scwmobility (cPanel will prefix it, e.g. cpuser_scwmobility).
  3. Create a user, e.g. swuser, with a strong password. Save both values.
  4. Grant ALL PRIVILEGES to that user on the database.

Step 3 — Import the SQL

  1. cPanel → phpMyAdmin → select your new database.
  2. Import → choose database/schema.sql → Go.
  3. Import again → choose database/demo_data.sql → Go.
After importing you should have the tables dealerships, vehicles, leads, lead_notes, lead_activity, customers, test_drives, finance_applications, service_bookings, email_campaigns, campaign_recipients, salespeople, users, settings and login_attempts.

Step 4 — Configure the database connection

Edit config/database.php:

return [
    'host'     => 'localhost',
    'name'     => 'cpuser_scwmobility',
    'user'     => 'cpuser_swuser',
    'password' => 'your-database-password',
    'charset'  => 'utf8mb4',
];

Step 5 — Configure email (SMTP)

Create a mailbox in cPanel → Email Accounts (for example leads@yourdomain.co.za), then edit config/mail.php:

return [
    'host'        => 'mail.yourdomain.co.za',
    'port'        => 465,
    'encryption'  => 'ssl',          // 'ssl' for 465, 'tls' for 587
    'username'    => 'leads@yourdomain.co.za',
    'password'    => 'mailbox-password',
    'from_email'  => 'leads@yourdomain.co.za',
    'from_name'   => 'SCW Mobility Group',
    'admin_email' => 'sales@yourdomain.co.za',
];
Every enquiry sends two emails: a branded confirmation to the customer and a notification to the dealership address. If SMTP is not configured yet the lead is still saved — only the email is skipped.

Step 6 — Set the site basics

Edit config/app.php: site URL, dealership phone numbers, WhatsApp numbers, opening hours and the Google Analytics / Meta Pixel IDs if you have them.

Step 7 — Log in to the CRM

Visit https://yourdomain.co.za/admin/

UsernamePassword
AdminSCWGroup.01
Change this password immediately in Admin → Settings → My account. The demo password is public knowledge.

Step 8 — Finish the SEO files

Replace example.co.za with your real domain in robots.txt and sitemap.xml.

4. Removing the demo data before going live

Run this in phpMyAdmin → SQL when you are ready for real customers. It keeps the dealerships, vehicles, staff and your admin user, and clears only the demo leads.

SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE lead_notes;
TRUNCATE TABLE lead_activity;
TRUNCATE TABLE test_drives;
TRUNCATE TABLE finance_applications;
TRUNCATE TABLE service_bookings;
TRUNCATE TABLE campaign_recipients;
TRUNCATE TABLE email_campaigns;
TRUNCATE TABLE customers;
TRUNCATE TABLE leads;
SET FOREIGN_KEY_CHECKS = 1;

5. How the system works

Lead capture

Every form on every landing page posts to forms/submit.php over AJAX with a CSRF token. That endpoint validates the input, saves the lead with a reference (SCW-00001), records the source page, UTM parameters, gclid / fbclid, referrer and device, assigns a salesperson round-robin, scores the lead, writes the matching booking record (test drive / finance / service), upserts the customer, then sends the confirmation and notification emails.

Lead types handled

CRM modules

PageWhat it does
DashboardKPI cards, 14-day lead trend, newest leads, source breakdown
LeadsFilter by dealership, status, type, salesperson, date and search; bulk status change; CSV export
Lead workspaceFull attribution, notes timeline, status & score, follow-up scheduling, send an email to the customer
Follow-upsEverything due today / overdue / upcoming per salesperson
Test drives / Service / FinanceDedicated pipelines with confirm, complete and cancel actions
CampaignsBuild an audience (dealership, status, consent), preview the HTML, send in paced batches
CustomersDe-duplicated customer database with marketing consent state
Vehicles / DealershipsStock, pricing, promotions, featured flags; dealership details and staff
ReportsLeads by dealership, source, type and month; conversion rates
SettingsSite settings and admin passwords

Email campaigns on shared hosting

Campaigns send in batches with a short pause between messages so you stay inside your host's hourly mail limit. Leave the sending page open until it reports Completed; it resumes safely if interrupted. Only customers who granted marketing consent and have not unsubscribed are included.

6. Security notes

7. Troubleshooting

SymptomFix
"Database connection failed"Check the four values in config/database.php; the cPanel prefix is part of both the database and user name.
Blank white pagecPanel → PHP Selector: set PHP 8.0+. Then check Errors in cPanel Metrics for the exact message.
Forms say "Session expired"The page was open for a long time — refresh and resubmit. Ensure PHP sessions are writable.
Emails not arrivingVerify SMTP host/port/password, try port 587 with tls, and check the mailbox is not over quota. Leads are still saved regardless.
Images not loadingConfirm the assets/ folder moved with the rest of the files and that site_url in config/app.php matches your domain.
404 on /gwmmod_rewrite or .htaccess missing — use /gwm/ with the trailing slash, and re-upload the hidden .htaccess.
Admin login loopsClear cookies for the domain; make sure you are on HTTPS consistently.

8. Demo credentials summary

AreaURLLogin
SCW Mobility Group home/public
GWM Lenasia/gwm/public
OMODA JAECOO Boksburg/omoda-jaecoo/public
Suzuki Lenasia/suzuki/public
Virtual Test Drive/virtual-test-drive/public
CRM/admin/Admin / SCWGroup.01

All vehicle photography in this package is generated for demonstration purposes. Replace it with official manufacturer imagery before commercial use, and confirm all pricing with the dealership before publishing.