Welcome to Magepow Magento 2 Mega Menu! Our free module helps you create a user-friendly navigation experience and improve the usability of your online store.
For merchants who need professional assistance and reliable ongoing support, we recommend purchasing the module from Magepow. Our support service helps you get the most out of the module, resolve technical issues, and ensure a smoother experience when integrating it into your Magento store.
Magento 2 Mega menu extension is an indispensable component, and plays the role of website navigation to help customers easily categorize and find information. Without a menu, visitors to the page will have to spend time searching for each content on your website, thereby making them find it difficult, difficult to access and do not know what your website has main content. This will increase the user's bounce rate, thereby reducing the SEO quality of the website.
Mega menu, dropdown menu and mobile menu for Magento 2 / Adobe Commerce.
The module replaces the default store.menu block with a configurable navigation that supports
mega menu layouts, plain dropdown menus, an extra (custom) menu and a sidebar accordion menu.
composer require magiccart/magicmenu
bin/magento setup:upgrade
bin/magento setup:static-content:deploy -f
bin/magento cache:flushManual installation: copy the module to app/code/Magiccart/Magicmenu and run the commands above
without the composer require line.
Magepow Magento 2 Mega Menu is free and open-source, allowing you to build intuitive and user-friendly navigation for your Magento store.
If you need professional technical assistance, help with configuration, troubleshooting, or ongoing support, you can purchase the module with our support service directly from the Magepow website.
Get professional support and make the most of your Magento 2 Mega Menu.
π Purchase Mega Menu Pro with Support
Mega menu
The mega menu saves horizontal space and gives every top category its own panel made of CMS static blocks placed on the top, left, right and bottom of the category list.
Dropdown menu
A dropdown menu shows the sub categories on hover or on click. It fits catalogs with many categories and keeps the navigation compact.
Magiccart > Magic Menu > Extra Menu adds standalone entries to the navigation. Each entry shows a
link, a CMS static block, or both.
The menu adapts to the screen: the desktop navigation is replaced by a mobile menu below the breakpoint defined in the configuration. The sticky option keeps the menu visible while scrolling.
Each category can show a label, a thumbnail and an image inside the mega menu. The values are set
in Catalog > Manage Categories and are stored as the magic_label, magic_thumbnail and
magic_image category attributes.
Stores > Configuration > Magiccart > Magic Menu
| Group | Description |
|---|---|
| General | Categories that are rendered as a simple dropdown instead of a mega menu. |
| Top Menu | Horizontal menu: enable/disable, home button, multi store demo switcher, sticky menu, screen breakpoint, event (hover/click), full width mode, excluded categories. |
| Vertical Menu | Same options as the top menu for the vertical navigation. |
| Accordion | Enable the accordion menu rendered in the sidebar on category pages. |
Catalog > Categories > <category>
Labelβ comma separated list of labels rendered next to the category name.Thumbnail/Imageβ uploaded topub/media/magiccart/magicmenu/thumbnail/<id>.pngandpub/media/magiccart/magicmenu/images/<id>.png.
Magiccart > Magic Menu > Menu binds a top category to a layout made of CMS static blocks
(top, left, right, bottom) with configurable proportions.
Magiccart > Magic Menu > Extra Menu adds a standalone entry to the navigation. It renders either
a link or a CMS static block.
The values stored in the top, left, right, bottom and ext_content fields are CMS block
identifiers, not block IDs.
The width of the mega menu is shared between the category list, the left block and the right block. The three proportion fields are weights: the total of the weights is used to calculate the width of every part.
| Proportion | Meaning |
|---|---|
| Proportion: Category | Weight of the category list. |
| Proportion: Block Left | Weight of the block displayed on the left. |
| Proportion: Block Right | Weight of the block displayed on the right. |
Example: Proportion: Category = 2, Proportion: Block Left = 1 and Proportion: Block Right = 0
give 67% of the width to the categories and 33% to the left block.
| Type | Name |
|---|---|
| Service contract | Magiccart\Magicmenu\Api\MagicmenuRepositoryInterface |
| Data contract | Magiccart\Magicmenu\Api\Data\MagicmenuInterface |
| Search results | Magiccart\Magicmenu\Api\Data\MagicmenuSearchResultsInterface |
| Frontend block | Magiccart\Magicmenu\Block\Menu |
| Configuration reader | Magiccart\Magicmenu\Model\Config |
Use the repository instead of loading or saving the model directly:
$menu = $this->magicmenuRepository->getById($id);
$menu->setName('New name');
$this->magicmenuRepository->save($menu);- The module moved from
setup_version/InstallSchema/InstallDatato declarative schema (etc/db_schema.xml) and a data patch (Setup/Patch/Data/AddCategoryMagicAttributes.php). The patch is idempotent: existing category attributes are not recreated. - The CMS static blocks are now resolved by identifier (
Magento\Cms\Block\BlockByIdentifier) instead of the deprecatedMagento\Cms\Block\Block. Magiccart\Magicmenu\Helper\Datais deprecated, useMagiccart\Magicmenu\Model\Configinstead.- The
Registrybased transfer of the edited entity between controller and form block was removed. - The
exclude_html_desktopandexclude_html_mobilesettings were removed, the attributes they rendered were never read by the JavaScript.
vendor/bin/phpcs --standard=Magento2 --severity=10 app/code/Magiccart/Magicmenu
vendor/bin/phpcs --standard=Magento2 --extensions=php,phtml app/code/Magiccart/Magicmenu
vendor/bin/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magiccart/Magicmenu/Test/UnitOSL-3.0 / AFL-3.0. See LICENSE.
If this project help you reduce time to develop, you can give me a cup of coffee :)




