Vérifier l’inventaire des éléments du catalogue à l’aide des API de l’espace partenairesCheck the inventory of catalog items using Partner Center APIs

S’applique à :Applies to:

  • Espace partenairesPartner Center

Comment vérifier l’inventaire pour un ensemble spécifique d’éléments de catalogue.How to check the inventory for a specific set of catalog items.

PrérequisPrerequisites

  • Informations d’identification, comme décrit dans Authentification auprès de l’Espace partenaires.Credentials as described in Partner Center authentication. Ce scénario prend en charge l’authentification avec les informations d’identification de l’application autonome et de l’application + utilisateur.This scenario supports authentication with both standalone App and App+User credentials.

  • Un ou plusieurs ID de produit.One or more product IDs. Vous pouvez également spécifier des ID de référence (SKU).Optionally, SKU IDs can also be specified.

  • Tout contexte supplémentaire nécessaire pour vérifier l’inventaire des références (SKU) référencées par le ou les ID de produit/SKU fournis.Any additional context needed for verifying the inventory of the SKU(s) referenced by the provided product/SKU ID(s). Ces exigences peuvent varier selon le type de produit/référence et peuvent être déterminées à partir de la propriété InventoryVariables de la référence SKU .These requirements may vary by type of product/SKU and can be determined from the SKU's InventoryVariables property.

C#C#

Pour vérifier l’inventaire, générez un objet InventoryCheckRequest à l’aide d’un objet InventoryItem pour chaque élément à vérifier.To check the inventory, build an InventoryCheckRequest object using an InventoryItem object for each item to be checked. Utilisez ensuite un accesseur collection iaggregatepartner. extensions , délimitez-le à Product , puis sélectionnez le pays à l’aide de la méthode ByCountry () .Then, use an IAggregatePartner.Extensions accessor, scope it down to Product and then select the country using the ByCountry() method. Enfin, appelez la méthode CheckInventory () avec votre objet InventoryCheckRequest .Finally, call the CheckInventory() method with your InventoryCheckRequest object.

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

Demande RESTREST request

Syntaxe de la requêteRequest syntax

MéthodeMethod URI de requêteRequest URI
POSTPOST {baseURL}/v1/extensions/Product/checkInventory ? pays = {country-code} http/1.1{baseURL}/v1/extensions/product/checkInventory?country={country-code} HTTP/1.1

Paramètre d’URIURI parameter

Utilisez le paramètre de requête suivant pour vérifier l’inventaire.Use the following query parameter to check the inventory.

NomName TypeType ObligatoireRequired DescriptionDescription
pays-codecountry-code stringstring OuiYes ID de pays/région.A country/region ID.

En-têtes de requêteRequest headers

Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.For more information, see Partner Center REST headers.

Corps de demandeRequest body

Détails de la demande d’inventaire, comprenant une ressource InventoryCheckRequest contenant une ou plusieurs ressources InventoryItem .The inventory request details, consisting of an InventoryCheckRequest resource containing one or more InventoryItem resources.

Exemple de requêteRequest example

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

Réponse RESTREST response

En cas de réussite, le corps de la réponse contient une collection d’objets InventoryItem renseignés avec les détails de la restriction, le cas échéant.If successful, the response body contains a collection of InventoryItem objects populated with the restriction details, if any apply.

Notes

Si un InventoryItem d’entrée représente un élément qui est introuvable dans le catalogue, il n’est pas inclus dans la collection de sortie.If an input InventoryItem represents an item that could not be found in the catalog, it will not be included in the output collection.

Codes d’erreur et de réussite de la réponseResponse success and error codes

Chaque réponse est accompagnée d’un code d’état HTTP qui indique la réussite ou l’échec ainsi que des informations de débogage supplémentaires.Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Utilisez un outil de trace réseau pour lire ce code, le type d’erreur et des paramètres supplémentaires.Use a network trace tool to read this code, error type, and additional parameters. Pour obtenir la liste complète, consultez Codes d’erreur de l' espace partenaires.For the full list, see Partner Center error codes.

Exemple de réponseResponse example

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