← Files WixARCHIVED FILE

skills/wix-manage/references/restaurants/wix-restaurants-setup.md

7.97 KB · Sep 30, 2026 · 23:18 UTC

↓ Download file

---
name: "Wix Restaurants Setup"
description: Configures restaurant menus, sections, and items using Menus API. Covers menu structure (Menu → Section → Item), modifiers, pricing, availability schedules, and ordering settings.
---
# Wix Restaurants Setup API Reference

This recipe covers setting up and configuring Wix Restaurants using the REST API, including menus, items, and ordering configuration.

## Prerequisites

1. Wix Restaurants app installed on the site
2. API access with restaurant management permissions

## Required APIs

- **Menus API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/menus/create-menu)
- **Menu Items API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/items/create-item)
- **Menu Sections API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/sections/create-section)
- **Item Modifier Groups API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/item-modifier-groups/create-modifier-group)
- **Item Variants API**: [REST](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/item-variants/bulk-create-variants)

## Overview

Wix Restaurants uses a hierarchical structure:
- **Menus** (e.g., Breakfast, Lunch, Dinner)
  - **Sections** (e.g., Appetizers, Main Courses, Desserts)
    - **Items** (e.g., Caesar Salad, Grilled Salmon)

## Step 1: Create a Menu

**Endpoint**: `POST https://www.wixapis.com/restaurants/menus-menu/v1/menus`

**Request Body**:
```json
{
  "menu": {
    "name": "Dinner Menu",
    "description": "Our evening dining selections",
    "visible": true
  }
}
```

**Response**:
```json
{
  "menu": {
    "id": "menu-id-123",
    "name": "Dinner Menu",
    "description": "Our evening dining selections",
    "visible": true,
    "createdDate": "2024-01-15T10:00:00.000Z"
  }
}
```

## Step 2: Create Menu Sections

**Endpoint**: `POST https://www.wixapis.com/restaurants/menus-section/v1/sections`

**Request Body**:
```json
{
  "section": {
    "name": "Appetizers",
    "description": "Start your meal with our delicious starters",
    "visible": true,
    "sortOrder": 1
  }
}
```

Create multiple sections:
```json
// Section 1: Appetizers
{
  "section": {
    "name": "Appetizers",
    "sortOrder": 1
  }
}

// Section 2: Main Courses
{
  "section": {
    "name": "Main Courses",
    "sortOrder": 2
  }
}

// Section 3: Desserts
{
  "section": {
    "name": "Desserts",
    "sortOrder": 3
  }
}
```

## Step 3: Create Menu Items

**Endpoint**: `POST https://www.wixapis.com/restaurants/menus-item/v1/items`

**Request Body**:
```json
{
  "item": {
    "name": "Caesar Salad",
    "description": "Fresh romaine lettuce with house-made Caesar dressing, croutons, and parmesan",
    "priceInfo": { "price": "14.99" },
    "visible": true,
    "labels": [],
    "modifierGroups": []
  }
}
```

## Step 4: Add Items to Sections

**Endpoint**: `PATCH https://www.wixapis.com/restaurants/menus-section/v1/sections/{sectionId}`

Each section update requires the latest section `revision`.

```json
{
  "section": {
    "id": "<SECTION_ID>",
    "revision": "<SECTION_REVISION>",
    "itemIds": ["item-id-1", "item-id-2", "item-id-3"]
  }
}
```

## Step 5: Configure Item Options and Modifiers

Create modifiers for customization (e.g., cooking temperature, add-ons):

**Endpoint**: `POST https://www.wixapis.com/restaurants/item-modifier-group/v1/modifier-groups`

```json
{
  "modifier": {
    "name": "Cooking Temperature",
    "required": true,
    "minSelections": 1,
    "maxSelections": 1,
    "options": [
      {
        "name": "Rare",
        "price": {
          "amount": "0",
          "currency": "USD"
        }
      },
      {
        "name": "Medium Rare",
        "price": {
          "amount": "0",
          "currency": "USD"
        }
      },
      {
        "name": "Medium",
        "price": {
          "amount": "0",
          "currency": "USD"
        }
      },
      {
        "name": "Well Done",
        "price": {
          "amount": "0",
          "currency": "USD"
        }
      }
    ]
  }
}
```

