Jump to content

Exportar, modificar e importar de nuevo, csv de valores de atributos


Aldeag

Recommended Posts

Hola:

Tengo Prestashop 1.7.7.0

Creé un conjunto de valores para determinado atributo que he llamado "COLOR de producto X" el cual tiene 101 variables o valores

Son valores de color DARK GREY, GRAPHITE BLACK, FUCHSIA MULTICOLOR...etc así hasta 101

El caso es que quiero usar el módulo de Facebook-Prestashop, y me da mensaje de error pues está escrito todo en mayúscula. Los colores se han importado así en mayúscula desde el proveedor.

Quizá debiera exportar a csv esos valores, modificar en Excel mediante sus fórmulas a que me aparezca así: Dark Grey, Graphite Black, Fuchsia Multicolor, pero me da miedo fastidiarlo y no sé o no encuentro como exportar y luego importar desde Atributos y Valores. O a lo peor es que ni se hace así.

¿Alguna recomendación?

Gracias de antemano.

 

Link to comment
Share on other sites

  • 2 weeks later...

No hace falta que exportes, modifiques e importes de nuevo para ese cambio. 

Si lo que quieres es que TODOS los valores de tus atributos tengan la primera letra de cada palabra en mayúscula y el resto en minúsculas puedes ejecutar estas consultas directamente en la base de datos (con phpMyAdmin por ejemplo), cambiando el [prefijo] de la tabla (en la última línea) al que corresponda según tu base de datos:

DROP FUNCTION IF EXISTS CAP_FIRST;

DELIMITER $$
CREATE FUNCTION CAP_FIRST (input VARCHAR(255)) 
RETURNS VARCHAR(255) 
DETERMINISTIC 
BEGIN

 DECLARE len INT;
 DECLARE i INT;

 SET len = CHAR_LENGTH(input); 
 SET input = LOWER(input); 
 SET i = 0; 

 WHILE (i < len) DO 
  IF (MID(input,i,1) = ' ' OR i = 0) THEN 
   IF (i < len) THEN 
    SET input = CONCAT( 
     LEFT(input,i), 
     UPPER(MID(input,i + 1,1)), 
     RIGHT(input,len - i - 1) 
    ); 
   END IF; 
  END IF; 
  SET i = i + 1; 
 END WHILE; 
RETURN input; 
END$$
DELIMITER ;

UPDATE [prefijo]_attribute_lang SET name = CAP_FIRST(name);

Nunca está de más exportar la tabla [prefijo]_attribute_lang primero por si algo sale mal y la quieres volver a importar después (lo puedes hacer también con phpMyAdmin, pero yo lo acabo de probar en mi tienda de pruebas y ha funcionado a la perfección ;)

Edited by w3bsolutions (see edit history)
Link to comment
Share on other sites

Gracias por la respuesta.

¿Se aplicaría eso solamente a los valores del tipo de atributo (Color de Marca X) o a todos los valores de todos los atributos?

Al hacer algunas importaciones de combinaciones, si un color no existía, se creaba, y si existía se usaba el existente. Eso creo que era así.

Pues hice una importación y ya tenía el valor BLACK. El artículo importado tenía el valor Black. Pues ahora me encuentro que tengo entre todos los valores BLACK y Black. Creía que se iba a tomar como el mismo.

 

¿Me explicarías como se hace exactamente esa consulta en la base de datos?

Muchas gracias por el esfuerzo.

Link to comment
Share on other sites

On 5/29/2021 at 8:51 PM, Aldeag said:

¿Se aplicaría eso solamente a los valores del tipo de atributo (Color de Marca X) o a todos los valores de todos los atributos?

Tal cual te la he puesto, se aplicaría a todos los valores de todos los atributos. 

 

On 5/29/2021 at 8:51 PM, Aldeag said:

Pues hice una importación y ya tenía el valor BLACK. El artículo importado tenía el valor Black. Pues ahora me encuentro que tengo entre todos los valores BLACK y Black. Creía que se iba a tomar como el mismo.

Sí, al importar se distingue entre mayúsculas y minúsculas. 

 

On 5/29/2021 at 8:51 PM, Aldeag said:

¿Me explicarías como se hace exactamente esa consulta en la base de datos?

En el panel de control de tu alojamiento deberías tener una herramienta que se llama phpMyAdmin, con eso puedes ejecutar consultas SQL en la base de datos. 

Link to comment
Share on other sites

Gracias por tu respuesta, que leí ahora. 

¿Qué ocurriría con los artículos si importo de nuevo con combinación Black o BLACK?

¿Los artículos y sus combinaciones tendrán alguna diferencia una vez cambiados o como imagino la ID del color es la misma?

¿Hay alguna forma para que al realizar la importación de color y talla siempre importe los colores con la primera letra en mayúscula independientemente de si es con todo mayúscula o no?

Muchas gracias por tu interés.

Link to comment
Share on other sites

Just now, Aldeag said:

¿Qué ocurriría con los artículos si importo de nuevo con combinación Black o BLACK?

Los que importes con "Black" cogerán el id de tu valor "Black" y los que importes con "BLACK" cogerán el id del valor "BLACK", siempre respetando minúsculas y minúsculas. Si ejecutas mi consulta, el valor "BLACK" se cambiará a "Black" con lo que tendrás 2 valores "Black". Si vuelves a importar productos con "BLACK" se creará de nuevo un valor así en mayúsculas. 

3 minutes ago, Aldeag said:

¿Los artículos y sus combinaciones tendrán alguna diferencia una vez cambiados o como imagino la ID del color es la misma?

Tras ejecutar la consulta, la ID de los valores es la misma que antes de la consulta, sólo se cambia el texto.

3 minutes ago, Aldeag said:

¿Hay alguna forma para que al realizar la importación de color y talla siempre importe los colores con la primera letra en mayúscula independientemente de si es con todo mayúscula o no?

Sin cambiar el código que se encarga de la importación, no. Es más fácil hacerlo antes en Excel. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...