• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/v2/Converter/ProductConverter.php
  • Класс: BitrixCatalogv2ConverterProductConverter
  • Вызов: ProductConverter::convertSkuToSimpleSku
protected function convertSkuToSimpleSku(BaseSku $skuItem): BaseSku
{
	/** @var BitrixCatalogv2SkuSkuFactory $skuFactory */
	$skuFactory = $this->container->get(Dependency::SKU_FACTORY, [
		Dependency::IBLOCK_INFO => $skuItem->getIblockInfo(),
	]);

	if (!$skuFactory)
	{
		return $skuItem;
	}

	$simpleItem = $skuFactory->createEntity($skuFactory::SIMPLE_SKU);

	/** @var BitrixCatalogv2SkuSkuCollection $skuCollection */
	$skuCollection = $skuItem->getParentCollection();
	$skuCollection->remove($skuItem)
		->add($simpleItem)
	;

	$fields = array_diff_key($skuItem->getFields(), [
		'ID' => true,
		'IBLOCK_ID' => true,
		'TYPE' => true,
	]);
	$simpleItem->setFields($fields);

	$simpleItem->getPriceCollection()->setValues($skuItem->getPriceCollection()->getValues());

	$defaultRatio = $skuItem->getMeasureRatioCollection()->findDefault();
	if ($defaultRatio)
	{
		$simpleItem->getMeasureRatioCollection()->setDefault($defaultRatio->getRatio());
	}

	return $simpleItem;
}