Иногда требуется убрать или добавить что-то в название товаров в магазине на CMS Bitrix.
Например, заменить фильтр для воды, на фильтр.
В ниже приведенном коде, есть "Бонус" - при первом запуске будет создан файл с ID и названиями товаров, которые будут переименованы. В случаи возникновения проблем этот список позволит вернуть все как было.
Для второго запуска (с реальным переименованием) нужно раскомментировать строку 29 и закомментировать 34 (иначе список будет перезаписан).
<?php
// Массове переименоваение товаров
error_reporting(E_ALL);
ini_set('display_errors', 'On');
require_once($_SERVER['DOCUMENT_ROOT']. "/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");
$IBLOCK_ID = 1; // Идентификатор блока магазина
$sSrc = 'фильтр для воды';
$sReplacement = 'фильтр';
$res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID), false, false, array('ID', 'NAME'));
$aMemory = [];
while($row = $res->Fetch()){
if(strpos(strtolower($row['NAME']), $sSrc) !== FALSE)
{
$aMemory[$row['ID']] = $row['NAME'];
echo $row['ID']. '<br />';
echo $row['NAME']. '<br />';
$sNewName = str_replace($sSrc, $sReplacement, $row['NAME']);
$el = new CIBlockElement();
//- $el->Update($row['ID'], array('NAME' => $sNewName));
}
}
file_put_contents(__DIR__.'/memeory.out', json_encode($aMemory));