линия

Главная

вторник, 23 мая 2017 г.

Bitrix - копировать цену в торговый каталог

Однажды, необходимо было обновит интернет магазин редакции стандарт  до малого бизнеса. Ну и соответственно  использовать по полной модуль интернет магазин. После недели мучительных исправлений работа подошла к концу. И осталось только существующие цены и количество которые хранились в свойствах инфоблока скопировать в торговый каталог.



Создайте в корне сайта файл update.php

update.php:

---------
SetTitle("");?>
IsAuthorized()):
 CModule::IncludeModule("iblock");
 $my_sections = CIBlockElement::GetList (Array("ID" => "ASC"),Array("IBLOCK_ID" => 1),false,false, array("ID", "IBLOCK_ID",'NAME','CODE',"PROPERTY_PRICE"));
 $products = array();
 while($obj = $my_sections->GetNextElement())
 { 
  $ar_fields = $obj->GetFields();
  $ar_prop = $obj->GetProperties(); 
  $products[$ar_fields['ID']]  = array( "NAME"=>$ar_fields['NAME'],"PRICE"=>$ar_prop['PRICE']['VALUE']);
 }
 //echo count($products);
 Cmodule::IncludeModule('catalog');
 foreach($products as $PRODUCT_ID => $arr){
   //echo $PRODUCT_ID.' '.$arr['PRICE'].' '.$arr['NAME'].'
';   
   $PRICE_TYPE_ID = 1; //НОМЕР 
   $arFields = Array(
      "PRODUCT_ID" => $PRODUCT_ID,// - код товара или торгового предложения (ID элемента инфоблока).;
      "CATALOG_GROUP_ID" => $PRICE_TYPE_ID, //- код типа цены;
      "PRICE" =>$arr['PRICE'],//цена;
      "CURRENCY" => "RUB",//- валюта цены (обязательный параметр);
   );   
   $res = CPrice::GetList(array(),array("PRODUCT_ID" => $PRODUCT_ID,"CATALOG_GROUP_ID" => $PRICE_TYPE_ID));   
   if ($arr = $res->Fetch()){
   //Обновляем если  есть
    //echo 'updt '.$arr["ID"].'
';
    CPrice::Update($arr["ID"], $arFields);
   }
   else{
   //иначе добавляем!
    CPrice::Add($arFields);
   }
   //Тут устанавливаем количество товаров. В данном случае 1000
   CCatalogProduct::Add( array("ID"=>$PRODUCT_ID,'QUANTITY' => 1000)); 
  $i++;
  
  
 }
endif;?>

--------
Собственно все. Документация тут https://dev.1c-bitrix.ru/api_help/catalog/classes/cprice/add.php



Комментариев нет:

Отправить комментарий