En determinados tipos de productos, es importante disponer de una ficha técnica que permita comparar las características de varios productos antes de comprarlos. Prestashop para esto ofrece la funcionalidad de Características de Productos (Features, en inglés, o Funcionalidades en algunas traducciones). Sin embargo, la sintaxis para importar características de productos en Prestashop mediante CSV suele provocar dolores de cabeza y más de un problema hasta que, finalmente, se consigue.
Según el CSV de importación de productos que Prestashop proporciona como ejemplo, para importar las características se debe utilizar la siguiente sintaxis:
Nombre de la característica:Valor:Posición:Valor personalizado
Utilizar esta sintaxis cuando se tienen más de 3 o 4 características por producto es complicado y puede ser frustrante, además hay que recordar que para separar una característica de otra se debería usar la coma, o mejor dicho, el carácter que hayas indicado en la configuración de la importación. Es importante tenerlo en cuenta ya que, si alguna de las características puede tener una coma dentro de sus valores, es mejor definir otro carácter como separador de múltiples valores dentro de un campo.
Por eso, se me ocurrió aprovechar la comodidad de herramientas como Microsoft Excel o Google Sheets para gestionar el CSV y preparar una fórmula que genere la complicada sintaxis de características que necesita Prestashop a partir de los datos que estarán indicados en diferentes columnas.
Dicho de otra forma, el objetivo es facilitar la importación masiva de productos con características en Prestashop, para ello colocaremos cada característica como una columna más del CSV (teniéndolo ya abierto en Excel, por ejemplo) y, mediante una fórmula, se generará en una columna el formato necesario para que Prestashop importe correctamente todas las características de cada producto.
Preparar los datos
Como ejemplo, explicaré cómo hemos preparado la importación de características de calderas y estufas, que este invierno han tenido bastante presencia online (al menos en nuestro entorno).
Estos tipos de producto tienen características técnicas como potencia o consumo, cuyos valores suelen representarse con un rango de números con decimales: hay que tenerlo en cuenta ya que se usaría la coma como separador decimal.
En la figura 1 te mostré algunos productos con las características que se deseaban importar, y en la siguiente imagen (figuras 3 y 4) tienes una muestra de cómo preparamos los datos en el Excel:
Cada columna a partir de la BE (las tituladas en rojo) corresponde a una característica de los productos. El título de cada columna es el nombre de la característica, tal y como queremos que luego aparezca en Prestashop. En cada fila, se asigna el valor de esa característica para ese producto.
Preparar la fórmula
Una vez rellenados los datos, hay que elaborar una fórmula en Excel que genere la cadena de texto necesaria para que Prestashop importe correctamente las características de cada producto. Para ello, hay que concatenar el nombre cada nueva columna de característica (que corresponde al nombre de la característica) con su valor, ajustando además las comas y comillas necesarias para cumplir con la sintaxis correcta.
Antes se vio que la coma forma parte del valor de algunas características, por eso decidí utilizar la barra vertical “|” como separador de características, y así lo configuraremos después a la hora de importar en Prestashop.
En la siguiente imagen se muestra cómo queda la fórmula para todas las características que se querían asociar a estas calderas y estufas. Esta fórmula la coloqué en la columna para las características que ya existe en el CSV de ejemplo de Prestashop:
En detalle:
Para terminar
Una vez hemos completado los datos de todos los productos y los hemos verificado, los últimos pasos serían:
- Exportar esta hoja de datos en formato CSV.
- Importar en Prestashop el CSV generado, prestando atención a configurar el carácter separador “|” (el que hemos usado en este caso) en la pantalla Parámetros avanzados > Importación CSV.
Con esta técnica hemos facilitado la tarea de varios clientes a la hora de importar sus productos en Prestashop, porque les resultaba tedioso y complicado generar el campo de importación de características con el formato adecuado. Espero que también te sirva y si crees que se puede mejorar ¡no dudes en comentarlo!
Me salvaste la vida brother. Gracias muy buen Post
Gracias Nicky, me alegra saber que te sirvió.
Gracias , me ayudo bastante
Hola Luis, buenas. Te queria consultar, yo necesito concatenar 14 valores de cada registro y cuando agrego el nro 11 enla función, excel muestra un error de # en la celda. Sabes como se puede solucionar?
Gracias!
Hola, Excel te puede dar información sobre el error normalmente pulsando sobre un icono que aparece en la casilla de la fórmula con error. No obstante, si lo que te sale es un montón de #, también puede ser algo de visualización, es decir, que el valor no cabe en la celda y basta con que amplíes el ancho de columna.
Buenos días Luis (y felices fiestas a todos) ¿sabes si se pueden subir con CSV atributos de colores con su valor en hexadecimal para no tener que ir al backoffice a usar la paleta?
Felices fiestas para ti también ¡gracias!
Lo siento pero aún no he tenido oportunidad de probar lo que dices. Si lo pruebas y funciona, no dudes en comentarlo por aquí 😉
es realmente bueno. Yo habia estado perdiendo semanas intentado modificar los campos el producto siguiendo tutoriales que no terminaban de funcionar y con este al menos puedo trabajar y he añadido un monton de caracteristicas
Eso si me pasa una cosa curiosa esta formula no me funciona
=CONCATENAR($V1;»:»;V2;» «;» | «;$F1;»: «;G2;» «;» | «;$S1;»: «;S2;» «;» | «;$I1;»: «;I2;» «;» | «;$E1;»: «;F2;» «;» | «;$T1;»: «;T2;» «;» | «;$W1;»: «;W2;)
y esta si
=CONCATENAR($V1;»:»;V2;» «;» | «;$F1;»: «;G2;» «;» | «;$S1;»: «;S2;» «;» | «;$I1;»: «;I2;» «;» | «;$E1;»: «;F2;» «;» | «;$T1;»: «;T2)
Un saludo
Buenos días Luis!
Preparé la columna Característica con la fórmula que das, y al importar, ignoro todas las columnas que tienen alguna característica, supuse que era así, porque sino me daba error.
Me importa las características pero en la ficha del producto no me salen ni las característica ni su valor.
Hay que establecer las características una a una en cada producto?, supongo que no, pues para eso hago la columna Característica.
Gracias
Si ves las características bien asignadas en el backoffice, es probable que el problema esté en la plantilla. ¡Suerte!
Tocayo, lo que indicas como posición de la característica, el «1», ¿no es mas bien si es valor predefinido o valor personalizado (0 o 1, o, 1 o 0)?
Por lo que tengo entendido, ese valor es la posición de la característica entendida como el orden en el listado de características cuando se muestra en el front. Pero claro, depende de si la plantilla tiene en cuenta ese valor, o no, a la hora de ‘pintar’ las características en la ficha del producto. ¡Gracias, tocayo!
Muy bien explicado. Gracias
A mi no me funciona no se si el mejor formato de exportacion es csv
he tenido varios errores que explico
1ª Excel me decia que excedia el numero de concatenaciones y las 4 ultimas no funcioaban
SOLUCION hacerlo en dos trozos y concatenar
2º me importa no me da errores pero luego sobre 600 productos me aparecen 800 categorias nuevas de campos de caracteristicas que no ha admitido correctamente, en otras ocasiones son 120 las categorias nuevas no se a que se debe. Quizas se deba que he convertido los campos en texto salvo los numericos
agradecertia a alguien k sepa mas que yo ideas
las cadenas que estoy usando son estas
primera parte =CONCATENAR($A$1;»:»;A692;»|»;$X$1;»:»;X692;» «;»|»;$I$1;»: «;I692;» «;»|»;$J$1;»: «;J692;» «;»|»;$S$1;»: «;S692;» «;»|»;$G$1;»: «;G692;» «;)
segunda parte =CONCATENAR($E1;»: «;E2;» «;»|»;$F1;»: «;F2;» «;»|»;$H$1;»: «;H2;» «;»|»;$T$1;»: «;T2;» «;»|»;$R$1;»: «;R2)
definitiva=AN2&» «&AO2
Hola, yo revisaría bien los datos de origen en tu Excel y los nombres de las características, así como el uso de los separadores. ¡Suerte!
Hola, excelente publicación.
Mi caso es posible que sea algo especial, tengo una serie de productos (Resistencias, condensadores, diodos, etc..) y cada serie o tipo de productos tiene diferentes caracteristicas tecnicas unicas.
Estas caracteristicas ademas tienen que ser filtrables mediate los filtros, está todo preparado para poder hacer esta labor.
He logrado subir las tablas a la base de datos con las caracteristicas que pueden tener todos los productos de una de las series (Resistencias), pero quiero poder abrir una tabla donde figuren esas caracteristicas de cada producto de modo que los pueda rellenar facilmente en excel y luego exportar a la web, sabiendo que seran indexadas por tambien por los filtros.
¿Esto se puede hacer mas o menos como yo quiero?
Hola, Enrique, gracias por tu comentario.
Si no entendí mal, creo que lo que quieres se puede hacer perfectamente con este tipo de Excel. Es posible que te salga un Excel algo «grande», de muchas columnas (dependiendo del número de características técnicas que dispongas) y complejo de utilizar.
Una posible forma de reducir la complejidad del Excel es hacer un Excel distinto por cada familia de productos; en caso de que las características de cada familia sean muy distintas a las de otras familias, quizá esta sería una opción más «asequible». Esto implicaría tener que hacer varias importaciones (una por cada familia, por cada Excel) pero, bueno, al menos te resultaría algo más cómodo de manejar.
¡Suerte!
Buenas tardes tocayo:
Disculpa la molestia, ojalá puedas ayudarme:
Mi problema es al hacer la importación. Quiero agregar características de nuevos productos, pero aparentemente la importación no revisa si ya una característica común existe ya en los catálogos, lo cual duplica una tras otra vez en el catálogo la misma característica. Lo mismo sucede con los valores, los duplica sin revisar su existencia en catálogo. ¿Conoce alguna manera de evitar ese duplicidad de características y sus valores. Saludos. Atte. Luis Arias
Hola, asegúrate de que los nombres de características están siempre exactamente igual, porque el proceso de importación distingue entre mayúsculas y minúsculas, tildes, etc.
Gracias por tu comentario y ¡suerte!
Muchas gracias Luis por compartir, yo tengo una duda que no se si es posible, tengo gran cantidad de productos subidos y necesito rellenar el código de barras en cada uno de ellos, no se si es posible generar un excel con los productos descargarlo, ese archivo editarlo y luego volver a importarlo, pero no se si se duplican los productos al importar o los puedo sobreescribir, muchas gracias nuevamente
Hola, fíjate en que siempre puedas asociar los productos por su ID, así evitarás duplicados.
¡Suerte!