v1.0.1 · updated on 10/20/2026
Validated with the official PrestaShop validator
PrestaShop postcode validation module
Free PrestaShop postcode validation module.
Warns customers, while they type their address, when the postcode does not exist in the country or does not match the town or the province. Fewer returned parcels, without ever blocking the order.
- PS 1.7
- PS 8
- PS 9
- Instant download from My modules
- Updates from your account
Developed and maintained by Kebes, a PrestaShop Expert level 3 agency with more than 15 years developing for PrestaShop.
This module brings postcode validation to PrestaShop right as the customer types the address: it checks that the postcode exists in the chosen country and matches the town and the province. It is free and compatible with PrestaShop 1.7.8, 8 and 9.
The problem: parcels coming back because of a wrong postcode
PrestaShop accepts any five-digit code in Spain, France or Italy. A Barcelona postcode with the town Madrid, a 28000 in Spain (it does not exist there: it is Chartres, in France) or a 99999 all go through. Each one is a returned parcel, a new shipment and an annoyed customer.
The module catches it right away and tells the customer what is wrong and what it should be, so they fix it before paying. It never blocks: if the address is right even though it is not in the data, the customer can still buy.
Features
- Live warning under the postcode: postcode that does not exist in the country (and in which country it does), town or province that do not match, or a format that is not the country's. It tolerates accents, articles, bilingual names and typos.
- Town and province filled in when they are empty and the postcode has a single option. It never overwrites what the customer typed.
- Confirmation checkbox at payment: if the address still has a warning, the customer confirms it is correct before ordering. If they fix it, the checkbox goes away.
- Order note for whoever ships: the order's private note (back office only) says what was wrong and whether the customer confirmed it. It is added to whatever is already there.
- One page checkout: works with the PrestaShop checkout and with the official ps_onepagecheckout module.
- No overrides: it does not touch the core and uses the theme styles (Classic, Hummingbird and child themes).
Postcodes included and updatable
It comes with the postcodes of Spain, France, Portugal and Italy, loaded on install. They are updated with one click and other countries can be added. The data comes from GeoNames and, for France, also from the official La Poste database, so recently merged towns are recognised. If your server cannot download, you upload the file by hand.
It does not slow down the checkout
The check runs in the browser with postcode files of the module itself: typing an address makes no request to your server. On every other page the module does nothing. Measured on a real shop, the order page takes the same time with and without the module.
Compatibility
Compatible with PrestaShop 1.7.8, 8 and 9. Tested on PrestaShop 1.7.8.11, 8.2.7, 9.1.4 and 9.2.0 (also with ps_onepagecheckout), with PHP 7.4, 8.3 and 8.4. It does not install alongside other one page checkout modules (onepagecheckoutps, supercheckout, thecheckout).
Installation
Download the zip and upload it in Modules › Module Manager › Upload a module. It works without any setup; in the settings you choose the mode (warn or ask for confirmation), the countries and what is checked.
FAQ
Does it block the order if the postcode does not match?
No. It warns under the field and, in the recommended mode, asks the customer to confirm with a checkbox before paying. It never prevents saving the address or placing the order.
What if it warns about a correct address?
It may be a very new postcode or a recently merged town. Update the country in the Data tab; if only the town fails, you can turn that check off and keep the postcode one.
Does it check the province in Spain?
PrestaShop does not ask for the province in Spanish addresses out of the box, so the module shows it for information. If your shop asks for it, it is checked too, as in Italy.
Does it check the street and number?
No. It checks country, postcode, town and province, which is where almost all mistakes are; it uses no paid third-party service.
Does it work on nginx servers?
Yes, by allowing the .json files of the module data folder. On Apache and LiteSpeed the module does it itself, and the Data tab checks that it works.
If you also invoice companies and individuals, the free DNI validation module warns about mistyped ID numbers. More modules in the veomod.com catalogue.
Changelog
1.0.1 – 2026-10-20
- `.htaccess` in the module folder that stops its PHP files from being opened directly.
- Code reviewed with the official PrestaShop validator (formatting, headers and good practices). No change in how it works.
1.0.0 – 2026-10-18
New: warning under the postcode when it does not exist in the country, does not match the town or the province, or does not have the country's format.
New: town and province filled in when the postcode has a single option.
New: confirmation checkbox at payment, also with ps_onepagecheckout.
New: private order note with the warning and whether the customer confirmed it.
New: postcodes of Spain, France, Portugal and Italy included, updatable with one click.
Compatibility
| PrestaShop | Module version | Status |
|---|---|---|
| 1.7.8 – 9.2 | 1.0.1 | Compatible |
| 1.7.7 and older | — | Not compatible |
Data sheet
- Versión
- 1.0.1
- Languages
- English, Spanish
- Support languages
- English, Spanish
Will it work in your shop? Ask us before buying
If you need a specific feature, or your PrestaShop version is not listed as tested, tell us. It often works all the same. And if you ask for a feature that improves the module and can help more shops, we add it in a next version at no cost to you. The person who wrote the module answers you.