MUST use whenever the user wants to add a clickable menu item, action, or option to an existing Wix dashboard page's more-actions menu, bulk-actions menu, or context menu. This includes any request to add actions/options/items to menus on Wix Stores (products, inventory), Wix Bookings (calendar, services, staff, booking list), Wix Blog (posts, categories, tags), Wix eCommerce (orders), Wix Events, Wix CRM (contacts), or Wix Restaurants (reservations, online orders, menus) dashboard pages. Trigger on phrases like: add menu item, add action to menu, add option to more actions, bulk action, custom action in dashboard menu, extend dashboard menu, dashboard menu plugin, context menu action on dashboard page. Do NOT use for: visual widgets/plugins embedded in dashboard page slots (use wix-cli-dashboard-plugin), standalone dashboard pages (use wix-cli-dashboard-page), standalone modals (use wix-cli-dashboard-modal), or site-facing UI.
Creates dashboard menu plugin extensions for Wix CLI applications. Dashboard menu plugins are menu items that integrate into predefined menu slots on dashboard pages managed by Wix first-party business apps (Wix Stores, Wix Bookings, Wix Blog, Wix eCommerce, Wix Events, Wix CRM, Wix Restaurants).
When clicked, a dashboard menu plugin either navigates to a dashboard page or opens a dashboard modal.
Dashboard menu plugins are configuration-only extensions — they do NOT have a React component file.
Follow these steps in order when creating a dashboard menu plugin:
src/extensions/dashboard/menu-plugins/<plugin-name>/<plugin-name>.extension.tsextensions.dashboardMenuPlugin()action field to either navigate to a dashboard page or open a modalsrc/extensions.ts to import and use the new extensionDashboard menu plugins operate as click-to-action menu items. They:
Dashboard menu plugins live under src/extensions/dashboard/menu-plugins/. Each plugin has its own folder containing a single file.
src/extensions/dashboard/menu-plugins/
└── <plugin-name>/
└── <plugin-name>.extension.ts # Builder configuration
Note: This is the default folder structure created by the CLI. You can move the file to any location within the
src/folder and update the references in yourextension.tsfile.
<plugin-name>.extension.tsimport { extensions } from "@wix/astro/builders";
export const dashboardmenupluginMyMenuPlugin = extensions.dashboardMenuPlugin({
id: "{{GENERATE_UUID}}",
title: "My Menu Plugin",
extends: "<MENU_SLOT_ID>",
iconKey: "Sparkles",
action: {
navigateToPage: {
pageId: "<DASHBOARD_PAGE_ID>",
},
},
});
CRITICAL: UUID Generation
The id must be a unique, static UUID v4 string. Generate a fresh UUID for each extension — do NOT use randomUUID() or copy UUIDs from examples. Replace {{GENERATE_UUID}} with a freshly generated UUID like "a1b2c3d4-e5f6-7890-abcd-ef1234567890".
| Field | Type | Description |
|---|---|---|
id | string | Unique plugin ID (GUID). Must be unique across all extensions in the project. |
title | string | Text displayed for the menu item. |
extends | string | Menu slot ID where the extension integrates. See Slot Lookup Table. |
iconKey | string | Icon name from Wix Design System appearing next to the title. |
action | object | Navigation configuration determining behavior when clicked. |
extends FieldThe extends field specifies which dashboard menu slot hosts your menu plugin. Each Wix business app exposes menu slots on its dashboard pages. You must provide the exact slot ID.
Important: Some slots with the same ID appear on different pages within the dashboard. If you create a menu plugin for a slot that exists on multiple pages, the menu plugin is displayed on all of those pages.
For the complete list of available menu slot IDs, see the Slot Lookup Table below. Read only the vertical file that matches the user's request.
action FieldThe action field determines what happens when the user clicks the menu item. You must configure exactly one of the following: