Añadir Provincias en Prestashop

Añadir Provincias en Prestashop

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.

prestashop - Caligrama Comunicación

Esta entrada tiene 13 comentarios

  1. Jose Maria Gallego

    No aparecen las provincias de Baleares ??

  2. Jose

    He realizado la modificacion de la base de datos y ahora no me funciona el transportista, ¿por que puede ser?

  3. Ozo

    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’);

  4. Daniel

    Hola,
    creo que para MySQL 5 este sintaxis no vale. Por lo menos a mi solo me da que errores.
    Gracias.

  5. alejandrosack

    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),
    ….

  6. Javier

    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);

  7. Javier

    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.

  8. Javier

    Por cierto, falta la provincia de Pamplona 😉

  9. Javier

    Olvida el anterior comentario es de Navarra. Perdón.

  10. Angel

    En la version 1.5 de prestashop no funciona ¿hay que hacer algun cambio?

Deja una respuesta