Developer documentation v1.x

Documentation

WhatsApp Bot - Pharmacy Order Flow

User selects "Order Pharmacy medications" from the main menu.

Flow Diagram

flowchart TD
    START([User selects 'Order Pharmacy']) --> CHECK_PINNED{Pinned products?}
    
    CHECK_PINNED -->|Yes| PHARMACY_OPTIONS[/"Popular medications:
    1. Product A (2000 XAF)
    2. Product B (1500 XAF)
    3. Product C (3500 XAF)
    4. Product D (2500 XAF)
    5. Product E (4000 XAF)
    6. Other product"/]
    
    CHECK_PINNED -->|No| CHOICE_TYPE
    
    PHARMACY_OPTIONS --> USER_INPUT{User Input}
    
    USER_INPUT -->|"1-5"| CREATE_CHECKOUT[Create Checkout Cart]
    USER_INPUT -->|"6 - Other"| CHOICE_TYPE[/"How would you like to order?
    1. Describe medication
    2. Upload prescription"/]
    USER_INPUT -->|"0"| MAIN_MENU[Return to Main Menu]
    
    CREATE_CHECKOUT --> CHECKOUT_LINK[/"✅ Your order is ready!
    🔗 Complete Payment"/]
    CHECKOUT_LINK --> COMPLETED([Completed])
    
    CHOICE_TYPE --> CHOICE{User Choice}
    CHOICE -->|"1"| DESCRIBE_FLOW[Describe Flow]
    CHOICE -->|"2"| UPLOAD_FLOW[Upload Flow]
    
    DESCRIBE_FLOW --> ORDER_CONFIRM[/"✅ Order received!"/]
    UPLOAD_FLOW --> ORDER_CONFIRM
    ORDER_CONFIRM --> COMPLETED

Describe Medication Flow

flowchart TD
    START([User chose 'Describe']) --> PROMPT[/"Please describe the medication(s):"/]
    PROMPT --> INPUT[User enters product name]
    INPUT --> VALIDATE{Valid input?}
    VALIDATE -->|No| PROMPT
    VALIDATE -->|Yes| CHECK_USER{User exists?}
    CHECK_USER -->|Yes| CREATE_ORDER[Create order]
    CHECK_USER -->|No| ASK_NAME[/"Please enter your name:"/]
    ASK_NAME --> NAME[User enters name]
    NAME --> CREATE_ORDER
    CREATE_ORDER --> CONFIRM[/"✅ Order received!"/]
    CONFIRM --> COMPLETED([Completed])

Upload Prescription Flow

Same as Lab Order - see 04-lab-order.md