Событие для присвоения базовой цены при загрузки из 1С

Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Код который решил задачу, подставьте свой айди инфоблока '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;
        }
    }
    }
   }
    

 

 

Источник: https://dev.1c-bitrix.ru/community/forums/messages/forum6/topic56456/message331193/#message331193

Назад в раздел

Подписаться на новые материалы раздела:














CAPTCHA