Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. eCommerce
  3. eCommerce Delivery Zone Restriction v 19.0
  4. Sales Conditions FAQ

eCommerce Delivery Zone Restriction

by NEXERP PRIVATE LIMITED https://nexeerp.com
Odoo

$ 149.00

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • eCommerce (website_sale)
• Website (website)
• Discuss (mail)
• Invoicing (account)
Lines of code 1333
Technical Name nx_ecom_delivery_zone
LicenseOPL-1
Websitehttps://nexeerp.com
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • eCommerce (website_sale)
• Website (website)
• Discuss (mail)
• Invoicing (account)
Lines of code 1333
Technical Name nx_ecom_delivery_zone
LicenseOPL-1
Websitehttps://nexeerp.com
  • Description
  • License

eCommerce Delivery Zone Restriction

Restrict online orders to customers within your delivery range. Capture the exact location on an interactive map at checkout — no Google Maps API key, no monthly fees, bypass-proof server validation.

📍  Interactive Map at Checkout
📐  Haversine Formula — No API Key
🛵  Free + Paid Delivery Tiers

🔒  Server-Side Bypass-Proof
📱  One-Click Mobile Maps on Orders
🌐  Multi-Website Ready

Configure in Seconds from Website Settings

All delivery zone settings live under Website → Configuration → Settings → Delivery Zone Restriction.

✓  Master Toggle — enable or disable zone restriction per website with one click

✓  Store Location — lat/lng inputs with a visual "Pick on Map" button

✓  Free Delivery Radius — customers within this distance get free delivery

✓  Max Delivery Radius — customers beyond free zone but within this limit pay for delivery

✓  Manual Address Fallback — allow customers to type address if they deny GPS

✓  Custom Messages — configure out-of-zone and location-denied messages. Use {radius} to insert the radius value dynamically

Pick Your Store Location Visually on a Map

No more manually typing latitude and longitude. Click "Pick on Map" in Settings to open a full interactive map dialog built with the Odoo 19 OWL framework.

📍  Search by city, street, or landmark — powered by OpenStreetMap Nominatim, no API key needed

🗺  Drag the marker to fine-tune the exact pin location of your store entrance

📡  Re-Detect button refreshes GPS, with a ±km accuracy badge shown so you know how reliable the reading is

⚠  Desktop browsers use Wi-Fi/IP triangulation which can be 1–100 km off. The dialog detects this automatically and shows a blue accuracy circle with a warning — just use the Search box to get a precise result

Interactive Map Embedded in the Customer Checkout

An interactive map is embedded directly below the address form on /shop/address. The delivery zone is validated in real time as the customer pins their location — before they ever reach the payment page.

🔍  Search box — type city, street, or postcode for pinpoint accuracy on any device

📌  Draggable pin — click anywhere on the map or drag the marker to the exact delivery address

✓  Instant zone feedback — green "We deliver here!", orange "Paid delivery", or red "Outside zone" shown immediately

📡  GPS auto-detect — works with real GPS on mobile phones; warns when desktop browser accuracy is too low

🔒  Form blocked — customer cannot save the address or proceed to payment without selecting a valid delivery location

Three Delivery Zone Tiers — Full Control

Define two concentric radius rings around your store. Each ring gives a different checkout experience.

✔ Free Delivery Zone

e.g. 0 – 5 km from store
Customers within the inner radius get free delivery. The checkout banner confirms this immediately and they proceed straight to payment.

🛵 Paid Delivery Zone

e.g. 5 – 15 km from store
Customers beyond the free zone but within the outer radius can still order. A delivery charge applies. They proceed to payment normally.

🚫 Outside Zone — Blocked

beyond max radius
Customers beyond the outer radius see your fully customisable message and cannot proceed to payment. Enforced server-side.

Open Customer Delivery Location in One Click

Every website order automatically stores the customer's verified delivery coordinates — latitude, longitude, zone type, and distance from store in km.

A "Delivery Location" tab is added to the Sale Order form. It is only visible for orders placed through the website — completely hidden for phone or offline orders.

Click "Open Location in Maps" to open Google Maps in a new tab at the exact pin location. On a mobile phone or tablet, this launches the native maps app directly — perfect for delivery drivers navigating to the customer.

The coordinates, zone, and distance are stored as queryable fields on sale.order — available in reports, filters, and custom dashboards.

The Delivery Location notebook tab on each Sale Order shows:

  • Latitude — e.g. 26.2219° N
  • Longitude — e.g. 84.3561° E
  • Zone — Free Zone / Paid Zone
  • Distance from Store — e.g. 1.20 km

The 📍 Open Location in Maps button opens Google Maps at the exact pin. On Android and iOS this launches the native maps app — ready for your delivery driver.

