-
Subscription Package (
subscription_package)- Define subscription packages with user limits and pricing
- Features: Package name, code, max users, price, currency, features list
- Location:
sass_manager/doctype/subscription_package/
-
Package Feature (
package_feature)- Child table for package features
- Features: Feature name and description
- Location:
sass_manager/doctype/package_feature/
-
Site Registration (
site_registration)- Register and manage client ERPNext sites
- Features: Site URL, name, IP, API key, subscription info, sync status
- Auto-generates API key on creation
- Location:
sass_manager/doctype/site_registration/
-
Site Data Sync (
site_data_sync)- Store synced data from client sites
- Features: Transaction counts, user counts, company info, subscription status
- Location:
sass_manager/doctype/site_data_sync/
-
User Deposit (
user_deposit)- Track payments and deposits
- Features: Amount, payment method, status, subscription application
- Auto-applies deposits to extend subscriptions
- Location:
sass_manager/doctype/user_deposit/
-
register_site (
sass_manager.api.site_api.register_site)- Register new client sites
- Returns API key
- Location:
sass_manager/api/site_api.py
-
sync_site_data (
sass_manager.api.site_api.sync_site_data)- Sync site data from client to main app
- Requires API key authentication
- Location:
sass_manager/api/site_api.py
-
get_subscription_status (
sass_manager.api.site_api.get_subscription_status)- Get subscription status for a site
- Returns package details and status
- Location:
sass_manager/api/site_api.py
-
update_subscription (
sass_manager.api.site_api.update_subscription)- Update subscription details (admin use)
- Location:
sass_manager/api/site_api.py
-
get_site_summary (
sass_manager.api.reports.get_site_summary)- Overall statistics across all sites
- Location:
sass_manager/api/reports.py
-
get_site_details (
sass_manager.api.reports.get_site_details)- Detailed information about a specific site
- Location:
sass_manager/api/reports.py
-
get_package_statistics (
sass_manager.api.reports.get_package_statistics)- Statistics by subscription package
- Location:
sass_manager/api/reports.py
-
client_sync.py
get_site_data(): Collect site datasync_to_main_app(): Sync data to main appcheck_user_limit(): Check user limitsregister_client_site(): Register site- Location:
sass_manager/utils/client_sync.py
-
user_limit.py
enforce_user_limit(): Enforce user limitsget_max_users(): Get max users for subscription- Location:
sass_manager/utils/user_limit.py
-
client_tasks.py
hourly(): Hourly sync task- Location:
sass_manager/utils/client_tasks.py
- tasks.py
hourly(): Placeholder for server-side hourly tasksdaily(): Check subscription expiryweekly(): Optional cleanup tasks- Location:
sass_manager/tasks.py
-
hooks.py
- Scheduled events configuration
- Location:
sass_manager/hooks.py
-
user_events.py
- User limit enforcement hooks (for client sites)
- Location:
sass_manager/hooks/user_events.py
- README.md: Main documentation
- INSTALLATION.md: Installation guide
- CLIENT_SETUP.md: Client-side setup guide
- FEATURES.md: Features overview
- SUMMARY.md: This file
sass_manager/
├── README.md
├── INSTALLATION.md
├── CLIENT_SETUP.md
├── FEATURES.md
├── SUMMARY.md
├── pyproject.toml
├── license.txt
└── sass_manager/
├── __init__.py
├── hooks.py
├── modules.txt
├── patches.txt
└── sass_manager/
├── __init__.py
├── api/
│ ├── __init__.py
│ ├── site_api.py
│ └── reports.py
├── doctype/
│ ├── __init__.py
│ ├── subscription_package/
│ ├── package_feature/
│ ├── site_registration/
│ ├── site_data_sync/
│ └── user_deposit/
├── hooks/
│ └── user_events.py
├── tasks.py
└── utils/
├── __init__.py
├── client_sync.py
├── client_tasks.py
└── user_limit.py
✅ Site registration with API key generation ✅ Subscription package management ✅ Automatic data synchronization ✅ User limit enforcement ✅ Payment/deposit tracking ✅ Subscription expiry checking ✅ Reporting APIs ✅ Client-side sync utilities ✅ Scheduled tasks ✅ Comprehensive documentation
-
Install the app:
bench get-app sass_manager bench --site [site] install-app sass_manager bench --site [site] migrate
-
Create subscription packages in the main app
-
Configure client sites with
saas_manager_urlinsite_config.json -
Register client sites (automatic or manual)
-
Activate subscriptions in Site Registration
-
Monitor sync data in Site Data Sync
-
Generate reports using the report APIs
- The app uses API key authentication for security
- Client sites sync data hourly automatically
- User limits are enforced on client sites (optional)
- Subscriptions expire automatically based on end date
- All API endpoints support guest access with API key validation
- Payment gateway integration is ready but currently uses manual option