• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/skuprops.php
  • Класс: BitrixSaleHelpersAdminto
  • Вызов: to::getPossibleSkuPropsValues
static function getPossibleSkuPropsValues(array $params)
{
	$result = array();
	$productIds = array();

	foreach($params as $param)
		$productIds[] = $param['PRODUCT_ID'];

	$productOffersIds = self::getOffersIds($productIds);

	foreach($params as $param)
	{
		if(intval($param['PRODUCT_ID']) <= 0)
			continue;

		if(empty($productOffersIds[$param['PRODUCT_ID']]))
			continue;

		$offerId = intval($param['OFFER_ID']);

		$result[$offerId] ??= [];
		if (!is_array($result[$offerId]))
		{
			$result[$offerId] = [];
		}

		if(empty($param['SKU_PROPS']) || empty($param['SKU_ORDER']))
			continue;

		$offersIds = $productOffersIds[$param['PRODUCT_ID']];

		foreach($param['SKU_ORDER'] as $propId)
		{
			if(empty($param['SKU_PROPS'][$propId]))
				continue;

			if(count($offersIds) > 0)
				$res = self::getSkuPropValues($propId, $param['SKU_PROPS'][$propId], $offersIds);

			if(count($offersIds) > 0)
			{
				if(!empty($res))
					$result[$offerId][$propId] = $res;
			}
			else
			{
				$result[$offerId][$propId] = $param['SKU_PROPS'][$propId];
			}
		}
	}

	return $result;
}