В настройках инфоблока на вкладке Поля найдите Символьный код и установите:
Символьный код | |
Транслитерировать из названия при добавлении элемента. Y
Максимальная длина результата транслитерации: 100 Приведение к регистру: к нижнему Замена для символа пробела: - Замена для прочих символов: -
Удалять лишние символы замены. Y
|
При создании нового товара его символьный код транслитируется из названия в таком случае. Однако если товары уже добавлены символьный код обновляться не будет. Решить задачу можно скриптом:
Код |
---|
<?require_once($_SERVER['DOCUMENT_ROOT']. "/bitrix/modules/main/include/prolog_before.php");
global $USER;
if(!$USER->IsAdmin())
die();
$arParams = array("replace_space"=>"-","replace_other"=>"-");
if(CModule::IncludeModule("iblock"))
{
$el = new CIBlockElement;
$res = CIBlockElement::GetList(array('ID' => 'ASC'), array('IBLOCK_ID' => IBLOCK_CATALOG));
while($ar_res = $res->Fetch())
{
if ($el->Update($ar_res['ID'], array('CODE' => Cutil::translit($ar_res['NAME'],"ru",$arParams))))
echo $trans = Cutil::translit($ar_res['NAME'],"ru",$arParams) . "<br />";
}
}
?> |
Замените константу IBLOCK_CATALOG на айди Вашего инфоблока. Скрипт запускать из под админа.