Mega Menu: setup and help

Quick start

  1. Upload and install the mprmegamenu ZIP in Modules > Module Manager.
  2. Open Improve > Mega Menu > Menu Tabs and create a tab with Label, URL Type and the matching destination.
  3. Keep Active on, save, then open Dropdown Columns.
  4. Add a category_tree column with an existing category and save the columns.
  5. Review Products nb and Show prices in Settings > Configuration.
  6. Open the storefront and test the tab, dropdown and mobile drawer in each language.

Requires PrestaShop 1.6.1 or later and PHP 7.1 or later.

Setup manual

Install and place the menu

Upload and install the mprmegamenu ZIP in Modules > Module Manager. Click Configure, or open Improve > Mega Menu > Menu Tabs.

Installation registers displayMainMenu, displayTop and displayNavFullWidth. The renderer selects the applicable menu position for your theme. Installation removes hooked ps_mainmenu, blocktopmenu and blocktopdropdownmenu instances from the top or full-width navigation hooks and records them for restoration on uninstall.

Check your header immediately after installation. A custom theme must call a supported hook. A developer can add a theme placement with:

{hook h='displayMainMenu'}

or:

{widget name='mprmegamenu' hook='displayMainMenu'}

Select the intended shop before configuring tabs. The PHP process needs write access to the module's folder under the PrestaShop cache directory. Employees who edit dropdown columns need edit permission for the module admin page.

Create top-level tabs

In Menu Tabs, create a tab, save it, then open its Dropdown Columns editor.

Field Default What you enter
Label Empty Required navigation text in each language.
URL Type category Category, CMS Page, Custom URL or No link (label only).
Reference ID 0 Category ID or CMS page ID for the corresponding URL Type.
Custom URL Empty Destination used for Custom URL.
CSS Class Empty Saves a CSS class, which the standard desktop menu does not apply. Applying it requires a theme override.
Icon Class Empty Saves a Material icon name or Font Awesome class, which the standard desktop menu does not display.
Active On Hide the tab without deleting it by switching this off.
Open in new window Off Open the top-level destination in a new window.
Position Next available on a new tab Reorder the list to change navigation order.

For a sale link, set Label to Sale, URL Type to Custom URL, Custom URL to your shop's sale path and Active to on. Check the link in every language.

Build dropdown columns

Choose a column type and set its width on the 12-column grid. New columns default to width 3 and type category_tree. The editor allows up to 12 columns; their total width cannot exceed 12. Titles and content are translated. Generated column types use settings rather than translated HTML content.

Type Setup
category_tree Choose a parent category, depth from 1 to 5 and optional excluded category IDs. It reads active categories with shop and customer-group access.
cms_category_tree Choose a CMS category, depth from 1 to 5 and optional page icons. It reads active CMS navigation.
cms_links Set cms_ids to the CMS pages you want, in order.
link_list Enter structured link rows with label, URL and optional icon or new-window flag.
link_groups Enter groups with their own links and child links.
visual_tabs Build internal tabs containing size links, image cards, image-only cards or HTML.
html Enter translated HTML. Desktop renders the saved content; mobile extracts supported navigation structures.
blog_categories Use available published blog data. The resolver tries MPR Blog Revolution, then a supported SimpleBlog source. Without a source, no blog categories are supplied.
image_links Image-link rows can be saved, but the standard desktop menu has no dedicated standalone layout for them.
product_list Choose a category and a limit from 1 to 24. Category products use the shared menu product panels rather than a separate standalone column layout.

The editor validates URLs, references, content types and widths. If another employee saves the same tab, reload its columns before saving again. A stale revision is rejected to prevent overwriting their changes.

For a category tree under category 8, use these settings, replacing all example IDs:

{"id_category":8,"depth":2,"exclude":[15,16]}

For selected CMS pages:

{"cms_ids":[3,4,5]}

Structured rows in the current editor include a row type. A grouped-link content array can be:

