Search by

magiccart / magicmenu

magiccart

Make megamenu, dropdown menu, mobile menu easy all in one.

Package info

github.com/magepow/magento-2-mega-menu

Type:magento2-module

pkg:composer/magiccart/magicmenu

Statistics

Installs: 36 572

Dependents: 0

Suggesters: 0

Stars: 49

Open Issues: 6

2.0.0 2026-10-21 11:57 UTC

This package is auto-updated.

Last update: 2026-10-21 14:00:18 UTC


README

Mega menu Latest Stable Version Total Downloads Daily Downloads

Magento 2 Mega Menu

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.

Magento 2 Mega menu extension

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.

Get started

Installation

composer require magiccart/magicmenu
bin/magento setup:upgrade
bin/magento setup:static-content:deploy -f
bin/magento cache:flush

Manual installation: copy the module to app/code/Magiccart/Magicmenu and run the commands above without the composer require line.

Need Professional Support?

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

Highlight features

1. Mega menu, dropdown menu or both

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.

Mega menu

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.

Dropdown menu

2. Extra menu

Magiccart > Magic Menu > Extra Menu adds standalone entries to the navigation. Each entry shows a link, a CMS static block, or both.

Extra menu

3. Responsive and mobile menu

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.

4. Category label, image and thumbnail

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.

Configuration

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.

Category configuration

Catalog > Categories > <category>

  • Label – comma separated list of labels rendered next to the category name.
  • Thumbnail / Image – uploaded to pub/media/magiccart/magicmenu/thumbnail/<id>.png and pub/media/magiccart/magicmenu/images/<id>.png.

Mega menu / extra menu configuration

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.

Proportions of the mega menu

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.

Extension points

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);

Upgrade notes (2.0.0)

  • The module moved from setup_version / InstallSchema / InstallData to 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 deprecated Magento\Cms\Block\Block.
  • Magiccart\Magicmenu\Helper\Data is deprecated, use Magiccart\Magicmenu\Model\Config instead.
  • The Registry based transfer of the edited entity between controller and form block was removed.
  • The exclude_html_desktop and exclude_html_mobile settings were removed, the attributes they rendered were never read by the JavaScript.

Development

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/Unit

License

OSL-3.0 / AFL-3.0. See LICENSE.

Donation

If this project help you reduce time to develop, you can give me a cup of coffee :)

paypal

Our Magento 2 Extensions

Our Magento 2 services

Our Magento 2 Themes

Our Shopify App

Our Shopify Themes

Our WordPress Theme