Установка цен на товары API Яндекс Маркет для партнеров - интеграция с 1С-Битрикс

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).'
';

Возврат к списку