Controllare l'inventario degli elementi del catalogo usando le API del Centro per i partner

Come controllare l'inventario per un set specifico di articoli del catalogo.

Prerequisiti

  • Credenziali descritte in Autenticazione del Centro per i partner. Questo scenario supporta l'autenticazione con le credenziali app autonome e App+Utente.

  • Uno o più ID prodotto. Facoltativamente, è anche possibile specificare GLI ID SKU.

  • Qualsiasi contesto aggiuntivo necessario per verificare l'inventario degli SKU a cui fanno riferimento gli ID prodotto/SKU forniti. Questi requisiti possono variare in base al tipo di prodotto/SKU e possono essere determinati dalla proprietà InventoryVariables dello SKU.

C#

Per controllare l'inventario, compilare un oggetto InventoryCheckRequest usando un oggetto InventoryItem per ogni elemento da controllare. Usare quindi una funzione di accesso IAggregatePartner.Extensions, definire l'ambito in Product e quindi selezionare il paese/area geografica usando il metodo ByCountry(). Infine, chiamare il metodo CheckInventory() con l'oggetto 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);

Richiesta REST

Sintassi della richiesta

metodo URI della richiesta
POST {baseURL}/v1/extensions/product/checkInventory?country={country-code} HTTP/1.1

Parametro URI

Usare il parametro di query seguente per controllare l'inventario.

Nome Digita Obbligatorio Descrizione
codice paese string ID paese/area geografica.

Intestazioni delle richieste

Per altre informazioni, vedi Intestazioni REST del Centro per i partner.

Testo della richiesta

Dettagli della richiesta di inventario, costituiti da una risorsa InventoryCheckRequest contenente una o più risorse InventoryItem .

Verificare che la sottoscrizione di Azure specificata nel corpo della richiesta sia registrata e abilitata per l'acquisto di istanze riservate di Azure. Per informazioni dettagliate sul processo di registrazione, vedere Registrare una sottoscrizione .

Esempio di richiesta

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 partire da giugno 2023, la versione più recente di .NET SDK del Centro per i partner 3.4.0 è ora archiviata. È possibile scaricare la versione dell'SDK da GitHub, insieme a un file leggimi che contiene informazioni utili.

I partner sono invitati a continuare a usare le API REST del Centro per i partner.

Risposta REST

In caso di esito positivo, il corpo della risposta contiene una raccolta di oggetti InventoryItem popolati con i dettagli delle restrizioni, se applicabili.

Nota

Se un oggetto InventoryItem di input rappresenta un elemento che non è stato trovato nel catalogo, non verrà incluso nella raccolta di output.

Codici di errore e di esito della risposta

Ogni risposta viene fornita con un codice di stato HTTP che ne indica l'esito e con informazioni di debug aggiuntive. Usa uno strumento di traccia di rete per leggere il codice, il tipo di errore e parametri aggiuntivi. Per l'elenco completo, vedere Codici di errore del Centro per i partner.

Risposta di esempio

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