Документация для разработчиков
Темная тема

Как добавить товар со значениями пользовательских полей

Пример заполнения различных свойств при добавлении товара.

Для работы примера создайте папку /pictures рядом с исполняемым файлом примера и заполнитее её картинками с названиями "1.jpg" - "6.jpg". Также в начале примера необходимо исправить значения из примера на ваши:

  • $propertyIDSelect - ID не множественного списочного свойства.
  • $propertySelectValueID - ID значения не множественного списочного свойства.
  • $propertyIDMultiSelect - ID множественного списочного свойства.
  • $propertyMultiSelectValueID - ID значений множественного списочного свойства.
  • $propertyIDFile - ID не множественного свойства типа файл.
  • $propertyIDMultiFile - ID множественного свойства типа файл.

Внимание! Для использования примера настройте работу класса CRest и подключите файл crest.php в файлах, где используется данный класс. Подробнее.

<?
	$propertyIDSelect = 106;
	$propertySelectValueID = 85;
	
	$propertyIDMultiSelect = 105;
	$propertyMultiSelectValueID = [79,80,82];
	
	$propertyIDFile = 107;
	$propertyFilePathToPicture = 'pictures/1.jpg';//relative or full path on server
	
	$propertyIDMultiFile = 108;
	$propertyMultiFilePathToPicture = [//relative or full path on server
		'pictures/2.jpg',
		'pictures/3.jpg',
		'pictures/4.jpg',
	];
	
	$standardPreviewPicturePath = 'pictures/5.jpg';//relative or full path on server
	$standardDetailPicturePath = 'pictures/6.jpg';//relative or full path on server
	
	$arFields = [
		'NAME'        => 'Example product 2',
		'CURRENCY_ID' => 'USD',
		'PRICE'       => 4900,
		'SORT'        => 500
	];
	
	
	if($propertyIDSelect > 0 && $propertySelectValueID > 0)
	{
		$arFields[ 'PROPERTY_' . $propertyIDSelect ] = $propertySelectValueID;
	}
	
	if($propertyIDMultiSelect > 0 && is_array($propertyMultiSelectValueID) &&  count($propertyMultiSelectValueID) > 0)
	{
		$arFields[ 'PROPERTY_' . $propertyIDMultiSelect ] = $propertyMultiSelectValueID;
	}
	
	if($propertyIDFile > 0 && !empty($propertyFilePathToPicture) && file_exists($propertyFilePathToPicture))
	{
		$fileName = end(explode('/', $propertyFilePathToPicture));
		$arFields[ 'PROPERTY_' . $propertyIDFile ] = [
			"fileData" => [
				$fileName,
				base64_encode(file_get_contents($propertyFilePathToPicture))
			]
		];
	}
	
	if($propertyIDMultiFile > 0 && is_array($propertyMultiFilePathToPicture) && count($propertyMultiFilePathToPicture) > 0)
	{
		foreach($propertyMultiFilePathToPicture as $path){
			if(file_exists($path))
			{
				$fileName = end(explode('/', $path));
				$arFields[ 'PROPERTY_' . $propertyIDMultiFile ][] = [
					"fileData" => [
						$fileName,
						base64_encode(file_get_contents($path))
					]
				];
			}
		}
	}
	
	if(!empty($standardPreviewPicturePath) && file_exists($standardPreviewPicturePath))
	{
		$fileName = end(explode('/', $standardPreviewPicturePath));
		$arFields[ 'PREVIEW_PICTURE'  ] = [
			"fileData" => [
				$fileName,
				base64_encode(file_get_contents($standardPreviewPicturePath))
			]
		];
	}
	
	if(!empty($standardDetailPicturePath) && file_exists($standardDetailPicturePath))
	{
		$fileName = end(explode('/', $standardDetailPicturePath));
		$arFields[ 'DETAIL_PICTURE' ] = [
			"fileData" => [
				$fileName,
				base64_encode(file_get_contents($standardDetailPicturePath))
			]
		];
	}
	
	$result = CRest ::call(
		'crm.product.add',
		[
			'fields' => $arFields
		
		]
	);

?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024