require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if (!CModule::IncludeModule("iblock") || !CModule::IncludeModule("catalog")) die(); // Дока и нужная информация // Регистрация веб-сервиса и получение ключа к API - https://yandex.ru/dev/market/partner-marketplace-dp/doc/dg/concepts/authorization.html // получение отладочного токена - https://yandex.ru/dev/oauth/doc/dg/tasks/get-oauth-token.html // https://yandex.ru/dev/market/partner-marketplace-cd/doc/dg/reference/post-campaigns-id-offer-prices-updates.html // POST /campaigns/{campaignId}/offer-prices/updates // https://api.partner.market.yandex.ru/v2/campaigns/{campaignId}/offer-prices/updates.[format] $campaignId = 11111111; // ID компании $priceType = 1; // ID типа цены // Для получения этих переменных смотри - получение отладочного токена - https://yandex.ru/dev/oauth/doc/dg/tasks/get-oauth-token.html $oauth_token = "AgAAAAAAAAA-AAbAAAAAAAAAAAAAAAAAA"; $oauth_client_id = "c9skldfjlksdjflsk213k42l3234243242"; $arJson = []; $arSelect = Array("ID", "IBLOCK_ID", "NAME", "CATALOG_GROUP_".$priceType); // нужный нам фильтр $arFilter = Array( "IBLOCK_ID" => array(1,2), // ID нужных инфоблоков "ACTIVE"=>"Y", "ACTIVE_DATE" => "Y", "!PROPERTY_IZGOTOVITEL" => false, ); $arNav = ["nPageSize"=>2000, "iNumPage"=>1]; // если элментов больше 2000 нужно циклить по страницам выполнение блока ниже $res = CIBlockElement::GetList([], $arFilter, false, $arNav, $arSelect); while($arFields = $res->Fetch()) { if(!empty($arFields["CATALOG_PRICE_".$priceType])) { $arJson["offers"][] = [ "marketSku" => $arFields["ID"], // ID SKU, который мы передовали при создании файла выгрузки товаров "price" => [ "currencyId" => "RUR", "discountBase" => "", "value" => $arFields["CATALOG_PRICE_".$priceType], "vat" => "", ], ]; } } $strJson = json_encode($arJson); // отправляем данные $headers = array( 'Content-Type: application/json', 'Authorization: OAuth oauth_token="'.$oauth_token.'", oauth_client_id="'.$oauth_client_id.'"' ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'https://api.partner.market.yandex.ru/v2/campaigns/'.$campaignId.'/offer-prices/updates.json'); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $strJson); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); $out = curl_exec($curl); curl_close($curl); $outDecode = json_decode($out, true); // выведем статус отправки echo ''.print_r($outDecode,true).'';