Una de las tareas más pesadas que nos podemos encontrar cuando empezamos con un nuevo proyecto ecommerce, es tener que configurar los productos. Por lo general esta tarea la tendremos que realizar producto a producto. Pero, y si ya disponemos de otra instalación, podriamos migrar los productos a la vez.
Generalmente existén dos opciones para realizar la migración de los productos en Magento, usar los perfiles de Magento para importar y exportar un fichero .csv o hacerlo directamente a traves de la base de datos MySQL.
Exportar los productos desde MySQL
Primeramente, para que funcione la importación de las tablas en la base de datos es importante deshabilitar la revisión de las claves foráneas (foreign keys).
- Desde de la configuración personalizada cuando exportamos en phpMyAdmin.
- Escribiendo la siguiente línea, en la parte superior del código dentro de nuestros archivos .sql.
SET FOREIGN_KEY_CHECKS = 0;
El siguiente paso es seleccionar las tablas que contienen los datos necesarios para realizar la tarea separandolas en grupos (atributos, categorias y productos).
Exportar las tablas con todos los atributos de Magento
Todo lo referente a los atributos de nuestra instalación esta contenido dentro de las tablas con la cadena «eav«, por ello vamos a tener que exportar las siguientes tablas:
catalog_eav_attribute customer_eav_attribute eav_attribute eav_attribute_group eav_attribute_label eav_attribute_option eav_attribute_option_value eav_attribute_set eav_entity eav_entity_attribute eav_entity_datetime eav_entity_decimal eav_entity_int eav_entity_store eav_entity_text eav_entity_type eav_entity_varchar eav_form_element eav_form_fieldset eav_form_fieldset_label eav_form_type eav_form_type_entity
Estas tablas podemos tenerlas en un archivo sql independiente al cual llamare «atributos.sql«.
Exportar las tablas de categorías de Magento
Ahora es el turno de exportar todas las tablas que contengan la cadena «catalog_category«, ya que es en estas donde se encuentra toda la configuración relativa a las categorías.
catalog_category_anc_categs_index_idx catalog_category_anc_categs_index_tmp catalog_category_anc_products_index_idx catalog_category_anc_products_index_tmp catalog_category_entity catalog_category_entity_datetime catalog_category_entity_decimal catalog_category_entity_int catalog_category_entity_text catalog_category_entity_varchar catalog_category_flat_store_1 catalog_category_product catalog_category_product_index catalog_category_product_index_enbl_idx catalog_category_product_index_enbl_tmp catalog_category_product_index_idx catalog_category_product_index_tmp
Igual que con las tablas de los atributos renombrare este archivo como «categorias.sql«.
Exportar tablas de los productos de Magento
Continuamos exportando las tablas con la información de los productos, posiblemente no todas las tablas del siguiente listado contenga información relevante sobre nuestros productos, pero para ahorrarnos ir una a una mirando si continene datos la mejor opción es exportarlas todas.
cataloginventory_stock cataloginventory_stock_item cataloginventory_stock_status cataloginventory_stock_status_idx cataloginventory_stock_status_tmp catalogrule catalogrule_affected_product catalogrule_customer_group catalogrule_group_website catalogrule_product catalogrule_product_price catalogrule_website catalogsearch_fulltext catalogsearch_query catalogsearch_result catalog_product_bundle_option catalog_product_bundle_option_value catalog_product_bundle_selection catalog_product_enabled_index catalog_product_entity catalog_product_entity_datetime catalog_product_entity_decimal catalog_product_entity_gallery catalog_product_entity_int catalog_product_entity_media_gallery catalog_product_entity_media_gallery_value catalog_product_entity_text catalog_product_entity_tier_price catalog_product_entity_varchar catalog_product_link catalog_product_link_attribute catalog_product_link_attribute_decimal catalog_product_link_attribute_int catalog_product_link_attribute_varchar catalog_product_link_type catalog_product_option catalog_product_option_price catalog_product_option_title catalog_product_option_type_price catalog_product_option_type_title catalog_product_option_type_value catalog_product_super_attribute catalog_product_super_attribute_label catalog_product_super_attribute_pricing catalog_product_super_link catalog_product_website
Al último archivo lo llamare «productos.sql«.
Importar los productos en MySQL
Para completar el proceso de migración tenemos que importar los archivos atributos.sql, categorias.sql y productos.sql en base de datos para la nueva tienda Magento.
Podemos importar los archivos a través de phpMyAdmin o usando la línea de comandos / terminal.
Utilizar phpMyAdmin para importar ficheros .sql
Abrimos phpMyAdmin y abrimos la base de datos donde queremos importar los productos.
El inconveniente de este método es, que el tamaño del fichero que podemos importar depende de la configuración del servidor mysql y que por seguridad, no suele superar los 15Mb.
Usar línea de comandos o terminal para importar ficheros .sql
El comando que tendremos que ejecutar para importar los datos contenidos en el fichero es el siguiente:
mysql -u [usuario] -p [contraseña] nombre_bbdd < fichero.sql
Al finalizar todas las importaciones es conveniente realizar la siguiente consulta para restablecer la revisión de las claves foraneas en nuestra base de datos.
SET FOREIGN_KEY_CHECKS = 1;
Por último y no menos importante son las imagenes de los productos.
Nos dirigimos a la raiz de nuestro sitio web, donde se encuentra instalado el Magento de la tienda original que contiene las imagenes y localizar el directorio «media/catalog». Podemos comprimirlo o simplemente descargarlo tal cúal a nuestro pc o mac.