Сегодня покажу как сделать форму для массовой выгрузки параметров товара Bitrix: длина, ширина, высота, вес, доступное количество из Excel (CSV) на сайт.
Изначально подготовим в Excel выгрузку, которая должна содержать 6 столбцов по порядку: Артикул, Длина, Ширина, Высота, Вес, Количество.
После заполнения сохраняем в формате csv (MS-DOS)
Создаем страницу и добавляем туда:
<h2>Выгрузка параметров Длина, Ширина, Высота, ВЕС через CSV: </h2> <form enctype="multipart/form-data" action="?file=csv" method="POST" class="form_csv"> <input type="hidden" name="file" value="csv"> <input type="hidden" name="lang" value="ru"> <input type="hidden" name="MAX_FILE_SIZE" value="30000"> <input name="userfile" type="file" accept=".csv"> <input type="submit" value="Загрузить"> </form> |
PHP код:
global $DB; if($_FILES['userfile'] && $_GET['file']=='csv'){ if ($_FILES['userfile']['tmp_name']){ $row = 1; $prop_artic = 275; // ID свойства товара, отвечающего за артикул, у вас будет другое число, смотрите в настройках инфоблока /bitrix/admin/iblock_admin.php?type=catalog&lang=ru if (($handle = fopen($_FILES['userfile']['tmp_name'], "r"))!==FALSE ){ while(($data = fgetcsv($handle, 4000, ";")) !== FALSE){ $num = count($data); $row++; if(mb_detect_encoding($data[0])!="UTF-8"){ // проверяем кодировку, лучше чтобы она была UTF-8 $artikul = trim(iconv(mb_detect_encoding($data[0]), "utf-8", $data[0])); } else $artikul = trim($data[0]); // Наши параметры: $dlina = trim($data[1]); $shirina = trim($data[2]); $visota = trim($data[3]); $ves = trim($data[4]); $dostupno = trim($data[5]); $val_ar = $DB->Query('SELECT * FROM b_iblock_element_property WHERE IBLOCK_PROPERTY_ID='.$prop_artic.' AND VALUE="'.$artikul.'"'); // находи ID товара по артикулу while ($arr_id_el = $val_ar->Fetch()) { if(!empty($arr_id_el['IBLOCK_ELEMENT_ID'])){ // если ID найден - устанавливаем параметры $DB->Query('UPDATE b_catalog_product SET WEIGHT='.$ves.', LENGTH='.$dlina.', WIDTH='.$shirina.', HEIGHT='.$visota.' QUANTITY='.$dostupno.' WHERE ID='.$arr_id_el['IBLOCK_ELEMENT_ID']); echo $artikul." - успешно <br>"; } } } } } } |
Об авторе