Custom Report System Overview

Architecture

The custom report system provides a flexible, asynchronous reporting framework built on our our Action Scheduler reporting engine. It consists of several key components:

Core Classes

  1. JC_AS_Report_Controller (Abstract Base)
    • Handles asynchronous report execution
    • Manages report status and progress tracking
    • Provides AJAX endpoints for control and monitoring
    • Supports concurrent/non-concurrent report execution
  2. JC_AS_Custom_Report_Controller
    • Implements custom report generation
    • Handles filtering and data extraction
    • Manages CSV file creation and organization
  3. JC_Async_Report
    • Models individual report instances
    • Tracks report metadata and state
    • Manages report downloads and processing steps

Key Features

  1. Asynchronous Processing
    • Reports run in background using Action Scheduler
    • Progress tracking and status updates
    • Ability to stop/cancel running reports
  2. Flexible Filtering
    • Multiple filter conditions
    • Support for various comparison operators
    • Filter by:
      • Shipping basis (Annual/Monthly)
      • Copies owed
      • Deferred amounts
      • Start/Expiry issues
      • Subscription status
  3. Data Export
    • CSV file generation
    • Configurable columns and data points
    • Optional entitlement data inclusion
    • Support for premium features tracking

Report Generation Process

  1. Initialization
    • User submits report parameters
    • System creates report record
    • Initializes file structure
    • Sets up processing context
  2. Processing
    • Data fetched in batches
    • Filtered according to criteria
    • Written to CSV file
    • Progress tracked and reported
  3. Completion
    • File finalization
    • Download link generation
    • Status updates
    • UI refresh

Data Points Tracked

  1. Subscription Details
    • ID and status
    • Customer information
    • Billing/Shipping details
    • SKU and copies owed
  2. Optional Data
    • Premium entitlements
    • Deferred amounts
    • Gift status
    • Marketing information

UI Components

  1. Report Generator
    • Filter configuration
    • Status selection
    • Optional data toggles
    • Processing controls
  2. Report List
    • Status display
    • Download links
    • Progress tracking
    • Management actions

Technical Notes

  1. Database Integration
    • Uses WooCommerce data stores
    • Custom tables for report tracking
    • Integration with WordPress user system
  2. Security
    • Permission checks on all operations
    • Secure file handling
    • AJAX nonce verification
  3. Performance
    • Batch processing
    • Configurable step sizes
    • Resource usage monitoring