Sáb. Ago 23rd, 2025

Aprovecharé para dejar a mano en esta entrada unos recursos de interés si vas a montar una tienda on-line basada en Prestashop, así te queda a mano lo que he tenido que revisar yo mismo.

Esta aportación está basada en la instalación base de Prestashop 1.5.2 pero seguro que otras versiones pueden tener similares procedimientos…

La idea es que una vez que tenemos la instalación base con los datos de ejemplo la vamos a personalizar para incluir las provincias españolas.

Alguna de la documentación con la que he trabajado se basa en la Organización Internacional de Estandarización ISO:

Códigos ISO de los países/estados/provincias: 
http://www.iso.org/iso/country_codes/country_codes

En mi instalación las zonas que hay preconfiguradas (Panel Administración->Localización->Zonas) son las siguientes:

1 Europe
2 North America
3 Asia
4 Africa
5 Oceania
6 South America
7 Europe (out E.U)
8 Central America/Antilla

Y el objetivo que me planteaba es desactivar esas e introducir 5 zonas de envío para transporte, que serían Galicia, Península, Baleares, Canarias, y Ceuta y Melilla, así que lo primero sería eliminar esas zonas… aunque habría que eliminar también los correspondientes países si no se van a utilizar. Lo podemos hacer a mano en el mismo panel de administración o a través del PHPmyadmin que nos permite ejecutar instrucciones SQL directas al motor de base de datos. Si no disponéis de acceso al PHPmyadmin tendréis que crearlas a mano o buscar algún programador que os resuelva el tema.

Precauciones:

1.- Hacer backup antes de aplicar estas modificaciones
2.- Comprobar los nombres de las tablas (es posible que hayáis cambiado el prefijo ps_ por otro durante el proceso de instalación)
3.- Si no habéis eliminado las otras zonas quedaos con el ID mayor (imaginemos que es el 8) y en el primer valor de cada línea cambiad los 9, 10, 11, 12 y 13 (siguiendo el ejemplo del 8 encontrado en la instalación por defecto) que aparecen aquí por 1, 2, 3, 4, y 5 respectivamente.

Para los ejemplos que vamos a usar partiremos de que hay datos en estas tablas, es decir, la configuración precargada en la instalación estándar, pero os será fácil adaptarla a vuestro caso.

En el cuadro de SQL introduciremos:

INSERT INTO `ps_zone` (`id_zone`, `name`, `active`) VALUES
(9, 'Península', 1),
(10, 'Canarias', 1),
(11, 'Baleares', 1),
(12, 'Ceuta y Melilla', 1),
(13, 'Galicia', 1);

Si ahora volvemos al panel veremos que las nuevas zonas son las 5 definidas aquí. Podéis hacer las vuestras basándoos un poco en esta definición por si queréis independizar vuestras provincias de España o poner por Comunidades autónomas o como consideréis oportuno, incluso si queréis adaptarlo a zonas de vuestra ciudad o provincia. El esquema es claro: Hay países y hay estados. Los estados pertenecen a países pero también pueden pertenecer a zonas que luego usamos para asignar impuestos o envíos.

Ahora tendremos que hacer modificaciones en los estados que es donde se almacenan las provincias. Si queremos eliminarlos todos deberemos eliminar las direcciones existentes en clientes y fabricantes, o eliminar todos los estados excepto los que estén en uso. Se seleccionan todos y se eliminan. En la instalación por defecto con datos precargados los estados de Illinois (IL) y Nueva York (NY) vienen en uso (IDs 13 y 32) que corresponden a los estados de los distribuidores preconfigurados (AppleStore y Shure). En mi instalación había 312 estados precargados de Estados Unidos, Italia y Japón que, como no usaré, eliminé.

Para cargar los estados de España, o sea, las provincias, aplicaremos las siguientes instrucciones:

ALTER TABLE `ps_state` MODIFY `iso_code` char(5) NOT NULL;

Con esto hemos conseguido modificar el tipo y tamaño del campo donde se almacenan los códigos ISO de los estados a 5 caracteres máximo.

