In the latest PrestaShop this could be nicely regulated by selecting positions for the Attributes and Attribute Groups.
The front office then shows the attributes according to their positions.
To fix this in admin I added the following to the classes/Product.php : first query of getAttributesResume
diff Product.php.modified Product.php 2323,2325d2322 < LEFT JOIN `' . _DB_PREFIX_ . 'product_attribute_combination` pac ON pac.`id_product_attribute`=pa.`id_product_attribute` < LEFT JOIN `' . _DB_PREFIX_ . 'attribute` a ON a.`id_attribute` = pac.`id_attribute` < LEFT JOIN `' . _DB_PREFIX_ . 'attribute_group` ag ON ag.`id_attribute_group` = a.`id_attribute_group` 2327,2329c2324 < GROUP BY pa.`id_product_attribute` < ORDER BY ag.`position`,a.`position` < '); --- > GROUP BY pa.`id_product_attribute`');