> ## Documentation Index
> Fetch the complete documentation index at: https://developer.lulacommerce.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Menu List

> Retrieve a list of all menus for a specific store with filtering, sorting, and detailed menu information including operating hours and item counts.

This endpoint returns a comprehensive list of all menus associated with a store, including detailed menu configuration, operating hours, and statistical information about menu contents.

<Info>
  The menu list provides essential information for menu management, including item counts, category statistics, and operating schedules, making it ideal for administrative dashboards and operational planning.
</Info>

### Path Parameters

<ParamField path="store_id" type="string" required>
  The unique identifier of the store to retrieve menus for
</ParamField>

### Query Parameters

<ParamField query="status" type="string" optional>
  Filter menus by status: "active", "inactive", "all"
</ParamField>

<ParamField query="sortBy" type="string" optional>
  Sort criteria: "name", "created\_date", "categories", "items"
</ParamField>

<ParamField query="sortDirection" type="string" optional>
  Sort direction: "asc" or "desc"
</ParamField>

<ParamField query="name" type="string" optional>
  Filter by menu name or "all" for all menus
</ParamField>

### Response

The response is an array of menu objects with comprehensive information:

<ResponseField name="id" type="string">
  Unique identifier for the menu
</ResponseField>

<ResponseField name="menu_name" type="string">
  Display name of the menu
</ResponseField>

<ResponseField name="external_menu_id" type="string">
  External system menu identifier (if applicable)
</ResponseField>

<ResponseField name="store_id" type="string">
  Store identifier this menu belongs to
</ResponseField>

<ResponseField name="is_default" type="boolean">
  Whether this is the default menu for the store
</ResponseField>

<ResponseField name="created_by" type="string">
  User ID who created the menu
</ResponseField>

<ResponseField name="updated_by" type="string">
  User ID who last updated the menu
</ResponseField>

<ResponseField name="created_by_id" type="string">
  Creator's user identifier
</ResponseField>

<ResponseField name="updated_by_id" type="string">
  Last updater's user identifier
</ResponseField>

<ResponseField name="createdAt" type="string">
  Timestamp when the menu was created
</ResponseField>

<ResponseField name="updatedAt" type="string">
  Timestamp when the menu was last updated
</ResponseField>

<ResponseField name="menu_hours" type="array">
  Array of operating hours for the menu

  <Expandable title="Menu Hours Details">
    <ResponseField name="id" type="string">Unique identifier for the menu hour entry</ResponseField>
    <ResponseField name="menu_id" type="string">Parent menu identifier</ResponseField>
    <ResponseField name="open_time" type="string">Opening time in HH:MM format</ResponseField>
    <ResponseField name="close_time" type="string">Closing time in HH:MM format</ResponseField>
    <ResponseField name="day_of_week" type="integer">Day of the week (0=Sunday, 6=Saturday)</ResponseField>
    <ResponseField name="is_closed" type="boolean">Whether closed on this day</ResponseField>
    <ResponseField name="created_by" type="string">Creator user ID</ResponseField>
    <ResponseField name="updated_by" type="string">Last updater user ID</ResponseField>
    <ResponseField name="createdAt" type="string">Creation timestamp</ResponseField>
    <ResponseField name="updatedAt" type="string">Last update timestamp</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="total_item_count" type="string">
  Total number of items in this menu
</ResponseField>

<ResponseField name="unique_category_count" type="string">
  Number of unique categories in this menu
</ResponseField>

<ResponseField name="modifier_item_count" type="string">
  Number of modifier items in this menu
</ResponseField>

### Response Example

