Присвоение групп при выгрузке товаров rus_exim

Здравствуйте.

Возможно баг.
Тест проводили на версии 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 лайка