Блог Николая Семенцова

Партнер компании 1с-битрикс

1C интеграция bitrix - артикул в торговых предложениях

При интеграции с 1С мне необходимо было заполнить торговые предложения артикулом из товара, в стандарте это не происходит поэтому написал небольшой скрипт что бы это сделать.
if(CModule::IncludeModule("iblock")){
 
    // получим все инфоблоки в каталоге
    $resB = CIBlock::GetList(
    Array(),
    Array(
        'TYPE'=>'offers'
        ), false
    );
    while($ar_res_blo = $resB->Fetch())
    {
        $iblon[] = $ar_res_blo['ID'];
    }
 
 
    // запустим цикл для того что бы пройтись по инфоблокам
    foreach ($iblon as $iblon_id) {  
        // пройдемся по всем элементам инфоблоков торговых предожений
        $arSelect = Array("ID");
        $arFilter = Array("IBLOCK_ID"=>$iblon_id , "PROPERTY_CML2_ARTICLE" => false);
        $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
        while($ob = $res->GetNextElement())
        {
            $arFields = $ob->GetFields();
 
            // получим связь с товаром
            $resLink = CIBlockElement::GetProperty($iblon_id, $arFields['ID'], "sort", "asc", array("CODE" => "CML2_LINK"));
            while ($obLink = $resLink->GetNext())
            {           
 
               //получим артикул для торгового предложения
               $arSelectElement = Array("PROPERTY_CML2_ARTICLE");
               $arFilterElement = Array("ID" => $obLink['VALUE']);
               $resElement = CIBlockElement::GetList(Array(), $arFilterElement, false, false, $arSelectElement);
               while($obElement = $resElement->GetNextElement())
               {
                    $arFieldsElement = $obElement->GetFields();
                    $article = $arFieldsElement['PROPERTY_CML2_ARTICLE_VALUE'];
                    if($article) {
                        CIBlockElement::SetPropertyValueCode($arFields['ID'], "CML2_ARTICLE", $article);    
                    }                    
               }              
 
 
 
 
            }         
 
 
        }         
 
    }    
 
 
} 

Применять его довольно просто, надо указать тип инфоблока с торговыми предложениями, свойство привязки и свойство для артикула, кинуть на любую страницу и перезагрузить. Удачного применения


Опубликовано: 12 сентября 2012




Помогла заметка? Жмите кнопки ниже


ВКонтакт Facebook Google Plus Одноклассники Twitter Livejournal Liveinternet Mail.Ru





comments powered by Disqus