Si tenéis «muchos atributos» y os resulta muy incómodo ordenarlos de 1 en 1 en el backend con el método de arrastrar arriba o abajo… podéis hacerlo editando el archivo /classes/Product.php y buscamos la función getAttributesGroups(). En este caso para ordenar todos los atributos por orden alfabético en el frontend.

Buscamos el código:

ORDER BY ag.`position` ASC, a.`position` ASC, agl.`name` ASC'

Y lo reemplazamos por 1 de los 2 siguientes códigos:

A: Si los nombres de los atributos «NO tienen números» (Ej. SerieA, SerieB):

ORDER BY al.`name` ASC'

B: Si los nombres de los atributos «SI tienen números«…

Por defecto saldran asi:

  1. SerieA 1
  2. SeriaA 10
  3. SerieA 2
  4. SeriaA 3

Para que salgan así necesitas el siguiente código sql:

  1. SerieA 1
  2. SerieA 2
  3. SeriaA 3
  4. SeriaA 10
ORDER BY LEFT(al.name,LOCATE(" ",al.name)), CAST(SUBSTRING(al.name,LOCATE(" ",al.name)+1) AS SIGNED)

Otra forma:

ORDER BY CAST(SUBSTRING(al.`name`, PATINDEX('%[0-9]%', al.`name`), LEN(al.`name`)) AS INT), al.`name` ASC';

Agradezco tu comentario 🤘