Цитата |
---|
Станислав Шарапов написал: Вы не правильно передаёте параметры в функцию CCatalogMeasureRatio::update( int ID, array arFields, ); ID - ID коэффициента в базе arFields - Массив параметров: PRODUCT_ID - код товара или торгового предложения (ID элемента инфоблока) RATIO – коэффициент единицы измерения Что бы узнать айди нужного коэффициента используйте - CCatalogMeasureRatio::getList ( $arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array() ); Функция вернёт: ID - ID коэффициента в базе PRODUCT_ID - код товара или торгового предложения (ID элемента инфоблока) RATIO – коэффициент единицы измерения |
if (CModule::IncludeModule("catalog") && CCatalog::GetByID($arFields["IBLOCK_ID"]))
{
$db_propss = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $arFields["ID"], array("sort" => "asc"), Array("CODE"=>"CML2_BASE_UNIT"));
if($ar_propss = $db_propss->Fetch())
$EDINICA_IZMERENIA = $ar_propss["VALUE"];
if($EDINICA_IZMERENIA == 'кг'){
$db_ratio = CCatalogMeasureRatio::getList(array(), array("PRODUCT_ID" => $arFields["ID"]), false, false, array());
if($ar_ratio = $db_ratio->Fetch())
AddMessage2Log('$ar_ratio = '.print_r($ar_ratio, true),'');
$db_res = CCatalogMeasureRatio::update(
(int)$ar_ratio["ID"],
array("RATIO" => 0.1)
);
}
}
функция AddMessage2Log добавляет в лог все правильно
$ar_ratio = Array
(
[ID] => 6633
[PRODUCT_ID] => 34319
[RATIO] => 1
)
$db_res = CCatalogMeasureRatio::add(
array("PRODUCT_ID" => $ar_ratio["PRODUCT_ID"],"RATIO" => 0.1)
);
так тоже не работает