A continuación insertamos todos los estados según la asignación anterior teniendo cuenta que usaremos como códigos ISO para cada provincia los que define la norma ISO 3166-2:2007, aunque he encontrado algunas por la web que usan como códigos ISO simplemente 2 o 3 letras de cada provincia, o incluso las matrículas, o incluso las 2 primeras cifras de las 5 del código postal que, por comodidad, las he asignado al id de cada estado. Así, la provincia de Pontevedra cuyos códigos postales son 36xxx será el id_state 36. Podemos ver que en el tercer campo de cada entrada hacemos referencia a los ID anteriormente creados de zonas

INSERT INTO `ps_state` (`id_state`,`id_country`, `id_zone`, `name`, `iso_code`, `tax_behavior`, `active`) VALUES
(1, 6, 9, 'Álava', 'ES-VI', 0, 1),
(2, 6, 9, 'Albacete' ,'ES-AB', 0, 1),
(3, 6, 9, 'Alicante', 'ES-A', 0, 1),
(4, 6, 9, 'Almería', 'ES-AL', 0, 1),
(5, 6, 9, 'Ávila', 'ES-AV', 0, 1),
(6, 6, 9, 'Badajoz', 'ES-BA', 0, 1),
(7, 6, 11, 'Islas Baleares', 'ES-PM', 0, 1),
(8, 6, 9, 'Barcelona', 'ES-B', 0, 1),
(9, 6, 9, 'Burgos', 'ES-BU', 0, 1),
(10, 6, 9, 'Cáceres', 'ES-CC', 0, 1),
(11, 6, 9, 'Cádiz', 'ES-CA', 0, 1),
(12, 6, 9, 'Castellón', 'ES-CS', 0, 1),
(13, 6, 9, 'Ciudad Real', 'ES-CR', 0, 1),
(14, 6, 9, 'Córdoba', 'ES-CO', 0, 1),
(15, 6, 13, 'A Coruña', 'ES-C', 0, 1),
(16, 6, 9, 'Cuenca', 'ES-CU', 0, 1),
(17, 6, 9, 'Girona', 'ES-GI', 0, 1),
(18, 6, 9, 'Granada', 'ES-GR', 0, 1),
(19, 6, 9, 'Guadalajara', 'ES-GU', 0, 1),
(20, 6, 9, 'Guipúzcoa', 'ES-SS', 0, 1),
(21, 6, 9, 'Huelva', 'ES-H', 0, 1),
(22, 6, 9, 'Huesca', 'ES-HU', 0, 1),
(23, 6, 9, 'Jaén', 'ES-J', 0, 1),
(24, 6, 9, 'La Rioja', 'ES-LO', 0, 1),
(25, 6, 9, 'León', 'ES-LE', 0, 1),
(26, 6, 9, 'Lleida', 'ES-L', 0, 1),
(27, 6, 13, 'Lugo', 'ES-LU', 0, 1),
(28, 6, 9, 'Madrid', 'ES-M', 0, 1),
(29, 6, 9, 'Málaga', 'ES-MA', 0, 1),
(30, 6, 9, 'Murcia', 'ES-MU', 0, 1),
(31, 6, 9, 'Navarra', 'ES-NA', 0, 1),
(32, 6, 13, 'Ourense', 'ES-OR', 0, 1),
(33, 6, 9, 'Asturias', 'ES-O', 0, 1),
(34, 6, 9, 'Palencia', 'ES-P', 0, 1),
(35, 6, 10, 'Las Palmas', 'ES-GC', 0, 1),
(36, 6, 13, 'Pontevedra', 'ES-PO', 0, 1),
(37, 6, 9, 'Salamanca', 'ES-SA', 0, 1),
(38, 6, 10, 'Santa Cruz de Tenerife', 'ES-TF', 0, 1),
(39, 6, 9, 'Cantabria', 'ES-S', 0, 1),
(40, 6, 9, 'Segovia', 'ES-SG', 0, 1),
(41, 6, 9, 'Sevilla', 'ES-SE', 0, 1),
(42, 6, 9, 'Soria', 'ES-SO', 0, 1),
(43, 6, 9, 'Tarragona', 'ES-T', 0, 1),
(44, 6, 9, 'Teruel', 'ES-TE', 0, 1),
(45, 6, 9, 'Toledo', 'ES-TO', 0, 1),
(46, 6, 9, 'Valencia', 'ES-V', 0, 1),
(47, 6, 9, 'Valladolid', 'ES-VA', 0, 1),
(48, 6, 9, 'Vizcaya', 'ES-BI', 0, 1),
(49, 6, 9, 'Zamora', 'ES-ZA', 0, 1),
(50, 6, 9, 'Zaragoza', 'ES-Z', 0, 1),
(51, 6, 12, 'Ceuta', 'ES-CE', 0, 1),
(52, 6, 12, 'Melilla', 'ES-ML', 0, 1);

 Una vez hecho esto tenemos que ir a la configuración de Localización->Países y editar el 6 que es España y hay una casilla que por defecto viene desactivada que indica si el país tiene estados o no. O, lo que viene a ser lo mismo, en SQL le meteríamos:

