- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/v2/Converter/ProductConverter.php
- Класс: BitrixCatalogv2ConverterProductConverter
- Вызов: ProductConverter::convertSimpleSkuToSku
protected function convertSimpleSkuToSku(BaseSku $simpleItem): BaseSku
{
/** @var BitrixCatalogv2SkuSkuFactory $skuFactory */
$skuFactory = $this->container->get(Dependency::SKU_FACTORY, [
Dependency::IBLOCK_INFO => $simpleItem->getIblockInfo(),
]);
if (!$skuFactory)
{
return $simpleItem;
}
$skuItem = $skuFactory->createEntity($skuFactory::SKU);
if ($skuItem->isSimple())
{
return $simpleItem;
}
/** @var BitrixCatalogv2SkuSkuCollection $skuCollection */
$skuCollection = $simpleItem->getParentCollection();
$skuCollection
->remove($simpleItem)
->clearRemoved($simpleItem)
->add($skuItem)
;
$fields = array_diff_key($simpleItem->getFields(), [
'ID' => true,
'IBLOCK_ID' => true,
'TYPE' => true,
'DETAIL_TEXT' => true,
'DETAIL_TEXT_TYPE' => true,
'PREVIEW_TEXT' => true,
'PREVIEW_TEXT_TYPE' => true,
]);
$skuItem->setFields($fields);
$skuItem->getPriceCollection()->setValues($simpleItem->getPriceCollection()->getValues());
$defaultRatio = $simpleItem->getMeasureRatioCollection()->findDefault();
if ($defaultRatio)
{
$skuItem->getMeasureRatioCollection()->setDefault($defaultRatio->getRatio());
}
return $skuItem;
}