Importar productos en Prestashop 1.6 de forma masiva mediante CSV

Muchos de nuestros clientes, que ya tienen un amplio catálogo de productos, nos piden una forma de subirlos a la tienda online de forma masiva, si tener que subir uno a uno desde el panel de administración. Prestashop ofrece un sistema de importación de productos mediante un archivo CSV que tiene que tener unas columnas determinadas. En este artículo os indicamos cómo hacerlo.

1. En primer lugar nos tenemos que bajar el archivo CSV modelo. Podemos hacerlo de 2 formas:
a) Accediendo a Parámetros avanzados > Importar CSV
b) Accediendo a Catálogo > Productos y, en la esquina superior derecha, dar a "Importar".

Ambos enlaces nos llevan al mismo sitio. En la columna derecha de esa página, veremos un listado de archivos CSV de ejemplo para descargar. Descargaremos el "Archivo de ejemplo por productos".


2. Una vez tengamos el archivo de ejemplo, lo podremos abrir con distintos programas. Os damos las instrucciones para abrirlo con dos de los más usados:
a) Microsoft Excel: Al intentar abrirlo nos saldrán 3 mensajes de error a los que hay que responder en este orden: Sí - No - Aceptar.
b) LibreOffice Calc (la hoja de cálculo de LibreOffice, un programa gratuito para aquellos que no tengan el Office de Microsoft): Saldrá una ventana en la que se podrán elegir diversas opciones. En la sección de "Opciones de separador" es importante dejar seleccionada la de "Punto y coma" y deseleccionadas el resto.

