Product::preparePropertyFieldsUpdate

  1. Bitrix24 API (v. 23.675.0)
  2. catalog
  3. Product
  4. preparePropertyFieldsUpdate
  • Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/controller/product.php
  • Класс: BitrixCatalogControllerProduct
  • Вызов: Product::preparePropertyFieldsUpdate
protected function preparePropertyFieldsUpdate($fields): array
{
	$result = [];

	if(count($fields)>0)
	{
		foreach ($fields as $propertyId=>$value)
		{
			$property = [];
			// single
			if(isset($value['VALUE']))
			{
				if(isset($value['VALUE_ID']))
				{
					//update
					$valueId=$value['VALUE_ID'];
					unset($value['VALUE_ID']);
					$property[$valueId]=$value;

				}
				else
				{
					//replace
					$property[]=$value;
				}
			}
			// multi
			else
			{
				if(is_array($value) && count($value)>0)
				{
					foreach ($value as $item)
					{
						if(isset($item['VALUE_ID']))
						{
							//update
							$valueId = $item['VALUE_ID'];
							unset($item['VALUE_ID']);
							$property[$valueId]=$item;
						}
						else
						{
							//replace
							$property[]=$item;
						}
					}
				}
			}

			if(count($property)>0)
			{
				$result[$propertyId]=$property;
			}
		}
	}
	return $result;
}

Добавить комментарий