Menu Availability
Employees can mark menu items and ingredients as out of stock to prevent customers from ordering unavailable items.
How It Works
From the Menu Management view (available to employees and admins):
Items Mode
- Toggle individual menu items as available/unavailable
- Unavailable items are hidden from the customer menu
- Items can be filtered by category
Ingredients Mode
- Toggle individual modifiers (ingredients) as available/unavailable
- Unavailable modifiers are hidden from the item detail customization
- Useful for: “We’re out of Oat Milk today”
Database Fields
-- Menu items
menu_items.is_available BOOLEAN DEFAULT true
-- Modifiers (ingredients)
modifiers.is_available BOOLEAN DEFAULT trueRLS Policies
Menu availability is enforced at the database level:
-- Customers only see available items
CREATE POLICY "Anyone can view available items"
ON menu_items FOR SELECT
USING (is_available = true);
-- Customers only see available modifiers
CREATE POLICY "Anyone can view available modifiers"
ON modifiers FOR SELECT
USING (is_available = true);When an employee marks an item as unavailable, it immediately disappears from the customer-facing menu without requiring an app update.
Employee vs Admin Access
| Action | Employee | Admin |
|---|---|---|
| Toggle item availability | Yes | Yes |
| Toggle modifier availability | Yes | Yes |
| Add/edit/delete items | No | Yes |
| Add/edit/delete modifiers | No | Yes |
| Manage categories | No | Yes |