datocms-plugin-postcode-picker
v0.1.2
Published
A DatoCMS field extension for selecting multiple postcodes with autocomplete search using GeoNames API
Downloads
183
Readme
DatoCMS Plugin - Postcode Picker
A custom DatoCMS field extension plugin that allows users to select multiple postcodes with an autocomplete search interface. Uses GeoNames API to search for postcodes by postcode or city name.
Features
- 🔍 Autocomplete Search: Type to search for postcodes or city names
- 🏷️ Multiple Selection: Select multiple postcodes with an accessible multi-select interface
- 🌍 Configurable Country: Set the country code in plugin settings (defaults to Belgium)
- 🔑 GeoNames Username: Optional GeoNames username for higher rate limits
- 🌐 API-Based: Uses GeoNames API to fetch postcode data (no hardcoded data)
Installation
Build the plugin:
npm install npm run buildInstall the plugin in your DatoCMS project:
- Go to your DatoCMS project settings
- Navigate to Plugins
- Click "Add a plugin" → "Install from URL" or upload the built plugin
Usage
Configure the plugin:
- Go to Settings → Plugins → Postcode Picker
- Enter your GeoNames username for higher rate limits (optional)
- Set the country code (ISO 3166-1 alpha-2, e.g., BE, NL, FR)
- Click "Save"
- Get a free GeoNames account at https://www.geonames.org/login
Add the field extension to a field:
- Add a new JSON field to your model
- In the field settings, scroll to "Field extensions"
- Click "Add field extension" and select "Postcode Picker"
- Save the field
Use the picker:
- When editing records, you'll see the postcode picker interface
- Type to search for postcodes or city names
- Select multiple postcodes from the dropdown
- Selected postcodes are displayed as chips with format "City (Postcode)"
- Remove selections by clicking the × on each chip
Data format:
- Selected postcodes are stored as a JSON string:
"[{\"postcode\":\"1000\",\"city\":\"Brussels\"},...]" - The field stores a stringified JSON array of objects with
postcodeandcityproperties
- Selected postcodes are stored as a JSON string:
API Configuration
The plugin uses the GeoNames API (free tier). You can configure your GeoNames username in the plugin settings.
To get a GeoNames username:
- Visit https://www.geonames.org/login
- Create a free account
- Enter your username in the plugin settings for higher rate limits
Development
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run buildData Format
Selected postcodes are stored as JSON:
[
{ "postcode": "1000", "city": "Brussels" },
{ "postcode": "2000", "city": "Antwerp" }
]License
MIT
