Фикс решения, тестировался не в полном объеме.
Примерно 1263 строка.
В условии ,if (!empty($product_id)) {
//сначала удаляем все текущие привязки
$this->db->query(
"DELETE FROM ?:products_categories"
. " WHERE product_id = ?i",
$product_id
);
$product['category_ids'] = $this->db->getColumn(
'SELECT category_id FROM ?:products_categories WHERE product_id = ?i',
$product_id
);
....
// исходный код
}
//END
А чтобы присвоить несколько категорий при импорте.
Вставляем код, после условия if (!empty($product_id)) { ..... }
// Если групп более 1, добавляем их в массив
if(count($d_product → {$cml[‘groups’]} → {$cml[‘id’]}) > 1){
foreach($d_product → {$cml[‘groups’]} → {$cml[‘id’]} as $cat_second_id){
if(!empty($categories_commerceml[strval($cat_second_id)])){
$product[‘category_ids’] = $categories_commerceml[strval($cat_second_id)];
}
}
}