3. Ahora que ya tenemos abierto el archivo, veremos que hay varias columnas. En la primera fila podemos ver el nombre de esas columnas. Aquí explicamos para qué sirve cada una de ellas:

  •  COLUMNA A (ID): es el identificador de cada producto. En principio, recomendamos dejarla vacía para que Prestashop lo asigne automáticamente.
  • COLUMNA B (Activo): Indica si el producto es visible en la tienda de cara a lso clientes (0 = NO; 1 = SÍ). Es olbigatorio elegir una de las dos opciones.
  • COLUMNA C (Nombre): Nombre del producto. Debería ser único. Columna obligatoria.
  • COLUMNA D (Categorías): Categorías a las que pertenece el producto separadas por comas (sin espacio). Se puede poner el nombre o el ID de la categoría, pero si se pone el nombre deberá estar escrito exactamente igual que en el panel de administración (respetando mayúsculas/minúsculas). Por eso, es más fácil poner el ID, que podemos ver en el panel de administración en Catálogo > Categorías. Columna obligatoria.
  • COLUMNA E (Precio SIN IVA): Precio del producto SIN IMPUESTOS.  Columna obligatoria.
  • COLUMNA F (ID regla de impuestos): Rellenar incluyendo el ID del impuesto (IVA) según esté incorporado en Localización > Impuestos. Si no gestionáis distintos impuestos, generalmente será el ID = 1. Columna obligatoria.
  • COLUMNA G (Precio de coste de nuestro producto): Columna opcional. Se puede dejar vacía.
  • COLUMNA H (En rebaja): Indicar si este producto está en rebaja y mostrará un cartel de “En rebaja” en la visualización del producto (0 = NO; 1 = SÍ). Si el producto no está en rebaja, marcar 0. Si se encuentra con rebaja, marcar 1. Columna obligatoria. 
  • COLUMNA I (Valor del descuento si es una cantidad fija): Valor neto a descontar del producto. Se debe dejar vacío si el producto no está en rebajas o si el descuento es un %. Columna opcional.  
  • COLUMNA J (Valor si el descuento es un %): Porcentaje a descontar del producto en rebajas. Por ejemplo, se deberá poner un 20 si el descuento es de un 20%. Se deberá dejar vacío si el producto no está en rebajas. Columna opcional.
  • COLUMNA K (Descuento desde AAAA-MM-DD): Campo opcional que sólo se debe rellenar si el descuento debe ser efectivo desde una fecha determinada. Por ejemplo, si quieres que tenga lugar cuando empiecen las rebajas de Enero, podrías 2016-01-07.
  • COLUMNA L (Descuento hasta AAAA-MM-DD): Campo opcional que sólo se debe rellenar si el descuento debe ser efectivo hasta una fecha determinada.Por ejemplo, hasta el 31 de diciembre de 2016, podríamos 2016-12-31.
  • COLUMNA M (Referencia del producto): Es el nº de referencia del producto dentro de nuestra tienda. Columna opcional.
  • COLUMNA N (referencia del proveedor): La referencia que usa tu proveedor para el producto. Columna opcional.
  • COLUMNA O (Proveedor): ID del proveedor. Columna opcional. Si hemos introducido los proveedores en nuestra tienda, podremos asignar el producto a un proveedor, indicando su ID, que podemos ver en Catálogo > Proveedores.
  • COLUMNA P (Fabricante o marca): ID del fabricante o de la marca. Columna opcional. Si hemos introducido los fabricantes en nuestra tienda, podremos asignar el producto a un fabricante, indicando su ID, que podemos ver en Catálogo > Fabricantes.
  • COLUMNA Q (EAN-13): El número del código de barras de 13 dígitos si el producto es europeo. Columna opcional. 
  • COLUMNA R (UPC): El número del código de barras de 13 dígitos si el producto es americano. Columna opcional. 
  • COLUMNA S (Ecotasa): Rellenar con las tasas o impuestos ecológicos. Columna opcional.
  • COLUMNA T (Ancho): Anchura del paquete del producto en centímetros. Utiliza un punto para separar los decimales.
  • COLUMNA U (Alto): Altura del paquete del producto en centímetros. Utiliza un punto para separar los decimales.
  • COLUMNA V (Profundidad): Profundidad del paquete del producto en centímetros. Utiliza un punto para separar los decimales.
  • COLUMNA W (Peso): Peso del paquete del producto en Kg. Utiliza un punto para separar los decimales.
  • COLUMNA X (Cantidad): Inventario total que tenemos del producto en todas sus combinaciones. Por ejemplo, si tenemos 30 iPod azules y 20 iPod grises, tendremos que poner 50.  Stock que tenemos de este producto. Columna obligatoria.
  • COLUMNA Y (Cantidad mínima): Cantidad mínima del producto que se tiene que comprar. Por defecto se debe poner 1. Columna obligatoria.
  • COLUMNA Z (Visible en): Para especificar dónde mostrar este producto dentro de la tienda: Toda la tienda (both), catálogo (catalog), sólo búsquedas (search) u oculto (none). Por defecto dejar columna vacía. Columna opcional.
  • COLUMNA AA (Coste adicional de envío). Para añadir un coste adicional al envío de este producto. Por defecto, dejadla vacía. Columna opcional.
  • COLUMNA AB (Unidad): Al vender un pack de artículos, indicar el nombre unitario de cada artículo del pack. Por ejemplo, “por botella” o “por libra”. Columna opcional.
  • COLUMNA AC (Precio Unidad). Al vender un pack de artículos, puede indicar el precio unitario de cada artículo del pack. Columna opcional.
  • COLUMNA AD (Descripción corta): Descripción corta del producto.  Tiene un límite de 155 caracteres. Columna opcional.
  • COLUMNA AE (Descripción): Descripción más extendida del producto. Columna opcional.
  • COLUMNA AF (Etiquetas): Palabras claves del producto. Columna opcional.
  • COLUMNA AG (Meta-título): El meta título de tu producto. Muy útil para el SEO. Columna opcional.
  • COLUMNA AH (Meta-palabras clave): Las palabras clave de tu producto, separadas por comas. Muy útil para el SEO. Columna opcional.
  • COLUMNA AI (Meta-descripción): Descripción del producto para posicionarlo en los buscadores. Columna opcional.
  • COLUMNA AJ (URL amigable): Se generan automáticamente con el nombre del producto separado por guiones si no lo rellenas. Se recomienda no tocar.
  • COLUMNA AK (Texto para cuando haya stock): Texto a mostrar cuando el artículo está disponible. Columna opcional.
  • COLUMNA AL (Texto para cuando se permiten pedidos aunque no haya stock): Texto a mostrar cuando el artículo está sin stock. Columna opcional.
  • COLUMNA AM (Disponible para pedidos): Indicar si este producto está disponible para su venta (0 = NO; 1 = SÍ). Hay que escribir un 0 si no está disponible o un 1 si está disponible para la venta. Columna obligatoria.
  • COLUMNA AN (Fecha de disponibilidad del producto): Es una columna opcional. Se dejará vacía en el caso de que esté disponible actualmente. Pero si quieres que el producto no se pueda comprar hasta una determinada fecha, puedes indicarlo. Por ejemplo, si no quieres que esté disponible hasta el 31 del 12 del 2016, pondrás 2016-12-31.
  • COLUMNA AO (Fecha de creación del producto): En esta columna pondríamos la fecha actual en formato AAAA-MM-DD, como en el caso anterior. 
  • COLUMNA AP (Mostrar Precio): Pondremos 1 si queremos que se vea el precio y 0 si no queremos que se vea. Columna obligatoria.
  • COLUMNA AQ (URLs de las imágenes): Dirección web de la imagen que queramos incluir para representar el producto. Se pueden incluir varias imágenes separadas por coma y sin espacio. Primero deberemos subirlas por FTP a una carpeta que creemos, por ejemplo upload2 y, una vez subidas, escribiremos su ruta en este campo. En muchos manuales hemos visto que se puede poner la ruta relativa (../upload/NombreDeLaImagenConSuExtensión), pero a nosotros nos daba error, por lo que lo hacemos con la ruta absoluta (http://www.nombredeldominio/nombreDeLaCarpetaDondeEstáNuestraTiendaSiNoEstáEnElRaíz/NombreDeLaImagenConSuExtensión), por ejemplo: http://www.tictacsoluciones.com/mitienda/upload2/dscf1940.jpg). Esta columna es opcional, por lo que si no sabemos subirlas por FTP, también podremos dejarla vacía y subirlas luego manualmente desde el panel de adminsitración.
  • COLUMNA AR (Eliminar imágenes existentes): Si el producto ya existía y no se ha borrado en la importación, se pueden añadir nuevas imágenes o quitar las ya existentes (0 = NO; 1 = SÍ). Columna opcional. Generalmente la dejaremos a 0 porque no importaremos productos que ya teníamos.
  • COLUMNA AS (Característica): Se pueden incluir varias características separadas por coma sin espacio. Formato: Nombre:Valor:Posición. Por ejemplo: Color:Azul:0. Columna opcional.
  • COLUMNA AT (Sólo disponible por internet): Si queremos destacar que solo se vende en la tienda online, ponemos 1. Saldrá un texto en el producto indicando que sólo está en venta online. (0 = NO; 1 = SÍ). Columna opcional.
  • COLUMNA AU (Estado): Se puede indicar si el producto es NUEVO (new), USADO (used) o RECICLADO (refurbished). Se puede dejar vacío.  Columna opcional.
  • COLUMNA AV (Personalización): Indicar 1 si es un producto personalizable o “0” si es un producto no personalizable. Dejar vacío si el producto no es personalizable. Si el producto es personalizable, se mostrará una caja de texto en la ficha del producto para que el cliente incluya el texto a personalizar. Columna opcional.
  • COLUMNA AW (Archivo adjunto): Si se permite añadir un fichero adjunto el producto (0 = No, 1 = Si). Columna opcional.
  • COLUMNA AX (Campos de texto): Indicaremos 1 si queremos mostrar campos de texto para que el cliente pueda escribirnos o “0” si no queremos que el cliente añada ningún comentario (0 = No, 1 = Si). También se puede dejar en blanco. Columna opcional.
  • COLUMNA AY (Fuera de stock): Permitir pedidos fuera de Stock. Indicar 0 si no se quiere permitir. Columna opcional.
  • COLUMNA AZ (ID / Nombre de la tienda): Si disponemos de multitienda, hay que indicar para qué tienda es este producto. Dejar en blanco por defecto si no se tiene multitienda. Columna opcional.
  • COLUMNA BA (Control de existencias avanzado): Se pondrá a 1 si se permite el control de existencias avanzado para este producto. Por defecto, dejar en blanco.
  • COLUMNA BB (Cantidad de Stock): Indicar el stock exacto si se dispone de un control de existencias avanzado. Por defecto, dejar en blanco. Columna opcional.
  • COLUMNA BC (Almacén): Indicar el ID del almacén que gestiona el stock del producto. Por defecto, dejar en blanco. Columna opcional.

Ahora qué sabemos como rellenar el archivo CSV que tenemos de prueba, borraremos todas las filas que tienen los datos de ejemplo. La primera fila no la borraremos porque contiene el nombre de las columnas.
No es obligatorio rellenar todos los campos, como hemos dicho, muchos son opcionales. Es decisión vuestra qué información queréis especificar.
Esta funcionalidad es para una importación masiva de productos, pero si tenéis muchos muchos productos o los productos llevan muchas imágenes asociadas, os recomendamos dividir el listado de productos en varios archivos .csv, porque el servidor se tomará su tiempo para importar estos productos y, si tarda más del tiempo límite especificado en el servidor, dará un error. Hemos leído una recomendación de que este archivo .csv no debería hacer referencia a más de 140 imágenes en total.

Ahora tendremos que guardar el fichero. Si estamos trabajando con EXCEL, nos encontraremos con dos advertencias. Al primer mensaje, responderemos que sí y al segundo que no.

4. Una vez que hayamos rellenado y guardado el fichero .CSV, será momento de subirlo a Prestashop.  Como en el paso 1, podemos ir a la importación de productos de 2 formas: 
a) Accediendo a Parámetros avanzados > Importar CSV
b) Accediendo a Catálogo > Productos y, en la esquina superior derecha, dar a "Importar".

