Thader Consultores

Miércoles, 29 de Junio de 2011 00:19

CSV Improved para importar productos en Virtuemart

por  David Lozano
  • Imprimir
  • E-mail
  • 1 comentario

CSV ImprovedUn aspecto importante a la hora de montar una tienda virtual es evidentemente el subir la información de los productos a la web de la tienda. Con Virtuemart, hacerlo manualmente es bastante sencillo, pero si tienes muchos productos, la cosa se complica y mucho, ya que Virtuemart no incorpora en sus funcionalidades una herramienta de este tipo.

Para solucionar este tema, se puede usar CSV Improved, un componente para Joomla con el que podemos importar y exportar productos de Virtuemart desde o hacia un archivo CSV, respectivamente. Para los que no lo conozcan, un fichero CSV (Comma-Separated Values) es un archivo de texto plano en el que se representan datos como una tabla. Las columnas se separan mediante comas (o punto y coma, son las más usadas) y las filas mediante saltos de línea. Se recomienda usar un delimitador para las columnas si se van a usar comas en el valor de los campos. Generalmente se usan las comillas.

Ejemplo de fichero CSV:

"01","luis","Calle Serrano","35","4352523"
"02","paco","Avenida Libertad","7553662"

Instalación de CSV Improved

Existen dos versiones de este componente, uno gratuito y otro de pago. Aquí nos centraremos en el gratuito, que sirve para todo lo que queremos, básicamente importar productos. Se puede descargar la última versión que se liberó gratuita aquí. La versión es la 1.9, y el componente se llamaba ya CSVI Virtuemart en lugar de CSV Improved. Eso sí, hay que tener en cuenta que antes de descargarlo es preciso registrarse en la página de CSV Improved.

Antes de instalar hay que activar el modo heredado 1.0 si se está usando la versión 1.5. Esto se hace activando el plugin System - Legacy desde Extensiones -> Gestor de plugins. Una vez hecha la instalación como cualquier otro componente, podremos empezar a configurarlo para que importe o exporte productos como deseemos.

Configuración de plantillas

Para importar y exportar productos, se usan plantillas. Estas plantillas definen los campos de los productos, para saber cómo interpretar los datos de los ficheros CSV que se suministran al sistema en el caso de importaciones, o para saber cómo generar los ficheros CSV en el caso de exportaciones de productos.