[
  {
    "row_type":"link_group",
    "label":"Shopping help",
    "url":"/help",
    "icon":"help",
    "new_window":false,
    "children":[
      {"row_type":"link","label":"Delivery","url":"/delivery","icon":"local_shipping","new_window":false}
    ]
  }
]

Use existing, localized destinations. Supported URL forms include an anchor, a root-relative path beginning with one slash, or an absolute HTTP/HTTPS URL. Protocol-relative URLs are rejected.

A visual-tab content example is:

{
  "tabs":[
    {
      "row_type":"visual_tab",
      "id":"guides",
      "label":"Guides",
      "url":"/guides",
      "columns":[
        {"type":"sizes","title":"Topics","links":[{"row_type":"link","label":"Delivery","url":"/delivery","icon":"","new_window":false}]},
        {"type":"card","col_class":"col-6","title":"New products","subtitle":"Latest arrivals","url":"/new-products","image":"/img/cms/menu-new-products.jpg","mobile_image":"","alt":"New products"}
      ]
    }
  ]
}

For custom HTML, supported mobile structures include [data-mm-tabs], .mm-type-card, .mm-html link groups and ordinary lists. A desktop form or arbitrary widget is not automatically reproduced as an interactive mobile form.

<div class="mm-html">
  <div class="mm-html__title">Buying guides</div>
  <ul>
    <li><a href="/guide-1">Guide 1</a></li>
    <li><a href="/guide-2">Guide 2</a></li>
  </ul>
</div>

Add a product-list column

In Dropdown Columns, choose product_list, select an accessible category with id_category, and set limit from 1 to 24. Save the columns and check the resulting product panel on desktop and in the mobile drawer. For example, replace 8 with your category ID:

{"id_category":8,"limit":4}

The current builder includes this column in the shared menu tree and supplies its products to the desktop and mobile panels. It is not limited to category-tree previews. Products nb remains the separate control for attaching products to category-tree panels; Show prices and Show discounts control the supplied product presentation.

Configure products and cache

Open Mega Menu > Settings > Configuration.

Setting Default When you change it
Products nb Off / 0 Set a positive count to attach product cards to category panels. Products come from their categories, ordered by category position.
Grid cols 4 Retained layout setting with no effect on the standard menu layout.
Show prices On Hide product prices by switching this off.
Show discounts On Show regular prices and discount details when product data contains them.
Cache ttl 3600 seconds Change the lifetime of cached menu data.

You select categories for product panels. The standard form does not provide an individual product picker for them.

Match the theme

Use Theme styles for shared detected theme values. The module maps primary color, text, muted text, primary and secondary backgrounds, border, radius and transition to --mprmegamenu-* variables. Refresh detection after a theme change, or clear custom overrides to return to detected values.

The current variable map does not include the old module-specific primary-hover or shadow aliases. Inspect the shared style editor and the active stylesheet instead of entering the original fixed fallback list as module defaults.

For theme CSS, inspect .mprmegamenu-container and the current .ps-mainmenu__* markup. A custom header may need spacing or positioning changes.

Verify navigation and troubleshoot

  1. Test every top-level destination on desktop.
  2. Open each dropdown, then test its links, products and images.
  3. Repeat in the mobile drawer. Confirm that custom HTML produces the intended nested links.
  4. Repeat as a guest and in any customer groups with category restrictions.
  5. Repeat in each language and shop.

Category-tree content follows catalog changes. Manually entered links and HTML still need manual maintenance. Category, CMS, product and menu changes invalidate related menu caches. The module stores data, rendered markup and fragments in its mprmegamenu directory under the PrestaShop cache directory.

If the menu is absent, check the theme hook and active tabs for the selected shop. If columns do not save, check edit permissions, validation errors and the total width. If a blog column is empty, check its source module and published content.

Open Settings > Integrity for table, hook, reference and cache-directory checks. Required menu tables include mprmegamenu_tab, mprmegamenu_tab_lang, mprmegamenu_tab_shop, mprmegamenu_column and mprmegamenu_column_lang. Clear relevant PrestaShop and CDN caches after a theme override changes.

