Skip to main content

Changelog

1.4.2 (2026-11-04)

Improvements

  • Visitors can no longer be sent to an outside website through a tampered return address on a store or currency switch.
  • Disabled store views are no longer offered as a redirect target.
  • Opening the GeoIP rules grid now requires the GeoIP admin permission.
  • Rule names and values are now shown safely in the rules grid.

1.4.1 (2026-10-26)

Improvements

  • ⚠️ Requires Mirasvit Core 2.0 and the new GeoLocation module — Visitor country detection now comes from a separate package, mirasvit/module-geo-location (module Mirasvit_GeoLocation), and is no longer part of Mirasvit Core. Composer installs it for you when you upgrade GeoIP Redirect, along with Mirasvit Core 2.0.0 or later. Run bin/magento setup:upgrade after updating so the new module is enabled. Redirect rules, popups and country detection work as before.
  • ⚠️ For developers: Mirasvit\Core\Service\GeoLocationService and Mirasvit\Core\Service\GeoLocationModuleRegistry are now Mirasvit\GeoLocation\Service\GeoLocationService and Mirasvit\GeoLocation\Service\GeoLocationModuleRegistry. Update any custom code, plugins or di.xml entries that refer to the old class names.

1.4.0 (2026-10-19)

Features

  • Hyvä support now ships with the extension — The companion package mirasvit/module-geo-ip-hyva is gone: the redirect popup and the script behind store, currency and redirect rules are part of GeoIP Redirect itself, and one template now serves Luma and Hyvä alike, on every supported Magento version including 2.3. There is no longer an extra package to find and keep in step, and a Luma store gets nothing it does not use. Composer removes the companion package by itself when you upgrade, and a project composer.json that still requires mirasvit/module-geo-ip-hyva keeps installing without errors — GeoIP Redirect now stands in for it.

Improvements

  • ⚠️ On Hyvä, rebuild the theme styles after upgrading — The popup's Hyvä styling now comes from this module's own Tailwind source instead of the companion package's inline styles, so run these once after setup:upgrade, then deploy static content as usual:

    bin/magento hyva:config:generate
    cd vendor/hyva-themes/magento2-default-theme/web/tailwind && npm run build

    For a custom Hyvä theme, run npm run build in that theme's web/tailwind directory instead. Until then the popup still opens in the right place, with a working close button and without scrolling the page, but unstyled.

  • ⚠️ Theme overrides move to one template — The popup is Mirasvit_GeoIp::js.phtml on both themes. An override of Hyva_MirasvitGeoIp::js.phtml in a Hyvä theme, or of the Mirasvit_GeoIp/js/popup / Mirasvit_GeoIp/js/process scripts (or a RequireJS mixin on them) in a Luma theme, is no longer read — silently, with no error. Move such customisations onto Mirasvit_GeoIp::js.phtml. The Hyva_MirasvitGeoIp module no longer exists.

  • ⚠️ For developers: the storefront script is plain JavaScript now, with no jQuery, Knockout or Alpine. The window events it listens to and fires keep their names (mstGeoIpPopupOpen, mstGeoIpProcessRedirectAccept, mstGeoIpProcessRedirectDone, …), and a jQuery $(window).on(…) handler still receives them, but any payload is now in event.detail. Block\Js::getJsConfigProcess() and getJsConfigPopup() are replaced by getConfigJson(), the popup config no longer carries isShowRequest, and the block's constructor no longer takes WorkflowService.

  • On Hyvä, the popup now opens the way it always did on Luma: without AJAX mode it follows the visitor's cookie, so it works behind the full-page cache instead of being decided once and served to every visitor of a cached page. Accept switches the store directly, as on Luma, the popup text shows the formatting entered in the admin instead of the raw tags, the popup can be closed with its close button or the Escape key, and it opens above the page header — it used to be able to open underneath one.

  • On Luma, the protection against a broken redirect cookie that Hyvä stores received in module-geo-ip-hyva 1.0.2 now applies too: a cookie without a destination is ignored instead of reloading the page in a loop, and Accept falls back to the store's own accept step instead of opening a /null page.

  • The popup's mst-geo-ip CSS class is present from the first frame, so custom popup styles no longer flash in after it opens.

