Magento 2 Banner Slider Extension

View Demo

Show promo banners anywhere in your store and let each one decide when it belongs on screen. Pick who sees it by customer group, category, product, or what is already in the cart, run it between the dates you set, and let the text fill itself in: a free shipping banner can name the exact amount a shopper still needs. Then check the grid to see how many people saw it and how many clicked.

  • show banners on any page, including login and checkout
  • target by customer group, category, product, or cart contents
  • use image, text, or combined banners
  • choose rotator, pop-up, lightbox, or slider
  • schedule banners by date and time
Marketplace Approved
Hyvä
Magento Cloud
GraphQL
WCAG
Compatible with:
Community:
2.3.* - 2.4.9
Enterprise:
2.3.* - 2.4.9

Business Value

Turn any page of your store into a promotion slot you can schedule, target, and measure.

  • Opportunity: A promo banner is the strip, box, or pop-up that announces an offer: free shipping today, ten percent off a second item, a brand you are clearing out. It is the cheapest way to push shoppers toward whatever you want to sell next.
  • Problem: The offer changes every week, but the banner does not. Someone has to open each page, edit it, remember to take the promotion down afterwards, and then guess whether it did anything at all. Magento's own tools keep it that way: Page Builder, the drag-and-drop page editor, puts a banner inside one page, and Adobe Commerce adds Dynamic Blocks on top for audience targeting. Both of them edit page content, so the banner belongs to the page. Neither starts and stops a campaign on a schedule, and neither tells you whether anyone clicked.
  • Solution: Promo Banners treats a banner as a campaign instead of page content. Each banner exists on its own, decides which pages and which shoppers it appears for, runs between the dates you set, and reports its own impressions and clicks in real time.

Boost sales with banners

Promote products and services wherever they work best

Promo banner combining an image and a text offer on a Magento 2 storefront

You work with two things. A placeholder is a slot on the storefront: you decide which page it sits on and how it behaves. A banner is what appears in that slot. One placeholder can hold several banners, and each banner carries its own schedule and its own rules about who gets to see it.

From there, the extension works in five ways:

  • Place a banner anywhere on any page of your store
  • Show it only to the customer groups, categories, products, or cart contents you pick
  • Run it between the dates and times you set
  • Choose how it appears: rotator, pop-up, lightbox, or slider
  • Track impressions and clicks for every banner, in real time

Four display modes, or write your own

Choose how each banner appears, one setting per placeholder

A free shipping banner rotating at the top of the page while a watch promotion opens as a pop-up

Rotator shows one banner at a time, picked at random on every page load. Refresh the page and a different banner appears. Use it when you have several offers of equal weight and simply want them shared out.

Pop-up opens on top of the page once it loads. You choose the corner it appears in, the delay before it shows, and how many hours pass before it returns. Set it to appear only once and it never comes back for that shopper.

Lightbox covers the whole page behind a dimmed mask. You control the mask color, the close button text, the delay, and the same re-appear interval.

Slider also holds several banners, but where a rotator swaps them only when the page reloads, a slider cycles them in front of the same visitor. Turn on autoplay and set the interval between slides, loop back to the first one, show previous and next buttons with your own labels, and add the row of dots underneath. Slides load only as they are needed, so a slider further down the page costs nothing until someone scrolls to it.

If none of the four fits, add a fifth. Any banner template your developer drops into the theme shows up in the Display mode list on its own, without hooking into the extension at all. The user manual walks through a slider setup step by step.

Control who sees your banners

Match the offer to the shopper instead of showing it to everyone

Banner visibility settings with store views and customer groups selected in the Magento admin

Every banner carries its own set of conditions, and they go deeper than a page match. Target by page (its type, or its address), by category, by product attributes, and by what is already in the cart. A banner can appear only for shoppers who have one item in their basket, or only on products from a single brand, or only on URLs that contain a search term.

On top of conditions, each banner is limited to the store views and customer groups you select: store views are the separate storefronts you run, usually one per country or language, and customer groups are the buyer types you have set up, such as retail and wholesale. That is how one placeholder serves a different message per region, per language, and per price group, and how a wholesale offer stays invisible to retail shoppers.

Cart conditions are the ones worth planning around: they pair naturally with a cart price rule, Magento's own discount mechanism, so the banner that advertises the discount appears exactly when the rule is about to apply.

Banner content that updates itself