Uninstall

Export or back up menu settings first. Uninstall through Module Manager. The uninstall SQL drops the five menu tables, clears module cache and removes menu entries. The module restores the native menu hook registrations it recorded. Check the header afterwards, especially if you changed native menu modules while Mega Menu was installed.

Compatibility

Requires PrestaShop 1.6.1 or later and PHP 7.1 or later.

Questions

1

What customer context does Mega Menu use?

Mega Menu uses the current customer and cart context for category access and product prices. It stores menu configuration, translations, shop assignments, columns and caches. Customer-specific product panels are rendered for the current request rather than stored as customer snapshots.

Known Issues

19

Size filter links

ResolvedUpdated:
Fixed in: 2.21.3
Fixed size chips in the menu not filtering correctly with Filter Revolution.

Submenu tab opening

ResolvedUpdated:
Fixed in: 2.21.3
Fixed submenu tabs failing to open with themes that provide their own menu behavior.

Incomplete product cards

ResolvedUpdated:
Fixed in: 2.21.3
Fixed menu product cards remaining as names without prices when delayed details cannot load.

Menu pictures after updates

ResolvedUpdated:
Fixed in: 2.21.3
Fixed missing menu pictures after a release update and improved product column alignment.

Save and stay cache refresh

ResolvedUpdated:
Fixed in: 2.21.3
Fixed Save and stay leaving the old menu visible instead of clearing the menu cache.

Mobile cards and fallback links

ResolvedUpdated:
Fixed in: 2.14.0
Fixed product cards disappearing during mobile menu reloads and kept all links reachable without scripts.

PrestaShop 9.1 installation

ResolvedUpdated:
Fixed in: 2.14.0
Fixed installation being blocked on supported PrestaShop 9.1 patch releases.

Native listing price consistency

ResolvedUpdated:
Fixed in: 2.14.0
Fixed menu product prices differing from the shop's native product listings.

PrestaShop 9 menu administration

ResolvedUpdated:
Fixed in: 2.14.0
Fixed menu administration tabs returning page-not-found errors on PrestaShop 9.

Changed product pictures

ResolvedUpdated:
Fixed in: 2.14.0
Fixed menu cards retaining old pictures after a product image changes.

Mobile back navigation

ResolvedUpdated:
Fixed in: 2.14.0
Fixed menu reloads losing the current level and breaking the Back action.

Menu background styling

ResolvedUpdated:
Fixed in: 2.6.19
Fixed an unwanted solid brand-color band behind the menu bar.

Cached navigation links

ResolvedUpdated:
Fixed in: 2.6.19
Fixed account, contact and CMS shortcut links becoming stale in cached menus.

Menu links in other languages

ResolvedUpdated:
Fixed in: 2.6.19
Fixed custom tabs and column links pointing to the wrong language on multilingual shops.

Missing translations

ResolvedUpdated:
Fixed in: 2.6.9
Completed missing translations in the module interface.

Classic theme menu placement

ResolvedUpdated:
Fixed in: 2.6.9
Fixed the mega menu not replacing the default menu in the Classic theme header.

Desktop HTML columns

ResolvedUpdated:
Fixed in: 2.6.7
Fixed HTML columns not appearing correctly in desktop hover dropdowns.

Mobile drilldown navigation

ResolvedUpdated:
Fixed in: 2.6.7
Improved mobile drilldown controls so nested navigation is easier to use.

Resource tab switching

ResolvedUpdated:
Fixed in: 2.6.7
Fixed switching between resource tabs in dropdown menus.

Feature Requests

11

Implemented

Multi-level mobile navigation from HTML menu columns

Implemented
Builds mobile drill-down navigation from supported structures in existing HTML menu columns. Nested links are reused without maintaining a separate mobile menu tree.

Multilevel mobile menus

