Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
- require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/csv_data.php");
- CModule::IncludeModule('iblock');
- CModule::IncludeModule('catalog');
- $arRows = array();
- $IBLOCK_ID = 21;
- $arSelect = Array("ID", "IBLOCK_ID", "NAME", "PREVIEW_PICTURE", "PROPERTY_CML2_ARTICLE");
- $arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
- $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
- while($ob = $res->GetNextElement()){
- $arFields = $ob->GetFields();
- $ID = $arFields["ID"];
- $ar_res = CPrice::GetBasePrice($ID);
- $IMAGES = CFile::GetPath($arFields["PREVIEW_PICTURE"]);
- $arRows[] = array("№"=>$ID,"Артикул"=>$arFields["PROPERTY_CML2_ARTICLE_VALUE"],"Наименование"=>mb_convert_encoding($arFields["NAME"],'windows-1251'),"Изображение"=>$IMAGES,"Цена (руб.)"=>$ar_res["PRICE"]);
- $arInfo = CCatalogSKU::GetInfoByProductIBlock($IBLOCK_ID);
- if (is_array($arInfo)) {
- $rsOffers = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $arInfo['IBLOCK_ID'], 'PROPERTY_' . $arInfo['SKU_PROPERTY_ID'] => $ID), false, false, array("ID", "IBLOCK_ID", "NAME", "PROPERTY_CML2_ARTICLE"));
- while ($arOffer = $rsOffers->GetNext()) {
- $arRows[] = array("№"=>"","Артикул"=>$arOffer["PROPERTY_CML2_ARTICLE_VALUE"],"Наименование"=>mb_convert_encoding($arOffer["NAME"],'windows-1251'),"Изображение"=>"","Цена (руб.)"=>"");
- }
- }
- $arRows[] = array("№"=>"","Артикул"=>"","Наименование"=>"","Изображение"=>"","Цена (руб.)"=>"");
- }
- //Очистим старый прайс
- $filePath = $_SERVER['DOCUMENT_ROOT'] . '/priceList.csv';
- $fp = fopen($filePath, 'w+');
- @fclose($fp);
- global $USER;
- $USER->Authorize(1);
- //Зададим режим работы класса, установим разделитель данных, отметим, что в первой строке содержатся заголовки данных:
- $fields_type = 'R'; //дописываем строки в файл
- $delimiter = ";"; //разделитель для csv-файла
- $csvFile = new \CCSVData($fields_type, false);
- $csvFile->SetFieldsType($fields_type);
- $csvFile->SetDelimiter($delimiter);
- $csvFile->SetFirstHeader(true);
- //Запишем в файл заголовки:
- $arFields = array("№","Артикул","Наименование","Изображение","Цена (руб.)");
- $csvFile->SaveFile($filePath, $arFields);
- //Пройдемся по всем строкам данных и допишем их в файл:
- foreach ($arRows as $row)
- {
- $writeAr = array();
- foreach ($arFields as $field)
- {
- $writeAr[] = $row[$field];
- }
- echo "<pre>";
- print_r($writeAr);
- echo "</pre>";
- $csvFile->SaveFile($filePath, $writeAr);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement