Skip to content

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: $20

3. 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 Profit

Example:

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:

  1. Go to Package menu
  2. Click All Packages
  3. Find the package you want to assign
  4. 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 Price

2. Reseller Profit (Optional, not shown for Retailers)

Input: 30.00
Purpose: Profit from downstream resellers

3. Subscriber Profit (Optional)

Input: 20.00
Purpose: Profit from direct subscribers

Real-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 permission

Method 2: Assign Multiple Packages to One User

Step 1: Access User Profile

Navigate:

  1. Go to User Management menu
  2. Click User Profile or All Users
  3. Select the user (Reseller/Subreseller/Retailer)
  4. 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/update

2. Reseller Profit (Optional)

Profit from downstream users

3. Subscriber Profit (Optional)

Profit from direct subscribers

Step 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: Reseller

3. Minimum Price (Read-only)

Purpose: Shows the minimum price allowed

Type: Display field (non-editable)

Calculation:

Parent Base Price + Parent Reseller Profit

Example:

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 price

Examples:

✅ 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 negative

Examples:

✅ 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 negative

Examples:

✅ 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 margin

Assignment:

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 margin

Admin 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 pricing

Steps:

  1. Select package
  2. Choose "Resellers" profile type
  3. System loads all 50 Resellers
  4. Set same price/profit for all
  5. 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 free

Assignment:

Package Price: 0.00
Reseller Profit: 0.00
Subscriber Profit: 0.00

Result:

  • 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 pricing

Steps:

  1. Go to package assignment
  2. Select same package
  3. System shows existing price
  4. Update price/profit
  5. 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 structure

Pricing Guidelines:

✅ Admin: Set base cost + desired profit
✅ Reseller: Parent cost + 15-25% markup
✅ Subreseller: Parent cost + 20-30% markup
✅ Retailer: Parent cost + 25-35% markup

2. Profit Distribution

Recommended Margins:

Admin → Reseller: $20-30 profit
Reseller → Subreseller: $30-50 profit
Subreseller → Retailer: $30-50 profit
Retailer → Subscriber: $30-50 profit

Balance Considerations:

✅ Fair profit for each level
✅ Competitive end-user pricing
✅ Sustainable business model
✅ Market positioning

3. 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 assignments

Avoid:

❌ Assigning before testing
❌ Inconsistent pricing across users
❌ Forgetting to set profit margins

4. Price Updates

When to Update:

✅ Cost changes from supplier
✅ Market rate adjustments
✅ Promotional periods
✅ Seasonal pricing
✅ Competitive pressure

Update Process:

1. Calculate new pricing
2. Update parent assignments first
3. Notify downstream users
4. Update downstream assignments
5. Verify changes

5. Monitoring

Regular Checks:

✅ Verify pricing consistency
✅ Check profit margins
✅ Monitor package usage
✅ Review user complaints
✅ Analyze profitability

Red Flags:

⚠️ Price below parent cost
⚠️ Zero profit margins
⚠️ Inconsistent pricing
⚠️ Unused assignments

Common 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: $20

Result:

Reseller pays Admin: $100
Reseller charges Subscribers: $120
Reseller keeps: $20 per subscriber

Example 2: Three-Tier Distribution

Admin → Reseller:

Package: 20Mbps Business
Package Price: $200
Reseller Profit: $30
Subscriber Profit: $20

Reseller → Subreseller:

Minimum Price: $200
Package Price: $250
Reseller Profit: $40
Subscriber Profit: $20

Subreseller → Retailer:

Minimum Price: $250
Package Price: $300
Subscriber Profit: $50

Profit Flow:

Subscriber pays: $300
Retailer keeps: $50
Subreseller keeps: $40
Reseller keeps: $30
Admin receives: $200

Example 3: Bulk Assignment (10 Resellers)

Package: 50Mbps Premium

User 1-10 (All Resellers):

Minimum Price: $500
Package Price: $600
Reseller Profit: $50
Subscriber Profit: $50

Submit Once:

Result: Successfully Added/Updated 10 package(s).
All 10 Resellers now have the package

Example 4: Mixed Pricing for Different Resellers

Package: 100Mbps Enterprise

Reseller A (Premium Partner):

Package Price: $800
Reseller Profit: $100
Subscriber Profit: $100

Reseller B (Standard Partner):

Package Price: $850
Reseller Profit: $100
Subscriber Profit: $100

Reseller C (New Partner):

Package Price: $900
Reseller Profit: $100
Subscriber Profit: $100

Result:

  • 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 price

Solution:

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 price

Causes & Solutions:

Cause 1: Permission Issues

Solution:
Check if you have permission to assign to these users
Resellers can only assign to their own downstream users

Cause 2: Pricing Errors

Solution:
Review pricing for each user
Ensure all prices meet minimum requirements

Cause 3: Empty Price Fields

Solution:
Empty price = skip assignment (intentional)
Enter price to assign package

Issue 3: Package Not Showing for User

Problem:

Assigned package but user can't see it

Causes & Solutions:

Cause 1: Not Assigned to User

Solution:
Verify assignment in package accounting
Check user profile "Set Package" tab
Confirm package is listed

Cause 2: Assigned to Wrong User

Solution:
Check user ID in assignment
Verify correct user was selected
Re-assign if needed

Cause 3: Cache Issue

Solution:
Clear browser cache
Logout and login again
Check again

Issue 4: Profit Not Calculating Correctly

Problem:

Expected profit: $50
Actual profit: $0

Causes & Solutions:

Cause 1: Profit Field Empty

Solution:
Empty profit field defaults to 0
Enter profit amount explicitly
Example: 50.00

Cause 2: Wrong Profit Field

Solution:
Reseller Profit = from downstream resellers
Subscriber Profit = from direct subscribers
Use correct field for your scenario

Cause 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 update

Causes & Solutions:

Cause 1: Permission Issue

Solution:
Check if you have permission to update
Only creator or admin can update

Cause 2: User Changed Parent

Solution:
If user changed parent, old assignments may be invalid
Remove old assignment
Create new assignment

Cause 3: Package Deleted

Solution:
If package deleted, assignment is orphaned
Remove assignment
Assign new package

Issue 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 succeeded

Solution:

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 success

Validation 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 price

Profit 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-numeric

User 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 permission

Package 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 ISPs

Summary

Package Assignment is the backbone of multi-tier ISP management!

✅ Key Takeaways:

  1. Multi-tier Pricing - Control pricing at each reseller level
  2. Profit Distribution - Manage profit margins for all levels
  3. Price Protection - Automatic validation prevents underpricing
  4. Bulk Operations - Assign to multiple users efficiently
  5. Flexible Pricing - Different prices for different users
  6. Real-time Validation - Instant feedback on pricing errors
  7. 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 usage

Perfect for ISPs with multi-tier reseller networks and complex pricing structures! 🚀

www.onezeroart.com