Checkout addresses that are actually deliverable
Replace free-text city entry with a controlled, state-filtered dropdown, and catch un-deliverable ZIP codes before payment — so orders ship right the first time.
The problem
Shoppers type city names by hand at checkout, so typos, inconsistent spellings, and cities filed under the wrong state slip straight into the order. Those errors surface later as failed deliveries, courier correction fees, delayed fulfillment, and orders placed to areas the store cannot even ship to — all discovered only after payment.
The solution
This app replaces free-text city entry with a searchable, state-filtered city dropdown backed by a controlled backend list, and adds an early "we don't ship here" check against per-carrier ZIP ranges at the address step — before checkout ever reaches payment.
Everything checkout needs to get addresses right
Every capability below is implemented in the module.
State-filtered city dropdown
Cities load only after the shopper picks a state, so checkout never lets a city get paired with the wrong state.
Searchable, paginated results
An in-dropdown search box and pagination keep even states with thousands of cities fast and usable on any device.
Manual entry fallback
A "my city isn't listed" checkbox reveals a free-text field, so checkout never stalls when the seed data is incomplete.
Per-country enforcement
Turn city selection on, require it, allow manual entry, and set the dropdown page size separately for every country.
Backend city management
Administrators create and maintain the controlled city list per state from a dedicated Settings screen.
Per-carrier deliverable ZIP ranges
Define exactly which ZIP ranges each shipping method actually serves, right from the carrier form.
Early un-deliverable block
A site-wide setting decides whether an address outside every configured ZIP range is blocked or only flagged — before payment.
How it works
Configure per country
Enable city selection, choose whether it is enforced, allow manual entry, and set the dropdown page size on each country.
Load cities and ZIP ranges
Add cities per state and set each shipping method's deliverable ZIP ranges from the carrier form.
Shopper checks out
At the address step, the shopper picks a state, then searches and selects a city — or falls back to manual entry.
Un-deliverable orders get caught
Addresses outside every configured ZIP range are blocked or flagged before payment, per the site-wide setting.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
On the frontend checkout address form, yes: it swaps the free-text city input for a searchable dropdown filtered by the selected state, while keeping a manual entry fallback so no shopper is ever blocked by missing data.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Website Sale Address City Selection
A searchable, state-filtered city dropdown at checkout with per-country enforcement and manual fallback — plus per-carrier ZIP ranges that block undeliverable addresses before payment.
Buy on Odoo App Store