29Jul

Configurar sistema de envíos con regiones de Chile para Magento

Como se podrán dar cuanta, Magento no tiene configurado por default las regiones de Chile. Esto causa problema a la hora de calcular los despachos según Precio vs Destino y sobre todo por el precio de las encomiendas. Para esto está este sencillo tutorial para cargar las regiones de Chile en Magento y así poder usar el despacho como corresponde.

Primero, tenemos que dejar en claro que tendremos que escribir data directamente en la Base de Datos de Magento. Por lo que se recomienda desde un inicio respaldar la Base de datos por cualquier problema que llegase a ocurrir y así no tener problemas con su carro de compras.

Segundo, agregaremos las 15 regiones de Chile con sus respectivos nombres que los dejaré en claro en esta tabla:

Región Nombre de la Región country_id code default_name locale
XV Arica y Parinacota CL AP XV – Arica y Parinacota es_CL
I Tarapacá CL TA I – Tarapacá es_CL
II Antofagasta CL AN II – Antofagasta es_CL
III Atacama CL AT III – Atacama es_CL
IV Coquimbo CL CO IV – Coquimbo es_CL
V Valparaíso CL VA V – Valparaíso es_CL
RM Región Metropolitana CL RM RM – Región Metropolitana es_CL
VI Rancagua CL LI VI – Rancagua es_CL
VII Maule CL ML VII – Maule es_CL
VIII Biobío CL BI VIII – Biobío es_CL
IX La Araucanía CL AR IX – La Araucanía es_CL
XIV Los Ríos CL LR XIV – Los Ríos es_CL
X Los Lagos CL LL X – Los Lagos es_CL
XI Aysén CL AY XI – Aysén es_CL
XII Magallanes CL MA XII – Magallanes es_CL

Vamos ahora al Paso por Paso:

1. Con un editor de MySQL debemos entrar a nuestra base de datos para localizar la tabla que se llama directory_country_region la cual tiene estas cuatro columnas: region_id, country_id, code, default_name.

2. Una vez localizada esta tabla, debemos ir al último de la lista para agregar de forma manual la data. En “region_id” debemos seguir la secuencia numérica. En “country_id” deben colocar la sigla “CL”. En “code” debemos colocar un nombre único para la región, ej: Arica y Parinacota le pondremos “AP”. Y en el “default_name” colocaremos el nombre con el que aparecerá en nuestro Frontend, ej: XV – Arica y Parinacota.

Les dejaré una Query en phpMyAdmin si necesitan agregar la data de una sola vez, ojo que deben editar el nombre de la base de datos y el numero correlativo según lo que corresponde con sus datos.

INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'AP', 'XV - Arica y Parinacota');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'TA', 'I - Tarapacá');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'AN', 'II - Antofagasta');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'AT', 'III - Atacama');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'CO', 'IV - Coquimbo');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'VA', 'V- Valparaíso');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'RM', 'RM - Región Metropolitana');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'LI', 'VI - Rancagua');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'ML', 'VII - Maule');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'BI', 'VIII - Biobío');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'AR', 'XI - La Araucanía');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'LR', 'XIV - Los Ríos');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'LL', 'X - Los Lagos');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'AY', 'XI - Aysén');
INSERT INTO `nombre_de_la_db`.`directory_country_region` (`region_id`, `country_id`, `code`, `default_name`) VALUES ('numero_correlativo', 'CL', 'MA', 'XII - Magallanes');

Les debería quedar así:

sistema-envio-capture1

3. Una vez que tengan lista esa tabla, deben editar otra tabla que está abajo de la anterior, se llama directory_country_region_name. En la columna “locale” deben colocar el idioma configurado en Magento, lo ideal es que sea Español-Chile, o sea “es_CL”. En “region_id” deben colocar el numero correlativo que corresponde de cada región ya ingresada, en el mismo orden. Y finalmente “name” colocaremos nuevamente el nombre que queremos que aparezca en el Frontend de Magento.

Dejaré una Query en phpMyAdmin para ingresar esta data desde la consola:

INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'XV - Arica y Parinacota');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'I - Tarapacá');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'II - Antofagasta');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'III - Atacama');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'IV - Coquimbo');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'V- Valparaíso');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'RM - Región Metropolitana');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'VI - Rancagua');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'VII - Maule');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'VIII - Biobío');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'XI - La Araucanía');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'XIV - Los Ríos');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'X - Los Lagos');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'XI - Aysén');
INSERT INTO `nombre_de_db`.`directory_country_region_name` (`locale`, `region_id`, `name`) VALUES ('es_CL', 'numero_correlativo', 'XII - Magallanes');

Debería verse así:

sistema-envio-capture2

4. Una vez que tenemos ya listo nuestras modificaciones en la base de datos, ahora nos vamos al Backend de Magento para configurar nuestro método de envío con las regiones de Chile. Nos vamos a System > Configuration > Shipping Setting > Origin para configurar el origen de nuestro despacho. Podrán darse cuenta que al seleccionar el país, nos aparecerá automáticamente ya las regiones que están en nuestra base de datos. Esta parte es importante ya que estamos configurando a Magento que el despacho se hará desde una región y se hará a otra región, así podrá calcular el precio por distancia. Y guardamos los cambios.

sistema-envio-capture3

5. Ahora, dentro de las Configurations nos vamos a Shipping Methods para agregar nuestro método de envío en el despacho. Y guardamos los cambios.

sistema-envio-capture4

6. Esta es la parte más importante de toda esta configuración. Ya al momento de guardar el Shipping Methods con los datos puestos en la imagen, deberán ir a la esquina superior izquierda donde está Current Configuration Scope para cambiar “Defaul Config” por “Main Website”. Esto nos permitirá acceder a Export > Export CSV para descargar una tabla tipo en formato CSV (tablerates.csv) que podremos llenar con la información de precios por regiones y peso.

sistema-envio-capture5

Les dejare también un ejemplo de como deberían llenar la tabla para los precios por regiones:

sistema-envio-capture6

7. Ya teniendo nuestro archivo tablerates.csv listo, ahora nos vamos al admin para importar el nuevo documento y guardamos los cambios.

sistema-envio-capture7

Ahora pueden hacer una prueba, una vez que se compre un producto y se proceda a indicar el destino del producto, se deberá seleccionar la región de destino, que se comunicará con esta tabla y sabrá el precio que le corresponde por destino.

sistema-envio-capture8

Espero que sea de ayuda, cualquier duda o sugerencia me escriben!

Share this Story

6 comments

  1. Saludos Carlos

    Podriamos también insertar las Comunas por Regiones ?

  2. Hola!
    Disculpa el archivo tableares.csv no debería decir CL como country en vez de CHL?

    • carlos.pozo@zentidoo.com

      Hola Miguel,
      El tablerates.csv te lo genera Magento, es el archivo que te entrega el sistema para poder realizar los cambios necesarios. En la base de datos de Magento el Country de Chile lo guarda como CHL, por eso lo ves reflejado de esa manera. Saludos!

    • ¿Sabes como puedo hacer un módulo comuna Estimados?

Leave a Reply

Your email address will not be published. Required fields are marked *

*

zentidoo.com ® 2015. Todos los derechos reservados