Нужно записать свойства ко всем товарам на основе имеющихся свойств.
Проблема в том, что операция получилась объёмной и сервер, по прошествии минут 10-15 возвращает 504 ошибку.
Всего товаров 20к, но ситуацию ухудшает то, что свойства - множественные, и GetList дублирует запись, из-за чего количество итераций увеличивается в десятки раз.
Как можно решить проблему?
П.С. код запроса
$vaz2107 = array(
39819, 39820, 39821, 39822, 39823, 39824, 39825,
'ID_GROUP' => 44219
);
$res = CIBlockElement::GetList(
array(),
array(
'IBLOCK_ID' => 42,
'PROPERTY_APPLICABILITY_SECT_VALUE' => $vaz2107,
'ACTIVE' => 'Y',
),
false,
false,
array('ID', 'IBLOCK_ID', 'PROPERTY_APPLICABILITY_SECT', 'PROPERTY_APPLICABILITY_GROUP')
);
while ($data = $res->fetch()) {
$arPropertyGroup[] = $data['PROPERTY_APPLICABILITY_GROUP_VALUE'];
// ID Группы, куда добавляем
array_push($arPropertyGroup, $vaz2107['ID_GROUP']);
$do = CIBlockElement::SetPropertyValuesEx($data['ID'], 42, array(
'APPLICABILITY_GROUP' => $arPropertyGroup
));
}
if ($do == null) {
echo 'ok';
} else {
echo 'no';
}