{{-- ── COVER ── --}}

Admin System
Stakeholder Guide

Complete reference for the Performance SA administration platform

Document Date {{ now()->format('d F Y') }}
Platform Laravel 11 + Filament v3
Environment {{ config('app.url') }}
Prepared for Stakeholder Review
{{-- ── TABLE OF CONTENTS ── --}}

Contents

{{-- ══════════════════════════════════════════════════════════ SECTION 1 — DASHBOARD ═══════════════════════════════════════════════════════════════ --}}
1

Dashboard & Overview

The dashboard is the first screen seen after login. It provides a real-time snapshot of store activity across five widget panels.

📊 Order Stats

  • Orders placed today
  • Orders this week
  • Pending / needs action
  • Revenue today (ZAR)
  • Revenue month-to-date

🔔 Stock Alert Stats

  • Pending alert count
  • Alerts sent total
  • Out-of-stock count
  • Low-stock count (≤5 units)

📈 Revenue Chart

  • 30-day revenue trend (ZAR)
  • 30-day order volume
  • Dual-axis line chart
  • Paid + shipped orders only

🛒 Recent Orders

  • Pending / paid / processing only
  • Order #, customer, date, status, total
  • Direct link to full order view

🏆 Top Products (MTD)

  • Top sellers this month
  • Units sold, order count, revenue
  • Part number & brand shown

⚙️ Navigation

  • View Store — opens storefront
  • 9 collapsible nav groups
  • Sidebar collapses on desktop
  • Bell icon for in-app notifications
{{-- ══════════════════════════════════════════════════════════ SECTION 2 — ORDERS & CUSTOMERS ═══════════════════════════════════════════════════════════════ --}}
2

Orders & Customers

{{-- ORDERS --}}
Orders Core transaction management

Central hub for all customer orders. Supports full lifecycle management from placement through to delivery and closure.

Order Statuses

Pending Paid Processing Shipped Delivered Cancelled Closed

Table Columns

  • Order ID & Date
  • Invoice # (links to PDF)
  • Customer name & company
  • Total (ZAR incl. VAT)
  • Status badge
  • Carrier & waybill number

Actions & Features

  • Quick View (slide-over modal)
  • Update Status (with guard)
  • Generate Tax Invoice (PDF)
  • Bulk: Processing / Shipped / Delivered
  • Filter by carrier, payment, date range
  • Counter-sales tracking (placed by staff)

Filters

  • Status (all 7 states)
  • Carrier / Shipping Method
  • Payment Method (Yoco, EFT, Cash, Card)
  • Date Range (from / until)
  • Has Tracking Number
  • Has Invoice generated
  • Counter Sales only

Order Detail Page

  • Full line-item breakdown with pricing
  • Shipping & billing addresses
  • Payment method & reference
  • Order messaging / chat thread
  • Timeline of all status changes
  • Invoice generation & credit notes
  • Return request management
{{-- CARTS --}}
Shopping Carts Abandoned cart recovery

View all active, recent, idle, and abandoned shopping carts. Convert carts to orders or share recovery links with customers.

Cart Status Labels

Active (<1h) Recent (<24h) Idle (1–3 days) Abandoned (3+ days)

Actions

  • View Cart — see all items & prices
  • Create Order — from cart contents
  • Share Cart Recovery Link (7-day signed URL)
  • Clear Cart
{{-- CUSTOMERS --}}
Customers Registered customer accounts

Table Shows

  • Name, email, phone
  • Total orders count
  • Total lifetime spend (ZAR)
  • Newsletter subscription status
  • Registration date

Customer Detail Page

  • Full account profile
  • Order history
  • Notification preferences
  • Suspend / reactivate account
{{-- RETURNS & REVIEWS --}}
Returns
Pending Awaiting Return Received Denied Completed
  • View returned items & reasons
  • Update status with staff notes
  • Auto-timestamps on resolution