Una vez ahí, seguiremos estos pasos:
- Se nos preguntará que tipo de entidad deseamos importar. En este caso, son productos.
- Seleccionaremos el archivo a subir desde nuestro ordenador.
- Indicaremos el idioma del archivo. En principio, será Español.
- Codifiación ISO 8859-1: NO
- Separador de filas: ";"
- Separador de valor múltiple: ","
- En el próximo apartado, elegiremos la configuración de los productos e imágenes. En principio, dejaremos todos los parámetros en NO.

- Haremos clic sobre el botón "Próximo paso" y especificaremos que se debe saltar sólo la primera línea del archivo (Líneas a saltar: 1). Veremos una tabla en la que aparecerán las distintas columnas y valores que habíamos incluido en nuestro archivo CSV.
- Haremos clic sobre el botón "Importar datos CSV".




5. Si no ha surgido ningún problema, tendremos los productos importados en nuestro catálogo. Puede tomarse su tiempo, no recarguéis la página hasta que no muestre un mensaje de que la importación se ha realizado.

6. Si ha surgido algún problema, se puede deber a lo siguiente:
- Habéis indicado separadores distintos de columnas y de elementos en el CSV que en la configuración de la importación en Prestashop.
- Habéis importado más productos de los que os permite el servidor (o productos con muchas imágenes).
- Las imágenes eran muy grandes. Tenéis que tener en cuenta que aunque las imágenes las hayáis subido antes al FTP, luego prestashop regenera las miniaturas de cada una de ellas para mostrarlas en los distintos módulos o partes de la web. Cada una de las imágenes no debería pesar más de 400kb y no debería tener una dimensiones superiores a 800x800px, pero ésto ya depende de las dimensiones que haya definido tu plantilla para la imagen más grande que utilice.
- Las imágenes subidas por FTP y que referenciamos en nuestro fichero .csv pueden estar dando problemas si su nombre contiene espacios, acentos o caracteres especiales. Si hay varias imágenes para un mismo producto, deben estar separadas por comas y sin espacios.
- Si os da problemas con las imágenes, aseguraros que la carpeta donde las estáis subiendo tiene permisos de escritura (podéis darle permisos 777). Aseguraros también de poner la ruta absoluta, porque poniendo la ruta relativa a nosotros nos daba problemas.
- Las categorías a las que hacemos referencia en el .csv han debido ser creadas previamente en el panel de administración de Prestashop y os recomendamos referenciarlas con su ID y no su nombre.
- Cabe la posibilidad de que os dé un error en los campos de tipo fecha. Puede que el programa que estéis utilizando para editar el CSV os cambie el formato de la fecha automáticamente al incluirla. Aseguraros de que la fecha está en formato AAAA-MM-DD (2016-06-01 para el 1 de Junio del 2016).
- No sería lo normal, pero cabe la posibilidad de que no estéis guardando el archivo de EXCEL en .csv, lo que os daría problemas, obviamente.

Si tenéis algún otro problema, podéis dejarnos un comentario a ver si podemos echaros una mano, pero muy posiblemente se deba a limitaciones del servidor. Probad a ver si importando sólo un producto con una imagen podéis hacerlo y, entoces, sabréis que lo estáis haciendo bien, pero estáis subiendo demasiados productos o demasiadas imágenes.