Обучаю битриксу программистов, интеграторов. Подробнee ⇒

Товары - crm api коробка



получить товары
$arFilter = array(
   "OWNER_ID"=>$id, //ID сделки, лида, предложения
   "CHECK_PERMISSIONS"=>"N" //не проверять права доступа текущего пользователя
);            
$arSelect = array(
   "*"         
);            
$res = CCrmProductRow::GetList(['ID'=>'DESC'], $arFilter,false,false,$arSelect);         
while($arProduct = $res->Fetch()){
   //
}
удалить товары сделки, лида, предложения
CCrmProductRow::DeleteByOwner($entityType,$id); //$entityType - 'D' -сделка, 'L' - лид, 'Q' - предложение 
добавить товар в сделку, лид, предложение
поля https://bxapi.ru/src/?module_id=crm&name=CCrmProductRow::GetFields
CCrmProductRow::Add($arProduct);
Функции, которые переносят товары из Предложения в сделку или лид.
Запускаю из БП. Запрашивается удалять товары в сделке / лиде
function MoveProductsFromCPtoLead($id,$deleteFromLead=false){
   if(!empty($id) && CModule::IncludeModule('crm')){
      $arFilter = array(
         "ID"=>$id, //выбираем определенную сделку по ID
         "CHECK_PERMISSIONS"=>"N", //не проверять права доступа текущего пользователя   
         "!LEAD_ID"=>false      
      );   
      $arSelect = ["LEAD_ID"];   
      $res = CCrmQuote::GetList(Array(), $arFilter,false,false, $arSelect);
      if($arQuote = $res->Fetch()){
         if($deleteFromLead){
            CCrmProductRow::DeleteByOwner('L',$arQuote["LEAD_ID"]);
         }         
         $arFilter = array(
            "OWNER_ID"=>$id, 
            "CHECK_PERMISSIONS"=>"N" //не проверять права доступа текущего пользователя
         );            
         $arSelect = array(
            "*"         
         );            
         $res = CCrmProductRow::GetList(['ID'=>'DESC'], $arFilter,false,false,$arSelect);         
         while($arProduct = $res->Fetch()){
            unset($arProduct["ID"]);
            $arProduct["OWNER_ID"] = $arQuote["LEAD_ID"];
            $arProduct["OWNER_TYPE"] = 'L';
            CCrmProductRow::Add($arProduct);            
         }
      }      
   }

}


function MoveProductsFromCPtoDeal($id,$deleteFromDeal=false){
   if(!empty($id) && CModule::IncludeModule('crm')){
      $arFilter = array(
         "ID"=>$id, //выбираем определенную сделку по ID
         "CHECK_PERMISSIONS"=>"N", //не проверять права доступа текущего пользователя   
         "!DEAL_ID"=>false      
      );   
      $arSelect = ["DEAL_ID"];   
      $res = CCrmQuote::GetList(Array(), $arFilter,false,false, $arSelect);
      if($arQuote = $res->Fetch()){
         if($deleteFromDeal){
            CCrmProductRow::DeleteByOwner('D',$arQuote["DEAL_ID"]);
         }         
         $arFilter = array(
            "OWNER_ID"=>$id, 
            "CHECK_PERMISSIONS"=>"N" //не проверять права доступа текущего пользователя
         );            
         $arSelect = array(
            "*"         
         );            
         $res = CCrmProductRow::GetList(['ID'=>'DESC'], $arFilter,false,false,$arSelect);         
         while($arProduct = $res->Fetch()){
            unset($arProduct["ID"]);
            $arProduct["OWNER_ID"] = $arQuote["DEAL_ID"];
            $arProduct["OWNER_TYPE"] = 'D';
            CCrmProductRow::Add($arProduct);            
         }
      }      
   }
}
Если блог был полезным, можете угостить меня "чашечкой кофе" :)

Сбер по номеру телефона +7 (953) 585-13-09 Вероника.
Спасибо!