Appearance
Assign Package to Users
Overview
Assign Package to Users is one of the most critical features in Zal Ultra that enables multi-tier pricing and profit distribution across your reseller network. This feature allows you to assign packages to Resellers, Subresellers, and Retailers with customized pricing and profit margins.
Why It's Important:
- 🎯 Multi-tier Distribution - Create reseller hierarchies with different pricing levels
- 💰 Profit Management - Control profit margins at each level
- 🔒 Price Protection - Prevent pricing below parent costs
- 📊 Bulk Assignment - Assign packages to multiple users at once
- ⚡ Real-time Validation - Instant price validation against parent pricing
How Package Assignment Works
The Reseller Hierarchy
Admin (Base Price: $100)
↓ assigns package with profit
Reseller (Price: $120, Profit: $20)
↓ assigns package with profit
Subreseller (Price: $150, Profit: $30)
↓ assigns package with profit
Retailer (Price: $180, Profit: $30)
↓ sells to
Subscriber (Pays: $180)Profit Flow
When a subscriber pays $180:
Retailer keeps: $30 (profit from subscriber)
Subreseller keeps: $30 (profit from retailer)
Reseller keeps: $20 (profit from subreseller)
Admin receives: $100 (base package cost)Package Assignment Structure
Two Assignment Methods
Method 1: Assign One Package to Multiple Users
- Select a package
- Choose user type (Resellers/Subresellers/Retailers)
- Set price and profit for each user
- Bulk assign to all selected users
Method 2: Assign Multiple Packages to One User
- Go to user profile
- Select multiple packages
- Set price and profit for each package
- Assign all packages at once
Key Concepts
1. Package Price
Definition: The selling price that the user will charge to their downstream users or subscribers.
Rules:
- Must be ≥ Parent Net Price (cannot undercut parent)
- Can be 0 for free packages
- Must be numeric and non-negative
Example:
Parent Net Price: $100
Your Price: $120 ✅ (Valid - higher than parent)
Your Price: $90 ❌ (Invalid - lower than parent)2. Subscriber Profit
Definition: Profit earned from direct subscribers who purchase this package.
Rules:
- Can be 0 or positive
- Cannot be negative
- Optional (defaults to 0)
Example:
Package Price: $120
Subscriber Profit: $20
Subscriber Pays: $120
You Keep: $203. Reseller Profit
Definition: Profit earned from downstream resellers (Subresellers/Retailers) who purchase this package.
Rules:
- Can be 0 or positive
- Cannot be negative
- Optional (defaults to 0)
- Not shown for Retailers (they have no downstream users)
Example:
Package Price: $150
Reseller Profit: $30 (from Subresellers)
Subscriber Profit: $20 (from Subscribers)4. Parent Net Price (Minimum Price)
Definition: The total cost from your parent (Admin/Reseller/Subreseller).
Calculation:
Parent Net Price = Parent's Base Price + Parent's Reseller ProfitExample:
Admin Base Price: $100
Admin Reseller Profit: $20
Your Minimum Price: $120 (cannot go below this)Step-by-Step Guide
Method 1: Assign Package to Multiple Users
Step 1: Access Package Assignment
Navigate:
- Go to Package menu
- Click All Packages
- Find the package you want to assign
- Click Assign to Users button (or similar action)
Permission Required:
- ✅ Admin can assign packages
- ✅ Staff can assign packages (if permission granted)
- ❌ Resellers CANNOT use this method (use Method 2 instead)
Step 2: Select User Type
Choose Profile Type:
Option 1: Resellers (Profile Type 3)
Option 2: Subresellers (Profile Type 4)
Option 3: Retailers (Profile Type 5)What Happens:
- System fetches all users of selected type
- Shows existing package assignments (if any)
- Displays minimum price for each user
Step 3: Set Price and Profit for Each User
For Each User, Enter:
1. Package Price (Required)
Input: 150.00
Validation: Must be ≥ Minimum Price2. Reseller Profit (Optional, not shown for Retailers)
Input: 30.00
Purpose: Profit from downstream resellers3. Subscriber Profit (Optional)
Input: 20.00
Purpose: Profit from direct subscribersReal-time Validation:
- ✅ Green checkmark = Valid pricing
- ❌ Red X = Invalid pricing (below minimum)
Step 4: Submit Assignment
Click "Save" or "Assign Packages"
Success Response:
Successfully Added/Updated 5 package(s).Partial Success:
Successfully Added/Updated 3 package(s).
Skipped 2 user(s): john_reseller, jane_reseller.Failure Response:
All users skipped. Reasons:
john_reseller: Price (100) lower than parent price (120) |
jane_reseller: Insufficient permissionMethod 2: Assign Multiple Packages to One User
Step 1: Access User Profile
Navigate:
- Go to User Management menu
- Click User Profile or All Users
- Select the user (Reseller/Subreseller/Retailer)
- Go to Set Package tab
Step 2: View Available Packages
System Shows:
- All packages created by parent
- Current assignments (if any)
- Minimum price for each package
Step 3: Set Price and Profit for Each Package
For Each Package:
1. Package Price (Required)
Leave empty to skip assignment
Enter price to assign/update2. Reseller Profit (Optional)
Profit from downstream users3. Subscriber Profit (Optional)
Profit from direct subscribersStep 4: Submit Assignment
Click "Save" or "Update Packages"
Success Response:
Successfully Added/Updated 8 package(s).All Fields Explained
1. Package ID
Purpose: Identifies the package being assigned
Type: Dropdown/Select
Required: Yes
Example:
Package: 10Mbps Residential (#45)2. User ID / Salesperson ID
Purpose: Identifies the user receiving the package
Type: Dropdown/Select
Required: Yes
Example:
User: john_reseller (#123)
Profile Type: Reseller3. Minimum Price (Read-only)
Purpose: Shows the minimum price allowed
Type: Display field (non-editable)
Calculation:
Parent Base Price + Parent Reseller ProfitExample:
Minimum Price: $120.00
(You cannot set price below this)4. Package Price
Purpose: Selling price for this user
Type: Number input (decimal)
Required: Yes (or leave empty to skip)
Validation:
✅ Must be ≥ Minimum Price
✅ Can be 0 (free packages)
✅ Must be numeric
❌ Cannot be negative
❌ Cannot be below parent priceExamples:
✅ 150.00 (Valid)
✅ 0.00 (Free package)
❌ 90.00 (Below minimum of 120)
❌ -50 (Negative)
❌ abc (Non-numeric)5. Reseller Profit
Purpose: Profit from downstream resellers
Type: Number input (decimal)
Required: No (defaults to 0)
Shown For:
- ✅ Resellers (have Subresellers below)
- ✅ Subresellers (have Retailers below)
- ❌ Retailers (no downstream users)
Validation:
✅ Can be 0
✅ Must be numeric
❌ Cannot be negativeExamples:
✅ 30.00 (Valid)
✅ 0.00 (No profit)
❌ -10 (Negative)6. Subscriber Profit
Purpose: Profit from direct subscribers
Type: Number input (decimal)
Required: No (defaults to 0)
Shown For:
- ✅ All user types (Resellers, Subresellers, Retailers)
Validation:
✅ Can be 0
✅ Must be numeric
❌ Cannot be negativeExamples:
✅ 20.00 (Valid)
✅ 0.00 (No profit)
❌ -5 (Negative)Common Use Cases
Use Case 1: Standard Reseller Pricing
Scenario:
Admin creates package at $100
Wants to give Resellers $20 profit marginAssignment:
Package Price: $120
Reseller Profit: $0 (Reseller sets their own)
Subscriber Profit: $20 (Reseller keeps from subscribers)Result:
- Reseller pays Admin: $100
- Reseller charges Subscribers: $120
- Reseller profit: $20
Use Case 2: Multi-Tier Distribution
Scenario:
Admin → Reseller → Subreseller → Retailer → Subscriber
Each level needs profit marginAdmin assigns to Reseller:
Package Price: $120
Reseller Profit: $20 (from Subresellers)
Subscriber Profit: $20 (from direct Subscribers)Reseller assigns to Subreseller:
Package Price: $150
Reseller Profit: $30 (from Retailers)
Subscriber Profit: $20 (from direct Subscribers)Subreseller assigns to Retailer:
Package Price: $180
Subscriber Profit: $30 (from Subscribers)Result:
- Subscriber pays: $180
- Retailer keeps: $30
- Subreseller keeps: $30
- Reseller keeps: $20
- Admin receives: $100
Use Case 3: Bulk Assignment to All Resellers
Scenario:
New package created
Need to assign to all 50 Resellers
Each Reseller gets same pricingSteps:
- Select package
- Choose "Resellers" profile type
- System loads all 50 Resellers
- Set same price/profit for all
- Submit once - assigns to all 50
Result:
- All 50 Resellers get package instantly
- Same pricing structure for consistency
Use Case 4: Free Package for Specific Reseller
Scenario:
Promotional package
Give to specific Reseller for freeAssignment:
Package Price: 0.00
Reseller Profit: 0.00
Subscriber Profit: 0.00Result:
- Reseller gets package for free
- Can set their own pricing for Subscribers
Use Case 5: Update Existing Package Pricing
Scenario:
Package already assigned to Reseller
Need to update pricingSteps:
- Go to package assignment
- Select same package
- System shows existing price
- Update price/profit
- Submit - updates existing assignment
Result:
- Existing assignment updated
- New pricing takes effect immediately
Best Practices
1. Pricing Strategy
Before Assigning:
✅ Calculate your costs
✅ Determine profit margins
✅ Consider market rates
✅ Plan multi-tier pricing
✅ Document pricing structurePricing Guidelines:
✅ Admin: Set base cost + desired profit
✅ Reseller: Parent cost + 15-25% markup
✅ Subreseller: Parent cost + 20-30% markup
✅ Retailer: Parent cost + 25-35% markup2. Profit Distribution
Recommended Margins:
Admin → Reseller: $20-30 profit
Reseller → Subreseller: $30-50 profit
Subreseller → Retailer: $30-50 profit
Retailer → Subscriber: $30-50 profitBalance Considerations:
✅ Fair profit for each level
✅ Competitive end-user pricing
✅ Sustainable business model
✅ Market positioning3. Bulk Assignment
Efficient Workflow:
1. Create package first
2. Test with 1-2 users
3. Verify pricing works
4. Bulk assign to all users
5. Monitor assignmentsAvoid:
❌ Assigning before testing
❌ Inconsistent pricing across users
❌ Forgetting to set profit margins4. Price Updates
When to Update:
✅ Cost changes from supplier
✅ Market rate adjustments
✅ Promotional periods
✅ Seasonal pricing
✅ Competitive pressureUpdate Process:
1. Calculate new pricing
2. Update parent assignments first
3. Notify downstream users
4. Update downstream assignments
5. Verify changes5. Monitoring
Regular Checks:
✅ Verify pricing consistency
✅ Check profit margins
✅ Monitor package usage
✅ Review user complaints
✅ Analyze profitabilityRed Flags:
⚠️ Price below parent cost
⚠️ Zero profit margins
⚠️ Inconsistent pricing
⚠️ Unused assignmentsCommon Examples
Example 1: Simple Reseller Assignment
Admin assigns to Reseller:
Package: 10Mbps Residential
Minimum Price: $100 (Admin base)
Package Price: $120
Reseller Profit: $0
Subscriber Profit: $20Result:
Reseller pays Admin: $100
Reseller charges Subscribers: $120
Reseller keeps: $20 per subscriberExample 2: Three-Tier Distribution
Admin → Reseller:
Package: 20Mbps Business
Package Price: $200
Reseller Profit: $30
Subscriber Profit: $20Reseller → Subreseller:
Minimum Price: $200
Package Price: $250
Reseller Profit: $40
Subscriber Profit: $20Subreseller → Retailer:
Minimum Price: $250
Package Price: $300
Subscriber Profit: $50Profit Flow:
Subscriber pays: $300
Retailer keeps: $50
Subreseller keeps: $40
Reseller keeps: $30
Admin receives: $200Example 3: Bulk Assignment (10 Resellers)
Package: 50Mbps Premium
User 1-10 (All Resellers):
Minimum Price: $500
Package Price: $600
Reseller Profit: $50
Subscriber Profit: $50Submit Once:
Result: Successfully Added/Updated 10 package(s).
All 10 Resellers now have the packageExample 4: Mixed Pricing for Different Resellers
Package: 100Mbps Enterprise
Reseller A (Premium Partner):
Package Price: $800
Reseller Profit: $100
Subscriber Profit: $100Reseller B (Standard Partner):
Package Price: $850
Reseller Profit: $100
Subscriber Profit: $100Reseller C (New Partner):
Package Price: $900
Reseller Profit: $100
Subscriber Profit: $100Result:
- Different pricing tiers based on partnership level
- Same profit structure
- Flexible pricing strategy
Troubleshooting
Issue 1: Price Below Parent Price Error
Problem:
Error: Price (100) lower than parent price (120)Cause:
Entered price is below minimum allowed priceSolution:
1. Check "Minimum Price" field
2. Ensure your price is ≥ Minimum Price
3. Example:
Minimum: $120
Your Price: $150 ✅ (Valid)
Your Price: $100 ❌ (Invalid)Issue 2: All Users Skipped
Problem:
All users skipped. Reasons:
user1: Insufficient permission |
user2: Price lower than parent priceCauses & Solutions:
Cause 1: Permission Issues
Solution:
Check if you have permission to assign to these users
Resellers can only assign to their own downstream usersCause 2: Pricing Errors
Solution:
Review pricing for each user
Ensure all prices meet minimum requirementsCause 3: Empty Price Fields
Solution:
Empty price = skip assignment (intentional)
Enter price to assign packageIssue 3: Package Not Showing for User
Problem:
Assigned package but user can't see itCauses & Solutions:
Cause 1: Not Assigned to User
Solution:
Verify assignment in package accounting
Check user profile "Set Package" tab
Confirm package is listedCause 2: Assigned to Wrong User
Solution:
Check user ID in assignment
Verify correct user was selected
Re-assign if neededCause 3: Cache Issue
Solution:
Clear browser cache
Logout and login again
Check againIssue 4: Profit Not Calculating Correctly
Problem:
Expected profit: $50
Actual profit: $0Causes & Solutions:
Cause 1: Profit Field Empty
Solution:
Empty profit field defaults to 0
Enter profit amount explicitly
Example: 50.00Cause 2: Wrong Profit Field
Solution:
Reseller Profit = from downstream resellers
Subscriber Profit = from direct subscribers
Use correct field for your scenarioCause 3: Price = Minimum Price
Solution:
If Price = Minimum, no room for profit
Increase price to include profit margin
Example:
Minimum: $100
Price: $100 (no profit)
Price: $120 (profit: $20)Issue 5: Cannot Update Existing Assignment
Problem:
Package already assigned but can't updateCauses & Solutions:
Cause 1: Permission Issue
Solution:
Check if you have permission to update
Only creator or admin can updateCause 2: User Changed Parent
Solution:
If user changed parent, old assignments may be invalid
Remove old assignment
Create new assignmentCause 3: Package Deleted
Solution:
If package deleted, assignment is orphaned
Remove assignment
Assign new packageIssue 6: Bulk Assignment Partially Failed
Problem:
Successfully Added/Updated 8 package(s).
Skipped 2 user(s): user1, user2.Cause:
Some users had issues (pricing, permission, etc.)
Others succeededSolution:
1. Check error message for skipped users
2. Fix issues for those users
3. Re-submit for skipped users only
4. Or review and accept partial successValidation Rules
Package Price Validation
✅ Must be numeric
✅ Must be ≥ 0 (can be 0 for free)
✅ Must be ≥ Minimum Price (parent cost)
✅ Can have decimals (e.g., 120.50)
❌ Cannot be negative
❌ Cannot be non-numeric
❌ Cannot be below parent priceProfit Validation
✅ Must be numeric
✅ Must be ≥ 0 (can be 0)
✅ Can have decimals (e.g., 20.50)
✅ Can be empty (defaults to 0)
❌ Cannot be negative
❌ Cannot be non-numericUser Validation
✅ User must exist
✅ User must be in same ISP/Branch
✅ Must have permission to assign to user
✅ User must be correct profile type
❌ Cannot assign to users outside hierarchy
❌ Cannot assign to users without permissionPackage Validation
✅ Package must exist
✅ Package must be in same ISP/Branch
✅ Package must be active
✅ Must have permission to assign package
❌ Cannot assign deleted packages
❌ Cannot assign packages from other ISPsSummary
Package Assignment is the backbone of multi-tier ISP management!
✅ Key Takeaways:
- Multi-tier Pricing - Control pricing at each reseller level
- Profit Distribution - Manage profit margins for all levels
- Price Protection - Automatic validation prevents underpricing
- Bulk Operations - Assign to multiple users efficiently
- Flexible Pricing - Different prices for different users
- Real-time Validation - Instant feedback on pricing errors
- Update Capability - Modify existing assignments anytime
✅ Two Assignment Methods:
Method 1: One Package → Multiple Users (Bulk)
Method 2: Multiple Packages → One User (Profile)✅ Pricing Structure:
Package Price = Minimum Price + Your Markup
Minimum Price = Parent Base + Parent Reseller Profit✅ Profit Types:
Reseller Profit = From downstream resellers
Subscriber Profit = From direct subscribers✅ Best Practices:
✅ Plan pricing strategy first
✅ Test with few users before bulk
✅ Set fair profit margins
✅ Monitor assignments regularly
✅ Update pricing as needed
✅ Document pricing structure
✅ Communicate changes to users✅ Configuration Checklist:
✅ Create package first
✅ Calculate minimum price
✅ Determine profit margins
✅ Select users to assign
✅ Enter price for each user
✅ Set reseller profit (if applicable)
✅ Set subscriber profit
✅ Verify pricing is valid
✅ Submit assignment
✅ Verify assignment success
✅ Test with user login
✅ Monitor package usagePerfect for ISPs with multi-tier reseller networks and complex pricing structures! 🚀