How It Works — End to End

  1. Admin Configures — Open Website Settings, click "Pick on Map", drop the pin on your store, set free and paid radii in km. Done in 2 minutes.
  2. Customer Pins Location — On the Address step, an interactive map appears. Customer searches their city, clicks the spot, or uses GPS. Zone validates in real time.
  3. Server Saves Coordinates — Validated lat/lng are stored in the server session. The customer proceeds to payment only if the zone allows it.
  1. Payment Secured — At transaction creation, server re-validates coordinates. Zone failure raises a ValidationError — no bypass possible by any means.
  2. Staff Opens Maps — Sale Order stores exact coordinates. One button opens Google Maps or any mobile maps app for the delivery driver.

Zero Third-Party API Costs — Forever

Built entirely on free, open-source services. No Google Maps billing alerts. No geocoding quotas. No monthly fees of any kind.

🗺  OpenStreetMap — Free Forever
📍  Nominatim Geocoding — No Key Required
🌿  Leaflet.js — Open Source

📐  Haversine Formula — Pure Math, No API
✓  $0 Monthly Map Fees — Guaranteed
✓  No Quota Limits — Unlimited Lookups

All Features at a Glance

✓  Interactive Leaflet.js map on checkout address page
✓  OpenStreetMap tiles — no API key, no monthly billing
✓  Nominatim forward & reverse geocoding — free, no quota
✓  Haversine distance formula — pure Python + pure JavaScript
✓  Double server-side validation — at address submit and at payment
✓  GPS auto-detect — real GPS on mobile, smart fallback on desktop
✓  Address search fallback — type city or street, no GPS needed
✓  Free delivery zone — inner radius, configurable in km

✓  Paid delivery zone — outer radius, configurable in km
✓  Outside zone blocked — cannot reach payment, enforced server-side
✓  OWL admin map picker — visual store location dialog in Settings
✓  Accuracy circle — shows GPS uncertainty on admin map
✓  Multi-website support — independent config per website
✓  Custom zone messages — with {radius} placeholder
✓  Delivery Location tab on Sale Order — lat, lng, zone, distance
✓  One-click Maps button — opens native maps app on mobile

Technical Highlights

✓  Odoo 19.0 — Community & Enterprise
✓  Inherits website_sale — no core file edits
✓  OWL Component for admin map dialog
✓  Extends PaymentPortal._validate_transaction_for_order()
✓  Leaflet.js 1.9.4 — lazy-loaded, zero cost on other pages
✓  Browser Geolocation API with enableHighAccuracy: true
✓  Session-based coordinate storage — persists across page loads
✓  JSONRPC endpoints: /config, /validate, /check_session

✓  dz_delivery_lat / lng stored on sale.order
✓  ir.actions.act_url for Maps button — proper Odoo pattern
✓  XPath view inheritance — no overrides of core templates
✓  Per-website config via related fields on website model
✓  Accuracy circle on admin map — shows GPS uncertainty radius
✓  OPL-1 license — full source code included
✓  Works on Odoo Online, Odoo.sh, and On-Premise
✓  Compatible with all payment providers

Frequently Asked Questions

Do I need a Google Maps API key?
No. The module uses OpenStreetMap (free, open-source tiles) and Leaflet.js (free, open-source library). Geocoding uses Nominatim — no API key, no quota, no billing ever.


Can customers bypass the zone check by disabling JavaScript?
No. Zone is validated server-side at two points — when the address form is submitted AND when the payment transaction is created. Disabling JS, editing the page, or manipulating network requests cannot bypass the server check.


What if GPS is inaccurate on a desktop computer?
Desktop browsers use Wi-Fi/IP triangulation instead of real GPS — accuracy can be 1–100 km off. The module detects low-accuracy results automatically and warns the customer to use the address search box instead, which gives reliable results without any GPS hardware.


What if a customer denies location access entirely?
The map still appears with the Search option. The customer types their city, street, or postcode to place the pin manually. GPS permission is never required.


Can I use this for multiple shops or branches?
Yes. All settings are stored per Odoo website record. Each website in a multi-website setup has its own independent store location, radii, and messages.


Does this slow down my checkout page?
Minimal impact. Leaflet.js (~42 KB gzipped) is loaded only on the address page. The Haversine calculation is pure in-memory math. All geocoding requests are async and non-blocking. Every other page is unaffected.

NEXERP PRIVATE LIMITED

Certified Odoo development team building production-ready vertical solutions for Healthcare, Hospitality, Real Estate, Gym Management, Insurance, and eCommerce.

✉  business@nexeerp.com     🌐  nexeerp.com

License: OPL-1 (Odoo Proprietary License v1)  ·  One installation per license  ·  Free bug-fix updates  ·  Email support included

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

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with