# plugin-menu

`@fayz-ai/plugin-menu` · beta · Partial capability

A menu is the product catalog of a food business — and it changes by the hour. plugin-menu is the management surface for that: items, categories, allergens, and modifiers, with sold-out toggles that take effect instantly. It's the foundation the orders flow reads from, so the two compose into a working restaurant.

## Overview

Menu management: items, categories and modifiers, with availability control (available / sold out). It mounts the `/menu` page. It's a **vertical** plugin (`scope: 'vertical'`), normally paired with `plugin-orders`.

It packages no migrations. By default it runs on a mock provider and, for the Fayz platform, uses `createFayzMenuProvider` with configurable tables (`categoriesTable`, `productsTable`). The `modifiers` module ships enabled; `deliveryPricing` is opt-in. The `stable` channel already pins `^0.3.0`.

For AI, it exposes `listMenuItems` and `toggleMenuItemAvailability`. Status **beta / partial capability**.

## When to use it

- Keep a menu with categories and modifiers.
- Mark an item sold out in real time, including through AI.
- Feed plugin-orders with the item catalog.

## Specs

- **Package:** `@fayz-ai/plugin-menu`
- **Version:** 0.3.0
- **Status:** beta
- **Capability:** Partial capability
- **Product type:** Restaurant / food
- **Stable channel:** `^0.3.0`
- **Migrations:** none
- **Factory:** `createMenuPlugin()`

## Data model

No tables of its own — this plugin uses the core / archetype library (same rule: tenant_id + RLS)..

## AI tools

| id | mode | description |
| --- | --- | --- |
| `menu.list-items` | read | Lists menu items, optionally filtered by category or status. |
| `menu.toggle-availability` | persist | Marks a menu item as available or sold out. |

## Integrations

No hosted connector — external providers come in via the connector spine (`@fayz-ai/core`).

## Integrate

Add the plugin to surfaces.admin.plugins in your app's app.manifest.json and run the doctor to validate:

```json
{ "surfaces": { "admin": { "plugins": [ { "id": "menu", "enabled": true } ] } } }
```

```bash
npx fayz doctor
```