Product Reviews
Pending Moderation Published
  • 1–5 star rating display
  • Verified purchase indicator
  • Approve / unpublish / delete
  • Badge count on nav for pending
{{-- ══════════════════════════════════════════════════════════ SECTION 3 — CATALOGUE ═══════════════════════════════════════════════════════════════ --}}
3

Catalogue — Local Products

Local Products Non-Turn14 inventory (e.g. Cool Boost)

Manage products that are not sourced through the Turn14 API — such as Cool Boost water/methanol kits and other in-house or exclusive stock. These are stored, priced, and sold independently of the Turn14 catalogue.

Product Fields

  • Name, SKU (part number), MPN
  • Brand (default: Cool Boost)
  • Selling Price (incl. 15% VAT)
  • Stock on Hand
  • Weight (kg) for shipping
  • Category & Subcategory
  • Rich text description

Media & Visibility

  • Up to 10 product images
  • Drag-to-reorder images
  • First image = thumbnail
  • Toggle visible on storefront
  • PS migration ID field

Table & Actions

  • Thumbnail preview in list
  • Stock badge (green / amber / red)
  • View on Site link
  • Filter by brand, visibility, stock
  • URL: /product/lp-{id}
{{-- ══════════════════════════════════════════════════════════ SECTION 4 — PRODUCTS ═══════════════════════════════════════════════════════════════ --}}
4

Products — Turn14 Catalogue

The Products section manages the Turn14 API-sourced catalogue of 700,000+ aftermarket parts. All pricing is calculated in real-time from USD cost using configurable markup, duty, freight, and VAT rates. Syncing is controlled via the Turn14 Dashboard.
Turn14 Dashboard Sync control & statistics

Statistics Shown

  • Total active products
  • Discontinued product count
  • Total & active brand count
  • Recent sync history table

Sync Actions (Queued Jobs)

  • Sync Brands
  • Sync Products (full catalogue)
  • Sync Stock — Delta (changes only)
  • Full Stock Crawl (all products)
  • Check Discontinued
  • Sync Pricing
  • Fetch Product Images (up to 500)
Turn14 Products
  • Browse all synced products
  • Search by name / part number
  • Filter: active, discontinued, category
  • Edit name, price, sync status
  • View which orders included the product
Price Checker
  • Search by part number or Turn14 ID
  • Live price from API toggle
  • Full pricing formula breakdown
  • USD cost → ZAR excl. → ZAR incl. VAT
  • Duty, freight, LTL, markup shown
  • Per-box dimension & weight data
  • Duty override indicator
Overrides & Categories
  • Product Overrides — rename, re-categorise, change dimensions per SKU
  • Category Overrides — rename Turn14 categories for storefront display
  • Per-product Category Overrides — assign individual products to custom categories
  • Duty Override — set custom customs duty % by category
Brands, Documents & Shipping Bands
  • Brands — toggle featured on homepage, manage sync
  • Product Documents — installation guides, specs, warranties (linked by brand or product)
  • Shipping Weight Bands — from/to kg price table used in freight cost calculation
{{-- ══════════════════════════════════════════════════════════ SECTION 5 — MESSAGING ═══════════════════════════════════════════════════════════════ --}}
5

Messaging & Campaigns

Broadcast Campaigns Email, SMS, WhatsApp & Push campaigns

Create and send marketing campaigns to segmented audiences across multiple channels simultaneously.

Audience Segments

  • All registered customers
  • Newsletter subscribers only
  • Ordered at least once
  • Ordered recently (configurable days)

Channels

  • Email (HTML rich content)
  • SMS (160/320 chars)
  • WhatsApp (formatted text)
  • Browser Push (120 chars)

Statuses

Draft Scheduled Sending Sent Cancelled
Message Templates

Reusable templates for automated order notifications (payment received, shipped, delivered, cancelled). Variables: @{{ customer_name }}, @{{ order_id }}, @{{ waybill }}, etc.

  • Categories: Order, Marketing, Stock, Workshop
  • Body for Email, SMS, WhatsApp, Push
  • Live character counters for SMS/Push
  • Drag-to-reorder by sort order