Fixed

  • A rule with both Change store and Redirect to URL now takes the visitor to that URL in the new store — /sale.html on a German rule opens the German store's sale page. It used to switch the store and stay on the current page (or the store's home page), ignoring the redirect URL, unless a ?___store= parameter was added to it by hand. Enter the URL without a store code; it is matched to the target store's own address of that page. This works whether the store is switched on page load, in AJAX mode or from the popup's Accept button, and a currency or redirect rule that runs afterwards keeps the visitor on that page in the new store.

1.3.5 (2026-10-08)

Improvements

  • A Geo IP rule whose stored conditions or actions can't be read (for example, after the rule's database row was edited by hand or by a third-party import) is now reported through Mirasvit Core's degradation reporting, with the rule ID. Before, it was quietly treated as empty with no trace. The rule still matches nothing, so visitors are never redirected on settings nobody can verify.
  • Removed an unused storefront popup template that was never displayed. Its leftover button handlers called functions that don't exist in the module. The geo-redirect popup's Accept and Decline buttons work exactly as before. The now-unused "Reject geo-location based recommendations" text was dropped from all translation files.

Fixed

  • Fixed same-page store redirects dropping the URL query string. When a visitor was redirected to the same page in their geo-matched store view, parameters such as ?utm_source=…, ?omnisendContactID=… and other campaign or tracking parameters were lost. They are now carried over for every page, including the home page (/?utm_source=x). Magento's store-switch parameters (___store, ___from_store, uenc) are removed from the carried query so they can't send the visitor back to the original store.
  • Fixed the Geo IP rules grid (System IP Geolocation Redirect IP Geolocation Rules) forgetting your column visibility, filters and sorting after you left the page. The grid now saves its view state, as other admin grids do.
  • Fixed a PHP warning logged on every storefront request when a rule with the "URL parameter" source was saved with a parameter name but no value. Such a rule now matches any URL that contains the parameter, whatever its value.

1.3.4 (2026-07-28)

Features

  • Excluded URLs — New setting under Stores Configuration Mirasvit Geo IP Limitations that lists pages where geo processing is skipped entirely: no store or currency switch, no redirect, no restriction and no popup — and the visit is not counted as the visitor's first visit. Enter one path pattern per line, using * as a wildcard (for example /contact or /promo/*); matching ignores letter case and a trailing slash. Prefix a pattern with a store code (/en_us/contact) to exclude the page in that store view only; without a prefix it applies to every store view of the website. Patterns that would match every page (/ or /*) are rejected on save, so the module cannot be switched off by accident.

Improvements

  • Translatable admin and storefront text — Every label, field description and popup message can now be translated, including the field comments on the Geo IP configuration page and the accept/reject button labels read out by screen readers in the redirect popup. Ready-made translations ship for 15 locales: Arabic, Chinese (Simplified), Czech, Dutch, French, German, Italian, Japanese, Polish, Portuguese (Brazil and Portugal), Spanish, Swedish, Turkish and Ukrainian.
  • Failed country lookups are now written to var/log/mirasvit/geo-ip.log. Previously, when the GeoLite2 database was unavailable or the ip-api.com service did not respond, visitors were simply left unmatched with no trace of the cause — now the reason is recorded while visitors keep browsing normally.
  • ⚠️ Requires Mirasvit Core 1.7.15 or later (installed automatically via Composer).

1.3.3 (2026-05-05)

Improvements

  • Country and Browser Locale condition — New rule condition that matches visitors on both their country and browser locale simultaneously.

Fixed

  • Infinite redirect loop on stores with sub-folder base URLs (e.g. /us/, /fr/) when "Redirect Destination" is set to "Same Page"
  • When a rule had both "Switch Currency" and "Redirect to URL" actions enabled, visitors were stuck in a redirect loop and the confirmation popup did not appear

1.3.2 (2026-04-14)

Improvements

  • Redirect destination — New setting under Stores Configuration Mirasvit Geo IP that controls where visitors land after a geo-redirect. "Home Page" (default) always sends visitors to the target store's home page. "Same Page" resolves the equivalent URL on the target store so visitors continue from where they were, with automatic fallback to the home page when no match is found.

