- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/ebay/exportoffersku.php
- Класс: BitrixCatalogEbayExportOfferSKU
- Вызов: ExportOfferSKU::getOffers
protected function getOffers()
{
$arPropertyMap = array();
$arSelectedPropTypes = array('S','N','L','E','G');
$this->arSelectOfferProps = array();
$arOffers = CCatalogSku::GetInfoByProductIBlock($this->iBlockId);
if (empty($arOffers['IBLOCK_ID']))
return array();
$this->intOfferIBlockID = $arOffers['IBLOCK_ID'];
$rsOfferIBlocks = CIBlock::GetByID($this->intOfferIBlockID);
if (!$this->arOfferIBlock = $rsOfferIBlocks->Fetch())
throw new SystemException("Bad offers iBlock ID (".__CLASS__."::".__METHOD__.")");
$rsProps = CIBlockProperty::GetList(
array('SORT' => 'ASC', 'NAME' => 'ASC'),
array('IBLOCK_ID' => $this->intOfferIBlockID, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N')
);
while ($arProp = $rsProps->Fetch())
{
$arProp['ID'] = (int)$arProp['ID'];
if ($arOffers['SKU_PROPERTY_ID'] != $arProp['ID'])
{
$arProp['USER_TYPE'] = (string)$arProp['USER_TYPE'];
$arProp['CODE'] = (string)$arProp['CODE'];
$this->arIblock['OFFERS_PROPERTY'][$arProp['ID']] = $arProp;
$this->arProperties[$arProp['ID']] = $arProp;
if (in_array($arProp['PROPERTY_TYPE'], $arSelectedPropTypes))
$this->arSelectOfferProps[] = $arProp['ID'];
if ($arProp['CODE'] !== '')
{
foreach ($this->arIblock['PROPERTY'] as &$arMainProp)
{
if ($arMainProp['CODE'] == $arProp['CODE'])
{
$arPropertyMap[$arProp['ID']] = $arMainProp['CODE'];
break;
}
}
if (isset($arMainProp))
unset($arMainProp);
}
}
}
$this->arOfferIBlock['LID'] = $this->arIblock['LID'];
$this->arOfferIBlock['PROPERTY'] = array();
$rsProps = CIBlockProperty::GetList(
array('SORT' => 'ASC', 'NAME' => 'ASC'),
array('IBLOCK_ID' => $this->intOfferIBlockID, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'N')
);
while ($arProp = $rsProps->Fetch())
{
$arProp['ID'] = (int)$arProp['ID'];
$arProp['USER_TYPE'] = (string)$arProp['USER_TYPE'];
$arProp['CODE'] = (string)$arProp['CODE'];
$this->arOfferIBlock['PROPERTY'][$arProp['ID']] = $arProp;
}
return $arOffers;
}