Здравствуйте.
Возможно баг.
Тест проводили на версии CS-Cart 4.8.1.SP1 RU
Сценарий:
При импорте товаров из 1С - товар имеет принадлежность к группе:
Если данная группа в 1С меняется, на сайте происходит не замена группы, а добавление второстепенной.
Если еще раз меняется, то у товара уже будут 3 группы.
Также нет импорта, если у товара 2 и более групп (но это, возможно, не баг а логика).
1 лайк
Фикс решения, тестировался не в полном объеме.
Примерно 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)];
}
}
}
2 лайка
Была подобная тема в баг-трекере: [4.9.2.SP1] Модуль CommerceML "Синхронизация расположения товаров в категориях при обмене 1С с сайтом"
Багом не признали.
Если в 1С сменили категорию, то надо чтоб и на сайте она сменилась, а не добавилась, как дополнительная.
Надеюсь к этому прислушаются и перепилят логику.
2 лайка