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
Using the Commission model?
This page describes the classic Markup model. For resellers on Commission, see Commission Sales Model.
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! 🚀
