Однажды, необходимо было обновит интернет магазин редакции стандарт до малого бизнеса. Ну и соответственно использовать по полной модуль интернет магазин. После недели мучительных исправлений работа подошла к концу. И осталось только существующие цены и количество которые хранились в свойствах инфоблока скопировать в торговый каталог.
Создайте в корне сайта файл update.php
update.php:
---------
Собственно все. Документация тут https://dev.1c-bitrix.ru/api_help/catalog/classes/cprice/add.php
Создайте в корне сайта файл 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


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