Дано:
Сервер под управлением centos 6 , там я развернул малый битрикс
Также есть http://gw.open.1688.com:80/openapi/param2/1/cn.ali... запрос по которому мы получаем список элементов с сайта 1688.com
Необходимо, на основе полученных данных, в торговом каталоге сайта создать раздел с элементами. Элемент должен содержать цену, свойства, изображения, одним словом все, что есть в выгрузке.
Например, я на чистом битриксе сделаю компонент "КАТАЛОГ", там выведу раздел с элементами, как я понял надо написать какой то скрипт, который берет этот json, проходит по нему циклом и кидает данные через api функции в базу, то бишь после того как скрипт отработал у меня в базе будут товары
и строку мусолить больше не нужно?
Вообщем, ребят подскажите плиз как подступиться? как написать этот скрипт? Как правильно вывести каталог?, желательно подробно, с примерами кода если можно) Или документацией
Ответ
у битрикса есть класс Bitrix\Main\Web\HttpClient
его можно использовать для получения строки json и затем декодировать
use Bitrix\Main\Web\HttpClient;
$httpClient = new HttpClient($options);
$httpClient->get($url);
$res = $httpClient->getResult();
try {
$ar = json_decode($httpClient->getResult(), true);
} catch (\Exception $e){
}
if(is_array($ar))
{
# если данные непосредственно в $ar
foreach($ar => $product)
{
# добавление в базу
}
}
добавление элемента в инфоблок
https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/add.php
$el = new CIBlockElement;
$PROP = array();
$PROP[12] = 11;
$arLoadProductArray = Array(
"MODIFIED_BY" => $USER->GetID(), // элемент изменен текущим пользователем
"IBLOCK_SECTION_ID" => false, // элемент лежит в корне раздела
"IBLOCK_ID" => 18,
"PROPERTY_VALUES"=> $PROP,
"NAME" => "Элемент",
"ACTIVE" => "Y", // активен
"PREVIEW_TEXT" => "текст для списка элементов",
"DETAIL_TEXT" => "текст для детального просмотра",
"DETAIL_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/image.gif")
);
if($PRODUCT_ID = $el->Add($arLoadProductArray))
{
# добавляем информацию для каталога
# https://dev.1c-bitrix.ru/api_help/catalog/classes/ccatalogproduct/add.php
# цены
# https://dev.1c-bitrix.ru/api_help/catalog/classes/cprice/add.php
}
для вывода можно воспользоваться стандартным компонентов bitrix:catalog
Комментариев нет:
Отправить комментарий