Notification Log

Audit trail for every notification sent by the system, across all channels.

  • Channel, status, recipient, subject
  • Sent / queued / failed / bounced
  • Provider message ID (for tracing)
  • Error messages on failed sends
  • Filter by channel, status, date
{{-- ══════════════════════════════════════════════════════════ SECTION 6 — HOMEPAGE ═══════════════════════════════════════════════════════════════ --}}
6

Homepage Management

Deals of the Day
  • Link Turn14 products as featured deals
  • Set deal price (override retail)
  • Expiry datetime support
  • Toggle active / drag to reorder
Featured & Trending Products
  • Two sections: Trending & Popular
  • Popular supports category tabs
  • Toggle active / drag to reorder
Testimonials
  • Name, location, vehicle, star rating
  • Review body text
  • Toggle active / drag to reorder
Blog Articles
  • Title, slug, category, cover image
  • Rich text body editor
  • Draft / Published toggle
  • Estimated read time
Newsletter Subscribers
  • Email, name, subscribed date
  • Unsubscribe date (if opted out)
  • Used as audience for campaigns
Homepage Settings
  • About section heading & body
  • Social media links (Facebook, Instagram)
  • Google & Facebook review URLs
{{-- WORKSHOP --}}
Workshop Queue Live build board — displayed on homepage

Manages the live workshop queue shown on the homepage, allowing customers to track their vehicle's build progress in real time.

Job Fields

  • Year, Make, Model
  • Service type / build description
  • Vehicle photo (16:9, 800×450px)
  • Status (In Progress, Awaiting Parts, Quality Check, Ready)
  • Visible toggle & sort order

Display Statuses

In Progress Awaiting Parts Quality Check Ready for Collection
{{-- ══════════════════════════════════════════════════════════ SECTION 7 — FITMENT & ALERTS ═══════════════════════════════════════════════════════════════ --}}
7

Fitment & Stock Alerts

Vehicle Manager Fitment guide — make / model / year / part mapping

Manages the vehicle compatibility database that powers the "Shop by Vehicle" feature on the storefront. Customers select their vehicle and see only compatible parts.

Hierarchy

  • Make (e.g. Subaru) + logo
  • Model (e.g. WRX STI) + image
  • Year (e.g. 2015)
  • Part Numbers (Turn14 SKUs)
  • Stage assignment per part

Management Tools

  • Three-panel navigation interface
  • Add / edit / delete at each level
  • Toggle active on makes & models
  • Part number autocomplete search

CSV Import

  • Format: make, model, year, part_number, stage
  • Pipe-separated parts: PART1|PART2
  • Auto-creates missing makes/models/years
  • Import report: added / skipped count
Engine Manager

Same structure as Vehicle Manager but organised by engine type rather than year model. Allows fitment lookup by engine code.

  • Make → Engine → Parts mapping
  • Engine image upload support
  • CSV import (make, engine, part_number)
Stock Alerts

Back-in-stock alert subscriptions. Customers register their email against an out-of-stock product and are automatically notified when stock is detected.

  • Pending / Notified status tracking
  • Watch SA, USA, or Manufacturer stock
  • Send Now (manual trigger) or Send All Pending
  • Nav badge shows pending alert count
{{-- ══════════════════════════════════════════════════════════ SECTION 8 — INTEGRATIONS ═══════════════════════════════════════════════════════════════ --}}
8

Integrations

Yoco Payment

Yoco online hosted checkout integration. Customers are redirected to a secure Yoco payment page and returned to the site on completion.

  • Public Key configuration
  • Secret Key (encrypted)
  • Live or sandbox mode
The Courier Guy (TCG)

Shipping provider configuration for The Courier Guy. Used to generate waybills and calculate delivery costs at checkout.

  • API key & company details
  • Collection address configuration
  • Contact person & phone
  • 16 service levels supported