Se puede usar alguna de las plantillas que lleva por defecto instaladas CSV Improved o crear una nueva. Todo ello se hace desde el menú Templates del componente. Para aprender cómo usar el componente y ver su potencial, vamos a generar una nueva plantilla para importar productos al sistema. En el menú Templates, pulsamos en Nuevo, y entramos en una pantalla con pestañas para definir las características de nuestra plantilla. Hay que definir si es para importar o exportar, elegimos Import, luego vienen varias opciones en Configuraciones. Dejamos sólo activo el checkbox de Overwrite existing data para que los nuevos datos sobreescriban los anteriores. En la pestaña de File paths dejamos todo como está, igual en la de System limits. En la de General settings le pondremos el nombre y pondremos como Field delimiter el punto y coma (;) y como Text Enclosure las comillas ("). Se pulsa en Guardar y ya tenemos la plantilla creada, y saldrá listada en el menú Templates.

A continuación viene la parte más importante del proceso, tenemos qué definir la asociación entre los campos que tendremos en el fichero CSV con los campos de los productos de Virtuemart, es decir, qué campos del CSV son cada campo del producto en Virtuemart. Para ello pulsamos en Fields en la plantilla que hemos creado anteriormente.

En esta pantalla vamos a ir definiendo qué campos son los que componen el fichero CSV. Hay que tener en cuenta que el orden en que los definamos es el orden que tienen que seguir en el fichero CSV para que todo se haga como queremos. Es decir, si el segundo campo definido en esta pantalla es el nombre del producto, ese nombre debe ir tras el primer delimitador del fichero CSV (es decir, será el segundo campo de cada fila del fichero).

Para una importación básica de productos, definimos los siguientes campo en este orden: product_sku (número de referencia del producto), product_name (nombre del producto), product_desc (descripción del producto), category_path (categoría del producto), product_price (precio del producto), product_full_image (nombre del fichero de la imagen del producto) y product_publish (define si el producto está publicado o no).

Nos quedará una cosa así:

Definición de campos en plantilla de CSV Improved

Después se le da a Guardar y ya tenemos definida la plantilla y los campos.

Creación del fichero CSV e importación

Ahora vamos a crear el fichero CSV donde tendremos la información de todos los productos que queremos introducir en la tienda virtual. Para ello podemos usar un editor de textos simple tipo Notepad, o un editor de hojas de cálculo como OpenOffice Calc o Excel de Microsoft. En estos últimos hay que tener en cuenta que hay que poner un producto en cada fila y un campo en cada columna, y guardar el documento como archivo CSV, eligiendo como delimitador de campo y de texto los mismos que hayamos puesto en la plantilla de CSV Improved.

Para nuestro ejemplo, en un editor de textos sencillo generamos un archivo como el siguiente:

"01";"Muñeca azul";"Muñeca con vestido azul";"Juguetes";"20,99";"m_azul.jpg";"Y"
"02";"Muñeca roja";"Muñeca con vestido azul";"Juguetes";"22,99";"m_roja_jpg";"Y"
"03";"El Señor de los Anillos";"Libro completo de El Señor de Los anillos por J.R.R. Tolkien";"Libros";"44,50";"esdla_jpg";"Y"
"04";"La Ilíada";"Libro de La Ilíada";"Libros";"24,90";"iliada.jpg";"Y"

Ahora vamos al menú Import del componente CSV Improved, elegimos la plantilla que creamos anteriormente, y en Upload file ponemos la ruta de nuestro fichero CSV. También se puede subir el fichero primero al servidor y en Load from server poner la ruta al archivo. Esto es bueno si el fichero CSV es muy grande, ya que puede dar problemas de ejecución de script PHP con ficheros de gran tamaño. Se pulsa Import y si todo está bien ya tendremos nuestros productos en la tienda.

Sólo faltaría subir las imágenes con el nombre que le hemos definido en el fichero CSV. Hay que subirlas a la ruta que pone en el campo File location product images, en la pestaña File paths en las características de la plantilla que hemos creado. Si no se tiene acceso por FTP a esa carpeta, habrá que cambiar la ruta de esas imágenes a una a la que sí podamos acceder con el Gestor multimedia de Joomla.

De esta forma, si queremos añadir más productos, sólo tendremos que añadirlos al fichero CSV. Si queremos cambiar alguna característica a muchos productos a la vez, por ejemplo el precio, en lugar de hacerlo uno a uno podemos coger nuestro fichero CSV original, cambiar ahí los precios con un editor de hojas de cálculo, guardarlo como CSV e importarlo desde CSV Improved. Al tener marcada en la plantilla la casilla Overwrite existing data, los productos se actualizarán.

¡Más en esta categoria: « Tiendas virtuales

1 comentario

  • Enlace comentario Miércoles, 19 de Diciembre de 2012 01:03 Publicado por Carlos Ceron

    Estuve probando el componente y es muy bueno ....solo algo para agregar:

    si quieren agregar una imagen grande y que de esa salga la pequeña (thumb) automáticamente deben poner en la plantilla el campo del thumb y en el CSV se debe colocar el nombre del archivo como uno quiera que se llame, aunque en el servidor obviamente no existirá la imagen pequeña.

    Ejemplo de mi CSV:

    sku;name;descr;price;category;publish;imagen;
    "1080";"bolso 1080";"bolso granditismo";"1070";"bolsos dama";"1013_azul_rey_50c3dda47d1fd.jpg";"Y";"1013_azul_rey_50c3dda47d1fd_peq.jpg"

    el nombre 1013_azul_rey_50c3dda47d1fd.jpg es el de la imagen grande y esa si existe en el servidor, pero 1013_azul_rey_50c3dda47d1fd_peq.jpg es el nombre como quiero que se llame la pequeña.

    Espero que a alguien le sirva este aporte pq yo casi que no logro encontrar cómo crear la imagen pequeña automáticamente :D

Dejar comentario

Asegúrate de haber leído nuestra Política de privacidad antes de publicar cualquier comentario.

Los campos marcados con (*) son obligatorios.

Publicaciones del blog

No te pierdas las últimas publicaciones en el blog:

Thader Consultores

Thader Consultores