| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Website (website) • Discuss (mail) |
| Lines of code | 422 |
| Technical Name |
gb_multi_currency_geo_price_display |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Website (website) • Discuss (mail) |
| Lines of code | 422 |
| Technical Name |
gb_multi_currency_geo_price_display |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Multi-Currency / Geo Pric
Show shop prices in the visitor's currency with geo VAT and rounding rules
International shoppers abandon carts when prices appear in the shop's home currency with the wrong VAT treatment and odd-looking conversions. Maintaining a separate pricelist per currency is tedious and quickly goes stale. This module lets you define geo zones by country, each with a display currency, a VAT-inclusive or exclusive mode and a psychological rounding rule, then converts catalogue prices into the visitor's currency on the fly using Odoo's live FX rates. A JSON storefront API and a reusable pricing service deliver fully formatted prices, with per-product opt-out and configurable GeoIP or partner-based country detection. Built for UK and international eCommerce shops on Odoo.
Key Features
Country-Mapped Geo Zones
gb.geo.zone maps a set of res.country records to a display currency_id, a VAT mode and a rounding rule. zone_for_country resolves the visitor's country to the right zone, and a single is_default fallback zone (constraint-enforced as unique per company) covers everyone else.
Live FX with Markup
The gb.geo.pricing.service abstract model converts the catalogue price into the zone currency using Odoo's own _convert live rates, then apply_markup adds an optional fx_markup percentage per zone to absorb exchange spread, all validated to a sensible range.
VAT-Inclusive or Exclusive Display
Each zone sets vat_mode inclusive (B2C) or exclusive (B2B) with a display vat_rate. apply_vat grosses prices up by the rate for consumer-facing zones so the shopper sees the all-in price required by UK/EU consumer law, while B2B zones stay net.
Psychological Rounding Rules
gb.geo.rounding offers reusable strategies — none, nearest whole, end in .99, end in .95, round up to .00 and charm rounding — applied by round_value after conversion and VAT. A price_suffix like 'inc. VAT' can be appended to the formatted string.
Storefront JSON Endpoints
The /geo_price/quote route returns a converted, VAT-adjusted, rounded and formatted price for any product, detecting the visitor's country from request GeoIP or their partner country. /geo_price/zones lists configured zones for front-end logic.
Reusable Pricing Service
compute_display returns a structured dict with raw, net and final amounts, currency symbol, VAT mode and a formatted string, callable from QWeb via product.template.geo_display_price or any backend code without duplicating conversion logic.
Per-Product Opt-Out
A geo_exclude flag on product.template makes specific products always show their untouched catalogue price, so fixed-price or regulated items bypass conversion, VAT grossing and rounding entirely.
Configurable Detection
res.config.settings exposes Enable Geo Price Display, Detect Country By (visitor GeoIP or logged-in partner country) and Show Original Price Too, stored as config parameters so behaviour is tuned without touching code.
Use Cases
Screenshots
Geo Pricing Settings
Rounding Rules
Geo Zones
Why Choose This Module
International shoppers get confused when prices show in the shop's home currency with the wrong VAT treatment. Define geo zones by country that pick a display currency, a VAT-inclusive / exclusive display mode and psychological rounding rules, then convert catalogue prices into the visitor's currency on the fly — no hand-maintained pricelists per currency.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: LGPL-3
- Languages: 35+
- Author: Baris Genc
- Dependencies: website, product, account
- Support: odoo@gencbaris.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module