Prestashop 1.7
En version 1.7, le fichier AdminModelAdapter.php dans le dossier /src/PrestaShopBundle/Model/Product contient la donnée importante. En effet, aux lignes 326 (si aucune modification de ce fichier), vous retrouverez les codes suivants :
$form_data['combinations'][$k]['attribute_price'] = abs(
$floatParser->fromString($combination['attribute_price'])
);
$form_data['combinations'][$k]['attribute_weight'] = abs(
$floatParser->fromString($combination['attribute_weight'])
);
$form_data['combinations'][$k]['attribute_unity'] = abs(
$floatParser->fromString($combination['attribute_unity'])
);
Vous pouvez donc ajouter, pour chaque champ nécessaire, une combinaison de code qui servira à rendre les décimales possibles (exemple ci-dessous pour le prix d’achat) :
$form_data['combinations'][$k]['attribute_wholesale_price'] = abs(
$floatParser->fromString($combination['attribute_wholesale_price'])
);
Il est possible de le faire pour tous les champs voulus (ecotaxe ou autre), il suffit de changer la valeur du champ (ici « attribute_wholesale_price » par celui souhaité, par exemple « ecotax »).
Versions antérieures de Prestashop
Dans les versions antérieures de Prestashop, la fonction floatParser n’existe pas (en natif). Il faut donc aller dans le même fichier, ligne 265 et remplacer :
$form_data['combinations'][$k]['attribute_price'] = abs($combination['attribute_price']);
Par :
$form_data['combinations'][$k]['attribute_price'] = abs(str_replace(',', '.', $combination['attribute_price']));