Скрипт массово копирует значения из свойства OLD_PRICE в свойство BASE_PRICE для всех элементов инфоблока с ID 5, где BASE_PRICE ещё не заполнено.
| Код |
|---|
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');
use Bitrix\Main\Loader;
if (!Loader::includeModule('iblock')) {
die('Не загружен модуль iblock');
}
// Копирует значение свойства "OLD_PRICE" в "BASE_PRICE" для всех элементов инфоблока 5, где "BASE_PRICE" пуст
$iblockId = 5;
$res = CIBlockElement::GetList(
[],
[
'IBLOCK_ID' => $iblockId,
'!PROPERTY_OLD_PRICE' => false,
'PROPERTY_BASE_PRICE' => false
],
false,
false,
['ID', 'PROPERTY_OLD_PRICE']
);
$updated = 0;
while ($element = $res->Fetch()) {
$newValue = $element['PROPERTY_OLD_PRICE_VALUE'];
if ($newValue !== null) {
CIBlockElement::SetPropertyValuesEx($element['ID'], $iblockId, ['BASE_PRICE' => $newValue]);
$updated++;
}
}
echo "Обновлено элементов: $updated";
?> |