336 lines
14 KiB
Markdown
336 lines
14 KiB
Markdown
|
|
# Onboarding Flow Reorganization - Aligned with JTBD Analysis
|
||
|
|
|
||
|
|
## Problem Statement
|
||
|
|
|
||
|
|
The current AI-assisted path has some confusion:
|
||
|
|
1. "Review Suggestions" step helps complete the product list (from AI analysis)
|
||
|
|
2. "Inventory Setup" step should capture **initial stock** (crucial for system)
|
||
|
|
3. These two steps need better alignment and clear purpose
|
||
|
|
4. Must align with JTBD Analysis: users need to get up and running quickly with accurate inventory
|
||
|
|
|
||
|
|
## JTBD Analysis Key Findings (Recap)
|
||
|
|
|
||
|
|
From the initial JTBD analysis, bakery owners need to:
|
||
|
|
- **Job 1**: Get their inventory into the system quickly and accurately
|
||
|
|
- **Job 2**: Understand what products/ingredients they have and in what quantities
|
||
|
|
- **Job 3**: Start managing daily operations (production, sales) as soon as possible
|
||
|
|
|
||
|
|
**Critical Insight**: Initial stock levels are CRUCIAL - without them, the system cannot:
|
||
|
|
- Calculate if there's enough stock for production
|
||
|
|
- Alert about low stock
|
||
|
|
- Track consumption
|
||
|
|
- Provide accurate cost calculations
|
||
|
|
|
||
|
|
## Current Flow (Problematic)
|
||
|
|
|
||
|
|
### AI-Assisted Path (Current):
|
||
|
|
1. **Upload Sales Data** → User uploads historical sales
|
||
|
|
2. **AI Analysis** → System analyzes and suggests products
|
||
|
|
3. **Review Suggestions** → User reviews/edits suggested products ❌ *Missing: initial stock*
|
||
|
|
4. **Suppliers Setup** → Add suppliers
|
||
|
|
5. **Inventory Setup** → Add ingredients ❌ *Confusing: what about the products from step 3?*
|
||
|
|
6. **Recipes Setup** → Add recipes
|
||
|
|
7. ...rest of flow
|
||
|
|
|
||
|
|
**Problems:**
|
||
|
|
- Step 3 creates products but doesn't capture stock levels
|
||
|
|
- Step 5 adds ingredients but unclear relationship to step 3 products
|
||
|
|
- User has to enter stock levels twice (or not at all)
|
||
|
|
- Confusing UX: "Didn't I already add my inventory in step 3?"
|
||
|
|
|
||
|
|
## Proposed Reorganized Flow
|
||
|
|
|
||
|
|
### AI-Assisted Path (Reorganized):
|
||
|
|
|
||
|
|
```
|
||
|
|
Phase 1: DISCOVERY
|
||
|
|
├─ 1. Bakery Type Selection (Production/Retail/Mixed)
|
||
|
|
└─ 2. Data Source Choice (AI-assisted vs Manual)
|
||
|
|
|
||
|
|
Phase 2a: AI-POWERED SMART SETUP
|
||
|
|
├─ 3. Upload & Analyze Sales Data
|
||
|
|
│ ├─ Upload historical sales (CSV/Excel/JSON)
|
||
|
|
│ ├─ AI automatically classifies products
|
||
|
|
│ ├─ AI suggests categories and groupings
|
||
|
|
│ └─ AI estimates typical costs from sales data
|
||
|
|
│
|
||
|
|
├─ 4. Review & Complete Product List ⭐ ENHANCED
|
||
|
|
│ ├─ **Sub-step 4a: Review AI-Suggested Products**
|
||
|
|
│ │ ├─ See all products AI found in sales data
|
||
|
|
│ │ ├─ AI confidence scores for each classification
|
||
|
|
│ │ ├─ Edit/merge/delete suggested products
|
||
|
|
│ │ ├─ Add product images (optional)
|
||
|
|
│ │ └─ Quick actions: "Accept all", "Reject low confidence"
|
||
|
|
│ │
|
||
|
|
│ ├─ **Sub-step 4b: Categorize as Ingredients vs Finished Products** ⭐ KEY STEP
|
||
|
|
│ │ ├─ AI suggests initial categorization
|
||
|
|
│ │ ├─ User confirms which are INGREDIENTS (flour, sugar, etc.)
|
||
|
|
│ │ ├─ User confirms which are FINISHED PRODUCTS (bread, pastries)
|
||
|
|
│ │ ├─ Drag-and-drop interface for easy sorting
|
||
|
|
│ │ └─ WHY: System needs to know what can be used in recipes
|
||
|
|
│ │
|
||
|
|
│ └─ **Sub-step 4c: Set Initial Stock Levels** ⭐ CRITICAL
|
||
|
|
│ ├─ For each ingredient: "What's your current stock?"
|
||
|
|
│ ├─ For each finished product: "How many do you have now?"
|
||
|
|
│ ├─ Smart defaults based on typical quantities
|
||
|
|
│ ├─ Unit conversion helper (kg → g, dozens → units)
|
||
|
|
│ ├─ Batch entry option: "Set all to 0" or "Skip for now"
|
||
|
|
│ └─ WHY: Without initial stock, system can't function
|
||
|
|
│
|
||
|
|
├─ 5. Suppliers Setup (Quick)
|
||
|
|
│ ├─ AI suggests suppliers from sales data (if available)
|
||
|
|
│ ├─ User adds main suppliers (name, contact)
|
||
|
|
│ ├─ Can be minimal - just names to start
|
||
|
|
│ └─ Link suppliers to ingredients (optional at this stage)
|
||
|
|
│
|
||
|
|
└─ 6. [SKIP INVENTORY SETUP - Already done in step 4!]
|
||
|
|
|
||
|
|
Phase 2b: PRODUCTION SETUP (Conditional)
|
||
|
|
├─ 7a. Recipes Setup (if Production/Mixed bakery)
|
||
|
|
│ ├─ Can use ingredients from step 4
|
||
|
|
│ ├─ Template recipes for common items
|
||
|
|
│ └─ AI may suggest recipes based on product names
|
||
|
|
│
|
||
|
|
└─ 7b. Production Processes (if Retail/Mixed bakery)
|
||
|
|
├─ Simple baking/finishing processes
|
||
|
|
└─ Template processes for common items
|
||
|
|
|
||
|
|
Phase 3: OPTIONAL FEATURES
|
||
|
|
├─ 8. Quality Standards (optional)
|
||
|
|
└─ 9. Team Members (optional)
|
||
|
|
|
||
|
|
Phase 4: FINALIZATION
|
||
|
|
├─ 10. ML Training (with real-time progress)
|
||
|
|
├─ 11. Review & Summary (show everything configured)
|
||
|
|
└─ 12. Completion & Next Steps
|
||
|
|
```
|
||
|
|
|
||
|
|
## Manual Path (Reorganized for Consistency)
|
||
|
|
|
||
|
|
```
|
||
|
|
Phase 1: DISCOVERY
|
||
|
|
├─ 1. Bakery Type Selection
|
||
|
|
└─ 2. Data Source Choice → "Manual"
|
||
|
|
|
||
|
|
Phase 2: MANUAL SETUP
|
||
|
|
├─ 3. Suppliers Setup
|
||
|
|
│ └─ Add main suppliers manually
|
||
|
|
│
|
||
|
|
├─ 4. Inventory Setup ⭐ COMBINED STEP
|
||
|
|
│ ├─ **Sub-step 4a: Add Ingredients**
|
||
|
|
│ │ ├─ Name, category, unit, supplier
|
||
|
|
│ │ ├─ Standard cost per unit
|
||
|
|
│ │ └─ **Initial stock quantity** ⭐
|
||
|
|
│ │
|
||
|
|
│ ├─ **Sub-step 4b: Add Finished Products**
|
||
|
|
│ │ ├─ Name, category, selling price
|
||
|
|
│ │ └─ **Initial stock quantity** ⭐
|
||
|
|
│ │
|
||
|
|
│ └─ Template library for quick start
|
||
|
|
│ ├─ Common ingredients (flour, sugar, etc.)
|
||
|
|
│ └─ Common products (bread, croissants, etc.)
|
||
|
|
│
|
||
|
|
├─ 5. Recipes/Processes Setup
|
||
|
|
│ └─ Based on bakery type
|
||
|
|
│
|
||
|
|
└─ 6-9. Optional features + Finalization
|
||
|
|
```
|
||
|
|
|
||
|
|
## Key Changes & Rationale
|
||
|
|
|
||
|
|
### 1. Combined "Review & Complete Product List" (Step 4 in AI path)
|
||
|
|
|
||
|
|
**Before:** Separate steps that were confusing
|
||
|
|
- Step 3: Review products (no stock)
|
||
|
|
- Step 5: Add ingredients (with stock)
|
||
|
|
|
||
|
|
**After:** One comprehensive step with 3 sub-steps
|
||
|
|
- 4a: Review AI suggestions
|
||
|
|
- 4b: Categorize (ingredients vs products)
|
||
|
|
- 4c: Set initial stock ⭐
|
||
|
|
|
||
|
|
**Benefits:**
|
||
|
|
- ✅ Single workflow for product setup
|
||
|
|
- ✅ Clear progression: identify → categorize → stock
|
||
|
|
- ✅ No confusion about "where do I add stock?"
|
||
|
|
- ✅ Captures initial stock for EVERYTHING
|
||
|
|
- ✅ Aligns with JTBD: get inventory into system quickly
|
||
|
|
|
||
|
|
### 2. AI Path Skips Redundant "Inventory Setup" Step
|
||
|
|
|
||
|
|
**Rationale:**
|
||
|
|
- All inventory already added in step 4
|
||
|
|
- No need for separate "add ingredients" step
|
||
|
|
- Reduces total steps (better UX)
|
||
|
|
- Prevents duplicate data entry
|
||
|
|
|
||
|
|
**Exception:**
|
||
|
|
- Users can still add NEW items later via dashboard
|
||
|
|
- Step 4 is comprehensive but not limiting
|
||
|
|
|
||
|
|
### 3. Manual Path Also Captures Initial Stock
|
||
|
|
|
||
|
|
**Why:**
|
||
|
|
- Consistency between AI and Manual paths
|
||
|
|
- Both paths MUST get initial stock
|
||
|
|
- Makes inventory setup atomic and complete
|
||
|
|
|
||
|
|
### 4. Sub-step 4b: Categorization Step
|
||
|
|
|
||
|
|
**Purpose:**
|
||
|
|
- System needs to know: ingredient vs finished product
|
||
|
|
- Ingredients → can be used in recipes
|
||
|
|
- Finished products → can be sold, tracked for inventory
|
||
|
|
- AI suggests, user confirms (or manual entry)
|
||
|
|
|
||
|
|
**UI Concept:**
|
||
|
|
```
|
||
|
|
┌─────────────────────────────────────────────────┐
|
||
|
|
│ Categorize Your Products │
|
||
|
|
├─────────────────────────────────────────────────┤
|
||
|
|
│ │
|
||
|
|
│ ┌──────────────┐ ┌──────────────┐ │
|
||
|
|
│ │ Ingredients │ │ Finished │ │
|
||
|
|
│ │ (For Recipes)│ │ Products │ │
|
||
|
|
│ │ │ │ (To Sell) │ │
|
||
|
|
│ ├──────────────┤ ├──────────────┤ │
|
||
|
|
│ │ Flour │ ←─── │ Baguette │ │
|
||
|
|
│ │ Sugar │ │ │ Croissant │ │
|
||
|
|
│ │ Butter │ │ │ Cake │ │
|
||
|
|
│ │ │ │ │ │ │
|
||
|
|
│ └──────────────┘ │ └──────────────┘ │
|
||
|
|
│ │ │
|
||
|
|
│ Drag & drop to categorize │
|
||
|
|
│ │
|
||
|
|
│ [< Previous] [Skip for now] [Next >] │
|
||
|
|
└─────────────────────────────────────────────────┘
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5. Sub-step 4c: Initial Stock Entry
|
||
|
|
|
||
|
|
**UI Concept:**
|
||
|
|
```
|
||
|
|
┌─────────────────────────────────────────────────┐
|
||
|
|
│ Set Initial Stock Levels │
|
||
|
|
├─────────────────────────────────────────────────┤
|
||
|
|
│ 💡 Enter current quantities for accurate │
|
||
|
|
│ tracking │
|
||
|
|
│ │
|
||
|
|
│ ┌─────────────────────────────────────────────┐│
|
||
|
|
│ │ Ingredients ││
|
||
|
|
│ ├─────────────────────────────────────────────┤│
|
||
|
|
│ │ Flour (kg) [____50____] kg ││
|
||
|
|
│ │ Sugar (kg) [____25____] kg ││
|
||
|
|
│ │ Butter (kg) [____10____] kg ││
|
||
|
|
│ │ Eggs (units) [____200___] units ││
|
||
|
|
│ └─────────────────────────────────────────────┘│
|
||
|
|
│ │
|
||
|
|
│ ┌─────────────────────────────────────────────┐│
|
||
|
|
│ │ Finished Products ││
|
||
|
|
│ ├─────────────────────────────────────────────┤│
|
||
|
|
│ │ Baguette (units) [____30____] units ││
|
||
|
|
│ │ Croissant (units) [____45____] units ││
|
||
|
|
│ │ Cake (units) [____12____] units ││
|
||
|
|
│ └─────────────────────────────────────────────┘│
|
||
|
|
│ │
|
||
|
|
│ Batch Actions: │
|
||
|
|
│ [ Set all to 0 ] [ Leave empty for now ] │
|
||
|
|
│ │
|
||
|
|
│ [< Previous] [Complete Setup >] │
|
||
|
|
└─────────────────────────────────────────────────┘
|
||
|
|
```
|
||
|
|
|
||
|
|
**Features:**
|
||
|
|
- Quick entry with keyboard navigation
|
||
|
|
- Smart defaults (AI can suggest typical quantities)
|
||
|
|
- Option to skip and add later (but encouraged to do now)
|
||
|
|
- Validation: warn if leaving many items at 0
|
||
|
|
- Unit conversion helper
|
||
|
|
- Batch operations for efficiency
|
||
|
|
|
||
|
|
## Updated Step Dependencies
|
||
|
|
|
||
|
|
```mermaid
|
||
|
|
graph TD
|
||
|
|
A[Bakery Type] --> B[Data Source]
|
||
|
|
B --> C{AI or Manual?}
|
||
|
|
|
||
|
|
C -->|AI| D[Upload Sales Data]
|
||
|
|
D --> E[AI Analysis]
|
||
|
|
E --> F[Review & Complete Products]
|
||
|
|
F --> F1[Review AI Suggestions]
|
||
|
|
F1 --> F2[Categorize Items]
|
||
|
|
F2 --> F3[Set Initial Stock]
|
||
|
|
F3 --> G[Suppliers Quick Setup]
|
||
|
|
G --> H[Recipes/Processes]
|
||
|
|
|
||
|
|
C -->|Manual| I[Suppliers Setup]
|
||
|
|
I --> J[Inventory Setup Combined]
|
||
|
|
J --> J1[Add Ingredients + Stock]
|
||
|
|
J1 --> J2[Add Products + Stock]
|
||
|
|
J2 --> H
|
||
|
|
|
||
|
|
H --> K[Optional Features]
|
||
|
|
K --> L[ML Training]
|
||
|
|
L --> M[Review Summary]
|
||
|
|
M --> N[Completion]
|
||
|
|
```
|
||
|
|
|
||
|
|
## Implementation Checklist
|
||
|
|
|
||
|
|
### Phase 6.5: Flow Reorganization (1 week)
|
||
|
|
|
||
|
|
**Day 1-2: Enhanced Review Step**
|
||
|
|
- [ ] Split ReviewSuggestionsStep into 3 sub-steps
|
||
|
|
- [ ] Create ProductCategorizationUI component
|
||
|
|
- [ ] Create InitialStockEntryUI component
|
||
|
|
- [ ] Add drag-and-drop for categorization
|
||
|
|
- [ ] Add validation for stock entry
|
||
|
|
|
||
|
|
**Day 3-4: Backend Updates**
|
||
|
|
- [ ] Update product model to include `type` field (ingredient/finished_product)
|
||
|
|
- [ ] Add `initial_stock` capture in inventory endpoints
|
||
|
|
- [ ] Update AI analysis to suggest categorization
|
||
|
|
- [ ] Create endpoint for batch stock updates
|
||
|
|
|
||
|
|
**Day 5: Integration & Testing**
|
||
|
|
- [ ] Update UnifiedOnboardingWizard step flow
|
||
|
|
- [ ] Skip "Inventory Setup" in AI path
|
||
|
|
- [ ] Ensure Manual path includes stock entry
|
||
|
|
- [ ] End-to-end testing of both paths
|
||
|
|
|
||
|
|
## Success Metrics
|
||
|
|
|
||
|
|
### User Experience
|
||
|
|
- ✅ 90%+ of users complete initial stock entry
|
||
|
|
- ✅ Reduced confusion (fewer support tickets about "where to add stock")
|
||
|
|
- ✅ Faster onboarding (fewer steps in AI path)
|
||
|
|
- ✅ Higher data quality (complete inventory from start)
|
||
|
|
|
||
|
|
### System Functionality
|
||
|
|
- ✅ All inventory items have initial stock
|
||
|
|
- ✅ Production planning works from day 1
|
||
|
|
- ✅ Low stock alerts functional immediately
|
||
|
|
- ✅ Accurate cost calculations from start
|
||
|
|
|
||
|
|
## Migration Path
|
||
|
|
|
||
|
|
For existing implementations:
|
||
|
|
1. Add `type` field to existing inventory items (default: 'ingredient')
|
||
|
|
2. Backfill initial_stock from current stock where available
|
||
|
|
3. Prompt existing users to set stock levels on first login
|
||
|
|
4. Grandfather existing incomplete setups (warn but don't block)
|
||
|
|
|
||
|
|
## Conclusion
|
||
|
|
|
||
|
|
This reorganization:
|
||
|
|
- ✅ Eliminates confusion between product review and inventory setup
|
||
|
|
- ✅ Ensures initial stock is captured for ALL items
|
||
|
|
- ✅ Aligns with JTBD: users can start operating immediately
|
||
|
|
- ✅ Reduces total steps in AI path (better UX)
|
||
|
|
- ✅ Maintains consistency between AI and Manual paths
|
||
|
|
- ✅ Makes categorization (ingredient vs product) explicit and clear
|
||
|
|
- ✅ Provides better foundation for production planning and inventory management
|
||
|
|
|
||
|
|
**Next Step:** Implement Phase 6.5 to realize this reorganization.
|