Проверка инвентаризации элементов каталога с помощью API Центра партнеров
Как проверить инвентаризацию определенного набора элементов каталога.
Необходимые компоненты
Учетные данные, описанные в статье о проверке подлинности в Центре партнеров. Этот сценарий поддерживает проверку подлинности с помощью автономных учетных данных приложения и приложения и пользователя.
Один или несколько идентификаторов продуктов. При необходимости можно указать идентификаторы SKU.
Любой дополнительный контекст, необходимый для проверки инвентаризации номеров SKU, на которые ссылается предоставленный идентификатор продукта или номера SKU. Эти требования могут отличаться по типу продукта или номера SKU и могут быть определены из свойства InventoryVariables SKU.
C#
Чтобы проверить инвентаризацию, создайте объект InventoryCheckRequest с помощью объекта InventoryItem для каждого элемента, который необходимо проверить. Затем используйте метод доступа IAggregatePartner.Extensions, объявив его до Product, а затем выберите страну или регион с помощью метода ByCountry(). Наконец, вызовите метод CheckInventory() с объектом InventoryCheckRequest .
IAggregatePartner partnerOperations;
string customerId;
string subscriptionId;
string countryCode;
string productId;
// Build the inventory check request details object.
var inventoryCheckRequest = new InventoryCheckRequest()
{
TargetItems = new InventoryItem[]{ new InventoryItem { ProductId = productId } },
InventoryContext = new Dictionary<string, string>()
{
{ "customerId", customerId },
{ "azureSubscriptionId", subscriptionId }
{ "armRegionName", armRegionName }
}
};
// Get the inventory results.
var inventoryResults = partnerOperations.Extensions.Product.ByCountry(countryCode).CheckInventory(inventoryCheckRequest);
Запрос REST
Синтаксис запроса
Способ | URI запроса |
---|---|
POST | {baseURL}/v1/extensions/product/checkInventory?country={country-code} HTTP/1.1 |
Параметр универсального кода ресурса
Используйте следующий параметр запроса для проверки инвентаризации.
Имя. | Type | Обязательно | Описание |
---|---|---|---|
код страны | строка | Да | Идентификатор страны или региона. |
Заголовки запросов
Дополнительные сведения см. в статье о заголовках REST Центра партнеров.
Текст запроса
Сведения о запросе на инвентаризацию, состоящий из ресурса InventoryCheckRequest , содержащего один или несколько ресурсов InventoryItem .
Убедитесь, что подписка Azure, указанная в тексте запроса, зарегистрирована и включена для приобретения RIS Azure. Дополнительные сведения о процессе регистрации см. в статье "Регистрация подписки ".
Пример запроса
POST https://api.partnercenter.microsoft.com/v1/extensions/product/checkinventory?country=US HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: d1b1981a-e088-4610-870a-eebec96d6bcd
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
{"TargetItems":[{"ProductId":"DZH318Z0BQ3P"}],"InventoryContext":{"customerId":"d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d","azureSubscriptionId":"3A231FBE-37FE-4410-93FD-730D3D5D4C75","armRegionName":"Europe"}}
Внимание
По состоянию на июнь 2023 г. последняя версия пакета SDK для .NET для Центра партнеров 3.4.0 теперь архивируется. Вы можете скачать выпуск пакета SDK из GitHub вместе с файлом чтения, содержащим полезные сведения.
Партнерам рекомендуется продолжать использовать REST API Центра партнеров.
Ответ REST
В случае успешного выполнения текст ответа содержит коллекцию объектов InventoryItem, заполненных сведениями об ограничении, если они применяются.
Примечание.
Если входной InventoryItem представляет элемент, который не удалось найти в каталоге, он не будет включен в выходную коллекцию.
Коды успешного выполнения и ошибок в ответе
Каждый ответ сопровождается кодом состояния HTTP, обозначающим успешное или неудачное выполнение, и дополнительными сведениями для отладки. Используйте средство трассировки сети, чтобы просматривать этот код, тип ошибки и дополнительные параметры. Полный список см. в разделе "Коды ошибок Центра партнеров".
Пример ответа
HTTP/1.1 200 OK
Content-Length: 1021
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: d1b1981a-e088-4610-870a-eebec96d6bcd
X-Locale: en-US
[
{
"productId": "DZH318Z0BQ3P",
"skuId": "0039",
"isRestricted": true,
"restrictions": [
{
"reasonCode": "NotAvailableForSubscription",
"description": "Restriction identified of type 'Location' with values 'japanwest'.",
"properties": {
"type": "Location",
"values": "japanwest"
}
}
]
},
{
"productId": "DZH318Z0BQ3P",
"skuId": "0038",
"isRestricted": true,
"restrictions": [
{
"reasonCode": "NotAvailableForSubscription",
"description": "Restriction identified of type 'Location' with values 'japanwest'.",
"properties": {
"type": "Location",
"values": "japanwest"
}
}
]
},
{
"productId": "DZH318Z0BQ3P",
"skuId": "000S",
"isRestricted": false,
"restrictions": []
},
{
"productId": "DZH318Z0BQ3P",
"skuId": "0011",
"isRestricted": false,
"restrictions": []
}
]