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
- 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
- JC_AS_Custom_Report_Controller
- Implements custom report generation
- Handles filtering and data extraction
- Manages CSV file creation and organization
- JC_Async_Report
- Models individual report instances
- Tracks report metadata and state
- Manages report downloads and processing steps
Key Features
- Asynchronous Processing
- Reports run in background using Action Scheduler
- Progress tracking and status updates
- Ability to stop/cancel running reports
- 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
- Data Export
- CSV file generation
- Configurable columns and data points
- Optional entitlement data inclusion
- Support for premium features tracking
Report Generation Process
- Initialization
- User submits report parameters
- System creates report record
- Initializes file structure
- Sets up processing context
- Processing
- Data fetched in batches
- Filtered according to criteria
- Written to CSV file
- Progress tracked and reported
- Completion
- File finalization
- Download link generation
- Status updates
- UI refresh
Data Points Tracked
- Subscription Details
- ID and status
- Customer information
- Billing/Shipping details
- SKU and copies owed
- Optional Data
- Premium entitlements
- Deferred amounts
- Gift status
- Marketing information
UI Components
- Report Generator
- Filter configuration
- Status selection
- Optional data toggles
- Processing controls
- Report List
- Status display
- Download links
- Progress tracking
- Management actions
Technical Notes
- Database Integration
- Uses WooCommerce data stores
- Custom tables for report tracking
- Integration with WordPress user system
- Security
- Permission checks on all operations
- Secure file handling
- AJAX nonce verification
- Performance
- Batch processing
- Configurable step sizes
- Resource usage monitoring