Por defecto, las instalaciones de Prestashop (incluida la 1.4.x) no incluyen las provincias españolas. Puede ser interesante añadirlas para determinar el coste en los envíos. Determinaríamos así franjas de precios y pesos acordes con las zonas de las provincias. A continuación incluyo es script necesario para ejecutarlo en MySQL.
El script se ha extraído del Foro oficial de Prestashop:
SET NAMES 'utf8';
—
— Agregamos las zonas de España
—
INSERT INTO `ps_zone` (`id_zone`, `name`, `active`) VALUES
(9, ‘Peninsula’, 1),
(10, ‘Canarias’, 1),
(11, ‘Baleares’, 1),
(12, ‘Ceuta y Melilla’, 1);
—
— Preparamos el campo ISO_CODE para aceptar 5 caracteres
—
ALTER TABLE `ps_state` MODIFY `iso_code` char(5) NOT NULL;
—
— Agregamos las provincias y asignamos su zona
—
INSERT INTO `ps_state` (`id_state`,`id_country`, `id_zone`, `name`, `iso_code`, `tax_behavior`, `active`) VALUES
(123, 6, 9, ‘La Coruña’, ‘C’, 0, 1),
(124, 6, 9, ‘Álava’, ‘VI’, 0, 1),
(125, 6, 9, ‘Albacete’ ,’AB’, 0, 1),
(126, 6, 9, ‘Alicante’, ‘A’, 0, 1),
(127, 6, 9, ‘Almería’, ‘AL’, 0, 1),
(128, 6, 9, ‘Asturias’, ‘O’, 0, 1),
(129, 6, 9, ‘Ávila’, ‘AV’, 0, 1),
(130, 6, 9, ‘Badajoz’, ‘BA’, 0, 1),
(131, 6, 11, ‘Islas Baleares’, ‘PM’, 0, 1),
(132, 6, 9, ‘Barcelona’, ‘B’, 0, 1),
(133, 6, 9, ‘Burgos’, ‘BU’, 0, 1),
(134, 6, 9, ‘Cáceres’, ‘CC’, 0, 1),
(135, 6, 9, ‘Cádiz’, ‘CA’, 0, 1),
(136, 6, 9, ‘Cantabria’, ‘S’, 0, 1),
(137, 6, 9, ‘Castellón’, ‘CS’, 0, 1),
(138, 6, 12, ‘Ceuta’, ‘CE’, 0, 1),
(139, 6, 9, ‘Ciudad Real’, ‘CR’, 0, 1),
(140, 6, 9, ‘Córdoba’, ‘CO’, 0, 1),
(141, 6, 9, ‘Cuenca’, ‘CU’, 0, 1),
(142, 6, 9, ‘Gerona’, ‘GI’, 0, 1),
(143, 6, 9, ‘Granada’, ‘GR’, 0, 1),
(144, 6, 9, ‘Guadalajara’, ‘GU’, 0, 1),
(145, 6, 9, ‘Guipuzcoa’, ‘SS’, 0, 1),
(146, 6, 9, ‘Huelva’, ‘H’, 0, 1),
(147, 6, 9, ‘Huesca’, ‘HU’, 0, 1),
(148, 6, 9, ‘Jaén’, ‘J’, 0, 1),
(149, 6, 9, ‘La Rioja’, ‘LO’, 0, 1),
(150, 6, 10, ‘Las Palmas’, ‘GC’, 0, 1),
(151, 6, 9, ‘León’, ‘LE’, 0, 1),
(152, 6, 9, ‘Lérida’, ‘L’, 0, 1),
(153, 6, 9, ‘Lugo’, ‘LU’, 0, 1),
(154, 6, 9, ‘Madrid’, ‘M’, 0, 1),
(155, 6, 9, ‘Málaga’, ‘MA’, 0, 1),
(156, 6, 12, ‘Melilla’, ‘ML’, 0, 1),
(157, 6, 9, ‘Murcia’, ‘MU’, 0, 1),
(158, 6, 9, ‘Navarra’, ‘NA’, 0, 1),
(159, 6, 9, ‘Orense’, ‘OR’, 0, 1),
(160, 6, 9, ‘Palencia’, ‘P’, 0, 1),
(161, 6, 9, ‘Pontevedra’, ‘PO’, 0, 1),
(162, 6, 9, ‘Salamanca’, ‘SA’, 0, 1),
(163, 6, 10, ‘Santa Cruz de Tenerife’, ‘TF’, 0, 1),
(164, 6, 9, ‘Segovia’, ‘SG’, 0, 1),
(165, 6, 9, ‘Sevilla’, ‘SE’, 0, 1),
(166, 6, 9, ‘Soria’, ‘SO’, 0, 1),
(167, 6, 9, ‘Tarragona’, ‘T’, 0, 1),
(168, 6, 9, ‘Teruel’, ‘TE’, 0, 1),
(169, 6, 9, ‘Toledo’, ‘TO’, 0, 1),
(170, 6, 9, ‘Valencia’, ‘V’, 0, 1),
(171, 6, 9, ‘Valladolid’, ‘VA’, 0, 1),
(172, 6, 9, ‘Vizcaya’, ‘BI’, 0, 1),
(173, 6, 9, ‘Zamora’, ‘ZA’, 0, 1),
(174, 6, 9, ‘Zaragoza’, ‘Z’, 0, 1);
—
— Activamos los estados en España
—
UPDATE `ps_country` SET `contains_states` = 1 WHERE `id_country` = 6;
Tras ejecutarlo, tendremos que asegurarnos de que el país de España está configurado para contener 'estados'. De lo contrario no se mostrarían las provincias añadidas. Consulta el enlace del foro por si hubiera una nueva versión o modificación de los códigos ISO.
No aparecen las provincias de Baleares ??
Las Islas Baleares son la provincia.
He realizado la modificacion de la base de datos y ahora no me funciona el transportista, ¿por que puede ser?
Muchas gracias me ha servido de base. Solo decirte que puede dar un error. Si tenemos alguna entrada ya con esos id nos devolverá un error.
Lo ideal y aprovechando que id_zone e id_state son autoincrement sería algo así:
INSERT INTO ‘ps_zone’ (‘id_zone’, ‘name’, ‘active’) VALUES ( », ‘Peninsula’, ‘1’);
INSERT INTO ‘ps_state’ (‘id_state’,’id_country’, ‘id_zone’, ‘name’, ‘iso_code’, ‘tax_behavior’, ‘active’) VALUES ( », ‘6’, ‘9’, ‘A Coruña’, ‘C’, ‘0’, ‘1’);
Gracias, Ozo!!
Hola,
creo que para MySQL 5 este sintaxis no vale. Por lo menos a mi solo me da que errores.
Gracias.
En los values has de sustituir las comillas simples por comillas dobles ;).
INSERT INTO `ps_state` (`id_state`,`id_country`, `id_zone`, `name`, `iso_code`, `tax_behavior`, `active`) VALUES
(123, 6, 9, «La Coruña», «C», 0, 1),
(124, 6, 9, «Álava», «VI», 0, 1),
(125, 6, 9, «Albacete» ,»AB», 0, 1),
….
SQL compatible con MySQL 5. La primary está adaptada a mi situación. Es fácil cambiarlos con excel.
INSERT INTO ps_state (id_state,id_country, id_zone,name,iso_code,tax_behavior,active) VALUES
(316, 6, 9, ‘La Coruña’, ‘C’, 0, 1),
(317, 6, 9, ‘Álava’, ‘VI’, 0, 1),
(318, 6, 9, ‘Albacete’ ,’AB’, 0, 1),
(319, 6, 9, ‘Alicante’, ‘A’, 0, 1),
(320, 6, 9, ‘Almería’, ‘AL’, 0, 1),
(321, 6, 9, ‘Asturias’, ‘O’, 0, 1),
(322, 6, 9, ‘Ávila’, ‘AV’, 0, 1),
(323, 6, 9, ‘Badajoz’, ‘BA’, 0, 1),
(324, 6, 11, ‘Islas Baleares’, ‘PM’, 0, 1),
(325, 6, 9, ‘Barcelona’, ‘B’, 0, 1),
(326, 6, 9, ‘Burgos’, ‘BU’, 0, 1),
(327, 6, 9, ‘Cáceres’, ‘CC’, 0, 1),
(328, 6, 9, ‘Cádiz’, ‘CA’, 0, 1),
(329, 6, 9, ‘Cantabria’, ‘S’, 0, 1),
(330, 6, 9, ‘Castellón’, ‘CS’, 0, 1),
(331, 6, 12, ‘Ceuta’, ‘CE’, 0, 1),
(332, 6, 9, ‘Ciudad Real’, ‘CR’, 0, 1),
(333, 6, 9, ‘Córdoba’, ‘CO’, 0, 1),
(334, 6, 9, ‘Cuenca’, ‘CU’, 0, 1),
(335, 6, 9, ‘Gerona’, ‘GI’, 0, 1),
(336, 6, 9, ‘Granada’, ‘GR’, 0, 1),
(337, 6, 9, ‘Guadalajara’, ‘GU’, 0, 1),
(338, 6, 9, ‘Guipuzcoa’, ‘SS’, 0, 1),
(339, 6, 9, ‘Huelva’, ‘H’, 0, 1),
(340, 6, 9, ‘Huesca’, ‘HU’, 0, 1),
(341, 6, 9, ‘Jaén’, ‘J’, 0, 1),
(342, 6, 9, ‘La Rioja’, ‘LO’, 0, 1),
(343, 6, 10, ‘Las Palmas’, ‘GC’, 0, 1),
(344, 6, 9, ‘León’, ‘LE’, 0, 1),
(345, 6, 9, ‘Lérida’, ‘L’, 0, 1),
(346, 6, 9, ‘Lugo’, ‘LU’, 0, 1),
(347, 6, 9, ‘Madrid’, ‘M’, 0, 1),
(348, 6, 9, ‘Málaga’, ‘MA’, 0, 1),
(349, 6, 12, ‘Melilla’, ‘ML’, 0, 1),
(350, 6, 9, ‘Murcia’, ‘MU’, 0, 1),
(351, 6, 9, ‘Navarra’, ‘NA’, 0, 1),
(352, 6, 9, ‘Orense’, ‘OR’, 0, 1),
(353, 6, 9, ‘Palencia’, ‘P’, 0, 1),
(354, 6, 9, ‘Pontevedra’, ‘PO’, 0, 1),
(355, 6, 9, ‘Salamanca’, ‘SA’, 0, 1),
(356, 6, 10, ‘Santa Cruz de Tenerife’, ‘TF’, 0, 1),
(357, 6, 9, ‘Segovia’, ‘SG’, 0, 1),
(358, 6, 9, ‘Sevilla’, ‘SE’, 0, 1),
(359, 6, 9, ‘Soria’, ‘SO’, 0, 1),
(360, 6, 9, ‘Tarragona’, ‘T’, 0, 1),
(361, 6, 9, ‘Teruel’, ‘TE’, 0, 1),
(362, 6, 9, ‘Toledo’, ‘TO’, 0, 1),
(363, 6, 9, ‘Valencia’, ‘V’, 0, 1),
(364, 6, 9, ‘Valladolid’, ‘VA’, 0, 1),
(365, 6, 9, ‘Vizcaya’, ‘BI’, 0, 1),
(366, 6, 9, ‘Zamora’, ‘ZA’, 0, 1),
(367, 6, 9, ‘Zaragoza’, ‘Z’, 0, 1);
Parece que este blog reemplaza la comilla simple del botón del ? con la comilla obliqua del botón de los puntos ¨
Es cuestión de reemplazar todas las comillas por la comilla simple y eliminar las comillas de los nombres de las columnas.
Un saludo,
Javier.
Por cierto, falta la provincia de Pamplona 😉
Olvida el anterior comentario es de Navarra. Perdón.
En la version 1.5 de prestashop no funciona ¿hay que hacer algun cambio?
Pingback: Insertar provincias de España en PrestashopGeneracionWeb | GeneracionWeb