Compartir vía


Comprobación del inventario de elementos de catálogo mediante las API del Centro de partners

Cómo comprobar el inventario de un conjunto específico de elementos de catálogo.

Requisitos previos

  • Credenciales tal como se describen en el artículo Autenticación del Centro de partners. Este escenario admite la autenticación con credenciales de aplicación independiente y app+usuario.

  • Uno o varios identificadores de producto. Opcionalmente, también se pueden especificar identificadores de SKU.

  • Cualquier contexto adicional necesario para comprobar el inventario de las SKU a las que hace referencia el producto o identificadores de SKU proporcionados. Estos requisitos pueden variar según el tipo de producto o SKU y se pueden determinar a partir de la propiedad InventoryVariables de la SKU.

C#

Para comprobar el inventario, cree un objeto InventoryCheckRequest mediante un objeto InventoryItem para cada elemento que se va a comprobar. A continuación, use un descriptor de acceso IAggregatePartner.Extensions, consícelo a Product y, a continuación, seleccione el país o región mediante el método ByCountry(). Por último, llame al método CheckInventory() con el 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);

Solicitud REST

Sintaxis de la solicitud

Método URI de solicitud
POST {baseURL}/v1/extensions/product/checkInventory?country={country-code} HTTP/1.1

Parámetro de URI

Use el siguiente parámetro de consulta para comprobar el inventario.

Nombre Type Obligatorio Descripción
código de país string Un identificador de país o región.

Encabezados de solicitud

Para obtener más información, consulta Encabezados REST del Centro de partners.

Cuerpo de la solicitud

Los detalles de la solicitud de inventario, que constan de un recurso InventoryCheckRequest que contiene uno o varios recursos InventoryItem .

Asegúrese de que la suscripción de Azure especificada en el cuerpo de la solicitud está registrada y habilitada para comprar las INSTANCIAS de Azure RIs. Consulte Registrar una suscripción para obtener más información sobre el proceso de registro.

Ejemplo de solicitud

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 junio de 2023, la versión 3.4.0 más reciente del SDK de .NET del Centro de partners ahora está archivada. Puede descargar esta versión del SDK de GitHub, junto con un archivo Léame que contiene información útil.

Se recomienda a los partners seguir usando las API REST del Centro de partners.

Respuesta REST

Si se ejecuta correctamente, el cuerpo de la respuesta contiene una colección de objetos InventoryItem rellenados con los detalles de restricción, si se aplica alguno.

Nota:

Si un objeto InventoryItem de entrada representa un elemento que no se pudo encontrar en el catálogo, no se incluirá en la colección de salida.

Códigos de error y de respuesta correctos

Cada respuesta incluye un código de estado HTTP que indica si la operación se ha realizado correctamente o con errores y proporciona información de depuración adicional. Use una herramienta de seguimiento de red para leer este código, el tipo de error y los parámetros adicionales. Para obtener la lista completa, consulte Códigos de error del Centro de partners.

Ejemplo de respuesta

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