Write it once in the Magento editor and let the numbers fill themselves in

Banner content field in the default Magento editor, with the Show / Hide Editor button for raw HTML

A banner can be a graphic, a line of text, or both in one block. You build it in the default Magento content editor, and if you would rather write the markup yourself, the Show / Hide Editor button drops you straight into HTML and CSS.

Content can also be dynamic. Write a placeholder for a number into the text and it fills itself in per shopper. Type "You are {{var freeShippingLeft}} away from free delivery" once, and a shopper who is $12 short reads exactly that, while the next one reads their own figure. The cart subtotal and the free shipping threshold work the same way, as does every standard Magento variable.

Put a banner on any page

Not just the home page, the catalog, and the cart

List of predefined banner placeholders with their display modes and page positions

You choose where each placeholder sits. Pick the page from the Display on list, then the spot on it: header, main content, sidebar, footer, and so on. Magento 2.4 comes with 95 page types and every one of them is on that list, each offering several spots of its own. Modules you install add their own page types, so the list grows with your store.

That includes places most stores never use. A banner can greet customers before they even sign in, because the login form is a page type like any other. So are the sign-out page and the password recovery form. So are contact, about us, and delivery pages, alongside the usual home page, catalog, and shopping cart.

Creating a new banner placeholder and assigning a banner to it in the Magento admin

If the spot you need is not on the list, it can be defined by hand: your developer points the placeholder at an exact position in the page layout and it renders there. Each placeholder also takes its own CSS, which is usually enough to fit a banner into a custom theme.

Different regions often need different slots as well. Placeholders respect store views, so a store running on geolocation-based store switching can carry a separate set of banners per country without duplicating campaigns.

See it running in the frontend demo.

Control banner time

Start and finish a promo campaign without being at the keyboard

Active from and Active to fields scheduling a banner by date and time

Set Active from and Active to for every banner, down to the hour. A flash sale that opens at 09:00 and closes at 23:00 does that on its own, and nobody has to remember to switch the banner off afterwards.

Because the schedule belongs to the banner rather than to the page, a campaign can be prepared weeks ahead and left alone. Placeholders keep serving whichever banners are in season at that moment.

Most important banners go first

Decide what wins when two campaigns claim the same slot

Priority field on a banner, used to order banners competing for the same placeholder

Give each banner a priority. When several banners match the same conditions at the same time, the highest priority is displayed first, so a seasonal campaign can override an evergreen one for a week and hand the slot back afterwards.

See what actually works

Impressions and clicks per banner, not guesses

Banner grid showing impressions, clicks, and click-through rate for each banner

The banner grid shows how many unique visitors saw each banner and how many of them clicked, with the click-through rate alongside. Numbers update in real time, with no cron job to configure, so a change made this morning can be judged this afternoon.

Two placements for the same offer stop being a matter of opinion: run each for a week and compare the click-through rates in the grid. Collection can be switched off entirely if you would rather not store the data.

Built for the stack you already run

Hyvä, headless, multi-language, and multi-admin stores

The rest of this section is for whoever looks after your store's code. If your storefront is a standard Magento theme and one person runs the admin, everything above already covers you.

Hyvä. The extension works on Hyvä storefronts. If your banners use a schedule or cart price rule conditions, install the free companion package that ships with the module: it swaps the default loader for a fetch-based one so those placeholders render. Without it they stay empty on Hyvä.

Headless. A GraphQL API returns placeholders with their banners in the context of the current page, product, category, or cart, and two mutations report impressions and clicks back, so a PWA storefront keeps the same analytics as a Luma one. A REST API covers banners and placeholders for scripted or scheduled updates. Both are documented in the user manual.

Languages. The storefront and admin interface ship translated into 16 languages, so a multi-language store does not need a glossary to run campaigns.

Permissions. Banners, placeholders, and the extension settings are three separate admin role resources. A marketing team can create and edit banners while configuration stays with whoever owns the store.

Page speed. Banners are built to stay out of the way of Core Web Vitals. Placeholders that load over AJAX are told not to fill your cache with single-use entries, and a placeholder above the fold can be given a fixed height so it does not shift the layout while it loads.

Put your next promotion where shoppers will see it, and find out whether it worked.
No hidden fees
Lifetime access to source code
Access to free support and updates for 1 year
Updates and support prolongation - $90

Pay today $149 for the first year.

