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.

Capabilities

Everything checkout needs to get addresses right

Every capability below is implemented in the module.

01

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.

02

Searchable, paginated results

An in-dropdown search box and pagination keep even states with thousands of cities fast and usable on any device.

03

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.

04

Per-country enforcement

Turn city selection on, require it, allow manual entry, and set the dropdown page size separately for every country.

05

Backend city management

Administrators create and maintain the controlled city list per state from a dedicated Settings screen.

06

Per-carrier deliverable ZIP ranges

Define exactly which ZIP ranges each shipping method actually serves, right from the carrier form.

07

Early un-deliverable block

A site-wide setting decides whether an address outside every configured ZIP range is blocked or only flagged — before payment.

Workflow

How it works

1

Configure per country

Enable city selection, choose whether it is enforced, allow manual entry, and set the dropdown page size on each country.

2

Load cities and ZIP ranges

Add cities per state and set each shipping method's deliverable ZIP ranges from the carrier form.

3

Shopper checks out

At the address step, the shopper picks a state, then searches and selects a city — or falls back to manual entry.

4

Un-deliverable orders get caught

Addresses outside every configured ZIP range are blocked or flagged before payment, per the site-wide setting.

Questions

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.

Get the app

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