EU OSS VAT – GeoIP VAT-Included Prices (MaxMind)

Overview

EU OSS VAT – GeoIP VAT-Included Prices (MaxMind) is a PrestaShop module that automatically displays prices with the VAT rate of each visitor's country, without any multi-shop configuration. Thanks to GeoIP detection, your customers immediately see the correct VAT rate as soon as they land on your site, delivering a transparent shopping experience that complies with the European OSS scheme.

Without this module, PrestaShop displays your country's VAT rate to all visitors by default. The price only changes at checkout when the customer enters their delivery address — a frequent source of confusion and cart abandonment. With EU OSS VAT – GeoIP VAT-Included Prices (MaxMind), a French visitor sees prices with 20% VAT, a German visitor with 19%, a Belgian visitor with 21%, and so on for all European countries.

Key benefits:

  • Instant display of local VAT for every European visitor
  • Automatic creation of all EU taxes in just a few clicks
  • No multi-shop configuration required
  • Customizable country selector with real-time preview
  • Compatible with PrestaShop 8 and 9

Features

Automatic country detection via GeoIP

The module identifies the visitor's country through their IP address using the MaxMind GeoLite2 database. Prices are instantly displayed with the corresponding VAT rate, without any action from the visitor. If detection fails, the default country configured in the module is used.

Automatic European tax creation

A 3-step wizard guides you through the complete tax setup for all European Union countries. Select your tax rule groups, choose the relevant countries, and the module automatically creates all the necessary taxes and rules in your PrestaShop database. Each country displays its status: configured (green), partial (orange), or not configured (red).

Front-office country selector

A built-in selector allows visitors to manually change their country at any time. Prices update automatically. For logged-in customers with multiple addresses in different countries, the selector only displays their countries and allows them to switch between their addresses.

Templates and display customization

Five predefined templates are available: Minimal (country name only), With flag (flag + name), Complete (flag + country + VAT), Compact (flag + ISO code), and Custom. Choosing a template pre-fills the options, but every detail remains fully customizable. A real-time preview lets you visualize your changes instantly.

Additional features

  • Customer group restriction: Limit the feature to specific groups (Visitor, Guest, Customer) or apply it to all by leaving the selection empty
  • Custom hook: Place the selector anywhere in your theme via Smarty ({hook h='displayWeprestaOSS'}) or Twig ({{ renderhook('displayWeprestaOSS') }})
  • Advanced country management: Enable only the countries you ship to, with tax status indicators
  • Configurable cookie: Set how long the visitor's choice is remembered (value 0 for session cookie only)
  • Responsive: Works perfectly on mobile and desktop

Installation

  1. Download the module from your WePresta customer area
  2. In the PrestaShop back office, go to Modules > Module Manager
  3. Click Upload a module and select the ZIP file
  4. Access the module configuration to set up your taxes

Configuration

General tab

Set the default country used when GeoIP detection fails or no manual selection has been made. By default, the PrestaShop shop country is used — choose the country where most of your customers are located. You can also restrict the feature to specific customer groups: leave empty to apply to all, or select specific groups.

Taxes tab

A 3-step workflow to automatically create all European taxes:

  1. Tax rule groups: Select existing groups or let the module create new ones. If your products are already assigned to tax groups, select them to add the European rules. Rates marked "Optional" can be skipped if you don't need them.
  2. Country selection: View all countries with their VAT rates (standard, reduced, reduced 2, super reduced) and their configuration status. Select only the countries you ship to.
  3. Confirmation: Review the action summary (number of taxes and tax rules to create) before validating. Click Execute to launch the creation. You can then verify in International → Taxes that everything was created correctly.

Countries tab

Manage which countries appear in the front-office selector. A country is only displayed to visitors if it meets 3 conditions: active in the module (Countries tab), taxes configured (Taxes tab), and country enabled for delivery in PrestaShop (International → Localization → Countries).

Display tab

Fully customize the appearance of the country selector. Choose its position via a standard PrestaShop hook (displayNav1, displayNav2, displayTop…) or a custom hook. Select a base template from the 5 available options, then adjust every detail to your needs. The real-time preview on the right side of the screen instantly reflects your changes.

Advanced tab

Configure the cookie duration (in days) to remember the visitor's choice. A value of 0 creates a session-only cookie, deleted when the browser is closed.

Set up GeoIP geolocation by creating a free account on maxmind.com and generating a license key. The module automatically downloads the GeoLite2 database.

Requirements

  • PrestaShop 8.x or 9.x
  • PHP 8.1 or higher
  • Free MaxMind account (for GeoIP detection)

FAQ

Taxes are not being created

Make sure you clicked "Execute" at step 3 of the creation workflow. Check the PrestaShop logs to identify any errors.

GeoIP detection is not working

Ensure that GeoIP is enabled in the Advanced tab and that the GeoIP database is downloaded (status "OK"). Detection does not work in a localhost environment (local IP).

The country selector does not appear

Check 3 things: the selector is enabled in the Display tab, at least one country is active in the Countries tab, and the hook is correctly configured in your theme.

Prices don't change when I switch countries

Make sure taxes are configured for both countries, that your products are assigned to the correct tax rule groups, and clear the PrestaShop cache.

A country does not appear in the selector

A country only appears if it is active in the module (Countries tab), its taxes are configured (Taxes tab), and it is active in PrestaShop (International → Localization → Countries).

The customer sees a different price between browsing and checkout

For logged-in customers, the module uses their actual addresses. A price change can occur if the customer changes their delivery address at checkout. For visitors, check the GeoIP configuration.

Is the module compatible with my theme?

Yes, the module is compatible with all PrestaShop themes. You can use standard hooks or a custom hook to position the selector exactly where you want.

Support

Contact us through your WePresta customer area or by email for any questions or technical assistance.

Changelog

Version 1.0.0

  • Initial release
  • Automatic country detection via GeoIP (MaxMind GeoLite2)
  • Automatic European tax creation in 3 steps
  • Front-office country selector with 5 templates
  • Customer group restriction
  • Standard and custom hook support
  • Multi-address logged-in customer management
  • Configurable cookie for visitor choice retention
Loading...