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:
- SerieA 1
- SeriaA 10
- SerieA 2
- SeriaA 3
Para que salgan así necesitas el siguiente código sql:
- SerieA 1
- SerieA 2
- SeriaA 3
- 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 🤘