```json theme={null}
[
    {
        "id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
        "menu_name": "All",
        "external_menu_id": "3c4d66ab-f372-4d4a-a14a-c2b7d9cee682",
        "store_id": "449235c1-3d04-4519-998b-40d2a621e5e0",
        "is_default": true,
        "created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
        "updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
        "created_by_id": "1000049",
        "last_updated_by": "1000049",
        "updated_by_id": "1000049",
        "createdAt": "2023-02-09T12:03:55.124Z",
        "updatedAt": "2024-08-05T10:14:39.875Z",
        "deletedAt": null,
        "menu_hours": [
            {
                "id": "fb8ef97e-4a0f-4d36-9c1b-3e96b2b43cd6",
                "menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
                "open_time": "00:00",
                "close_time": "23:59",
                "day_of_week": 3,
                "is_closed": false,
                "created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "created_by_id": "1000049",
                "last_updated_by": "1000049",
                "updated_by_id": "1000049",
                "createdAt": "2023-07-04T12:42:24.108Z",
                "updatedAt": "2024-08-05T10:14:39.890Z",
                "deletedAt": null
            },
            {
                "id": "f6e0f9c2-2aa9-4c7c-afa5-08a23e9f832f",
                "menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
                "open_time": "00:00",
                "close_time": "23:59",
                "day_of_week": 5,
                "is_closed": false,
                "created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "created_by_id": "1000049",
                "last_updated_by": "1000049",
                "updated_by_id": "1000049",
                "createdAt": "2023-07-04T12:42:24.108Z",
                "updatedAt": "2024-08-05T10:14:39.890Z",
                "deletedAt": null
            },
            {
                "id": "37a519b3-70c2-4c10-980e-637af2541343",
                "menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
                "open_time": "00:00",
                "close_time": "23:59",
                "day_of_week": 6,
                "is_closed": false,
                "created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "created_by_id": "1000049",
                "last_updated_by": "1000049",
                "updated_by_id": "1000049",
                "createdAt": "2023-07-04T12:42:24.108Z",
                "updatedAt": "2024-08-05T10:14:39.890Z",
                "deletedAt": null
            },
            {
                "id": "fc0f9a16-b178-4bd5-af2c-8208a48029ea",
                "menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
                "open_time": "00:00",
                "close_time": "23:59",
                "day_of_week": 4,
                "is_closed": false,
                "created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "created_by_id": "1000049",
                "last_updated_by": "1000049",
                "updated_by_id": "1000049",
                "createdAt": "2023-07-04T12:42:24.108Z",
                "updatedAt": "2024-08-05T10:14:39.890Z",
                "deletedAt": null
            },
            {
                "id": "6f87e48c-fb01-45d7-b208-4f6f0b0053ea",
                "menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
                "open_time": "00:00",
                "close_time": "23:59",
                "day_of_week": 1,
                "is_closed": false,
                "created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "created_by_id": "1000049",
                "last_updated_by": "1000049",
                "updated_by_id": "1000049",
                "createdAt": "2023-07-04T12:42:24.108Z",
                "updatedAt": "2024-08-05T10:14:39.889Z",
                "deletedAt": null
            },
            {
                "id": "0d3856d7-662d-4006-9e78-1d2b81279721",
                "menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
                "open_time": "00:00",
                "close_time": "23:59",
                "day_of_week": 2,
                "is_closed": false,
                "created_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "created_by_id": "1000049",
                "last_updated_by": "1000049",
                "updated_by_id": "1000049",
                "createdAt": "2023-07-04T12:42:24.108Z",
                "updatedAt": "2024-08-05T10:14:39.889Z",
                "deletedAt": null
            },
            {
                "id": "3c4d66ab-f372-4d4a-a14a-c2b7d9cee682",
                "menu_id": "dc1c117b-142d-437a-b56f-ffa39e417c6e",
                "open_time": "00:30",
                "close_time": "23:59",
                "day_of_week": 0,
                "is_closed": false,
                "created_by": null,
                "updated_by": "870a05c1-bbbf-48ab-a757-e28ae0a2b2a8",
                "created_by_id": "1000049",
                "last_updated_by": "1000049",
                "updated_by_id": "1000049",
                "createdAt": "2023-07-18T09:37:05.335Z",
                "updatedAt": "2024-08-05T10:14:39.889Z",
                "deletedAt": null
            }
        ],
        "total_item_count": "2320",
        "unique_category_count": "11",
        "modifier_item_count": "0"
    }
]
```

<Accordion title="Menu Statistics Explained">
  **Item Count Metrics**

  * **total\_item\_count**: All individual items available in this menu
  * **unique\_category\_count**: Number of distinct product categories
  * **modifier\_item\_count**: Items that serve as modifiers for other products

  **Operating Hours Analysis**

  * Multiple entries per day indicate split operating hours
  * Different days can have different operating schedules
  * Sunday hours may differ from weekday schedules

  **Menu Performance Indicators**

  * Large item counts indicate comprehensive menus
  * High category counts suggest diverse product offerings
  * Modifier counts show customization options available
