Auto-detect visitor country to switch currency, language & regional pricing on your Odoo storefront, with manual switchers and per-region catalogs. One-time license from $299.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

Auto-detect visitor country to switch currency, language & regional pricing on your Odoo storefront, with manual switchers and per-region catalogs.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Your Odoo eCommerce storefront serves the whole world, but out of the box it shows every visitor the same currency, the same language, and the same pricelist — so a shopper in Germany sees USD, English copy, and prices that ignore local tax and rounding conventions. That friction quietly kills conversion on international traffic.
GeoIP auto-detection of visitor country on first website request, resolving to a currency, active language, and pricelist without any visitor action
Automatic currency switch that sets the website's active res.currency and re-renders all storefront prices, taxes, and totals in that currency
Automatic language switch that activates the matching res.lang and serves the localized route (respecting Odoo's /<lang>/ URL structure) when a translation exists
Per-country and per-region pricelist assignment (product.pricelist) so each market sees its own prices, discounts, and rounding rather than a single global list
Region grouping model that maps many countries to one region (e.g. all GCC countries → one AED region) via @api.depends computed fields for clean, maintainable rules
Header currency selector and language selector as OWL/QWeb components, so visitors can always override the auto-detected choice manually
The Website & Portal Geo Multi-Currency / Multi-Language Switcher is a build-to-order module that ECOSIRE designs, builds, installs, and supports specifically for your Odoo instance. It reads the visitor's country from GeoIP at the first request, then automatically selects the right res.currency, the right active res.lang, and the right product.pricelist — so a visitor from France lands on a French-language storefront priced in EUR against your EU pricelist, while a visitor from the UAE gets AED against your GCC pricelist, with no manual clicking required.
Because it's build-to-order, this is not an instant apps.odoo.com download. After purchase, ECOSIRE scopes your exact country-to-region mapping, pricelist strategy, and fallback rules, then delivers a clean, upgrade-safe custom module. The core is standard Odoo engineering: a country→region resolver model with @api.depends computed fields, GeoIP resolution wired through the website request pipeline (with a country override QueryString for testing), a res.config.settings panel for your region rules, ir.model.access.csv plus record rules so only Website Managers edit the mapping, and OWL/QWeb header components for the manual currency and language selectors. It runs on both Odoo Community and Enterprise, and we deliver builds targeting Odoo 17, 18, and 19.
Detection is always a suggestion, never a cage: the header keeps explicit currency and language selectors, the visitor's manual choice is remembered in their session and on their res.partner for logged-in portal users, and every cart and checkout line renders consistently in the selected currency so the customer never sees a mismatch between the product page, the cart, and the sales order. When GeoIP can't resolve a country — VPNs, unknown ranges, bots — a configurable default region keeps the storefront coherent instead of blank. The result is a storefront that feels local to every market you sell into, on the Odoo stack you already run.
Runs an Odoo Website/eCommerce store selling into multiple countries and needs each visitor to see local currency, language, and pricing automatically to lift international conversion and reduce checkout abandonment.
Owns the Odoo instance and wants geo behavior implemented as a clean, upgrade-safe module with proper access rights and record rules — not brittle overrides or hard-coded studio hacks that break on the next migration.
Manages market-specific pricelists and catalogs (e.g. EU vs GCC vs North America) and needs per-region pricing and product visibility to apply correctly and consistently from the storefront through to the sale order and portal.
Buy the license on ecosire.com and download the Website & Portal Geo Multi-Currency / Multi-Language Switcher for Odoo module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Website & Portal Geo Multi-Currency / Multi-Language Switcher for Odoo, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Auto currency + language switch from visitor GeoIP | Built-in: country resolves to currency, language, and pricelist on first request | Possible, but you design and maintain the whole GeoIP pipeline yourself | Varies — many switch currency only, or language only, not the combined set | |
| Per-region pricelists via native product.pricelist | Region→pricelist mapping wired to Odoo's standard pricing engine | Achievable but you build the mapping and edge cases from scratch | ||
| Per-region catalog / product visibility | Region-scoped product and category visibility included in scope | Requires custom visibility rules you must build and test | ||
| Configurable default-region fallback for unresolved IPs | Data-driven fallback set in a res.config.settings panel | You must design and handle every unresolved-IP case | ||
| Cross-currency cart & checkout consistency through to sale.order | Product page, cart, and order render in one selected currency | You own reconciling currency across the full checkout flow | ||
| Access control via ir.model.access.csv + record rules | Geo config locked to Website Manager roles by design | You write and audit the security rules yourself | ||
| Manual choice persisted on session + res.partner | Visitor override remembered across visits and portal login | You build the persistence layer for session and partner | ||
| Tailored to your markets, tax, and rounding rules | Scoped, built, and configured for your exact regions | Fully tailored, but at full custom-project cost and timeline | ||
| Delivery model & ownership | Build-to-order (2–4 wks) with source-code ownership and a support window | Longer in-house/agency build; you own maintenance from day one | Instant download, but generic and often unmaintained for your case |
This is a build-to-order module, not an off-the-shelf apps.odoo.com download — there is no instant ZIP. After purchase, ECOSIRE scopes your country-to-region mapping, pricelists, languages, and fallback rules, then builds, tests, and installs the module. Typical delivery is 2–4 weeks depending on how many markets and pricelists are involved and whether we deploy to staging first. You'll get a timeline confirmed during scoping.
Every build includes a post-delivery support window for bug fixes and configuration adjustments, plus a training handover for your team. The module is written as a clean, upgrade-safe addon (standard __manifest__.py, models, and views — no core patching where avoidable), and we provide guidance for moving it to your next Odoo version. We can also deliver builds explicitly targeting Odoo 17, 18, and 19, and quote an upgrade if you migrate later.
It works on both. The module builds on standard Odoo Website/eCommerce concepts — res.currency, res.lang, product.pricelist, res.config.settings, and OWL/QWeb templates — which exist in Community. Enterprise-only features aren't required. During scoping we confirm your edition and website apps so the build fits your exact setup.
Auto-detection is only the starting suggestion. The header keeps explicit currency and language selectors, and a visitor's manual choice always wins — it's stored in their session and, for logged-in portal users, on their res.partner so it persists across visits. GeoIP just removes the first click for the majority who never bother to switch.
You configure a default region during setup. Any unresolved, private, or VPN IP falls back to that default currency, language, and pricelist, so the storefront is always coherent — never blank or half-priced. The fallback is data-driven in the settings panel, so you can change it later without a code change.
Pricing uses Odoo's native product.pricelist — each region maps to its own pricelist, so prices, discounts, and rounding are computed by Odoo's standard engine rather than hard-coded. Region-scoped catalogs are handled via website product/category visibility rules tied to the detected region. Because it's native pricelists and standard access/record rules under the hood, your finance and sales teams see consistent figures from the product page through the cart to the sale.order.
Auto-detect visitor country to switch currency, language & regional pricing on your Odoo storefront, with manual switchers and per-region catalogs.