Код который решил задачу, подставьте свой айди инфоблока 'IBLOCK_ID' => 54 (здесь ваш айди инфоблока) и 'CATALOG_PRICE_6' (вместо 6 ваш номер базовой цены), CATALOG_GROUP_ID => 6 (аналогично Ваш номер базовой цены)
Код |
---|
AddEventHandler("catalog", "OnSuccessCatalogImport1C", "OnSuccessCatalogImport1CHandler");
function OnSuccessCatalogImport1CHandler()
{
// Флаг импорта файла торговых предложений
if($isOffers = strpos($_REQUEST['filename'], 'offers') !== false)
{
// Условия выборки элементов для обработки
$arFilter = array(
'IBLOCK_ID' => 54,
'ACTIVE' => 'Y',
'CATALOG_PRICE_6' => false,
);
$res = CIBlockElement::GetList(array('ID' => 'ASC'), $arFilter);
$errorMessage = null;
while ($arItem = $res->Fetch()) {
// Что-нибудь делаем
$arFieldsPrice = Array(
"PRODUCT_ID" => $arItem['ID'],
"CATALOG_GROUP_ID" => 6,
"PRICE" => 0,
"CURRENCY" => 'RUB'
);
$db_res = CPrice::GetList(
array(),
array(
"PRODUCT_ID" => $arItem['ID'],
"CATALOG_GROUP_ID" => 6,
)
);
if(!CCatalogProduct::Add(Array("ID"=> $arItem['ID'], "QUANTITY"=>0)))
$errorProduct = true;
if ($ar_res = $db_res->Fetch())
{
if(!CPrice::Update($ar_res['ID'], $arFieldsPrice))
$errorPrice = true;
}
else
{
if(!CPrice::Add($arFieldsPrice))
$errorPrice = true;
}
if ($errorPrice === true && $errorProduct === true) {
$errorMessage = 'Не удалось заполнить нулевое значение для товара без цены и создать сущность товара.';
}
elseif($errorProduct === true)
{
$errorMessage = 'Не удалось создать сущность товара.';
}
elseif($errorPrice === true)
{
$errorMessage = 'Не удалось заполнить нулевое значение для товара без цены.';
}
if ($errorMessage !== null) {
echo "failure\n" . $errorMessage;
}
}
}
}
|