Add-on modifier with pricing:
```json
{
  "modifier": {
    "name": "Add-ons",
    "required": false,
    "minSelections": 0,
    "maxSelections": 5,
    "options": [
      {
        "name": "Extra Cheese",
        "price": {
          "amount": "2.00",
          "currency": "USD"
        }
      },
      {
        "name": "Bacon",
        "price": {
          "amount": "3.00",
          "currency": "USD"
        }
      },
      {
        "name": "Avocado",
        "price": {
          "amount": "2.50",
          "currency": "USD"
        }
      }
    ]
  }
}
```

## Step 6: Set Menu Structure (Attach Sections to Menu)

Attach section IDs to a menu. This call requires the latest menu `revision`.

**Endpoint**: `PATCH https://www.wixapis.com/restaurants/menus-menu/v1/menus/{menuId}`

```json
{
  "menu": {
    "id": "<MENU_ID>",
    "revision": "<MENU_REVISION>",
    "sectionIds": ["<SECTION_ID_1>", "<SECTION_ID_2>"]
  }
}
```

## Step 7: Bulk Operations for Large Menus

For restaurant setup flows with many sections/items, use bulk endpoints:

- **Bulk Create Sections**: `POST https://www.wixapis.com/restaurants/menus-section/v1/bulk/sections/create`
- **Bulk Create Items**: `POST https://www.wixapis.com/restaurants/menus-item/v1/bulk/items/create`
- **Bulk Create Variants**: `POST https://www.wixapis.com/restaurants/item-variants/v1/bulk/variants/create`

```json
{
  "sections": [
    { "name": "Appetizers", "visible": true },
    { "name": "Main Courses", "visible": true }
  ],
  "returnEntity": true
}
```

## Step 8: Query Menus / Sections / Items

Use query APIs for retrieval and UI display flows.

- **Query Menus**: `POST https://www.wixapis.com/restaurants/menus-menu/v1/menus/query`
- **Query Sections**: `POST https://www.wixapis.com/restaurants/menus-section/v1/sections/query`
- **Query Items**: `POST https://www.wixapis.com/restaurants/menus-item/v1/items/query`

```json
{
  "query": {
    "cursorPaging": {
      "limit": 50
    }
  }
}
```

## Query Menus

**Endpoint**: `GET https://www.wixapis.com/restaurants/menus-menu/v1/menus`

**Response**:
```json
{
  "menus": [
    {
      "id": "menu-1",
      "name": "Breakfast Menu",
      "visible": true,
      "sections": [...]
    },
    {
      "id": "menu-2",
      "name": "Lunch Menu",
      "visible": true,
      "sections": [...]
    }
  ]
}
```

## Recommended Setup Order

For complex restaurant menus, use this order to avoid dependency issues:

1. Create variants (sizes/options) if needed.
2. Create items (single or bulk).
3. Create sections (single or bulk).
4. Update each section with `itemIds`.
5. Update menu with `sectionIds`.

## Item Labels

Common dietary labels:
- `vegetarian`
- `vegan`
- `gluten-free`
- `gluten-free-option`
- `dairy-free`
- `nut-free`
- `spicy`
- `chef-recommendation`

## Best Practices

1. **High-Quality Images**: Use appetizing food photography
2. **Clear Descriptions**: Include ingredients and preparation methods
3. **Accurate Pricing**: Keep prices up-to-date
4. **Stock Management**: Update availability in real-time
5. **Modifier Organization**: Group related customizations logically
6. **Menu Structure**: Organize sections in logical dining order

## Error Handling

| Error | Cause | Solution |
|-------|-------|----------|
| `MENU_NOT_FOUND` | Invalid menu ID | Verify menu exists |
| `ITEM_NOT_FOUND` | Invalid item ID | Verify item exists |
| `INVALID_PRICE` | Negative price | Use positive amounts |

## Related Documentation

- [Menus API Reference](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/menus/introduction)
- [Menu Items API Reference](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/items/items/introduction)
- [Menu Sections API Reference](https://dev.wix.com/docs/api-reference/business-solutions/restaurants/menus/sections/introduction)
- [Restaurant Orders API](https://dev.wix.com/docs/api-reference/business-solutions/e-commerce/orders/introduction)

SHA-256: 3134d8280048a3abd9d766b02ca7091ac07ee7d8917e448d374ac2cc2d9213fd