| Цитата |
|---|
Жанна Болотова , простите за наглость, не поделитесь наработкой с общественностью? )) |
Прошу прощения за задержку. Конечно поделюсь. Сразу предупрежу, работает только если цена заполнена у одного типа цены. Если у товара два типа цены заполнены - результат не предсказуем - не тестировали..
Функцию добавляем в файл init.php
Вызов
| Код |
|---|
$rsProducts = CCatalogProduct::GetList(array(),array(),false,false);
while ($arProduct = $rsProducts->Fetch()){
ChangeBasePriceById($arProduct["ID"]);
}
|
Сама функция
| Код |
|---|
function ChangeBasePriceById($id){
if(!CModule::IncludeModule('iblock') || !CModule::IncludeModule('currency') || !CModule::IncludeModule('catalog'))
{
Echo "Oblom!";
}
$PRODUCT_ID = $id;
$baseAr = CCatalogGroup::GetBaseGroup();
$PRICE_TYPE_ID = $baseAr["ID"];
$db_res = CPrice::GetList(
array(),
array(
"PRODUCT_ID" => $PRODUCT_ID,
"BASE"=>"N"
)
);
if ($res = $db_res->Fetch())
{
$price = $res["PRICE"];
$currency = $res["CURRENCY"];
// Обновление базовой стоимости
$arFields = Array(
"PRODUCT_ID" => $PRODUCT_ID,
"CATALOG_GROUP_ID" => $PRICE_TYPE_ID,
"PRICE" => $price,
"CURRENCY" => $currency
);
$res = CPrice::GetList(
array(),
array(
"PRODUCT_ID" => $PRODUCT_ID,
"CATALOG_GROUP_ID" => $PRICE_TYPE_ID
)
);
if ($arr = $res->Fetch())
{
$obPrice2 = new CPrice();
$obPrice2->Update($arFields,true);
}
else
{
$obPrice = new CPrice();
$obPrice->Add($arFields,true);
}
}
}
|