Дублирование цен в битрикс

Бывают случаи что после не правильного импорта или не правильной работы парсера, у товаров дублируются цены, а расширенное управление ценами не включено.

В моём случаи, этот косяк всплыл в поиске. Когда в поле поиска вводилась название товара, то поиск в выдаче, показывал один и тот же товар, с одной и той же ссылкой, но с разными ценами…

Анализ кода показал, что у одного товара есть несколько цен с разными id. При этом если зайти в админку и отредактировать товар и сохранить, то дубли у товара пропадают.

Но что делать, если таких товаров много?

Для этой цели и был написан этот скрипт

$arFilter = array(
    "IBLOCK_ID" => array(8)
);

$arSelect = array("ID", "IBLOCK_ID", "NAME", "CODE",  "CATALOG_GROUP_1");



$res = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);

while($ob = $res->Fetch()){ 
    $arResult["ITEMS"][] = $ob;
}
//массив для хранения, данных о повторах
$ids = array();
//Заносим все ID в массив
foreach ($arResult["ITEMS"] as $key => $item) {
    $ids[] = $item['ID'];
}
//Ищем дубли
$dd = array_count_values($ids);
//Перебираем дубли и создаём массив с id товара и ценами
foreach ($dd as $key_dd => $value_dd) {
    if($value_dd > 1){

        //echo $key_dd;
        foreach ($arResult["ITEMS"] as $n => $item2) {
            if($key_dd == $item2['ID']){
                $dd_arr['item_' . $item2['ID']][] = $item2['CATALOG_PRICE_ID_1'];
            }
        }
    }
}
//Перебираем новый массив и удаляем все цены кроме 1 цены 
foreach ($dd_arr as $key => $dd) {
    $item_id = str_replace('item_', '', $key);
    $price_id = $dd[1];
    echo 'Дубли у товара ID ' . $item_id . ' удалены
'; CPrice::DeleteByProduct($item_id,array($price_id)); }
Продолжая использовать веб- сайт beta-code.ru, вы даете согласие на обработку файлов cookie, пользовательских данных (сведения о местоположении; тип и версия ОС; тип и версия Браузера; тип устройства и разрешение его экрана; источник откуда пришел на сайт пользователь; с какого сайта или по какой рекламе; язык ОС и Браузера; какие страницы открывает и на какие кнопки нажимает пользователь; ip-адрес) в целях функционирования сайта, проведения ретаргетинга и проведения статистических исследований и обзоров. Если вы не хотите, чтобы указанные данные обрабатывались, покиньте сайт.
Принять