Очень часто из 1C приходят нулевые цены для некоторых товаров. Уж не знаю с чем это связано, но мне приходится передавать артикулы и названия в xls- файле контент-менеджеру. А так как я не нашел возможности фильтрации по ценам в админке, чтобы формировать xls c этими товарами, то решил написать небольшого агента, который делает выгрузку в csv-файл. Его можно доработать, чтобы он проверял наличие на складах и т.д. и его на крон и избавив себя от рутины.
function checkNullPrice(){
if (CModule::IncludeModule('catalog')){
// открываем файл для записи
$fp = fopen('NullPrice.csv', 'w');
$arName = array("АРТИКУЛ"," ","НАЗВАНИЕ");
// Добавляем 3х байтную последовательность для кодировки UTF-8
fwrite($fp, "\xEF\xBB\xBF");
fputcsv($fp, $arName, " ", " ");
// Выбираем товары с нулевой ценой, IBLOCK_ID и PROPERTY_* указывать обязательно, для выборки артикула из свойств товара
$arSelect = Array("ID", "NAME", "IBLOCK_ID","PROPERTY_*");
$arFilter = Array("IBLOCK_ID"=>4, "CATALOG_PRICE_1" => 0); // указываем тип цены и инфоблок
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
$arFields["NAME"] = str_replace(""", "", $arFields["NAME"]);
$arRes = array ($arProps["ARTNUMBER"]["VALUE"], " ", $arFields["NAME"]);
fputcsv($fp, $arRes, " ", " ");
}
fclose($fp);
}
}
|