Евгений Жуков, спасибо, почему-то не увидел ключ "PURCHASING_PRICE".
Вот код, если кому пригодится делать что-то похожее:
Код |
---|
<?
CModule::IncludeModule('catalog');
// Получить список товаров
$db_res = CCatalogProduct::GetList(
array(),
array(),
false,
array()
);
// Лучше обрабатывать постранично из-за таймаута выполнения запроса на сервере на большой выборке.
// $page_size - количество элементов, возвращаемых из $db_res
$page_size = 500;
// $current_page - индекс фрагмента из элементов $db_res в количестве $page_size
// его нужно перебирать от 1 до N (= общее_число_элементов / $page_size с округлением в большую сторону)
$current_page = 1;
// Получить фрагмент
$db_res->NavStart($page_size, false, $current_page);
while ($ar_res = $db_res->Fetch())
{
// ID текущего товара
$PRODUCT_ID = $ar_res["ID"];
// Получить расширенные свойства товара в инфоблоке
$arProdEx = CCatalogProduct::GetByIDEx($PRODUCT_ID);
// В моём случае, после импорта из XML цена хранилась в свойстве инфоблока "PURCHASE_PRICE", поэтому
// "вытаскиваем" её значение и сохраняем в куда надо в "PURCHASING_PRICE"
$arFields = array('PURCHASING_PRICE' => $arProdEx["PROPERTIES"]["PURCHASE_PRICE"]["VALUE"]);
// Вносим изменения
CCatalogProduct::Update($PRODUCT_ID, $arFields);
}
?>
|