Customer Extra Info (IP Ban): setup and help
Quick start
- Upload the module ZIP in Modules > Module Manager and open Configure.
- Enable Enable Data Collection and choose Track Guest Visitors.
- Choose Show Info on Orders and set Default Ban Message, then save.
- Log in as a test customer and verify the collected information in the back office.
- Add your trusted IP in IP Whitelist.
- Add a controlled test rule in Banned IPs with Ban Type, Active and an optional future Expiry Date.
- Verify the intended 403 response, then disable or remove the test rule.
Requires PrestaShop 1.6.1 or later and PHP 7.1 or later.
Setup manual
Install and configure collection
- Upload Customer Extra Info (IP Ban) in Modules > Module Manager.
- Open Configure to reach Settings.
- Review the collection and order-panel switches and save.
- Log in to the storefront as a test customer. Wait for the collector request, then inspect the customer in the back office.
- Add trusted addresses in IP Whitelist before testing a ban in Banned IPs.
Requires PrestaShop 1.6.1 or later and PHP 7.1 or later.
Settings
| Setting | Installed default | What it does |
|---|---|---|
| Enable Data Collection | Yes | Collects visitor technical information through storefront, login and account-creation hooks. Turn off to stop collection. |
| Track Guest Visitors | Yes | Allows collection for visitors who are not logged in. Associates a guest ID when available. |
| Enable IP Banning | Yes | Applies saved active ban rules to front-office requests. Turn off to suspend enforcement without deleting rules. |
| Show Info on Orders | Yes | Adds the customer technical-information panel on supported admin order pages. |
| Default Ban Message | Your access to this website has been restricted. If you believe this is an error, please contact the store administrator. | Set the multilingual default visitor message. A rule can override it. |
The module also installs TRACK_OS, TRACK_BROWSER, TRACK_SCREEN and TRACK_USERAGENT as 1. The collector reads them, but the current Settings form has no controls for them. They govern operating-system, browser/version, screen and raw user-agent storage. They do not suppress IP, country or device-type collection.
Check customer information
The customer panel shows the latest collected IP, country, operating system, browser/version, screen dimensions, device type and collection date, plus recorded IP history. When Show Info on Orders is enabled, the order panel uses the order's customer record.
The browser collector loads through displayHeader and requests the module's collect controller about 1.5 seconds after the page is ready. It sends window.screen dimensions, not viewport dimensions. With working sessionStorage it records a sent request once per browser tab session. If storage is unavailable it can try again on later pages.
Server-side collection also runs after successful customer login and new account creation. It suppresses a new row for the same IP and customer or guest within one hour. A later screen request can fill missing dimensions in an existing recent row. These recorded dates are not a continuous live-presence history.
Country detection tries Cloudflare's country header, then available PrestaShop GeoIP support, then the country cookie. It can return no country. Country rules depend on those values.
Add whitelist entries
Open IP Whitelist and add your trusted address or network:
| Field | New-entry value | What you do |
|---|---|---|
| IP Address | Empty | Enter an exact IP, wildcard pattern or supported IPv4 range. |
| CIDR Range | Empty | Enter an IPv4 subnet such as 203.0.113.0/24. |
| Label | Empty | Add an internal note such as Office IP or Developer VPN. |
Examples include exact 203.0.113.10, wildcard 203.0.113.* and CIDR 203.0.113.0/24. Whitelist matching uses the same IP matcher as bans. It runs before ban matching and overrides country and user-agent rules too.
Records store the shop context. Whitelist checks in multishop include the current shop and entries with shop ID 0. Ban rules with a positive shop ID apply only to that shop; 0 means all shops.
Add a ban rule
Open Banned IPs, add a rule and fill one matching criterion for your first test.
| Field | New-entry value | What you do |
|---|---|---|
| IP Address | Empty | Enter an exact address, wildcard such as 192.0.2.*, or IPv4 range such as 198.51.100.10-198.51.100.200. |
| CIDR Range | Empty | Enter an IPv4 subnet such as 192.0.2.0/24. |
| Country | Empty | Select a two-letter country code to match the detected country. |
| User Agent Pattern | Empty | Use case-insensitive plain text, such as BadBot, or slash-delimited regex such as /BadBot|Scraper/. |
| Ban Type | Full Block - Entire Store (full) |
Choose Checkout Only (checkout) or Login/Authentication Only (auth) to narrow enforcement. |
| Reason | Empty | Add an internal note. It is not the visitor message. |
| Custom Ban Message | Empty | Override Default Ban Message for this rule. |
| Active | Yes | Turn off to retain the rule without enforcing it. |
| Expiry Date | Empty | Set a future date/time for temporary blocking, or leave empty for no expiry. |
The stored values are full, checkout and auth. If several matching criteria are present in one rule, they act as alternative matches. They do not mean the visitor must match every field.
Full bans apply everywhere in the front office. Checkout scope matches controller names order, orderopc, cart, supercheckout, onepagecheckout and checkout. Account scope matches authentication, my-account, identity, registration and password. Scope follows the requested page controller; custom checkout or account routes must use the matching controller names.
A matching rule returns HTTP 403 Forbidden with the Access Restricted page. There is no redirect. Expired active bans are deactivated during a later ban check, not by a required cron job.
Verify and manage rules
Test from an address that you control while keeping your own trusted connection whitelisted. Confirm a full ban blocks browsing, a checkout ban affects the expected checkout controllers, and an inactive or expired rule no longer blocks that request. Confirm whitelisted requests pass.
The admin lists support filtering, edit/delete and export. The ban list includes bulk enable/disable. Review staff access to those module screens using PrestaShop employee profiles.
For a temporary checkout test, use an IPv4 range, Ban Type checkout, Active Yes and an expiry in the future. Dates earlier than the test time deactivate the rule.
Troubleshoot and customize
- If a ban does not apply, check Enable IP Banning, Active, expiry, scope, shop and whitelist matches first.
- Check the IP and country that the shop detects, especially behind a proxy. A browser's location or your expected public IP may differ from the request data used by the module.
- IPv4 ranges and CIDR use
ip2long. Use exact matching for IPv6; the module does not implement IPv6 subnet matching. - Regex matching runs only when the first and last characters are
/. A pattern with flags after the closing slash is treated as plain text by this detection rule. - If customer screen information is empty, inspect the delayed collect request and JavaScript errors. A blocked request or an already-set sessionStorage flag can prevent a new request.
- If an order panel is absent, check Show Info on Orders and your admin page's hook support. Collection history starts when you enable collection; there is no historical-device import.
The module uses displayHeader, actionFrontControllerInitBefore, displayAdminCustomers, displayAdminOrder, displayBackOfficeHeader, actionAuthentication and actionCustomerAccountAdd. Theme/admin stylesheet adjustments can target .mprceiipban-panel, its .panel-heading, .badge and table cells.
Disable or uninstall
Turn off Enable Data Collection and Enable IP Banning separately to suspend those actions. Uninstall from Module Manager removes module configuration, admin entries and the module schema, including collected information, bans and whitelist records. Back up those records first if you need them later.
Questions
No questions about this module yet
Ask anything about installation, compatibility or setup. Answers appear here.
Known Issues
11
IPv6 addresses not matched by IP range ban rules
Ban rules using CIDR notation (e.g., 2001:db8::/32) are ignored because the comparison function only handles IPv4 ranges.
Resolution note
Added IPv6 CIDR matching using PHP's inet_pton() for both IPv4 and IPv6 address comparisons.
IP-only ban rules could not be saved
Save and stay skipped validation or left the page
Administration labels remained in English
Module could not load on PHP 7.1
Security hardening
Module classes failed to load
Translated module text was damaged
Existing module settings were not migrated correctly
Administration failed with shared components
Administration list filters did not work reliably
Feature Requests
4
Implemented
IPv4 subnet bans with CIDR notation
Multilingual administration
One-click updates
Protection module coordination
Changelog
v2.0.62026-07-15
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedMigrate module state to MPR config
Older releases
v3.4.02026-04-20
- Addedadmin menu management via MenuInstaller for streamlined module setup
- AddedLicense management tab with key management and renewal options
- Addedself-healing integrity checks for automatic diagnostics and repair
- Addedcomplete FR/DE/ES/IT/PL translations
- Improvedadmin list columns with visual badge indicators and multiselect filters
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v3.3.12026-02-14
- AddedPrestaShop 9 and Hummingbird theme compatibility
- FixedIP ban check not triggering on PS 9 when checkout uses the new Address controller route
- Improvedsuspicious activity detection heuristics for headless browser and scripted fingerprints
- Fixedback-office customer detail panel throwing a notice when customer has zero orders
v3.3.02025-11-27
- AddedCIDR range support for IP bans enabling blocking of entire subnets (e.g. /24)
- Addedautomatic temporary ban after configurable number of consecutive failed login attempts
- Improvedban reason tooltip in back-office customer list for at-a-glance context
- Fixedban not enforced on account registration when PS guest checkout is disabled
v3.2.12025-09-14
- FixedPHP 8.3 deprecation notice in browser fingerprint user-agent parser
- ImprovedIPv6 address normalization to prevent ban bypass via abbreviated notation
v3.2.02025-07-31
- Addedconfigurable ban duration: permanent, temporary with hours/days, or session-only
- Addedexport of full IP ban list to CSV for compliance archiving
- Improveddetection of VPN and proxy IP addresses via configurable ASN blocklist
- Fixedsession info panel not displaying on PS 1.7.8 back-office customer edit page
v3.1.02025-05-19
- Addedcustomer technical details panel in back office showing OS, browser, screen resolution, and language
- Addedban history log recording administrator name, timestamp, and reason for each action
- ImprovedIP display with country flag and ISP name alongside the IP address
- Fixedcustomer detail panel failing to load when PS back-office lazy load is active
v3.0.12025-03-12
- FixedIP resolution failing behind Nginx reverse proxy when X-Forwarded-For header is not normalized
- Improvedmultistore compatibility: bans can be applied shop-wide or scoped to a single shop
v3.0.02025-01-08
- Redesigned ban management interface with dedicated IP ban list and full-text search
- Addedone-click ban from customer list, order detail, and guest checkout views
- Addedcustomizable ban message displayed to blocked visitors
- Migrated module database schema to natively support IPv6 addresses
- Addedsuspicious activity flag on customer record with configurable alert thresholds
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.
By downloading, you accept the demo terms and privacy policy.
By opening this demo you accept the demo terms and the privacy policy.