Рассмотрим на примере получения товаров от поставщика https://rcstore.ru/
Ссылка для получения данных будет выглядеть следующим образом https://rcstore.ru/api/run/exportproducts?token=KEY:#API_KEY#&limit=100&offset=1, где #API_KEY# - ключ, полученный от поставщика, limit - максимальное количество товаров за одно обращение, offset - смещение навигации. Данную ссылку необходимо указать в параметр "Загрузка файлов". Вместо значения 100 у limit можно указать макрос #ITEMS_PER_ROUND#, тогда все товары одного пакета данных будут обработаны за один цикл работы плана импорта, количество товаров за шаг не должен превышать ограничение от поставщика.
В блоке получения данных можно указать следующие варианты вызова данных:
Вариант 1 - для пошаговой выборки
use \Bitrix\Main\Web\HttpClient;
$httpClient = new HttpClient($options);
$url = $planParams['IMPORT_FILE_URL'];
$request = $httpClient->get($url, $postData);
$temp = json_decode($request, true);
if($temp['status'] == 200)
{
$data = $temp['result']['DATA'];
sort($data);
if(isset($temp['result']['NEXT_HREF']))
$json_next_url = $temp['result']['NEXT_HREF'];
}
Вариант 2 - получить все данные за один вызов и в дальнейшем пошагово обработать
use \Bitrix\Main\Web\HttpClient;
$httpClient = new HttpClient($options);
$url = $planParams['IMPORT_FILE_URL'];
$data = [];
while($url)
{
$request = $httpClient->get($url, $postData);
$temp = json_decode($request, true);
if($temp['status'] == 200)
{
if(is_array($temp['result']['DATA']))
$data = array_merge($data, $temp['result']['DATA']);
if(isset($temp['result']['NEXT_HREF']))
$url = $temp['result']['NEXT_HREF'];
else
$url = false;
}
else
{
$url = false;
}
}