• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/product/sku.php
  • Класс: BitrixCatalogProductSku
  • Вызов: Sku::updateParentAvailable
static function updateParentAvailable(int $parentId, int $parentIblockId): bool
{
	$parentIBlock = CCatalogSku::GetInfoByIblock($parentIblockId);
	if (
		empty($parentIBlock)
		|| (self::isSeparateSkuMode() && $parentIBlock['CATALOG_TYPE'] === CCatalogSku::TYPE_FULL)
	)
	{
		return true;
	}

	$parentFields = static::getDefaultParentSettings(static::getOfferState(
		$parentId,
		$parentIblockId
	));

	self::disableUpdateAvailable();
	$iterator = CatalogModelProduct::getList([
		'select' => [
			'ID',
		],
		'filter' => [
			'=ID' => $parentId,
		],
	]);
	$row = $iterator->fetch();
	if (!empty($row))
	{
		$updateResult = CatalogModelProduct::update($parentId, $parentFields);
	}
	else
	{
		$parentFields['ID'] = $parentId;
		$updateResult = CatalogModelProduct::add($parentFields);
	}

	$result = $updateResult->isSuccess();
	unset($updateResult);

	self::enableUpdateAvailable();

	return $result;
}