Compartilhar via


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

Como verificar o estoque de um conjunto específico de itens de catálogo.

Pré-requisitos

  • Credenciais, conforme descrito em Autenticação do Partner Center. Esse cenário dá suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.

  • Uma ou mais IDs de produto. Opcionalmente, as IDs de SKU também podem ser especificadas.

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

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 , dimensione-o para Product e selecione o país/região usando o método ByCountry( ). Por fim, 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);

Solicitação REST

Sintaxe da solicitação

Método URI da solicitação
POST {baseURL}/v1/extensions/product/checkInventory?country={country-code} HTTP/1.1

Parâmetro do URI

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

Nome Digitar Obrigatória Descrição
código do país string Sim Um ID de país/região.

Cabeçalhos da solicitação

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

Corpo da solicitação

Os detalhes da solicitação de inventário, que consistem 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 Registrar uma assinatura para obter detalhes sobre o processo de registro.

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: 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"}}

Importante

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

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

Resposta REST

Se for bem-sucedido, o corpo da resposta conterá uma coleção de objetos InventoryItem preenchidos com os detalhes de restrição, se houver.

Observação

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 êxito e de erro de resposta

Cada resposta vem com um código de status HTTP que indica êxito ou falha e informações de depuração adicionais. Use uma ferramenta de rastreamento de rede para ler esse código, o tipo de erro e os 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: 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": []
    }
]