так изменил функцию addFeaturesToDB, которая вызывается при добавлении характеристик продукта. передаю в нее массив с номерами характеристик, перебираю их циклом foreach и на выходе записывается только первая характеристика из массива.
Код:
public function addFeaturesToDB($id_feature, $id_value, $cust = 0)
{
if ($cust)
{
$row = array('id_feature' => (int)($id_feature), 'custom' => 1);
Db::getInstance()->autoExecute(_DB_PREFIX_.'feature_value', $row, 'INSERT');
$id_value = Db::getInstance()->Insert_ID();
$row = array('id_feature' => (int)($id_feature), 'id_product' => (int)($this->id), 'id_feature_value' => (int)($id_value));
Db::getInstance()->autoExecute(_DB_PREFIX_.'feature_product', $row, 'INSERT');
return ($id_value);
}else{
$row = array();
foreach ($id_value AS $val)
$row[] = '('.(int)($id_feature).', '.(int)($this->id).', '.(int)($val).')';
return Db::getInstance()->Execute(
'INSERT INTO `'._DB_PREFIX_.'feature_product` (`id_feature`, `id_product`, `id_feature_value`)
VALUES '.implode(',', $row));
//$row = array('id_feature' => (int)($id_feature), 'id_product' => (int)($this->id), 'id_feature_value' => (int)($id_value));
//Db::getInstance()->autoExecute(_DB_PREFIX_.'feature_product', $row, 'INSERT');
//if ($id_value)
// return ($id_value);
}
// Db::getInstance()->Execute('
// INSERT INTO `'._DB_PREFIX_.'feature_product` (`id_feature`, `id_product`, `id_feature_value`)
// VALUES ('.(int)($id_feature).', '.(int)($this->id).', '.(int)($id_value).')'
// );
}