Implemented
Build multilevel mobile navigation from the menu's HTML columns.

Theme-aware menu styling

Implemented
Adapt menu styling to the active shop theme.

Content and blog navigation

Implemented
Include CMS category trees and separate resources and blog tabs in the menu.

Visual resource menus

Implemented
Display resource tab icons and blog category cards in dropdown menus.

Modern menu images

Implemented
Serve available AVIF and WebP images for menu product and blog category cards.

Cascading category menus

Implemented
Display cascading category rails with separate content panes.

Knowledge base guide tiles

Implemented
Show knowledge base articles as guide tiles in the menu.

On-demand mobile levels

Implemented
Load deeper mobile navigation levels as the menu is about to open.

Links-only subcategories

Implemented
Choose a compact links-only presentation for submenu subcategories.

On-demand menu details

Implemented
Load menu prices and badges when visitors open the relevant panel, reducing initial page work.

Changelog

v2.6.82026-05-27

  • AddedAdd theme-aware megamenu styling
  • AddedCategorize mega menu resources
  • AddedMulti-level mobile menu from HTML column data
  • AddedUse displayMobileLanguageSelector hook for locale modal
  • Addedcomplete FR/DE/ES/IT/PL translations
  • ImprovedCache rendered mega menu output
  • ImprovedRemove version query string from asset registration
  • ImprovedDefer setMenuOffset to offcanvas open event
  • FixedStabilize mobile mega menu install readiness
  • FixedMatch visual tab sidebar design
  • FixedFlatten visual tabs mobile links
  • FixedRender visual tab menus as component
Older releases

v1.3.02026-04-20

  • AddedAdd icons to Resources tabs + blog category grid dropdown
  • AddedAdd CMS category tree support and Resources/Blog tabs
  • AddedPopulate tab children from category tree for submenu rendering
  • Addedself-healing integrity checks for automatic diagnostics and repair
  • Addedautomatic theme detection for Classic and Hummingbird style compatibility
  • AddedLicense management tab with key management and renewal options
  • Addedcomplete FR/DE/ES/IT/PL translations
  • FixedRender HTML columns in submenu dropdown and add desktop hover handler
  • FixedUse executeS instead of getValue for SHOW TABLES LIKE (PS 9.1 compat)
  • FixedAdd uninstall SQL to properly clean up database tables on removal
  • Fixedvarious stability and compatibility improvements (10 fixes total)
  • Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns

v1.2.02026-02-21

  • Addedfull compatibility with PrestaShop 9.x and Hummingbird theme
  • Addedsticky menu option: navigation bar stays visible on scroll with configurable offset
  • ImprovedHummingbird theme integration: dropdown inherits Bootstrap 5.3 spacing tokens
  • Fixedmega menu panel overflowing viewport on screens narrower than 1200px
  • Addedproduct card widget: display featured products with image, name, and price inside dropdown

v1.0.02025-11-29

  • Initialrelease: Mega Menu builder for PrestaShop
  • InitialMulti-column dropdown editor with drag-and-drop column and widget positioning
  • InitialSupports text, image, HTML, category list, and CMS link widget types
  • InitialResponsive breakpoint configuration: dropdown collapses to hamburger menu at configurable width

v1.1.02025-09-22

  • Addedbrand/manufacturer logo showcase block as a mega menu column type
  • Improvedmobile navigation: off-canvas drawer with nested accordion for subcategories
  • Fixedkeyboard navigation (Tab/Enter/Esc) not working correctly in multi-level dropdowns
  • Addedconfigurable dropdown open trigger: hover (desktop) or click

Demo

Test the full module before you buy

Buy a licence later and keep your settings.

  • Your 30-day demo Test it on your own shop for 30 days from the first install.
  • Ready demo shop Explore a ready demo shop in your browser.
  • No registration No account, email or store domain needed.
Launch demo shop

By downloading, you accept the demo terms and privacy policy.

By opening this demo you accept the demo terms and the privacy policy.

Loading...
Back to top