Then $90 for updates and support services per year.

Cancel anytime.

30 days money back guarantee
See it in action!
Pick a quick tutorial to learn about various aspects of this extension
Customer Reviews 9
Earn points for your review about this extension modules. $1 = 10 points
Write Your Own Review

check-circle You submitted your review for moderation.

BBMC Verified Buyer
From Carol Stream, United States
Using the module for over 3 years
Put the right promotion in the right place at the right time
Promo Banners is much more flexible than the name initially suggests. We can create different types of promotional content and control where, when, and under what conditions it appears.

Content can be displayed inline, as popups, or in other placements throughout the site. Rules make it possible to show a promotion only when it is relevant—for example, reminding a customer about an offer or presenting additional information associated with products they are already considering.

Scheduling is particularly useful for holidays and time-limited sales, and the built-in analytics help determine whether a placement is actually accomplishing anything.

My only frustration is that locating the correct identifiers for certain custom placements can sometimes take more work than expected.
Also installed:
Help Desk MX,  Knowledge Base,  Full Page Cache Warmer,  Advanced Product Feeds,  Follow Up Email,  Reward Points,  Elastic Search Ultimate and 27 more
BB Verified Buyer
From Carol Stream, United States
Using the module for over 3 years
Anywhere on the site, whenever you need it.
This extension is a total solution for banners. Many other banner extensions limit you to a single kind of pop up or a focused location, such as checkout. With this, you can literally show a banner anywhere based on quite a bit of selectable conditions you build yourself.

The power to have so many conditions is also great.

I wish it offered prebuilt templates, but other than that, it is a must have.
Also installed:
Help Desk MX,  Knowledge Base,  Full Page Cache Warmer,  Advanced Product Feeds,  Follow Up Email,  Reward Points,  Elastic Search Ultimate and 27 more
Josh Verified Buyer
From Durban, South Africa
Using the module for over 3 years
Good module
This module does what it says and the code is very clean.
Also installed:
Advanced Reports,  Advanced Product Feeds,  Full Page Cache Warmer,  Layered Navigation,  Knowledge Base,  Customer Segmentation Suite,  Affiliate and 10 more
Erkan Verified Buyer
From Istanbul, Turkey
Using the module for over 1 month
Nice extension
I didn't give 5 stars because it have to have delay option.
Also installed:
Improved Sorting,  Google Tag Manager,  Reward Points
Erkan Verified Buyer
From Istanbul, Turkey
Using the module for over 1 month
Nice extension
I didn't give 5 stars because it have to have delay option.
Also installed:
Improved Sorting,  Google Tag Manager,  Reward Points
Manual & Support
Need more help?

Save time by starting your support request online and we'll connect you to an expert.

Frequently asked questions
chevron-down chevron-right

How do I add a banner slider to my Magento 2 store?

Create a placeholder, set its Display mode to Slider, and assign two or more banners to it. The slider settings live on the placeholder: autoplay and its interval, looping, previous and next buttons, and pagination dots.

The user manual walks through the whole setup with screenshots.

chevron-down chevron-right

Is it possible to use HTML when configuring a banner?

Yes. Banner content is edited in the default Magento editor, and the Show / Hide Editor button switches to raw code so you can write the markup yourself.

Any HTML and CSS you add is rendered as is. Switch the editor back on to preview the result.

chevron-down chevron-right

Is it possible to show a banner on the product pages of a specific category?

Yes. Open the Conditions tab on the banner, add the condition "Category is one of", and specify the category IDs. The banner then appears on product pages in those categories only.

chevron-down chevron-right

Is it possible to add a banner to the mini cart?

No. Promo Banners inserts placeholders into layout containers on the server, and the mini cart is rendered in the browser from Magento's customer data, so there is no container to attach a banner to.

For an offer inside the mini cart, use Extended Shopping Cart Rules for Magento 2 instead.

chevron-down chevron-right

Does the Promo Banners module support responsive layouts (desktop, tablet, and mobile)?

Banners inherit whatever your theme does, and the content field accepts full HTML and CSS, so a banner can be made responsive the same way the rest of your storefront is.

The module does not manage separate images per device: if you need a different crop on mobile, write it into the banner content or into the placeholder's own CSS. The manual has a stylesheet you can start from.

chevron-down chevron-right

Does Promo Banners support GraphQL queries?