UPDATE `ps_country` SET `contains_states` = 1 WHERE `id_country` = 6;

Y con esto ya tenemos las provincias metidas en el sistema y agrupadas por zonas.

por bicho raro

Nací en el 69 del siglo pasado y quisiera vivir eternamente. De momento lo estoy consiguiendo...

9 comentario en “Instalando Provincias en Prestashop”
  1. Muchas gracias tu aportación,tengo un problema me es imposible borrar los estados (IDs 13 y 32) he borrado a los distribuidores y fabricantes pero nada, gracias

    1. Revisa los clientes, o proveedores, o fabricantes. Alguno de ellos tiene asignado esa provincia como uno de esos. O eliminas esos datos, o les cambias la provincia/estado a otro de los que hayas creado. Yo lo que hice fue eliminarles esas direcciones.

  2. Tengo un problema, he seguido tus pasos, y todo correcto, pero luego quiero desactivar algun estado, como por ejemplo Ceuta, Melilla …

    Los desactivo, pero siguen apareciendo en el desplegable cuando te registras.

    Ademas, ya he probado eliminar la cache y sigue apareciendo.

    Sabes a que puede ser debido?

  3. Aqui podeis encontrar todos los paises y estados independientes Oficiales junto con sus respectivas provincias/regiones..
    Para España estan creadas las 4 zonas (Peninsula / Baleares / Canarias / Ceuta y melilla)
    Para Portugal estan creadas las 2 zonas (Portugal Peninsula / Portugal Islands)

    I have made a recopilation of all 250 countries and independent states with all Regions/States included, Country and State ISO code, phone prefix and postal code where was available.

    The resources.rar include 3 CSV file and 3 SQL file(so you can make your script and import, you have to change the name of tables, include user and DBA name)

    I highly recomend you to use the CSV import, because if you do not have SQL skills is better not to touch, and CSV is easyer.

    It is available for all version of Prestashop, because it’s a CSV file.
    There are 3 files: so you can update individually whatever you need.
    ZONES
    COUNTRIES
    STATES

    All zones are that came by default with Prestashop, the only exception is for country Spain and Portugal.
    I have crated 4 Zones, because shippment carrier apply diferent prices. The zone are:(I don’t know other zones, fell free to customize the files at your needs).
    Peninsula economic shippment
    Ceuta y Melilla (PS: Region in Africa) – more expensive, carrier apply fees for maritim transport
    Baleares (PS: Island) – more expensive, carrier apply fees for maritim transport
    Canarias (PS: Island) – more expensive, carrier apply fees for maritim transport
    Portugal Peninsula and Portugal Islands

    Zone / Country Number of Regions / States

    EUROPE – UE

    Germany 16
    Austria 8
    Belgium 9
    Finland 15
    France 22
    Greece 12
    Italy 20
    Spain (4 zones Peninsula / Baleares / Canarias / Ceuta y Melilla) 18
    Luxemburg 3
    Netherlands 12
    Poland 16
    Portugal 20
    Czech Republic 14
    United Kingdom 49
    Sweden 21
    Denmark 5
    Ireland 26
    Romania 41
    Slovakia 8
    Cyprus 6
    Estonia 15
    Latvia 27
    Liechtenstein 11
    Lithuania 10
    Malta 5
    Hungary 20
    Slovenia 12
    Ukraine 24
    Bosnia and Herzegovina 3

    EUROPE OUT UE

    Åland Islands 16
    Albania 12
    Andorra 7
    Belarus 6
    Croatia 21
    Faroe Islands 6
    Greenland 5
    Guernsey 16
    Iceland 23
    Jersey 12
    Macedonia 30
    Man Island 6
    Moldova 12
    Monaco 1
    Montenegro 21
    Norway 19
    Russian Federation 54
    San Marino 9
    Serbia 30
    Svalbard and Jan Mayen Islands 2
    Switzerland 26
    Turkey 1
    Vatican City State 1

    ASIA

    Afghanistan 33
    Armenia 11
    Azerbaijan 73
    Bahrain 12
    Bangladesh 5
    Bhutan 20
    Brunei Darrussalam 4
    Burma (Myanmar) 7
    Cambodia 24
    China 30
    Christmas Island 1
    Cocos (Keeling) Islands 1
    East Timor 13
    Georgia 12
    HongKong 18
    India 28
    Indonesia 16
    Iran 21
    Iraq 18
    Israel 6
    Japan 47
    Jordan 12
    Kazakhstan 15
    Kuwait 6
    Kyrgyzstan 8
    Laos 16
    Lebanon 8
    Macau 2
    Malaysia 13
    Maldives 8
    Mongolia 18
    Nepal 5
    North Korea 11
    Oman 11
    Pakistan 8
    Palestinian Territories 2
    Philippines 81
    Qatar 6
    Russian Federation 28
    Saudi Arabia 13
    Singapore 5
    South Korea 10
    Sri Lanka 9
    Syria 13
    Taiwan 4
    Tajikistan 4
    Thailand 30
    Turkey 8
    Turkmenistan 5
    United Arab Emirates 7
    Uzbekistan 14
    Vietnam 62
    Yemen 15

    AFRICA

    Algeria 46
    Angola 18
    Benin 12
    Botswana 9
    Burkina Faso 13
    Burundi 17
    Cameroon 10
    Cape Verde 17
    Central African Republic 17
    Chad 18
    Comoros 3
    Congo, Dem. Republic 10
    Congo, Republic 11
    Djibouti 5
    Egypt 27
    Equatorial Guinea 7
    Eritrea 6
    Ethiopia 11
    Gabon 9
    Gambia 6
    Ghana 10
    Guinea 8
    Guinea-Bissau 9
    Ivory Coast (Costa de Marfil) 18
    Kenya 8
    Lesotho 10
    Liberia 15
    Libya 22
    Madagascar 6
    Malawi 28
    Mali 9
    Mauritania 13
    Mauritius 12
    Mayotte 1
    Morocco 15
    Mozambique 10
    Namibia 12
    Niger 8
    Nigeria 36
    Reunion Island 4
    Rwanda 5
    Saint Helena 3
    São Tomé and Príncipe 2
    Senegal 14
    Seychelles 26
    Sierra Leone 4
    Somalia 18
    South Africa 9
    South Sudan 10
    Sudan 15
    Swaziland 4
    Tanzania 26
    Togo 5
    Tunisia 24
    Uganda 110
    Western Sahara 4
    Zambia 9
    Zimbabwe 10

    OCEANIA

    Antarctica 10
    Australia 8
    Bouvet Island 1
    British Indian Ocean Territory 1
    Cook Islands 1
    Fiji 5
    French Polynesia 6
    French Southern Territories 5
    Guam 19
    Heard Island and McDonald Islands 1
    Kiribati 3
    Marshall Islands 1
    Micronesia 4
    Nauru 14
    New Caledonia 3
    New Zealand 16
    Niue 1
    Norfolk Island 1
    Northern Mariana Islands 4
    Palau 15
    Papua New Guinea 20
    Pitcairn Islands 1
    Samoa 11
    Solomon Islands 10
    Tokelau 3
    Tonga 3
    Tuvalu 8
    Vanuatu 6
    Wallis and Futuna 3

    SOUTH AMERICA

    Argentina 25
    Bolivia 9
    Brazil 26
    Chile 14
    Colombia 31
    Ecuador 24
    French Guiana 2
    Guyana 10
    Paraguay 18
    Peru 24
    Trinidad and Tobago 16
    Uruguay 18
    Venezuela 22

    CENTRAL AMERICA / ANTILLA

    Anguilla 14
    Aruba 1
    Belize 6
    Bonaire 3
    Cayman Islands 6
    Costa Rica 7
    Cuba 15
    Curaçao 1
    Dominica 10
    Dominican Republic 32
    El Salvador 14
    Falkland Islands 1
    Grenada 7
    Guadeloupe 2
    Guatemala 22
    Haiti 10
    Honduras 18
    Jamaica 14
    Martinique 4
    Montserrat 3
    Netherlands Antilles 1
    Nicaragua 17
    Panama 12
    Puerto Rico 17
    Saint Barthelemy 1
    Saint Kitts and Nevis 14
    Saint Lucia 10
    Saint Martin 1
    Saint Pierre and Miquelon 2
    Saint Vincent and the Grenadines 6
    Sint Maarten 1
    South Georgia and the South Sandwich Islands 1
    Suriname 10
    Turks and Caicos Islands 1

    NORTH AMERICA

    American Samoa 4
    Antigua and Barbuda 8
    Bahamas 16
    Barbados 11
    Bermuda 11
    Canada 13
    Mexico 32
    United States 51
    US Outlying Islands 9
    Virgin Islands (British) 1
    Virgin Islands (U.S.) 3
    ___________________________________________________________________
    TOTAL: 250 Country Regions /State 3558

    REMARK: Russian Federation and Turkey are configurated with the exact therithory in both Europe (Out EU) and ASIA
    UPDATED 20 September 2013
    After importing this files all zones, countries and states will be ENABLED

    **********************************************************
    **********************************************************
    BE SMART AND BEFORE ANYTHING BACKUP/EXPORT YOUR TABLES Zones/ Country/ State
    **********************************************************
    **********************************************************
    Requirements:

    Works on all Prestashop version that admit the import of CSV files. Anyway in this .rar You will find also 3 independent sql querry that you have to edit and adjust to your database.
    Mysql 4 or higher

    Installation:

    1. make copy/export the 3 tables containing Zones / Country / States
    2. log into Mysql webadmin
    3 select and open the table «Zones»
    4 click to Import button and select the file zone.csv and check the option «Overwrite existing record in the table» and wait until finish
    5 select and open the table «Countries»
    6 click to Import button and select the file countries.csv and check the option «Overwrite existing record in the table» and wait until finish
    7 select and open the table «States»
    8 click to Import button and select the file states.csv and check the option «Overwrite existing record in the table» and wait until finish

    We are done, open the Front End Website and check if all location are listed.

    In the next video you can see a fresh install of Prestashop, importing the 3 CSV files

    http://www.youtube.com/watch?v=rhazWbV-kBg

    *********************************************************************************************
    You can aquire this rar file in the next link. Price 5€

    http://shop.viste-diferente.es/es/resources/2402-all_countries_states.html

    *********************************************************************************************

  4. Yo soy de Argentina, y todavía estoy intentando ver como puedo modificar las zonas y provincias, como para poder utilizar los distintos correos, dado que en Argentina cada Provincia tiene Muchas localidades, y los precios varían por distancias por ej puedo tener en la provincia de Bs.As un envío que me salga 400$ y uno que me salga 100$, por lo que me esta cabreando demasiado que prestashop solo me deje poner las zonas por provincias. Había pensado reemplazar las provincias, por «Zonas» Dividir la provincia en Zona Norte, Oeste, Sur. Pero de esta forma pensándolo tendría problemas con prestaSecurity. La verdad que además estar peleándome 2 años con presta 1.7, reportando bugs algunos importantes, y que no los resuelvan a pesar de que ya vamos por la versión 1.7.4.2 Me esta sacando de mis casillas. Ni contar que no logro ver porque siempre me tira las lecturas de I/O de mi servidor a 2M/s bastante si no me equivoco.

Responder a rruizc Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.