[Resuelto] Los nuevos productos no copian el texto de descripción del idioma principal  

 
Sergio
 Sergio
Usuario experto

     Hola a todos:

 

             Hoy nos hemos dado cuenta de un curioso detalle. Hace tiempo hicimos la migración de la tienda de la versión 1. 6 a 1.7. Salió más o menos bien, y cuando entrábamos con diferentes idiomas a la tienda, veíamos los productos con su descripción corta y larga (obviamente todas en ES, ya que no hemos traducido aun estas partes). El tema es que hoy trasteando por la tienda nos hemos dado cuenta de que, tanto los productos que en los últimos meses hemos ido dando de alta como los productos a los cuales les hemos cambiado la descripción del idioma principal, tienen problemas:

 

    En los que creamos nuevos, la descripción (corta y larga) solo aparece en el idioma principal, es decir, ES. En el resto de idiomas directamente no aparece nada.

    En los antiguos a los cuales les hemos ido modificando o modernizando la descripción, en el resto de idiomas directamente aparece la antigua que teníamos metida. Esto lo vemos más normal, pero no deja de ser un problema.

   Hemos intentado solucionarlo a través de la opción de copia de un idioma a otro que trae Prestashop (Internacional -->Traducciones --> Copiar idioma), pero aunque lo intentemos con el tema clasico o con el que usamos normalmente (Panda), nos salen errores y no hace nada. Estos errores son que no encuentra los ficheros de traducción, ya que los hemos buscado nosotros manualmente en las distintas carpetas y efectivamente, no están (tampoco en el idioma por defecto).

      Habíamos pensado, no se qué os parece, solucionarlo en dos partes:

    - Por un lado, para lo que ya tenemos mal, hemos pensado en copias los valores de "description" y "description_short" de todos los registros de la tabla ps_product_lang de prestashop, donde el id_product coincida y el id_lang sea distinto de 1 (que es el idioma por defecto). Es decir, lo que buscamos es copiar los valores del idioma por defecto (1) al resto dentro de los mismos productos. De esa manera, tendríamos en todos los idiomas la descripción y la descripción corta del producto en castellano.

 

     - Por otro lado, necesitamos una solución o a ver si alguien sabe como configurar prestashop para que, cuando se crea un producto, si no pones la descripción más que en castellano, directamente el resto de los idiomas tome esta versión sin tener que ir uno por uno (para evitar que vayamos creando nuevos errores).

 

   Respecto a la primera parte, como no controlamos demasiado de SQL, hemos pensado en la siguiente sentencia:

 

UPDATE tabla
SET tabla.description = tabla2.description
FROM 'ps_product_lang' tabla
INNER JOIN 'ps_product_lang' tabla2
ON tabla.id_product = tabla2.id_product AND tabla2.id_lang = '1' and tabla.id_lang <> tabla2.id_lang;

 

    ..... pero nos da error (aunque no nos especifica cual) y nos perdemos. De hecho, nos ha costado un montón llegar a ese punto. ¿Nos podríais ayudar, alguno que controléis bien de SQL?

 

     y respecto a la segunda parte ¿Alguien sabe donde está el fallo de nuestro Prestashop para que no esté creando automáticamente las descripciones en otros idiomas iguales a las del idioma por defecto?

 

       Tenemos Prestashop 1.7.6 con el tema Panda y el dominio es www.ferreteronline.com.  Adjuntamos pantallazos de:

   - Un producto con la descripción en castellano y con la descripción vacía en catalán (por poner un ejemplo)

   - El resultado de la ejecución de la SQL en Cpanel

 

            A ver si con estos datos nos podéis echar una manita. Gracias de antemano.

 

Producto en Castellano, con descripción
Mismo producto en Catalán, sin descripción
Sentencia SQL en Cpanel con el error

        

Respondido : 26/09/2020 2:47 pm
Argenis
 Argenis
Soporte CMS Webempresa Moderator

Hola Sergio,

En este caso las traducciones debes hacerlas de forma manual ingresando al producto y seleccionando en la parte superior el idioma:

image

Por defecto prestashop no hace las asignaciones automática del idioma principal para un producto agregado, puedes hacer este cambio manual simplemente copias y pegas las descripciones.

Con respecto a las tablas de prestashop en la base de datos puedes seccionarla en una nueva consulta para darle un mejor seguimiento a la misma ya que es un poco mas delicado mover esto por base de datos.

Un saludo 🖐️ 

Respondido : 26/09/2020 3:34 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Sergio
 Sergio
Usuario experto

    Hola:

 

        Gracias Argenis, pero necesitamos algo más concreto. Con esto nos quedamos igual que estamos. ¿Alguien que controle bien SQL puede indicarnos por qué nos da error esa consulta?. Tenemos la certeza de que una vez ejecutada solucionaremos el problema de los productos que ya tenemos, pero no sabemos por qué la consulta nos dá el error. La consulta que estamos utilizando es:

                     UPDATE tabla
                     SET tabla.description = tabla2.description
                    FROM 'ps_product_lang' tabla
                     INNER JOIN 'ps_product_lang' tabla2
                    ON tabla.id_product = tabla2.id_product AND tabla2.id_lang = '1' and tabla.id_lang <> tabla2.id_lang;

        y el error que nos devuelve es: #1064 - Algo está equivocado en su sintax cerca 'FROM 'ps_product_lang' tabla
INNER JOIN 'ps_product_lang' tabla2
ON tabla...' en la linea 2

            Si probamos la misma sentencia en un comprobador en línea de sentencias SQL, donde no dependemos de nombres de bases de datos ni nada parecido, nos da el mismo error, es decir, que hay algo en la sentencia que está mal escrito o planteado, pero no sabemos qué es.

     ¿Alguien que controle bien de SQL? Si sacamos esta sentencia, solucionaremos nuestro problema y el de todos los que tengáis el mismo ...

Respondido : 26/09/2020 6:16 pm
Sergio
 Sergio
Usuario experto

   Hola. ¿Nadie que pueda ayudarnos en este tema?

 

                  Gracias y un saludo.

Respondido : 26/09/2020 9:55 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

Sergio
 Sergio
Usuario experto

   Bueno .... pues después de muchas horas echadas al tema, tenemos que decir que lo hemos solucionado. Con una sentencia SQL hemos conseguido que todos los productos tengan descripción, independientemente del idioma, etc.

     Ahora vamos a proceder a ejecutar cada cierto tiempo esa sentencia SQL mediante una tarea CRON cada cierto tiempo (pondremos por ejemplo cada hora), de manera que si creamos productos nuevos, no nos tendremos que preocupar de meterlo en distintos idiomas.

       Publicaríamos aquí la sentencia SQL que hace esto, pero en vista de la poquísima ayuda que se brinda últimamente en este foro, sobre todo por parte de algunos/as que solo dan respuestas "vacias", es decir, que responden pero para no decir nada (últimamente pasa muuuucho en este foro), si alguien lo quiere, que nos lo pida por privado y se lo mandamos. También lo hemos publicado en otros foros, así que con buscarlo, lo tendréis y os funcionará igual que a nosotros.

        Perdón por el comentario para los que sí aportan, que también los hay y ayudan mucho.

 

                              Un saludo.

Respondido : 26/09/2020 11:32 pm

Por favor Iniciar Sesión o Registro