mage2kishan / module-mega-menu
Advanced mega menu for Magento 2 — works on Hyva and Luma. Drag-and-drop tree builder, multi-column dropdowns, image and icon support per item, custom CMS block injection per column, mobile drawer with smooth animations, store-view scoped, FPC-aware caching, role-based access. Modern Tailwind + Alpi
Package info
github.com/mage2sk/module-mega-menu
Language:JavaScript
Type:magento2-module
pkg:composer/mage2kishan/module-mega-menu
Requires
- php: ~8.1.0||~8.2.0||~8.3.0||~8.4.0
- mage2kishan/module-core: ^1.0.17
- magento/framework: ^103.0
- magento/module-backend: ^102.0
- magento/module-catalog: ^104.0
- magento/module-cms: ^104.0
- magento/module-config: ^101.2
- magento/module-store: ^101.1
- magento/module-ui: ^101.2
Requires (Dev)
None
Suggests
- hyva-themes/magento2-default-theme: Optimal integration with Hyva — Tailwind + Alpine.js, no jQuery
Provides
None
Conflicts
None
Replaces
None
README
Panth Mega Menu replaces the default Magento top navigation with menus that are built in the admin and rendered by the module's own templates. A menu is a tree of items (category links, product links, CMS pages, custom URLs, custom HTML, CMS blocks, widget code and account links) with per-item icons, images, badges, colours, column layout, visibility rules and scheduling. The storefront renders the menu whose identifier is set in configuration (default "mainmenu") and removes Magento's catalog.topnav block once that identifier resolves to an active menu with visible items for the store view.
It is aimed at merchants who want to manage navigation without editing theme files, and at developers who need repositories, view models and templates to build on. The module ships two template sets: Hyva (Alpine.js and Tailwind utility classes) and Luma (RequireJS/jQuery widgets and inline scripts), and selects one by detecting the active theme.
Product page: Magento 2 Mega Menu
Features
- Menus are managed in an admin grid ("Menu Items") with create, edit, duplicate, enable/disable, delete, export and import actions.
- Drag-and-drop item builder (SortableJS) inside the menu form; the item tree is stored as JSON on the menu record.
- Item types in the builder: "Custom URL", "Dropdown Parent (No Link)", "Separator / Divider", "Link to Category", "Link to Product", "CMS Page", "Custom HTML", "Widget Code", "My Account Dashboard", "My Orders" and "My Wishlist". Sub-menu items can additionally be CMS blocks; the builder disables the CMS block and widget types for top-level items.
- Per-item options: icon (Font Awesome, LineIcons, Material Icons stylesheets are shipped, or an emoji), uploaded image with width and height, badge text, tooltip, ARIA label and role, link target and rel, CSS class, background, text and hover colours, font family, size and weight, padding, margin, border, column width, visibility per device (desktop, tablet, mobile), store views, customer groups, start date and end date, click action, custom content and data attributes.
- Category import builds items from the top-level categories down to a chosen depth (0 imports all levels).
- Version history: every save through the menu repository records a version (number, admin user, optional comment). Versions can be viewed, exported, restored and deleted from the "Version History" tab.
- JSON export of a menu and JSON import with "Create New Menu" or "Replace Existing Menu".
- Frontend preview of a menu, including unsaved changes, on a page that is sent with no-cache headers and
X-Robots-Tag: noindex, nofollow. - Demo CMS blocks (
panth_menu_demo_featured,panth_menu_demo_promo,panth_menu_demo_newsletter) can be created from the admin for testing block injection. - Hyva templates use Alpine.js and Tailwind classes; the mobile menu is a
<dialog>drawer with accordion sub-menus and swipe-right to collapse a sub-menu. - Luma templates use jQuery UI widgets (
pmenu-desktop.js,pmenu-mobile.js) for hover-intent dropdowns, animation types, an optional sticky header, keyboard navigation (arrow keys and Escape) and an off-canvas mobile drawer with left/right position, overlay and accordion. - Theme detection (
Helper\Theme) treats a store as Hyva when theHyva_Thememodule is enabled or the theme path contains "hyva", otherwise as Luma. - Block output caching keyed by store, menu identifier, theme and customer, with a configurable lifetime and the cache tags
panth_megamenuandpanth_megamenu_<menu_id>. A "Flush Cache" admin action cleans thefull_pageandblock_htmlcache types. - Custom CSS and custom JavaScript fields in configuration, plus per-menu custom CSS and container styling.
- ACL resources for menu management, save, delete, the builder, item save and delete, version view and restore, and configuration.
Compatibility
| Requirement | Supported |
|---|---|
| Magento Open Source | 2.4.4 to 2.4.8 (as published on the product page) |
| Adobe Commerce | 2.4.4 to 2.4.8 (as published on the product page) |
| PHP | 8.1, 8.2, 8.3, 8.4 (`~8.1.0 |
| Themes | Hyva and Luma (separate template sets) |
Composer constraints on Magento packages: magento/framework ^103.0, magento/module-backend ^102.0, magento/module-store ^101.1, magento/module-cms ^104.0, magento/module-catalog ^104.0, magento/module-config ^101.2, magento/module-ui ^101.2.
Requirements
- Magento Open Source or Adobe Commerce 2.4.4 to 2.4.8
- PHP 8.1 to 8.4
mage2kishan/module-core^1.0.17 (installed by Composer with this package). This module hangs its admin menu underPanth_Core::panth_extensions, registers itself withPanth\Core\ViewModel\ThemeConfigand usesPanth\Core\Security\UploadExtensionPolicyfor image uploads.- Suggested:
hyva-themes/magento2-default-themewhen the Hyva templates are wanted
Installation
composer require mage2kishan/module-mega-menu bin/magento module:enable Panth_Core Panth_MegaMenu bin/magento setup:upgrade bin/magento setup:di:compile bin/magento setup:static-content:deploy -f bin/magento cache:flush
setup:di:compile is only needed in production mode. The module ships JavaScript, CSS, fonts and images under view/adminhtml/web, view/base/web and view/frontend/web, so static content has to be deployed.
Check the result with:
bin/magento module:status Panth_MegaMenu
setup:upgrade creates the module tables and runs the data patch Setup\Patch\Data\AddDefaultStoreRelations, which assigns store ID 0 (all store views) to any existing menu that has no store relation.
Configuration
Admin path: Stores > Configuration > "Panth Extensions" > "MegaMenu". In etc/adminhtml/system.xml the tab label is prefixed with a rocket emoji. All fields can be set at default, website and store view scope. Config paths follow the pattern panth_megamenu/<group>/<field>; the field id is shown in brackets in the tables below.
General Settings (panth_megamenu/general)
| Setting | Default | What it does |
|---|---|---|
Enable MegaMenu (enabled) |
Yes | Master switch. When set to No the module renders nothing and the default Magento navigation stays in place. This includes menus placed in CMS content with a {{block class="Panth\MegaMenu\Block\Menu" ...}} directive. |
Menu Identifier (menu_identifier) |
mainmenu | Identifier of the menu record to render. Shown when Enable MegaMenu is Yes. |
Mobile Breakpoint (px) (mobile_breakpoint) |
1024 | Screen width at which the mobile menu activates. Shown when Enable MegaMenu is Yes. |
Enable Sticky Menu (sticky_menu) |
No | Keeps the menu fixed at the top of the viewport when scrolling; details are in Sticky Menu Settings. Shown when Enable MegaMenu is Yes. |
Styling Settings (panth_megamenu/styling)
| Setting | Default | What it does |
|---|---|---|
Hover Effect (hover_effect) |
Underline | Effect applied to menu items on hover. Options: None, Underline, Fade, Highlight, Slide, Glow, Grow. |
Image Size (image_size) |
thumbnail | Text field naming the image size preset for category images in dropdowns. |
Custom CSS (custom_css) |
empty | CSS rules for the menu, without <style> tags. |
The group comment states that menu colours are taken from the Hyva theme's Tailwind theme-config.json. The module ships its default pmenu-* design tokens in etc/theme-config.json.
Display Settings (panth_megamenu/display)
| Setting | Default | What it does |
|---|---|---|
Animation Type (animation_type) |
Fade | Animation used when a dropdown opens or closes. Options: None, Fade, Slide, Grow. |
Animation Duration (ms) (animation_duration) |
200 | Duration of the dropdown animation. |
Hover Intent Delay (ms) (hover_intent_delay) |
150 | Delay before a dropdown opens on hover. |
Show Icons (show_icons) |
Yes | Display item icons when set. |
Show Images (show_images) |
Yes | Display item images in dropdown panels. |
Maximum Menu Depth (max_depth) |
5 | Number of menu levels rendered. Top-level items are the first level, so 3 shows top-level items and two levels below them. Every storefront template applies the same limit. |
Columns (columns) |
4 | Default number of columns in a mega dropdown. |
Show Category Product Count (show_category_count) |
No | Show the product count next to category names. |
Enable Custom Blocks (enable_custom_blocks) |
Yes | Allow CMS blocks inside dropdowns. |
Mobile Settings (panth_megamenu/mobile)
| Setting | Default | What it does |
|---|---|---|
Enable Mobile Menu (mobile_enabled) |
Yes | Enables the off-canvas mobile menu. |
Mobile Menu Position (position) |
Left | Slide-in side of the mobile panel: Left or Right. |
Show Overlay (overlay_enabled) |
Yes | Semi-transparent overlay behind the open mobile menu. |
Accordion Style (accordion_enabled) |
Yes | Expand and collapse sub-menus in place on mobile. |
Enable Swipe Gestures (swipe_enabled) |
No | Allow swipe gestures to open and close the mobile menu. |
Animation Speed (ms) (animation_speed) |
300 | Open and close animation speed of the mobile menu. |
Show Category Icons (show_category_icons) |
Yes | Display item icons in the mobile menu. |
All fields except Enable Mobile Menu are shown only when Enable Mobile Menu is Yes. These settings are read by the Luma templates and by js-init.phtml; the Hyva templates switch between desktop and mobile with Tailwind's lg breakpoint.
Sticky Menu Settings (panth_megamenu/sticky)
Shown only when Enable Sticky Menu in General Settings is Yes.
| Setting | Default | What it does |
|---|---|---|
Sticky Offset (px) (offset) |
100 | Scroll distance before the sticky state activates. |
Hide on Scroll Down (hide_on_scroll_down) |
No | Hide the sticky menu while scrolling down. |
Show on Scroll Up (show_on_scroll_up) |
Yes | Reveal the sticky menu while scrolling up. |
Show Shadow (show_shadow) |
Yes | Drop shadow under the sticky menu. |
Compact Mode (compact_mode) |
No | Reduced-height layout while sticky. |
Animation Speed (ms) (animation_speed) |
300 | Show and hide animation speed of the sticky menu. |
Performance Settings (panth_megamenu/performance)
| Setting | Default | What it does |
|---|---|---|
Enable Menu Cache (cache_enabled) |
Yes | Cache the rendered menu block. When Yes, the block cache lifetime is taken from Cache Lifetime. |
Cache Lifetime (seconds) (cache_lifetime) |
3600 | Lifetime of the cached menu block. Shown when Enable Menu Cache is Yes. |
Lazy Load Dropdowns (lazy_load) |
No | Load dropdown content on demand. |
Advanced Settings (panth_megamenu/advanced)
| Setting | Default | What it does |
|---|---|---|
Enable Debug Mode (enable_debug) |
No | Debug logging for troubleshooting. |
Custom JavaScript (custom_js) |
empty | JavaScript added for the menu, without <script> tags. |
Default behaviour after installation: the module is enabled and looks for an active menu with the identifier mainmenu. Until such a menu exists for the store view, the layout plugin keeps the default navigation elements (catalog.topnav, topmenu_desktop, topmenu_mobile), so Hyva and Luma show their native category menu. When the menu resolves, the plugin removes them and adds the body class panth-megamenu-active, which the Luma styles use to hide the native nav toggle.
Admin menu entries: "Panth Extensions" > "Mega Menu" > "Menu Items" (route panth_menu/menu/index) and "Panth Extensions" > "Mega Menu" > "Configuration" (opens the MegaMenu configuration section).
The module does not add category attributes to the category edit form.
Usage
Creating a menu
- Open "Panth Extensions" > "Mega Menu" > "Menu Items" and click "Create Menu".
- In "General Information" set "Menu Title", "Identifier", "Enable Menu", "CSS Class", "Sort Order", "Description" and "Custom CSS". The identifier must match the Menu Identifier configuration value for the menu to appear on the storefront. Identifiers are unique.
- "Menu Container Styling" holds "Container Background Color", "Container Padding", "Container Margin", "Gap Between Menu Items", "Container Max Width", "Container Border", "Container Border Radius", "Container Box Shadow" and "Menu Items Alignment" (Left, Center, Right, Space Between, Space Around).
- Build the tree in "Menu Items". The same tab has a "Menu Items JSON (Advanced)" field with the raw JSON.
- Save. The "Version History" tab lists the versions recorded for the menu.
Saving, importing, toggling, restoring or deleting a menu cleans the cache entries tagged panth_megamenu (menu block cache and full page cache entries of pages that show a menu). The "Flush Cache" action in the menu grid is still available.
Menus saved from the builder are assigned to store ID 0 (all store views); the builder has no store selector.
Item types and URLs
- "Link to Category", "CMS Page" and "Link to Product" resolve the URL from the selected entity at render time; a URL entered on the item takes precedence.
- "Custom URL" uses the entered URL. Only relative URLs and the
http,https,mailtoandtelschemes are rendered; any other scheme (for examplejavascript:ordata:) is replaced with#. For "My Account Dashboard", "My Orders" and "My Wishlist" the builder fills the URL field with/customer/account,/sales/order/historyor/wishlist. - "Dropdown Parent (No Link)", "Custom HTML", CMS block and "Widget Code" items are rendered without a link target (
#). - CMS block and "Widget Code" items are only available for sub-menu items and render the block or widget inside the dropdown panel. CMS block rendering can be switched off with Enable Custom Blocks.
- "Separator / Divider" can be selected in the builder; the frontend templates contain no dedicated rendering for this type.
Item visibility
An item is rendered only when all of the following hold: it is active; its level is below Maximum Menu Depth; the current date is within its start and end date (end date is inclusive, compared in GMT); its store view list is empty or contains the current store (or store 0); its customer group list is empty or contains the current customer group; and its device flag for the current device is set.
Layout and columns
Parent items with children open a dropdown panel. The number of columns comes from the item's column settings, with the Columns configuration value as the store default. CMS blocks and custom HTML placed on sub-items fill a column of the panel. Custom HTML is passed through the CMS page filter, so CMS directives such as {{store url=""}} and {{widget ...}} are processed; the HTML itself is not stripped, so only trusted admin users should be allowed to edit menus.
Images and icons
Images are uploaded from the builder to pub/media/panth/megamenu/; allowed extensions are jpg, jpeg, gif, png and webp, the file MIME type must be one of the matching image types, and the name is checked against Panth\Core\Security\UploadExtensionPolicy. SVG files cannot be uploaded. Icons are entered as a class from the shipped Font Awesome, LineIcons or Material Icons stylesheets, or as an emoji. Inline SVG icons that contain scripts, event handler attributes, javascript: URLs, foreignObject, embedded frames or character references are not rendered.
Mobile behaviour
Luma: below Mobile Breakpoint the hamburger button opens an off-canvas drawer (pmenu-mobile.js) that follows Mobile Menu Position, Show Overlay and Accordion Style. Hyva: the desktop menu is hidden below Tailwind's lg breakpoint and a <dialog> drawer with accordion sub-menus is shown; a swipe to the right collapses an open sub-menu.
Sticky menu
On Luma the desktop widget receives the sticky flag and offset and inserts a placeholder while the menu is fixed. On Hyva the template hyva/sticky/header.phtml renders through Block\StickyMenu when a theme layout adds that block.
Preview
The "Preview" button opens an admin popup with Desktop (1280px, scaled to fit), Tablet (768px) and Mobile (375px) widths and a Refresh button. The popup posts the current, unsaved menu to the frontend route panth_menu/preview/index inside an isolated frame; links in the frame open in a new tab. The route only renders for requests that carry a valid preview_token: a signed token (HMAC-SHA256 over an expiry time with the deployment crypt/key) that the admin menu edit pages embed when they are loaded and that is valid for one hour (Model\PreviewAccess::TOKEN_LIFETIME). Reload the edit page to get a new token. A one-time token from panth_menu/menu/previewToken together with menu_id is also accepted. Requests without a valid token get the 404 page. POST requests (unsaved items_json) fail CSRF validation unless they carry a valid token, and unsaved items are only read from the POST body. The preview page uses the empty page layout, removes the regular menu blocks, renders the requested menu (saved items for menu_id, or the unsaved items from the POST body) with the theme preview template inside preview-container.phtml. The page uses its own root template (preview/root.phtml) that outputs the storefront head assets and only the preview container, the menu custom CSS block and the Hyva Alpine.js script, so the store header, footer and other page blocks are not shown. It works on Hyva and Luma and is sent with no-cache headers.
The menu builder page loads a Tailwind stylesheet and the Inter font shipped with the module (view/adminhtml/web/css/tailwind.min.css, view/adminhtml/web/fonts/inter.woff2) instead of the Tailwind CDN and Google Fonts. Item titles, URLs, CSS classes, colours, icons and picker entries are HTML-escaped before the builder inserts them into the page. The Delete, Toggle, Duplicate, Flush Cache and Create Demo Blocks admin actions accept POST requests only; Toggle, Duplicate and Create Demo Blocks require the admin form key.
Import, export and demo data
- "Export" downloads
menu_<identifier>_<timestamp>.jsonwith the menu data and items. - "Import Menu" accepts a JSON file and either creates a new menu or replaces a selected one. The JSON may be at most 5 MB and 64 levels deep, and
menuanditemsmust both be objects or arrays. - "Import Categories" (
panth_menu/menu/importCategories) creates items from the category tree down to a maximum level. - "Create Demo Blocks" creates three CMS blocks with the identifiers listed under Features.
Layout and templates
view/frontend/layout/default.xmladdsmegamenu.main(Block\Menu, templatePanth_MegaMenu::luma/menu.phtml) toheader-wrapperafter the logo, guarded byifconfig="panth_megamenu/general/enabled".view/frontend/layout/default_luma.xmldeclaresmegamenu.maininheader.containerwithPanth_MegaMenu::luma/desktop/menu.phtml.view/frontend/layout/default_hyva.xmlremovesmegamenu.main; on Hyva the theme layout is expected to addBlock\Menuwith the Hyva templates (see the comment in that file).view/frontend/layout/panth_menu_preview_index.xmlbuilds the preview page.- Templates that a theme can override:
hyva/menu.phtml,hyva/desktop/menu.phtml,hyva/desktop/item.phtml,hyva/desktop/item_recursive.phtml,hyva/mobile/menu.phtml,hyva/mobile/item.phtml,hyva/mobile/drawer.phtml,hyva/sticky/header.phtml,hyva/css/styles.phtml,hyva/js/alpine-components.phtml,hyva/menu_mobile_premium.phtml,luma/menu.phtml,luma/desktop/menu.phtml,luma/desktop/item.phtml,luma/item.phtml,luma/mobile/menu.phtml,luma/mobile/menu_simple.phtml,luma/mobile/item.phtml,luma/sticky/header.phtml,luma/css/styles.phtml,luma/js/knockout-components.phtml,pmenu/menu.phtml,pmenu/item.phtml,preview.phtml,preview-container.phtml,js-init.phtmlandtheme-config.phtml. - Frontend RequireJS aliases:
pmenuDesktop,pmenuMobileand the legacy aliasespanthMegaMenu,megaMenu,megaMenuWidget, all pointing atPanth_MegaMenu/js/pmenu-desktoporpmenu-mobile. Admin alias:menuPreview.
Caching
Block\Menu::getCacheKeyInfo() keys the block cache by store, menu identifier, theme and customer ID, and getIdentities() always returns panth_megamenu and, once a menu is loaded, panth_megamenu_<menu_id>. Model\Menu uses the cache tags panth_megamenu_menu and panth_megamenu and returns them (plus the ID variants) from getIdentities(), so saving or deleting a menu cleans the block cache and the full page cache entries of pages that show a menu. Helper\Data::cleanMenuCache() cleans entries by those tags and Helper\Data::flushMenuCache() cleans the full_page and block_html cache types.
Developer Notes
- Module name:
Panth_MegaMenu; Composer package:mage2kishan/module-mega-menu(version 1.0.12); PHP namespace:Panth\MegaMenu. - Service contracts (preferences in
etc/di.xml):Api\MenuRepositoryInterface(save,getById,getByIdentifier,getList,delete,deleteById),Api\ItemRepositoryInterface(addsgetMenuTree,moveItem),Api\MenuVersionRepositoryInterface(addsgetByMenuId), and the data interfacesApi\Data\MenuInterface,Api\Data\ItemInterface,Api\Data\MenuVersionInterfacewith their search results interfaces. Model\MenuRepository::save()creates apanth_megamenu_menu_versionrow on every save.- Blocks:
Block\Menu(getCurrentMenu,getCurrentMenuTree,getMenuConfig,getMenuConfigJson,getCacheKeyInfo,getIdentities),Block\MenuItem,Block\Navigation,Block\MobileMenu,Block\StickyMenu,Block\Preview. - View models:
ViewModel\Menu(getMenuItems,getItemUrl,isItemVisible,getChildren,renderItemContent,getBadgeHtml,getBreadcrumbTrail),ViewModel\Config,ViewModel\MobileConfig,ViewModel\StickyConfig,ViewModel\ItemRenderer. - Helpers:
Helper\Data(configuration getters,cleanMenuCache,flushMenuCache,getMenuCacheTags),Helper\Theme(isHyva,isLuma,getCurrentTheme,getTemplateForTheme,getThemeConfig),Helper\MenuRenderer(renderDesktopMenu,renderDesktopMenuLuma,renderCmsBlock,renderIcon,renderImage,sanitizeUrl,filterContent,sanitizeTree),Helper\Config(readspanth_megamenu/mobile/mobile_enabledforisMobileEnabled()). Model\PreviewAccesscreates and validates the signed preview tokens.Block\MenuandBlock\Previewpass the item tree throughHelper\MenuRenderer::sanitizeTree()(URL scheme check and CMS filter forcustom_content) before templates render it.- Plugins (
etc/di.xml):Plugin\RemoveDefaultNavigation(afterMagento\Framework\View\Layout::generateElements, removescatalog.topnav,topmenu_desktop,topmenu_mobilewhen the module is enabled and an identifier is set);Plugin\ThemeResolveronMagento\Framework\View\DesignInterface;Plugin\DisableBackendValidationonMagento\Backend\App\Request\BackendValidator(skips validation for the read-onlyGetCategories,ImportCategoriesandGetIconsadmin actions; forCustomSaveit copiesform_keyfrom the JSON body into the request so the normal form key check applies). etc/frontend/di.xmlregisters the module withPanth\Core\ViewModel\ThemeConfig;etc/theme-config.jsonholds the defaultpmenu-*tokens.etc/adminhtml/di.xmldeclares the virtual typePanth\MegaMenu\ItemImageUploader(Magento\Catalog\Model\ImageUploader, base pathpanth/megamenu/item, jpg, jpeg, gif, png and webp). No controller currently uses it.- Grid data sources:
panth_menu_listing_data_source(Model\ResourceModel\Menu\Grid\Collection) andpanth_megamenu_item_listing_data_source(virtual type overpanth_megamenu_item). - Routes: admin
panth_menu(etc/adminhtml/routes.xml) and frontendpanth_menu(etc/frontend/routes.xml). - Admin controllers under
Controller\Adminhtml\Menu:Index,Edit,CustomEdit,Save,CustomSave,Delete,Duplicate,Toggle,Export,Import,ImportForm,ImportCategories,GetCategories,GetIcons,Upload,Validate,PreviewToken,Restore,VersionView,FlushCache,CreateDemoBlocks; underController\Adminhtml\Version:Restore,Export,Delete. Frontend:Controller\Preview\Index. - ACL resources:
Panth_MegaMenu::panth_extensions,Panth_MegaMenu::menu,Panth_MegaMenu::menu_items,Panth_MegaMenu::menu_save,Panth_MegaMenu::menu_delete,Panth_MegaMenu::menu_builder,Panth_MegaMenu::item_save,Panth_MegaMenu::item_delete,Panth_MegaMenu::menu_version_restore,Panth_MegaMenu::menu_version_view,Panth_MegaMenu::config,Panth_MegaMenu::design_config. - Database tables (
etc/db_schema.xml):panth_megamenu_menu(menu records includingitems_jsonand container styling),panth_megamenu_item(normalised item rows with foreign keys to categories, CMS pages and products),panth_megamenu_store(menu to store view relation),panth_megamenu_customer_group(menu to customer group relation),panth_megamenu_cache(render cache rows keyed by menu, store and customer group),panth_megamenu_menu_version(version history). The storefront reads items fromitems_json. - Cache tags:
panth_megamenu,panth_megamenu_<menu_id>; model tagspanth_megamenu_menu,panth_megamenu_item,panth_megamenu_menu_version. - No EAV attributes, no
events.xmland no cron jobs are declared.Observer\ModuleInitialization,Model\InitFlag,Helper\InitializationandHelper\Webhookship with the module but are not referenced by any configuration file.
Uninstallation
bin/magento module:disable Panth_MegaMenu composer remove mage2kishan/module-mega-menu bin/magento setup:upgrade bin/magento setup:di:compile bin/magento cache:flush
After removal the six panth_megamenu_* tables, the configuration rows under panth_megamenu/ in core_config_data, uploaded images in pub/media/panth/megamenu/ and any demo CMS blocks remain and have to be dropped or deleted manually. No product or category attributes were added. Panth_Core stays installed if other packages depend on it.
Support
- Product page: Magento 2 Mega Menu
- Contact form: kishansavaliya.com/contact
- Email: kishansavaliyakb@gmail.com
- Issues: GitHub issues
Documentation
USER_GUIDE.md covers installation, checking that the module is active, the configuration screens, the menu builder, item types, column layouts, CMS block injection, mobile drawer behaviour, per-store menus, troubleshooting and a short CLI reference.
License
Commercial software license. See LICENSE.txt in this repository.
Changelog
See CHANGELOG.md.
Links
- Website: kishansavaliya.com
- All extensions: Magento extensions catalogue
- GitHub: mage2sk/module-mega-menu
- Packagist: mage2kishan/module-mega-menu