</Accordion>

<Note>
  **Time Format**: All times are displayed in 24-hour format (HH:MM) for consistency across different regions and to avoid AM/PM confusion.
</Note>

<Tip>
  **Filtering Options**: Use the query parameters to efficiently find specific menus, especially in stores with many menu configurations.
</Tip>

### Use Cases

<Accordion title="Common Menu List Use Cases">
  **Administrative Dashboard**

  * Display all store menus for management overview
  * Show menu statistics for operational planning
  * Compare menu configurations across different stores
  * Monitor menu performance and utilization

  **Operational Planning**

  * Review operating hours for scheduling staff
  * Analyze menu complexity for training purposes
  * Plan inventory based on menu item counts
  * Coordinate marketing efforts with menu availability

  **System Integration**

  * Sync menu data with external systems
  * Update point-of-sale systems with current menus
  * Integrate with delivery platform APIs
  * Coordinate with inventory management systems

  **Business Analysis**

  * Compare menu performance across different configurations
  * Analyze the relationship between menu complexity and sales
  * Track menu evolution over time
  * Support decision-making for menu optimization
</Accordion>

### Filtering and Sorting

<Accordion title="Advanced Query Options">
  **Status Filtering**

  * **active**: Only show currently active menus
  * **inactive**: Show deactivated menus for review
  * **all**: Display all menus regardless of status

  **Sorting Options**

  * **name**: Alphabetical sorting by menu name
  * **created\_date**: Chronological sorting by creation date
  * **categories**: Sort by number of unique categories
  * **items**: Sort by total item count

  **Name Filtering**

  * Specific menu name for targeted retrieval
  * "all" parameter to retrieve all menus
  * Partial name matching for flexible searches

  **Direction Control**

  * **asc**: Ascending order (A-Z, oldest first, smallest first)
  * **desc**: Descending order (Z-A, newest first, largest first)
</Accordion>

### Data Analysis

<Accordion title="Menu Analytics and Insights">
  **Menu Complexity Analysis**

  * High item counts may indicate comprehensive offerings
  * Low category counts might suggest specialization
  * Modifier counts show customization capabilities

  **Operating Schedule Patterns**

  * Consistent hours across days indicate standard operations
  * Variable hours suggest flexible business models
  * Multiple time slots per day show complex scheduling

  **Menu Management Insights**

  * Recent update timestamps indicate active management
  * Creation dates show menu lifecycle patterns
  * External menu IDs suggest third-party integrations

  **Performance Optimization**

  * Compare item counts with sales performance
  * Analyze category distribution for marketing insights
  * Use modifier counts to plan customization strategies
</Accordion>

### Error Handling

<Accordion title="Common Error Scenarios">
  **Store Not Found**

  ```json theme={null}
  {
    "error": "Store not found",
    "message": "The specified store does not exist"
  }
  ```

  **Invalid Query Parameters**

  ```json theme={null}
  {
    "error": "Invalid parameter",
    "message": "sortBy must be one of: name, created_date, categories, items"
  }
  ```

  **No Menus Found**

  ```json theme={null}
  {
    "data": [],
    "message": "No menus found for the specified criteria"
  }
  ```

  **Access Denied**

  ```json theme={null}
  {
    "error": "Access denied",
    "message": "Insufficient permissions to view store menus"
  }
  ```
</Accordion>

### Integration Considerations

<Accordion title="System Integration Guidelines">
  **API Response Handling**

  * Handle array responses appropriately
  * Process nested menu\_hours data correctly
  * Account for null values in optional fields
  * Implement proper error handling for edge cases

  **Data Caching Strategies**

  * Cache menu list data for frequently accessed stores
  * Implement cache invalidation on menu updates
  * Consider real-time updates for operational systems
  * Balance performance with data freshness requirements

  **External System Synchronization**

  * Use external\_menu\_id for third-party integration
  * Maintain mapping between internal and external IDs
  * Handle synchronization conflicts gracefully
  * Implement proper error recovery mechanisms

  **Performance Considerations**

  * Limit request frequency for large stores
  * Implement pagination for stores with many menus
  * Use appropriate filtering to reduce response size
  * Monitor API performance and optimize as needed
</Accordion>
