# Inventory Active/Inactive Toggle Feature ## Changes Implemented ### 1. Frontend Changes (AdminDashboard.js) **Added Toggle Function:** - Created `handleToggleActive()` function to toggle product active/inactive status - Sends PUT request to `/api/admin/products/{product_id}` with `is_active` field - Shows toast notification on success/failure - Refreshes inventory after toggle **Updated Inventory Table:** - Added **Price** column showing product price formatted as $X.XX - Changed "Status" column to "Active" with toggle button - Stock column highlights in red when low stock - Active/Inactive button shows current state and toggles on click **Table Structure:** | Product | Category | Price | Stock | Threshold | Active | Actions | |---------|----------|-------|-------|-----------|--------|---------| | Name | Type | $XX.XX| Count | Limit | Toggle | Adjust | ### 2. Backend Support (Already Present) **ProductUpdate Schema:** - Already includes `is_active: Optional[bool]` field - PUT endpoint `/api/admin/products/{product_id}` supports updating active status **Products Endpoint Filtering:** - Public `/api/products` endpoint filters by `is_active == True` - Only active products appear on frontend Products page - Inactive products hidden from customers but visible in admin ### 3. How It Works **Toggle Active Status:** 1. Admin clicks Active/Inactive button in Inventory tab 2. Frontend sends PUT request with `is_active: !current_status` 3. Backend updates product in database 4. Frontend refreshes inventory list 5. Toast notification confirms change **Product Visibility:** - **Active products**: Appear on public Products page - **Inactive products**: Hidden from customers, visible in admin only - Useful for: Seasonal items, out-of-stock, discontinued products ### 4. Testing To test the feature: 1. Login as admin 2. Go to Admin Dashboard → Inventory tab 3. See Price column and Active toggle buttons 4. Click Active/Inactive button to toggle 5. Check Products page - inactive products won't appear 6. Toggle back to Active - product reappears on Products page