1.3.1 (2026-04-06)

Fixed

  • When the module was disabled, its JavaScript was still injected into every page and fired AJAX requests

1.3.0 (2026-01-21)

Improvements

  • GeoLocation lookup has been moved to the Core module, which also provides automatic updates for the GeoLite2 database (free MaxMind account required for auto-updates).

1.2.17 (2025-12-29)

Fixed

  • The "Enable module" setting was not working at the website level
  • Added the ability to configure popup settings at the store level
  • Redirect with popup and "Ajax mode" disabled (only if "Redirect data storage" = "Cookie")
  • Popup is not shown for "Redirect to URL" action if "Ajax mode" is disabled

1.2.16 (2025-10-15)

Fixed

  • Expanded geoip2/geoip2 version range to ^2.0 || ^3.0
  • Issue with redirect in non-ajax mode

1.2.15 (2025-05-16)

Fixed

  • Issue with popup unique class mst-geo-ip
  • User agents specified in the ignore list are now case insensitive

1.2.14 (2025-04-25)

Improvements

  • Menu refactoring

1.2.13 (2025-04-14)

Fixed

  • Issue related to page styling after redirect in case of getting back to the previous page

1.2.12 (2025-02-10)

Improvements

  • Added new setting "Storage Lifetime"

1.2.11 (2024-07-30)

Fixed

  • Page styling issue when pressing browser back button after redirect

1.2.10 (2024-05-08)

Improvements

  • Support Mirasvit GDPR extension v1.4

1.2.9 (2024-04-24)

Improvements

  • Ability to choose redirect data storage (Session/Cookies)

1.2.8 (2024-03-19)

Improvements

  • Removed ___store parameter from URL

1.2.7 (2023-04-21)

Improvements

  • Ability to apply debugging to only one ip address

1.2.6 (2023-04-10)

Fixed

  • Compatibility with Hyva theme
  • Issue with displaying popup with redirect notice

1.2.5 (2023-01-31)

Improvements

  • Added support of Magento 2.4.6

Fixed

  • Compatibility with php8.1

1.2.4 (2022-08-19)

Fixed

  • Url on redirect

1.2.3 (2022-08-16)

Improvements

  • Ability to select location of remote ip address

1.2.2 (2022-06-24)

Fixed

  • Issue with premature hiding of messages

1.2.1 (2022-06-20)

Improvements

  • remove db_schema_whitelist.json

1.2.0 (2022-05-23)

Improvements

  • Migrate to declarative schema

1.1.6 (2021-10-12)

Fixed

  • Updated GeoLite2-City database

1.1.5 (2021-10-05)

Features

  • Redirect by url parameter

1.1.4 (2021-09-22)

Fixed

  • Added translation for the redirect popup message

Improvements

  • All the module settings are available for websites

1.1.3 (2021-09-01)

Improvements

  • Cloudflare compatibility

1.1.2 (2021-07-26)

Fixed

  • Issue with redirecting to another site when using multiple websites

1.1.1 (2021-03-26)

Fixed

  • Fixed issue with detecting locales
  • Issue when in the backend Rules grid the name of the selected Rule displayed incorrectly when deleting it from Actions

1.1.0 (2020-12-15)

Improvements

  • Redirect rules can be applicable for particular stores (24()

1.0.9 (2020-11-25)

Fixed

  • Fixed issue with detecting locales of some browsers

1.0.8 (2020-11-13)

Improvements

  • GeoLite database update

1.0.7 (2020-11-04)

Fixed

  • Fixed issue with redirect to store

1.0.6 (2020-10-30)

Fixed

  • Fixed store redirect issue

1.0.5 (2020-09-11)

Improvements

  • Small spelling fixes

1.0.4 (2020-08-10)

Features

  • Support of varnish cache

1.0.3 (2020-07-30)

Improvements

  • Support of Magento 2.4

1.0.2 (2020-06-09)

Fixed

  • Perform actions only for GET requests

1.0.1 (2020-02-27)

Fixed

  • Minor fixes

1.0.0 (2020-01-22)

Improvements

  • Initial release