Параметры (длина, ширина, количество и др) товара Bitrix из Excel

Автор:Alex

Параметры (длина, ширина, количество и др) товара Bitrix из Excel

Сегодня покажу как сделать форму для массовой выгрузки параметров товара 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'] &amp;&amp; $_GET['file']=='csv'){
if ($_FILES['userfile']['tmp_name']){
	$row = 1;
	$prop_artic = 275; // ID свойства товара, отвечающего за артикул, у вас будет другое число, смотрите в настройках инфоблока /bitrix/admin/iblock_admin.php?type=catalog&amp;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-&gt;Query('SELECT * FROM b_iblock_element_property WHERE IBLOCK_PROPERTY_ID='.$prop_artic.' AND VALUE="'.$artikul.'"');	// находи ID товара по артикулу
			while ($arr_id_el = $val_ar-&gt;Fetch())
			{
				if(!empty($arr_id_el['IBLOCK_ELEMENT_ID'])){	// если ID найден - устанавливаем параметры
					$DB-&gt;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>";
				}
			}
		}
	}
}
}

Об авторе

Alex administrator

Оставить ответ

Enter the text from the image below