Массовое изменение цены Битрикс

Вариант 1

<? $IBLOCK_ID=’ID КАТАЛОГА’; $PRICE=’ЦЕНА’; if(CModule::includeModule(‘catalog’) && CModule::includeModule(‘iblock’) && CModule::includeModule(‘currency’)){ $res = CIBlockElement::GetList(Array(), Array(«IBLOCK_ID»=>$IBLOCK_ID), false, false, Array(«ID»));
while($arItem = $res->GetNextt())$arItems[$arItem[‘ID’]]=false;
$db_res = CCatalogProduct::GetList(array(),array(«ID» => array_keys($arItems)),false);
while ($arProduct = $db_res->Fetch())$arItems[$arProduct[‘ID’]]=true;
foreach ($arItems as $id => $flag) {
if(!$flag)CCatalogProduct::Add(array(«ID» => $id));
$arItems[$id]=false;
}
$dbProductPrice = CPrice::GetListEx(array(),array(«PRODUCT_ID» => array_keys($arItems)),false,false,array(«ID»));
while ($arPrice = $dbProductPrice->Fetch())$arItems[$arProduct[‘ID’]]=$arPrice[‘ID’];
$group=CCatalogGroup::GetBaseGroup();
$currency=CCurrency::GetBaseCurrency();
foreach ($arItems as $id => $pid) {
if(!$pid){
$arFields = array(«PRODUCT_ID» => $id,»CATALOG_GROUP_ID» => $group[‘ID’],»PRICE» => $PRICE,»CURRENCY» => $currency);
$obPrice = new CPrice();
$obPrice->Add($arFields,true);
}else{
CPrice::Update($pid, array(«PRICE» => $PRICE));
}
}
}
?>

Вариант 2

Cmodule::IncludeModule(«catalog»);

$db_res = CPrice::GetList(
array(),
array(
«ELEMENT_IBLOCK_ID» => 4, //ID инфоблока с товарами
«CATALOG_GROUP_ID» => 1, //ID типа цены
«CURRENCY» => «RUB» // Валюта
)
);
while($ar_res = $db_res->Fetch())
{
$UpdatedPrice = $ar_res[«PRICE»] * 1.3; // Здесь мы меняем цену
CPrice::Update($ar_res[«ID»], Array(«PRICE» => $UpdatedPrice));
}

Прокрутить вверх