Overview
Subscription Management allows administrators to view and update their company’s subscription plan, status, billing cycle, and user limits. The subscription determines which features are available, including AI diagnostic capabilities.What You Can Control
- Subscription plan level (Starter, Pro, Enterprise, Developer Test)
- Subscription status (Active, Trial, Past Due, Canceled, Suspended)
- Billing cycle (Monthly, Yearly)
- Start and end dates
- User limit for your company
Accessing Subscription Settings
Navigate to Admin → Suscripción (Subscription) from the main menu. The subscription form displays with current settings.If no subscription exists for your company, the system automatically creates a default trial subscription when you first access this page.
Subscription Plans
ElectroFix AI offers four plan tiers:Starter
Basic repair shop features
- Orders, Customers, Equipment management
- No AI diagnostics
- Limited to basic operational modules
- Best for small shops starting out
Pro
Professional features
- All Starter features
- No AI diagnostics
- Advanced reporting (if implemented)
- Suitable for established businesses
Enterprise
Full feature set with AI
- All Pro features
- AI diagnostics enabled
- Monthly query and token limits
- API access (if implemented)
- Priority support
Developer Test
Internal testing plan
- All Enterprise features
- AI diagnostics enabled
- Higher limits for testing
- Not for production use
AI Feature Availability
AI-powered diagnostics are only available on:- ✅ Enterprise
- ✅ Developer Test
- ❌ Starter
- ❌ Pro
Subscription Form Fields
PlanYour subscription tier.Options:
starter- STARTERpro- PROenterprise- ENTERPRISEdeveloper_test- DEVELOPER_TEST
StatusCurrent state of the subscription.Options:
active- ACTIVE: Fully operational, all features enabledtrial- TRIAL: Evaluation period, full features with time limitpast_due- PAST_DUE: Payment issue, limited functionalitycanceled- CANCELED: Subscription terminated, data retainedsuspended- SUSPENDED: Temporarily disabled by admin/system
Status affects system behavior. Canceled or suspended subscriptions may restrict module access.
Billing CycleHow frequently subscription renews.Options:
monthly- MONTHLY: Renews every monthyearly- YEARLY: Renews annually
- Monthly = standard pricing
- Yearly = discounted rate (2 months free)
Start DateWhen the current subscription period began.
- Date format: YYYY-MM-DD
- Should be in the past for active subscriptions
- Used to calculate billing anniversaries
2026-03-01End DateWhen the current subscription period expires.
- Date format: YYYY-MM-DD
- Must be after or equal to start date
- System checks this for auto-renewal
- For trials: typically 30 days from start
2026-04-01User LimitMaximum number of users (admins + workers) allowed.
- Optional field
- Integer value
- Minimum: 1
- Maximum: 100,000
- Leave empty for unlimited
- Starter: typically 3-5 users
- Pro: typically 10-25 users
- Enterprise: typically 50+ users
- Developer Test: unlimited
System may prevent creating new workers if this limit is reached. Deactivate unused workers to free up slots.
Updating Your Subscription
Review Current Settings
The form displays your current subscription configuration:
- Current plan level
- Active status
- Billing cycle
- Validity dates
- User limit
Modify Fields
Update any fields you need to change:To upgrade:
- Change
planto higher tier (e.g., Pro → Enterprise) - Adjust
ends_atfor new billing cycle - Update
user_limitif increasing capacity
- Change
billing_cycle(monthly → yearly) - Adjust
ends_ataccordingly
- Update
ends_atto new date - Keep
statusastrial
Validate Dates
Ensure:
starts_atis beforeends_at- Dates are in YYYY-MM-DD format
ends_atprovides sufficient subscription period
Default Trial Subscription
If you access Subscription Management for the first time and no subscription exists, the system creates:- 30-day trial period
- Starter plan features (no AI)
- Up to 10 users
- Monthly billing cycle setting
How Subscription Affects Features
AI Diagnostics
Enterprise and Developer Test plans:- AI checkbox enabled in order creation
- Monthly query limit enforced (e.g., 100 queries)
- Monthly token limit enforced (e.g., 50,000 tokens)
- AI panel shows usage statistics
- AI checkbox disabled with message
- Order creation works but no AI analysis
- AI panel shows “not available” message
Module Access
All plans currently have access to:- Orders
- Customers
- Equipment
- Billing (with permission)
- Inventory (with permission)
User Limits
Whenuser_limit is set:
- System counts active admins + active workers
- Creating new workers may be blocked if limit reached
- Deactivated users don’t count toward limit
- No limit = unlimited users allowed
Reporting and Analytics
(If implemented in future updates)- Advanced reports may require Pro or higher
- Data exports may be plan-gated
- Custom integrations may need Enterprise
Best Practices
Choose the Right Plan for AI Needs
Choose the Right Plan for AI Needs
Need AI diagnostics?
- Must have Enterprise or Developer Test
- Evaluate monthly query needs
- Monitor token consumption
- Starter or Pro plans are more economical
- Can upgrade later when needed
- All core features still available
Set Realistic End Dates
Set Realistic End Dates
For monthly subscriptions:
- Set end date 30-31 days from start
- Align with billing day of month
- Plan for renewal reminders
- Set end date 365 days from start
- Account for leap years if needed
- Set calendar reminder 2 weeks before expiry
Monitor User Limits
Monitor User Limits
Before reaching limit:
- Audit active workers quarterly
- Deactivate departed employees
- Plan upgrades in advance
- Don’t wait until blocked from adding users
Use Trial Status Appropriately
Use Trial Status Appropriately
Trial status is for:
- Initial evaluation period
- New company onboarding
- Feature testing
- Committed to service
- Payment method established
- Past evaluation phase
Plan Billing Cycle Strategically
Plan Billing Cycle Strategically
Monthly billing:
- Lower upfront cost
- Flexibility to cancel
- Good for seasonal businesses
- Easier budget management
- Significant discount (typically 2 months free)
- Lock in pricing
- Less administrative overhead
- Better for stable businesses
Troubleshooting
Cannot Save - Validation Error
“ends_at must be after or equal to starts_at” Cause: End date is before start date. Solution:- Check both date fields
- Ensure end date is chronologically after start
- Format: YYYY-MM-DD
- Use exactly:
starter,pro,enterprise, ordeveloper_test - Check for typos in manual entry
AI Not Available Despite Enterprise Plan
Possible Causes:- Plan was just updated (refresh page)
- Subscription status is not “active” or “trial”
- End date has passed
- Monthly limits exceeded
- Verify plan shows “ENTERPRISE” or “DEVELOPER_TEST”
- Check status is “ACTIVE” or “TRIAL”
- Verify
ends_atis in the future - Check AI usage hasn’t hit limits
- Logout and login again
Cannot Create More Workers
Cause: User limit reached. Solution:- Check current user count (count active workers + admins)
- Deactivate unused worker accounts
- Increase
user_limitin subscription - Upgrade to higher plan tier
Subscription Shows “Not Found” Error
Cause: No subscription record exists. Solution:- Simply load the Subscription edit page
- System auto-creates default trial subscription
- Edit as needed and save
Cannot Access Subscription Page
Cause: Only admins can access. Solution:- Verify your role is “admin” (not “worker”)
- Request company owner to grant admin role
- Workers cannot view subscription settings
Subscription Lifecycle
Typical subscription flow:Status Transitions
- Trial → Active: Customer converts after evaluation
- Active → Past Due: Payment fails at renewal
- Past Due → Active: Payment resolved
- Past Due → Suspended: Extended non-payment
- Suspended → Canceled: Account terminated
- Canceled → Active: Reactivation after cancellation
Integration with Other Features
AI Service
The subscription plan and status are checked in:AiPlanPolicyService::supportsAi($plan)- Determines if AI is availableAiPlanPolicyService::queryLimit($plan)- Returns monthly query limitAiPlanPolicyService::tokenLimit($plan)- Returns monthly token limitAiUsageService::monthlyUsage($company)- Tracks consumption against limits
Worker Management
- User limit enforced when creating workers
- System counts:
Users::where('company_id', $company)->where('is_active', true)->count() - Deactivated users excluded from count
Billing Module
- Subscription determines billing features availability
- Company’s billing email (from Company Settings) receives renewal notices
Dashboard
- Plan name displayed in UI
- Status affects available navigation items
- AI features show/hide based on plan
Technical Reference
Controller Actions
- Edit:
GET /admin/subscription/edit- Display subscription form (auto-creates if missing) - Update:
PUT /admin/subscription/update- Save subscription changes
Data Model
Authorization
Only admins can access:Auto-Creation Logic
When loading edit page:Relationships
- Belongs To: Company (one-to-one)
- Company can have only one active subscription
- Subscription references company via
company_id
Related Features
- Company Settings - Configure billing email for subscription notices
- Worker Management - Manage users within subscription limits
- Managing Orders - Use AI features if plan supports it
- Developer Insights - View subscription info across companies (developer role)