Verifique o inventário de itens de catálogo usando APIs do Partner Center

Como verificar o inventário para um conjunto específico de itens de catálogo.

Pré-requisitos

  • Credenciais conforme descrito na autenticação do Partner Center. Este cenário oferece suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.

  • Um ou mais IDs de produto. Opcionalmente, IDs de SKU também podem ser especificados.

  • Qualquer contexto adicional necessário para verificar o inventário do(s) SKU(s) referenciado(s) pelo(s) ID(s) do produto/SKU fornecido(s). Esses requisitos podem variar de acordo com o tipo de produto/SKU e podem ser determinados a partir da propriedade InventoryVariables doSKU.

C#

Para verificar o inventário, crie um objeto InventoryCheckRequest usando um objeto InventoryItem para cada item a ser verificado. Em seguida, use um acessador IAggregatePartner.Extensions , defina o escopo até Product e selecione o país/região usando o método ByCountry( ). Finalmente, chame o método CheckInventory() com seu objeto 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);

Pedido REST

Sintaxe da solicitação

Método URI do pedido
POST {baseURL}/v1/extensions/product/checkInventory?country={código do país} HTTP/1.1

Parâmetro URI

Use o parâmetro de consulta a seguir para verificar o inventário.

Nome Type Obrigatório Description
Código do país string Sim Um ID de país/região.

Cabeçalhos do pedido

Para obter mais informações, consulte Cabeçalhos REST do Partner Center.

Corpo do pedido

Os detalhes da solicitação de inventário, consistindo em um recurso InventoryCheckRequest contendo um ou mais recursos InventoryItem.

Verifique se a Assinatura do Azure especificada no corpo da solicitação está registrada e habilitada para comprar RIs do Azure. Consulte Registar uma subscrição para obter detalhes sobre o processo de registo.

Exemplo de solicitação

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: 4acb26a1-3536-4081-bc7d-092869a4961a
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"}}

Importante

A partir de junho de 2023, a versão 3.4.0 mais recente do SDK do .NET do Partner Center foi arquivada. Você pode baixar a versão do SDK do GitHub, juntamente com um arquivo readme que contém informações úteis.

Os parceiros são incentivados a continuar a usar as APIs REST do Partner Center.

Resposta do REST

Se bem-sucedida, o corpo da resposta contém uma coleção de objetos InventoryItem preenchidos com os detalhes da restrição, se aplicável.

Nota

Se um InventoryItem de entrada representar um item que não pôde ser encontrado no catálogo, ele não será incluído na coleção de saída.

Códigos de sucesso e erro de resposta

Cada resposta vem com um código de status HTTP que indica sucesso ou falha e informações adicionais de depuração. Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e parâmetros adicionais. Para obter a lista completa, consulte Códigos de erro do Partner Center.

Exemplo de resposta

HTTP/1.1 200 OK
Content-Length: 1021
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 4acb26a1-3536-4081-bc7d-092869a4961a
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": []
    }
]