Integrations & API Keys Centralised configuration panel

Email — SMTP

  • Host, port, encryption
  • Username & password
  • From address & from name
  • Writes directly to .env
  • Active: mail.performancesa.co.za:465

SMS — Africa's Talking

  • API key, username, sender ID
  • Sandbox toggle for testing

WhatsApp — Twilio

  • Account SID & Auth Token
  • WhatsApp From Number

Browser Push — VAPID

  • Public & Private VAPID keys
  • VAPID subject URL

Payment — Yoco

  • Public & Secret keys
  • Duplicated here for convenience
{{-- ══════════════════════════════════════════════════════════ SECTION 9 — SETTINGS ═══════════════════════════════════════════════════════════════ --}}
9

Settings & System

Users

Manage all staff admin accounts and customer accounts. Role assignment controls access to all sections.

  • Create / edit admin & customer accounts
  • Assign roles: Admin, Manager, Employee, Customer
  • Reset password or send reset link
  • Suspend & reactivate accounts
  • Role change audit log
  • Delete (safeguarded — cannot delete last admin)
Sync Log

Audit history of every Turn14 data synchronisation run — brands, products, stock, pricing, and images.

  • Type, status, duration per run
  • Records processed / created / updated / failed
  • Error message on failed syncs
  • Metadata (detailed breakdown)
Success Running Failed Partial
Activity Log

Immutable audit trail of all admin actions. Cannot be edited or deleted by staff.

  • Admin name, action, subject, description
  • IP address tracking
  • Filter by action type, subject, admin, date
  • View field-level changes (before/after)
Shipping Options

Static shipping options shown at checkout (e.g. Click & Collect — Free). These supplement or replace the dynamic TCG rate calculator.

  • Carrier, service code, display name
  • Price incl. VAT (auto-calculates excl.)
  • Enable / disable & drag to reorder
  • Shown at checkout alongside TCG rates
{{-- Turn14 Settings --}}
Turn14 Settings Global pricing formula configuration

Controls all variables that feed into the retail price calculation engine. Every product price displayed on the storefront is derived from these settings.

API & Exchange

  • Turn14 API URL, client ID, secret
  • USD → ZAR exchange rate
  • Markup rate (e.g. 0.7 = 70% of cost)

Duties & Tax

  • Customs duty % (default 10%)
  • VAT rate (default 15%)
  • Duty overrides by category
  • Price rounding (nearest R5)

Freight Costs

  • Freight discount %
  • Fuel surcharge %
  • Disbursement rate & minimum
  • LTL (Large Item) cost
  • Weight inflation factor
{{-- ══════════════════════════════════════════════════════════ SECTION 10 — ROLES & PERMISSIONS ═══════════════════════════════════════════════════════════════ --}}
10

Roles & Permissions

The admin platform uses a role-based access control (RBAC) system. Four roles are available, each with different levels of access. The table below summarises what each role can do.

Permission Area Admin Manager Employee Customer
View Orders ✓ ✓ ✓ ✗
Edit & Update Orders ✓ ✓ ✓ ✗
Close Orders ✓ ✓ ✗ ✗
Delete Orders ✓ ✗ ✗ ✗
View & Edit Customers ✓ ✓ ✓ ✗
Product Management ✓ ✓ ✗ ✗
Content Management (Homepage) ✓ ✓ ✗ ✗
Messaging & Campaigns ✓ ✓ ✗ ✗
Settings & Integrations ✓ ✗ ✗ ✗
User Management ✓ ✗ ✗ ✗
Revenue Reports & Charts ✓ ✓ ✗ ✗
View Activity Log ✓ ✗ ✗ ✗
Access Admin Panel ✓ ✓ ✓ ✗
{{-- Final note --}}
Performance SA

Admin System — Stakeholder Documentation

Generated {{ now()->format('d F Y') }} · Confidential

Laravel 11 + Filament v3

{{ config('app.url') }}

Performance SA

{{-- end page-wrap --}}