Массовое переименование товаров в Битрикс

06.05.2016

Иногда требуется убрать или добавить что-то в название товаров в магазине на 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));


Категории: Bitrix CMS
Пометки: Битрикс разработчикам: массовое переименование товаров в Битрикс
Яндекс.Метрика