Here you will see how we can create Magento 2 Wishusucess AdminMenu Module, and also you will get to know how to add a link to the Magento 2 Admin Menu, which is shown on the left side of the Admin Menu pages of Magento 2.
Structure of the Magento 2 Admin Menu
How Magento 2 menu item performs an action on each menu item.
Here we have created a menu which is Wishusucess and that has a two-item level menu which is Admin Menu One and the second menu item which is Admin Menu Two.
Folder Structure of Wishusucess AdminMenu
Magento_2_Root_Direcotry/app/code/
Wishusucess/AdminMenu/registration.php
Wishusucess/AdminMenu/etc/module.xml
Wishusucess/AdminMenu/etc/adminhtml/menu.xml
So you need only three files to create an Admin Menu item.
Now let's see how that file we have to write.
Step 1: Register Your Magento 2 Module
First, we have to register our module through the following file.
Wishusucess/AdminMenu/registration.php
<?php \Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Wishusucess_AdminMenu', __DIR__ );
Step 2: Give the Basic Information of Module
Wishusucess/AdminMenu/etc/module.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Wishusucess_AdminMenu" setup_version="1.0.0"> </module> </config>
Step 3: Create Magento 2 AdminMenu Item
Wishusucess/AdminMenu/etc/adminhtml/menu.xml
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Backend:etc/menu.xsd"> <menu> <add id="Wishusucess_AdminMenu::adminmenu" title="Wishusucess" module="Wishusucess_AdminMenu" sortOrder="51" resource="Wishusucess_AdminMenu::adminmenu"/> <add id="Wishusucess_AdminMenu::one" title="Admin Menu One" module="Wishusucess_AdminMenu" sortOrder="10" action="wishusucess_adminmenu/one" resource="Wishusucess_AdminMenu::one" parent="Wishusucess_AdminMenu::adminmenu"/> <add id="Wishusucess_AdminMenu::two" title="Admin Menu Two" module="Wishusucess_AdminMenu" sortOrder="99" parent="Wishusucess_AdminMenu::adminmenu" action="adminhtml/system_config/edit/section/adminmenu" resource="Wishusucess_AdminMenu::adminmenu_configuration"/> </menu> </config>
Now Run The Following Command to See Wishusucess AdminMenu:
php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento setup:static-content:deplpy -f php bin/magento cache:clean
Magento 2 AdminMenu Attribute Definitions
Now the basic attribute which we need to understand.
The id: Identifier or It’s a unique string
format: {Vendor_ModuleName}::{menu_description}.
The title: Text which will be shown on the menu bar.
The module: Menu is belong to.
The sortOrder: Defined the position of the menu.
Priority Order: 0 Means top priority
- 10: Highest Priority
- 20: Second Highest
- 30: Third Highest
- and so on...
The parent: This decides which is the parent of other items.
For example, we have parent=”Wishusucess_AdminMenu::adminmenu”, so we - know this menu “Admin Menu One” is a child of “Wishusucess” menu and it will show inside of Wishusucess menu.
The action: Define the URL of the page to which this menu links.
format: {router_name}{controller_folder}{action_name}.
In this example, this menu will link to the module Wishusucess, controller one, and action Index
The resource: Defined the Access Control Language (ACL) rule which the admin user must have in order to see and access this menu.
AdminMenu Module Download Link:
Magento 2.4 Installation Guide: How to Install Magento 2.4.2
Related Post:
HelloWorld Extension: How to Create Hello World Module