• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/skuprops.php
  • Класс: BitrixSaleHelpersAdminto
  • Вызов: to::getProductId
static function getProductId(array $skuProps, $productId, array $skuOrder, $changedSkuId)
{
	if(
		empty($skuProps)
		|| intval($productId) <= 0
		|| empty($skuOrder)
		|| intval($changedSkuId) <= 0
		)
	{
		return 0;
	}

	$offersIds = self::getOffersIds($productId);
	$requiredProps = self::extractRequiredProps($skuProps, $skuOrder, $changedSkuId);
	$offersIds = self::filterByProps($requiredProps, $offersIds[$productId]);

	if(count($offersIds) == 0)
		return 0;

	if(count($offersIds) == 1)
		return current($offersIds);

	$optionalProps = self::extractOptionalProps($skuProps, $skuOrder, $changedSkuId);

	if(empty($optionalProps))
		return current($offersIds);

	foreach($optionalProps as $id => $val)
	{
		$prevProducts = $offersIds;
		$offersIds = self::filterByProps(array($id => $val), $offersIds);

		if(count($offersIds) == 0)
			return current($prevProducts);

		if(count($offersIds) == 1)
			return current($offersIds);
	}

	return current($offersIds);
}