Niestety, nie ma możliwości rozwiązania tego problemu bez modyfikacji plików PrestaShop.
Bug został zgłoszony tutaj:
http://forge.prestashop.com/browse/BOOM-4176A rozwiązanie które u nas zadziałało wygląda tak że trzeba zmienić plik: src/PrestaShopBundle/Model/Product/AdminModelAdapter.php
znaleźć linijki 257-298 i zmodyfikować żeby były podobne do tego:
//map combinations and impact price/weight/unit price
foreach ($form_data['combinations'] as $k => $combination) {
$floatParser = new FloatParser();
$combination['attribute_price'] = $floatParser->fromString($combination['attribute_price']);
$combination['attribute_weight'] = $floatParser->fromString($combination['attribute_weight']);
$combination['attribute_unity'] = $floatParser->fromString($combination['attribute_unity']);
$form_data['combinations'][$k]['attribute_price_impact'] = 0;
$form_data['combinations'][$k]['attribute_weight_impact'] = 0;
$form_data['combinations'][$k]['attribute_unit_impact'] = 0;
if ($combination['attribute_price'] > 0) {
$form_data['combinations'][$k]['attribute_price_impact'] = 1;
} elseif ($combination['attribute_price'] < 0) {
$form_data['combinations'][$k]['attribute_price_impact'] = -1;
}
if ($combination['attribute_weight'] > 0) {
$form_data['combinations'][$k]['attribute_weight_impact'] = 1;
} elseif ($combination['attribute_weight'] < 0) {
$form_data['combinations'][$k]['attribute_weight_impact'] = -1;
}
if ($combination['attribute_unity'] > 0) {
$form_data['combinations'][$k]['attribute_unit_impact'] = 1;
} elseif ($combination['attribute_unity'] < 0) {
$form_data['combinations'][$k]['attribute_unit_impact'] = -1;
}
$form_data['combinations'][$k]['attribute_price'] = abs($combination['attribute_price']);
$form_data['combinations'][$k]['attribute_weight'] = abs($combination['attribute_weight']);
$form_data['combinations'][$k]['attribute_unity'] = abs($combination['attribute_unity']);
}
Źródłem problemu jest kropka i przecinek używana w ułamkach dziesiętnych i to jak później system to interpretuje.