Make the Magento admin feel like your admin. Hide noise, rename anything, re-icon, recolor, reorder and reparent any backend menu item — saved as named "views" you can switch between with one click. Includes a click-to-open drilldown rendering style with in-panel search and a full-viewport-height chrome that mirrors Magento's stock palette pixel-for-pixel.
Panth Admin Menu Manager turns Magento 2's static, hover-only backend navigation into a configurable surface every merchant can tailor to the way their team works:
- Hide the menus your role never uses (e.g. Marketing on a strictly catalog-edit account).
- Rename "Stores" to "Store Settings", "Catalog" to "Products", "Customers" to "Members" — whatever fits your business vocabulary.
- Re-icon any item from a curated Bootstrap Icons library, an emoji, or a custom URL.
- Recolor with a thin coloured stripe so the eye finds the item it's looking for in two milliseconds.
- Reorder + reparent to put the items you actually use at the top of the rail, and bury the rest under "System".
All overrides are grouped into named views — keep a "merchandiser" view, a "support agent" view, a "default" view — and switch with Apply for me (per-user) or Set as system default (everyone). The Default view ships seeded so the grid is never empty, and the manager screen + Magento's stores / config / Backend menus are self-protected from being hidden so the merchant can always recover.
The optional drilldown rendering style replaces Magento's hover-to-open mega-menu with a click-to-open panel that fills the viewport height, carries a back button, and includes a per-panel search filter — invaluable on installs with 30+ extensions where the L0 menu has become unmanageable.
Get a free quote for your project in 24 hours — custom modules, Hyvä themes, performance optimization, M1 → M2 migrations, and Adobe Commerce Cloud.
|
Top Rated Plus on Upwork 100% Job Success • 10+ Years Magento Experience Adobe Certified • Hyvä Specialist |
Magento Development Team Custom Modules • Theme Design • Migrations Performance • SEO • Adobe Commerce Cloud |
Visit our website: kishansavaliya.com | Get a quote: kishansavaliya.com/get-quote
- Live Demo
- Screenshots
- Key Features
- Why a Menu Manager
- Compatibility
- Installation
- Where to Find It
- The Manager Grid
- Named Views — Per-User and System-Wide
- Drilldown Rendering Style
- Open in a New Tab
- Self-Protection
- Configuration
- How It Works
- Uninstall
- Troubleshooting
- FAQ
- Support
- About Panth Infotech
A 2-minute walk-through of the full workflow — open the manager, edit a few rows, save a view, apply it, click into the drilldown panel:
| Manager grid (default view) | Same grid with overrides applied |
|---|---|
![]() |
![]() |
The toolbar above the grid lets you Apply for me (per-admin-user), Set as system default (everyone), spin off a New view, Rename, Duplicate, or Delete. The grid itself shows every menu item in Magento's compiled menu tree — relabel inline, paste a Bootstrap Icon class into the Icon column (or an emoji), pick a different parent, set a sort order, flip the Enabled toggle. Reset on any row removes that row's override.
| Click-to-open L0 panel | Drilled into a sub-section |
|---|---|
![]() |
![]() |
L0 menus you've opted in (panth_drilldown/general/targets) open as a fixed-width drilldown panel that fills the full viewport height. A back arrow, an in-panel search filter, and a generous title bar replace Magento's stock hover behaviour. Non-target L0 menus keep Magento's default — so you can drilldown the busy ones (Stores, System) and leave Sales / Catalog / Customers alone.
- Disable — hide an item from the menu entirely (line-throughed in the grid for easy recovery)
- Custom label — rename without touching XML; falls back to the stock label when blank
- Custom icon — Bootstrap Icons class (
bi-gear,bi-house, …), an emoji, or aurl(...)to a SVG/PNG - Custom colour — hex value (
#1F2E44,#eb5202, …) renders as a thin left stripe so the item stands out - Custom parent — move any item under any other item; great for collapsing related extensions under a single header
- Sort order — fine-grained numeric override, applied per level so reordering one branch never disturbs another
- One row in
panth_admin_menu_viewper view, one default seeded bySeedDefaultViewdata patch - Apply for me — flips the active view for the current admin user only (cookie-backed, no DB write per session)
- Set as system default — flips the global active view; affects every admin who hasn't picked their own
- New / Rename / Duplicate / Delete — full CRUD on views from the same toolbar (Default view cannot be deleted)
- Click-to-open instead of hover — accidental hovers stop opening the wrong panel
- Full viewport height chrome — the dark
#4a4542panel fills top-to-bottom matching Magento's stock submenu palette - In-panel search — type to filter the items by label or ID; matched items keep their parent expanded with a breadcrumb subtitle so identical leaf names ("Configuration", "Manage") stay distinguishable
- Back button — drill into a sub-section, back arrow returns you to the parent without closing the panel
- Esc closes, click-overlay closes — same UX patterns Magento ships
- Per-target opt-in — pick which L0 menus get drilldown; the rest keep Magento's default hover behaviour
- Auto-included — every
Panth_*L0 menu is always in the drilldown set regardless of admin selection
- Add menu IDs to
panth_drilldown/general/new_tab_targets(one per line) - Matching links inside the drilldown panel get
target="_blank",rel="noopener", an updatedtitleand a small external-link icon next to the label - Useful for Admin Menu Manager itself, Configuration, Cache Management — anything you want to keep open beside your current grid
The MenuBuilderPlugin tracks a small SELF_PROTECT_IDS set:
Panth_AdminMenuManager::menu_managerMagento_Backend::storesMagento_Backend::stores_settingsMagento_Config::config
A disable override on any of these is silently ignored at apply time, so even if a backup of panth_admin_menu_override accidentally hides the manager, the merchant can still navigate to it and undo.
- Orange
#eb5202primary buttons matching Magento's stockSave Configstyle - 13px body type matching adminhtml typography across rows, inputs, dropdowns and buttons
- Bootstrap Icons as the default icon library (CSS shipped with the module — no CDN, no font dependency)
- Drilldown chrome copied from Magento's compiled adminhtml —
#4a4542panel,#fcfcfctext,#403934hover,#322c29active - Theme-agnostic on the admin side — the storefront is never touched
Magento's backend menu was designed for someone who installs Magento and stops. The reality on a typical merchant's account:
- 30+ extensions each adding 2–6 menu items, mostly to Stores → Settings or System → Tools. Finding "the thing I need to click" becomes a daily search.
- Multiple roles — a merchandiser doesn't need System → Web Setup Wizard, a developer doesn't need Marketing → Communications → Newsletter Templates. But everyone sees everything.
- Stock vocabulary — "Stores", "Inventory", "Marketing" make sense to Magento engineers. They're not always what merchants call those concepts internally.
Panth Admin Menu Manager fixes the symptom without forking core: the database row of overrides applies after Magento has compiled its menu, so every extension's menu remains discoverable and the overrides survive every setup:upgrade.
| Magento Open Source / Adobe Commerce | 2.4.4 — 2.4.8 |
| PHP | 8.1 — 8.4 |
| Themes | Admin (Magento backend) — theme-agnostic on the admin side; the module never touches your storefront theme |
| Other modules | No collisions known — the plugin is afterGetResult on \Magento\Backend\Model\Menu\Builder and only mutates the existing tree |
composer require mage2kishan/module-admin-menu-manager
bin/magento module:enable Panth_AdminMenuManager
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flushThe SeedDefaultView data patch creates the Default view automatically so the manager grid is never empty.
After install you'll find Admin Menu Manager in two places:
- Stores → Settings → Admin Menu Manager — the grid where you customise menu items
- Panth Infotech → Admin Menu Manager → Manager / Configuration — shortcut group matching every other Panth_* module's layout
The Configuration link points at Stores → Configuration → Panth → Admin Menu Manager for the drilldown-related toggles (master switch, target L0 menus, "open in new tab" list).
Each row represents one item in Magento's compiled backend menu. Editable columns:
| Column | What it does |
|---|---|
| Menu item | Indented tree label with an icon preview + chevron to expand children. Read-only here — edit in Custom label. |
| ID | Stock Magento menu ID (Magento_Sales::sales, Panth_Faq::group, …). Read-only. |
| Custom label | Override the visible text. Blank = use stock label. |
| Icon (bi-…) | Bootstrap Icon class (bi-house, bi-graph-up), or any Unicode emoji, or url(…) for a custom image. Click Browse icons (top-right) to open the Bootstrap Icons gallery in a new tab. |
| Parent | Move under a different parent. Highlighted when the row's parent is overridden. |
| Sort | Numeric override; lower numbers float to the top of their level. |
| Enabled | On = the item shows. Off = hidden. Self-protected items (Admin Menu Manager itself, Stores, Configuration, the global Backend node) reject Off. |
| Reset | Removes this row's override only. Other overrides for the same view stay. |
A Quick search box filters by label or ID; Expand all / Collapse all toggles every level at once; the Save changes button at the bottom flushes the menu cache so a refresh of the admin tab shows the new layout.
Views are presets of overrides that you can switch between with one click.
- Apply for me — sets a per-admin-user cookie pointing at a view; only this admin's session uses it
- Set as system default — flips the
is_activeflag on a view; everyone who hasn't picked their own falls back to it - New view — creates an empty named view (no overrides yet); flip to it and start editing
- Rename / Duplicate / Delete — Default view cannot be deleted; otherwise these are unrestricted
Common patterns:
- Default (system default) — light cleanup that everyone benefits from
- Merchandiser — hides everything outside Catalog + Marketing
- Support — surfaces Customers, Sales (Orders), and the most-used Reports
- Developer — keeps everything visible, plus relabels with shorter names
The hover-to-open mega-menu Magento ships with works for ~15 menu items. Past that, an L0 panel becomes a wall of text and the wrong panel keeps opening when you mouse past it.
This module ships an opt-in drilldown rendering style:
- Click-to-open — Magento's
_showclass is preserved; only the click target changes. Hover does nothing. - Full-viewport panel — the panel fills
100vh, dark#4a4542background, no white bleed. - In-panel search — keystroke filters items by label or ID, with a breadcrumb subtitle showing the parent chain so identical leaf names stay distinguishable.
- Back button — drill into a sub-section, back arrow returns to the parent without closing the panel.
- Esc closes — keyboard-friendly out of the box.
Configure under Stores → Configuration → Panth → Admin Menu Manager → Apply to top-level menus — multiselect of every L0 menu Magento knows about. Unselected menus keep Magento's default hover behaviour. All Panth_* L0 menus are auto-included so the drilldown experience is consistent across every Panth module.
Some menu items pair best with a second tab — Cache Management open beside your product grid, the Admin Menu Manager open beside the page you're customising for. Add their IDs (one per line) to Stores → Configuration → Panth → Admin Menu Manager → Open in a new tab — Menu IDs:
Panth_AdminMenuManager::menu_manager
Panth_AdminMenuManager::configuration
Inside the drilldown panel, matching <a> tags get target="_blank", rel="noopener", an updated title ("… opens in new tab") and a small external-link SVG appended next to the label so the user knows the click will spawn a new tab.
The MenuBuilderPlugin will never honour a disable override on:
Panth_AdminMenuManager::menu_manager(the manager screen itself)Magento_Backend::storesMagento_Backend::stores_settingsMagento_Config::config
This is hard-coded in the plugin's SELF_PROTECT_IDS set so even a corrupted import of panth_admin_menu_override rows can't lock the merchant out of the four pages they need to recover.
The Targets backend model also auto-injects every Panth_* L0 menu into the drilldown target list on save — so a merchant who unchecks all targets still gets the drilldown on Panth modules they install in the future.
Stores → Configuration → Panth → Admin Menu Manager (or the Configuration shortcut under Panth Infotech → Admin Menu Manager in the menu).
| Field | Path | Default | Notes |
|---|---|---|---|
| Open Admin Menu Manager | n/a | n/a | Quick-jump button to the manager grid |
| Enable drill-down | panth_drilldown/general/enabled |
1 |
Master switch. When off, every admin menu uses Magento's default hover behaviour. |
| Apply to top-level menus | panth_drilldown/general/targets |
(empty + Panth_* always-on) | Multiselect of L0 menus to drilldown. Unselected = stock hover. |
| Open in a new tab — Menu IDs | panth_drilldown/general/new_tab_targets |
(empty) | One menu ID per line. Items get target="_blank" + an external-link icon. |
request hits admin
│
▼
┌────────────────────────────────────┐
│ Magento\Backend\Model\Menu\Builder│
│ ::getResult() │
│ (compiles the stock menu tree) │
└────────────────────────────────────┘
│
▼
afterGetResult plugin (our MenuBuilderPlugin)
│
┌──────────────────┴───────────────────┐
│ load active view's overrides │
│ (per-user cookie wins; else system) │
└──────────────────┬───────────────────┘
│
┌──────────────────┴───────────────────┐
│ Pass 1 — apply label / icon / colour │
│ / disable, recurse the tree │
│ Pass 2 — execute parent moves │
│ Pass 3 — re-sort touched levels │
└──────────────────┬───────────────────┘
│
▼
return mutated Menu to Magento
Two database tables back the feature:
panth_admin_menu_view—view_id,label,is_active,is_default, timestamps. One row per saved preset.panth_admin_menu_override—view_id,menu_item_id,is_disabled,custom_label,custom_icon,custom_color,custom_parent_menu_item_id,sort_order, timestamps. One row per overridden menu item.
The drilldown UI is layered on top of Magento's compiled adminhtml — no default.xml override, no replacement of the global navigation block. The JS subscribes to Magento's existing _show/_hide class changes via MutationObserver so any future change to mage/adminhtml/globalNavigation is automatically inherited.
bin/magento module:disable Panth_AdminMenuManager
composer remove mage2kishan/module-admin-menu-manager
bin/magento setup:upgradeTo wipe stored views/overrides:
DROP TABLE IF EXISTS panth_admin_menu_override;
DROP TABLE IF EXISTS panth_admin_menu_view;
DELETE FROM core_config_data WHERE path LIKE 'panth_drilldown/%';The new menu doesn't appear after I clicked Save. Magento's backend menu is cached. Saving flushes the menu cache automatically — but the admin tab you're already on still has the old DOM. Refresh the admin tab (or click any other menu item) and the new layout shows up.
I disabled an item but it's still visible. Check whether you're editing the active view. The dropdown next to the View label shows the per-user active view (or the system default). If you edit Default but you've personally activated Merchandiser, your edits won't show until you switch back or apply the changed view.
The drilldown won't open on hover anymore. That's by design. The drilldown is click-to-open; hover does nothing on opted-in L0 menus. Click the L0 label or icon to open the panel.
A menu item I rely on disappeared after I imported a backup.
Truncate panth_admin_menu_override for the active view to wipe its overrides, or DELETE FROM panth_admin_menu_view and re-run bin/magento setup:upgrade to reseed the Default view.
Q: Does this affect storefront menus?
A: No. The plugin only attaches to \Magento\Backend\Model\Menu\Builder — a backend-only class. Your storefront top nav, mega menu, and category tree are completely untouched.
Q: Can different admin users see different menus? A: Yes — that's exactly what the Apply for me button does. It writes a cookie pointing at a view; the plugin reads the cookie and prefers it over the system default for that user's session.
Q: Will it survive setup:upgrade?
A: Yes. The override rows live in their own tables, not in XML config or generated code. setup:upgrade doesn't touch them.
Q: Can I export views to deploy to staging / production?
A: panth_admin_menu_view + panth_admin_menu_override are plain DB tables — mysqldump --no-create-info them and import on the target. The next admin page load will pick them up.
Q: Does the drilldown work on Hyvä? A: The drilldown is admin-only (Magento backend), so the storefront theme is irrelevant — Hyvä storefronts work fine. The admin chrome itself is theme-agnostic.
Q: Will it conflict with other modules that customise the admin menu?
A: The plugin runs afterGetResult so any other plugin's mutations are visible to ours. As long as the other module emits standard \Magento\Backend\Model\Menu\Item rows, our overrides apply on top of them. (Panth_* modules are mutually compatible by design.)
| 💼 Custom development | Get a free quote — reply within 24 hours |
| kishansavaliyakb@gmail.com | |
| 🌐 Website | kishansavaliya.com |
| 🐙 Issues | GitHub issue tracker |
| 💬 Hire on Upwork | Top Rated Plus profile — 100% job success, 10+ years Magento |
| 🏢 Agency | Panth Infotech — full-service Magento + Hyvä team |
Panth Infotech is a Magento-focused development team led by Kishan Savaliya — Adobe Certified, Top Rated Plus on Upwork, and a Hyvä specialist with 10+ years of Magento experience. We ship custom modules, Hyvä themes, performance optimization, M1 → M2 migrations, and Adobe Commerce Cloud projects for merchants and agencies worldwide.
More extensions in the Panth catalogue — see the full list on Packagist or browse the GitHub org.
If this module saves your team a few clicks a day, please ⭐ the repo.
And if there's an admin-menu pain we missed, open an issue — happy to talk through it.




