How to Create a User
Think of it this way: A User represents anyone who interacts with your business—customers shopping online, employees working in stores, managers running locations, influencers promoting products, or VIP clients with special perks. Each user starts with basic contact information, then you add roles to define what they can do.
The Big Picture
User (Person)
├── Basic Information
│ ├── Name ← REQUIRED
│ ├── Email ← REQUIRED
│ ├── Phone
│ └── Status (Active/Inactive/Suspended)
└── Roles (What They Can Do)
├── Customer (shopping, wishlists, loyalty points)
├── Employee (store work, commissions, POS access)
├── Manager (store management, overrides, reports)
├── Influencer (social promotion, commission tracking)
└── VIP (exclusive access, special discounts)
Critical Rule: Each user can have multiple roles, but only ONE of each role type.
Valid:
- Customer + VIP (someone who shops and has VIP status)
- Employee + Manager (someone who works and manages)
- Customer + Influencer (someone who shops and promotes)
Invalid:
- Customer + Customer (can't have two customer roles)
- Employee + Employee (can't have two employee roles)
Step 1: Basic Information
Name (Required)
The person's full name as they prefer to be addressed.
Good Examples:
- "John Smith"
- "Sarah Johnson"
- "Alex Rodriguez-Chen"
Avoid:
- "john" (use proper capitalization)
- "J. Smith" (use full name when possible)
- "johnsmith123" (this is a username, not a name)
Naming Conventions:
- Capitalize Properly: "John Smith" not "john smith"
- Include Full Name: First and last name at minimum
- Use Legal Name: This may appear on employment records or receipts
- Hyphens for Compound Names: "Rodriguez-Chen" not "Rodriguez Chen"
Email (Required)
Valid email address for communication and account identification.
Good Examples:
Format: Must be a valid email format (validated automatically)
Important:
- Each email should be unique per user
- This is often used for login/authentication
- Marketing communications may be sent to this address (if opted in)
Phone
Contact phone number. No specific format required.
Examples:
- "(555) 123-4567"
- "555-123-4567"
- "+1 (555) 123-4567"
- "5551234567"
When to Include:
- Customer Role: For order updates and customer service
- Employee/Manager Role: For shift scheduling and work communications
- VIP Role: For concierge services
Status
Current account status. Controls whether the user can access systems.
Options:
- Active (default): User can access all assigned functions
- Inactive: Account exists but cannot be used (temporary)
- Suspended: Account locked due to policy violations or security
Use Active when:
- User is currently working (employees/managers)
- Customer account is in good standing
- VIP membership is current
Use Inactive when:
- Employee on leave or between assignments
- Customer hasn't shopped recently but account should remain
- Seasonal staff not currently working
Use Suspended when:
- Policy violations require investigation
- Security concerns need resolution
- Account under review
Created Date
Automatically set when the user is first created. Read-only.
Step 2: Assign Roles
Roles define what a user can do in your system. A user can have multiple roles, but only one of each type.
Understanding Role Types
Role Type Who This Is For What They Can Do
─────────────────────────────────────────────────────────────────────
Customer Shoppers, buyers Purchase, wishlists, loyalty
Employee Store staff POS, sales, inventory
Manager Store management Overrides, reports, staff
Influencer Social promoters Commissions, promo codes
VIP Premium customers Exclusive access, discounts
Role 1: Customer
Who needs this: Anyone who purchases from your business.
Customer Role Fields
Loyalty Points
Accumulated points from purchases and promotions.
Default: 0
Managed by: Usually automated through sales transactions Displayed to: Customer accounts, POS systems
Store Credit Balance
Total available store credit from returns, promotions, or issued credits.
Read-only: Calculated automatically from store credit records How it works: Sum of all active store credit documents linked to this user
Wishlist
Product variants the customer has saved for later.
Limit: Maximum 100 items (performance warning) Behavior: Links to product variant documents Customer use: "Save for later," "favorites," quick reorder
Marketing Opt-In
Whether the customer agreed to receive marketing communications.
Default: False (must opt in) Controls:
- Email newsletters
- Promotional campaigns
- Special offers
Legal Note: Respect GDPR, CAN-SPAM, and regional regulations
Preferred Store
Customer's default or favorite store location.
Usage:
- Default pickup location for online orders
- Personalized inventory availability
- Targeted local promotions
Order History
Read-only list of all sales transactions for this customer.
Automatically maintained: Links to sales transaction documents Used for:
- Purchase history
- Returns processing
- Customer lifetime value
- Personalized recommendations
Role 2: Employee
Who needs this: Store staff, sales associates, cashiers.
Employee Role Fields
Employee ID (Required)
Unique identifier for this employee.
Good Examples:
- "EMP-001"
- "PDX-SA-123" (Portland, Sales Associate, #123)
- "E12345"
Avoid:
- "1" (too generic)
- Duplicate IDs
- Using name as ID
Naming Conventions:
- Use Uppercase: "EMP-001" not "emp-001"
- Consistent Pattern: Pick a format and stick to it
- Include Context: Store code, role abbreviation, number
- Globally Unique: Never reuse IDs
PIN Code
4 or 6-digit PIN for POS system access.
Format: Must be exactly 4 or 6 digits (validated automatically)
Valid:
- "1234" (4 digits)
- "123456" (6 digits)
Invalid:
- "123" (too short)
- "12345" (5 digits not allowed)
- "abc123" (must be numbers only)
Security Notes:
- Don't use obvious codes (1234, 0000, birthdates)
- Change periodically
- Don't share PINs between employees
Hourly Rate
Employee's hourly wage.
Optional: Can be left blank if not tracking compensation Used for:
- Payroll integration
- Labor cost calculations
- Shift scheduling
Commission Rate
Percentage commission on sales (0-100%).
Default: 0.00 Format: Percentage value (e.g., "5.00" for 5%) Validation: Must be between 0 and 100, precision to 2 decimal places
Examples:
- "2.50" = 2.5% commission
- "5.00" = 5% commission
- "10.00" = 10% commission
Store Assignments
Stores where this employee can work.
Multiple assignments allowed: Employee can work at multiple locations Controls:
- Which POS systems they can access
- Which store's inventory they can manage
- Where they can clock in/out
Hire Date
When the employee started working.
Optional but recommended for:
- Seniority tracking
- Anniversary recognition
- Benefits eligibility
Role 3: Manager
Who needs this: Store managers, shift supervisors, regional managers.
Note: Manager role includes ALL employee role fields, plus additional management capabilities.
Manager Role Fields (In Addition to Employee Fields)
Employee ID (Required)
Same as employee role—unique identifier.
PIN Code
Same as employee role—POS access code.
Hourly Rate
Same as employee role—compensation rate.
Department
Which department this manager oversees.
Examples:
- "Sales"
- "Operations"
- "Visual Merchandising"
- "Inventory"
Reporting Level
Manager's position in the hierarchy.
Options:
- Store Manager: Manages one location
- Regional Manager: Oversees multiple stores in a region
- Corporate: Executive/headquarters management
Determines:
- Access to reports
- Number of direct reports
- Budget authority
Override Permissions
Special capabilities beyond standard POS access.
Available Permissions:
- Can Override Price: Adjust prices at POS
- Can Issue High-Value Refund: Process large refunds
- Can Override Discount: Modify or stack discounts
Security Note: Only grant necessary permissions
Django Admin Access
Backend system administration privileges.
Fields:
- Is Staff: Can log into Django admin
- Is Superuser: Full unrestricted access
- Custom Permissions: Granular access controls
Warning: Superuser access is extremely powerful. Grant sparingly.
Reports To
This manager's supervisor.
Links to: Another user (typically with Manager role) Creates: Organizational hierarchy Used for:
- Approval workflows
- Escalation chains
- Reporting structure
Store Assignments (Bidirectional Sync)
Stores this manager is assigned to.
Important: This syncs bidirectionally:
- Adding stores here updates the store's
managerIdslist - Adding this manager to a store's
managerIdsupdates this list
Multiple stores allowed for regional/corporate managers
Role 4: Influencer
Who needs this: Social media promoters, brand ambassadors, affiliate marketers.
Influencer Role Fields
Social Media Handle (Required)
Username on primary social platform.
Good Examples:
- "@johndoe"
- "@fashionista_sarah"
- "alex_style"
Convention: Include @ prefix if desired, or just the username
Commission Rate (%)
Percentage commission on sales driven by this influencer.
Format: 0-100 Example: "10" = 10% commission on attributed sales
Follower Count
Number of followers on primary platform.
Usage:
- Commission tier determination
- Influencer ranking
- Partnership evaluation
Note: Update periodically as this changes
Associated Discount Code
Promo code linked to this influencer.
Links to: Promo Code document How it works:
- Create a promo code (e.g., "SARAH10")
- Link it to the influencer
- Track usage and attribute sales
Commission tracking: Sales using this code count toward influencer commissions
Role 5: VIP
Who needs this: Premium customers, loyalty program members, high-value clients.
Note: VIP is typically combined with Customer role.
VIP Role Fields
VIP Tier
Customer's membership level.
Options:
- Gold: Entry-level VIP benefits
- Platinum: Mid-tier benefits
- Diamond: Top-tier benefits
Determines: Available perks and discount levels
Personal Shopper
Dedicated staff member assigned to this VIP.
Links to: User with Employee or Manager role Services:
- Personalized shopping assistance
- Style consultations
- Early product access coordination
Exclusive Access
Special privileges available to this VIP.
Available Perks:
- Early Product Access: See new products before public launch
- Private Sales: Access to VIP-only sales events
- VIP Events: Invitations to exclusive events
- Concierge Service: White-glove customer service
Multiple selections allowed: VIPs can have several perks
Special Discount Rate (%)
Additional discount percentage on all purchases.
Format: 0-100 Example: "15" = 15% discount on all eligible items Applied: Automatically at checkout Stacking: May or may not stack with other promotions (configured elsewhere)
Product Collections (All Users)
Users can create and manage product collections—wishlists, curations, staff picks.
Product Collections
User's custom collections of products.
Collection Types:
- Wishlist: Personal "save for later" list
- Curation: Curated product sets (for influencers, staff)
- Staff Pick: Employee-recommended items
- Bundle: Pre-grouped product sets
Filtering: Only shows collections owned by this user
Default Wishlist
Primary wishlist for quick-add actions.
Purpose: When user clicks "Add to Wishlist" without specifying, items go here Filter: Only shows collections of type "wishlist" owned by this user
Collection Statistics (Read-Only)
Aggregated stats across all user's collections.
Includes:
- Total collections
- Total items across all collections
- Collection engagement metrics
Auto-calculated: Updated automatically
Common Questions
"Can a user have multiple roles?"
Yes! Users can have multiple roles, but only ONE of each type.
Valid Combinations:
- Customer + VIP (regular shopper with VIP benefits)
- Employee + Manager (someone who works and supervises)
- Customer + Employee (staff member who also shops)
- Customer + Influencer + VIP (loyal customer who promotes and has VIP perks)
Invalid Combinations:
- Customer + Customer (duplicate role type)
- Employee + Employee (duplicate role type)
"What's the difference between Employee and Manager roles?"
Employee Role:
- Works at stores
- POS access via PIN
- Sales and inventory tasks
- Commission tracking
Manager Role:
- All Employee capabilities
- PLUS override permissions
- PLUS staff management
- PLUS access to reports
- PLUS potential Django admin access
Think of it as: Manager = Employee + Extra Powers
"How do store assignments work?"
For Employees:
- One-directional: Set in the employee's role
- Controls which stores they can access
For Managers:
- Bidirectional: Syncs with store's
managerIdsfield - Adding manager to store updates their assignments
- Adding store to manager updates the store's manager list
"What happens when I change a user's status to Inactive?"
Active → Inactive:
- User cannot log in or access systems
- Historical data preserved
- Can be reactivated later
- Orders, commissions, and history remain
When to use:
- Employee on leave
- Seasonal staff in off-season
- Customer account maintenance
When NOT to use:
- Policy violations (use Suspended)
- Permanent termination (consider deletion or keep Inactive with notes)
"How does the wishlist differ from Product Collections?"
Wishlist (in Customer Role):
- Legacy field
- Direct references to product variants
- Simple list structure
- Limited to 100 items
Product Collections (new system):
- More powerful and flexible
- Multiple collection types
- Curations, staff picks, bundles
- No hard limit
- Better organization
Recommendation: Use Product Collections for new implementations.
"What are Override Permissions and who needs them?"
Override Permissions allow managers to bypass normal POS rules:
Can Override Price:
- Negotiate special pricing
- Match competitor prices
- Adjust for damaged items
- VIP pricing adjustments
Can Issue High-Value Refund:
- Process refunds over standard limit
- Handle complex return situations
- Authorize large credit amounts
Can Override Discount:
- Stack multiple discounts
- Apply additional discounts beyond policy
- Special customer accommodations
Grant to: Store Managers, Shift Supervisors, Customer Service Managers
Don't grant to: Regular employees (creates security risk)
Naming Best Practices Summary
User Names
- Proper capitalization ("John Smith")
- Full legal name preferred
- Hyphens for compound names
- Don't use all lowercase
- Don't use usernames instead of names
Employee IDs
- Uppercase letters and hyphens
- Consistent pattern across all employees
- Globally unique
- Include context (store code, role)
- Don't use sequential numbers without context
- Never reuse IDs
PIN Codes
- Exactly 4 or 6 digits
- Unique per user
- Secure (not 1234, 0000)
- Don't share PINs
- Don't use birthdates or obvious patterns
Social Handles
- Include @ prefix or just username
- Primary platform handle
- Keep updated if handle changes
Quick Checklist
Before publishing a user, verify:
- Name is properly capitalized and complete
- Email is valid and unique
- Status is set appropriately (Active/Inactive/Suspended)
- At least one role is assigned
- No duplicate role types
- If Employee/Manager: Employee ID is unique
- If Employee/Manager: PIN is 4 or 6 digits
- If Manager: Store assignments are correct
- If Manager: Override permissions are appropriate
- If Influencer: Social handle and promo code are linked
- If VIP: Tier and exclusive access are configured
Role Combinations Guide
Common scenarios and recommended role setups:
Online Shopper
Roles: Customer Why: Basic shopping capabilities, order history, wishlist
Retail Employee
Roles: Employee Configuration:
- Employee ID
- PIN for POS access
- Store assignments
- Hourly rate and/or commission rate
Store Manager
Roles: Manager Configuration:
- All employee fields
- Reporting level: "Store Manager"
- Override permissions (price, refunds, discounts)
- Store assignments (usually 1 store)
Regional Manager
Roles: Manager Configuration:
- All employee fields
- Reporting level: "Regional Manager"
- Store assignments (multiple stores in region)
- Django admin access (potentially)
Social Media Influencer (Non-Customer)
Roles: Influencer Configuration:
- Social handle
- Commission rate
- Follower count
- Promo code link
Influencer Who Also Shops
Roles: Customer + Influencer Why: Track their purchases AND their promotional activity Configuration:
- Customer: Loyalty points, order history
- Influencer: Social handle, commission tracking
VIP Customer
Roles: Customer + VIP Configuration:
- Customer: Standard shopping features
- VIP: Tier (Gold/Platinum/Diamond), exclusive access, special discount
Employee Who Shops
Roles: Employee + Customer Why: Employee discount purchases tracked separately from their work Configuration:
- Employee: Work-related info
- Customer: Personal shopping, loyalty
Staff Member Promoting on Social
Roles: Employee + Influencer Configuration:
- Employee: Store work and POS access
- Influencer: Side income from social promotion
System Relationships
Understanding how users connect to other parts of the system:
Users Connect To:
Stores (via Manager/Employee roles):
user.roleManager.storeAssignments↔store.managerIds(bidirectional)user.roleEmployee.storeAssignments→ Store (one-way)
Sales Transactions (via Customer role):
user.roleCustomer.orderHistory→ Sales Transaction- Transaction links back to customer
Product Collections:
user.collections→ User Product Collectionsuser.defaultWishlist→ Specific collection
Promo Codes (via Influencer role):
user.roleInfluencer.discountCode→ Promo Code- Track influencer-driven sales
Store Credit:
user.roleCustomer.storeCredit← Calculated from Store Credit documents- Store Credit documents link to user
Wishlists:
user.roleCustomer.wishlist→ Product Variants- Direct references to products
Tips for User Management
Onboarding New Employees
- Create user with name, email, phone
- Set status to Active
- Add Employee role with:
- Unique Employee ID
- 4 or 6-digit PIN
- Store assignment(s)
- Hourly rate
- Train on PIN security
- Test POS access
Promoting Employee to Manager
- Open existing employee user
- Add Manager role (keep Employee role if they still work shifts)
- Configure manager-specific fields:
- Reporting level
- Override permissions
- Store assignments (may differ from employee assignments)
- Grant Django admin access if needed
- Update reporting structure
Setting Up VIP Customers
- Ensure user has Customer role
- Add VIP role
- Select appropriate tier (Gold/Platinum/Diamond)
- Configure exclusive access perks
- Set special discount rate
- Assign personal shopper if applicable
Managing Influencer Partnerships
- Create user (or add to existing customer)
- Add Influencer role
- Enter social media handle
- Create unique promo code
- Link promo code to influencer
- Set commission rate
- Record initial follower count
Deactivating Users Properly
Temporary (leave, seasonal):
- Status → Inactive
- Keep all role data
- User cannot access systems
- Can reactivate later
Policy Violation:
- Status → Suspended
- Investigate issue
- Restore to Active or make permanent decision
Permanent Departure:
- Option 1: Keep as Inactive (preserves history)
- Option 2: Delete (removes from system)
- Recommendation: Keep inactive for historical reporting