Installing Addons
Open Core Business Suite uses a modular architecture that allows you to extend functionality by installing addon modules. This guide covers how to purchase, install, and manage addon modules.
Purchasing Addons
Additional modules can be purchased from the official CZ App Studio store:
czappstudio.com/open-core-bs-addons
What You Get
When you purchase an addon module:
- Complete source code - Full PHP source code for the module
- Lifetime license - One-time purchase, no recurring fees
- Free updates - Access to future updates for that module
- Documentation - Installation and configuration guides
- Support - Email support for installation issues
License Types
| License | Usage |
|---|---|
| Regular License | Single domain/installation |
| Extended License | Multiple domains or SaaS deployment |
Installation Methods
Method 1: Via Admin Panel (Recommended)
The easiest way to install and manage addons is through the built-in admin panel.
- Log in as an administrator
- Navigate to Settings > Addons
- Find the module you want to enable
- Click the Enable toggle
If you've purchased a new addon, you can upload the ZIP file directly through the admin panel:
- Go to Settings > Addons
- Click Upload Addon
- Select the downloaded ZIP file
- The module will be extracted and ready to enable
Method 2: Via Command Line
For developers or when deploying via scripts, use the Artisan CLI commands:
# Enable a module
php artisan module:enable ModuleName
# Disable a module
php artisan module:disable ModuleName
# List all modules and their status
php artisan module:list
Example:
# Enable the Payroll module
php artisan module:enable Payroll
# Disable the LMS module
php artisan module:disable LMS
Method 3: Manual Configuration
You can also directly edit the modules_statuses.json file in the application root:
{
"SystemCore": true,
"AccountingCore": true,
"Payroll": true,
"Assets": true,
"LMS": false,
"Recruitment": false
}
After editing, clear the application cache:
php artisan config:clear
php artisan cache:clear
Installing a New Module
When you download a new addon module from your purchase dashboard:
Step 1: Extract the Module
# Navigate to your application's Modules directory
cd /path/to/opencorebs/Modules
# Extract the addon ZIP file
unzip /path/to/downloaded/ModuleName.zip
Step 2: Run Migrations
Most modules include database migrations:
# Run migrations for the specific module
php artisan module:migrate ModuleName
# Or run all pending migrations
php artisan migrate
Step 3: Run Seeders (If Required)
Some modules require initial data to be seeded:
php artisan module:seed ModuleName
Step 4: Enable the Module
php artisan module:enable ModuleName
Step 5: Clear Cache
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
Step 6: Compile Assets (If Required)
If the module includes frontend assets:
npm run build
Module Dependencies
Some modules depend on other modules to function correctly. The system will notify you if dependencies are missing.
Common Dependencies
| Module | Requires |
|---|---|
| FaceAttendance | - |
| QRAttendance | - |
| DynamicQrAttendance | - |
| SiteAttendance | - |
| IpAddressAttendance | - |
| GeofenceSystem | - |
| FaceAttendanceDevice | - |
| BreakSystem | - |
| FieldTask | FieldManager |
| ProductOrder | FieldManager |
| PaymentCollection | FieldManager |
| SalesTarget | FieldManager |
| HRAssistantAI | AICore |
| SalesAssistantAI | AICore |
| FinanceAssistantAI | AICore |
| ReportingAI | AICore |
| DocumentAI | AICore |
| GeminiAIProvider | AICore |
| LocalAIProvider | AICore |
| AutoDescriptionAI | AICore |
| AiChat | AICore |
| StripeGateway | MultiTenancyCore |
| PayPalGateway | MultiTenancyCore |
| RazorpayGateway | MultiTenancyCore |
When enabling modules with dependencies, always enable the required module first. For example, enable AICore before enabling HRAssistantAI.
Checking Dependencies
The system automatically checks dependencies when enabling modules. If you try to enable a module without its required dependencies, you'll see an error message indicating which modules need to be enabled first.
Managing Module Status
Viewing Module Status
Via Admin Panel: Navigate to Settings > Addons to see all modules and their status.
Via Command Line:
php artisan module:list
Output example:
+---------------------+---------+--------+
| Name | Status | Order |
+---------------------+---------+--------+
| SystemCore | Enabled | 1 |
| AccountingCore | Enabled | 2 |
| Payroll | Enabled | 3 |
| Assets | Enabled | 4 |
| LMS | Disabled| 5 |
+---------------------+---------+--------+
Bulk Enable/Disable
To enable or disable multiple modules at once:
# Enable multiple modules
php artisan module:enable Payroll Assets LMS
# Disable multiple modules
php artisan module:disable LMS Recruitment
Troubleshooting
Module Not Appearing
Symptom: Module folder exists but doesn't appear in the admin panel or module list.
Solution:
- Check that
module.jsonexists in the module directory - Verify the module namespace matches the folder name
- Clear all caches:
php artisan config:clear
php artisan cache:clear
php artisan optimize:clear
Routes Not Working
Symptom: Module is enabled but routes return 404 errors.
Solution:
- Clear the route cache:
php artisan route:clear - Verify the module's route files exist in
Modules/ModuleName/routes/ - Check that the ServiceProvider is correctly registering routes
Database Errors
Symptom: Errors about missing tables or columns after enabling a module.
Solution:
- Run the module's migrations:
php artisan module:migrate ModuleName - If issues persist, check the migration files for conflicts
Class Not Found Errors
Symptom: Class 'Modules\ModuleName\...' not found errors.
Solution:
- Regenerate the autoload files:
composer dump-autoload - Verify the namespace in module files matches
Modules\ModuleName\App\
Assets Not Loading
Symptom: Module pages load but JavaScript/CSS is missing.
Solution:
- Rebuild frontend assets:
npm run build - Check that the module's
vite.config.jsis correctly configured
Permission Errors
Symptom: Permission denied when accessing module features.
Solution:
- Some modules add new permissions - sync them:
php artisan db:seed --class=PermissionSeeder - Assign the new permissions to appropriate roles via Settings > Roles & Permissions
Updating Modules
When a module update is available:
- Backup your database before updating
- Download the new version from your purchase dashboard
- Replace the module files (or use the admin panel upload)
- Run migrations:
php artisan module:migrate ModuleName - Clear caches:
php artisan optimize:clear - Rebuild assets if needed:
npm run build
Always backup your database before updating modules, especially if you've customized any module code.
Uninstalling Modules
To completely remove a module:
Step 1: Disable the Module
php artisan module:disable ModuleName
Step 2: Rollback Migrations (Optional)
If you want to remove the module's database tables:
php artisan module:migrate-rollback ModuleName
Rolling back migrations will delete all data stored by the module. This action cannot be undone.
Step 3: Remove Files (Optional)
rm -rf Modules/ModuleName
Step 4: Clean Up
composer dump-autoload
php artisan optimize:clear
Best Practices
- Test in staging first - Always test new modules in a staging environment before production
- Keep modules updated - Regularly check for updates to get bug fixes and new features
- Review dependencies - Understand which modules depend on others before disabling
- Backup before changes - Create database backups before enabling/disabling modules
- Document customizations - If you modify module code, document changes for future updates
Getting Help
If you encounter issues with addon installation:
- Documentation: Check the module-specific documentation
- Email Support: [email protected]
- Purchase Dashboard: Access installation guides and module updates
Next Steps
- Module Overview - Browse all available modules
- Core Modules - Learn about included core modules
- Configuration Guide - Configure your installation