Yes. GraphQL support ships as a separate package, free of charge for anyone with a Promo Banners license, and installs through Composer.

The API returns placeholders with all their banners, filtered by position and by the current page context: URL, product, category, or cart. Two mutations report impressions and clicks back, so a headless storefront keeps the same banner analytics as a standard one. See the GraphQL API reference for the full schema.

chevron-down chevron-right

The banner grid shows zero impressions and clicks. What should I check?

Statistics are collected only when the option is switched on. Go to Stores > Configuration > Mirasvit Extensions > Promo Banner and enable "Enable collecting banner stats", then clear the cache.

Once it is on, an impression is counted the first time a unique visitor sees the banner, and a click is counted when they follow its link.

chevron-down chevron-right

Can Promo Banners be integrated with the GeoIP extension?

There is no direct integration between the two modules, and none is planned.

You can still run banners by location. A store that switches store views by country can assign a different set of banners to each store view, and a banner condition on the page URL covers the cases where a country is reflected in the address.

Changelog
Version 1.3.7Jul 20, 2026
Fixed the placeholder loader still flooding the cache and CDN on Hyvä and Mage-OS stores. The 1.3.6 fix told caches not to store loader responses, but on Hyvä/Mage-OS setups (with bfcache enabled) that instruction was being removed before it reached the browser, so single-use loader responses kept piling up. The "do not store" instruction is now applied in a way those stores can't strip, so your cache and CDN stay clean.
Version 1.3.6Jul 16, 2026
Fixed the placeholder loader from flooding the Full Page Cache and CDN with single-use entries. Because each loader request uses a unique URL and returns rotated, rule-targeted content, every response was being stored as a cache entry that could never be reused (tens of thousands per day on busy stores). The loader now tells caches not to store its responses, keeping your cache clean without changing what visitors see.
Version 1.3.5Jul 8, 2026
Mixpanel banner tracking — banners now report banner_impression (when a banner becomes visible) and banner_click events to Mixpanel through the Mirasvit interaction tracker, with the banner ID and name attached. This works alongside the module's built-in impression stats and lets you analyze banner performance in Mixpanel.
Added storefront and admin translations for 15 additional languages (Arabic, Czech, German, Spanish, French, Italian, Japanese, Dutch, Polish, Brazilian and European Portuguese, Swedish, Turkish, Ukrainian, and Simplified Chinese).
Fixed missing and incorrect translations for interface strings.
Fixed banners with a schedule or cart price rule conditions staying empty on Hyvä storefronts — the required mirasvit/module-banner-hyva package is now declared as a suggested dependency so it can be installed.
Version 1.3.4May 27, 2026
Removed legacy PHP-serialize branches in the Banner and Placeholder save controllers — rule conditions now always go through Magento's Json serializer.
Added a one-time data patch that converts any legacy PHP-serialized rule conditions and placeholder display data in mst_banner_banner and mst_banner_placeholder to JSON on setup:upgrade. Stores already on JSON are unaffected.
Version 1.3.3May 4, 2026
Fixed the REST API for banners and placeholders failing with LogicException: The BannerSearchResultsInterface class doesn't exist due to incompatible type declarations in repository interfaces
Reasons to choose Mirasvit
Client focusing and satisfaction

These are our primary. A major portion of our new clients come from referrals from our existing clients. Our professional team of developers, marketers and support staff have invested the best knowledge and experience in the field into our work, so you know you can come back to us again and again.

Remarkable support

One year free and high quality support. We go to great lengths to provide maximum satisfaction with every module you have purchased in our store. By helping you with installation, configuration, answering your every question, we do all our best to eliminate any possible problems.

Risk-free Investment

30-days money back guarantee. If you are not satisfied with our extension performance for any reason, we provide a full refund.

Constant improvements and upgrades

We constantly add new features to all our modules, and are always interested in hearing your opinion and implementing your suggested features in our future developments.

Comprehensive Documentation

We provide an expanded user guide for every aspect of our extension, so you can find answers for all your burning questions.

Unencrypted source code of our products

You can customize extension according to your needs and requirements.

Usability and Performance

The Module is easy to install and upgrade, just follow our step-by-step user guide. Additionally, the extension is ready to use with the Hyvä theme.

Ready for Magento Cloud

No core modifications. The extension has been tested in a Magento Cloud environment and is fully compatible with it.

Loading...