Créer un panier avec une commande client

S’applique à : Espace partenaires | Espace partenaires géré par 21Vianet | Espace partenaires de Microsoft Cloud for US Government

Vous pouvez ajouter au panier une commande pour un client. Pour plus d’informations sur ce qui est actuellement disponible à la vente, consultez les offres partenaires dans le programme fournisseur de solutions Cloud.

Note

Les paniers expirent sept jours après la création initiale.

Prerequisites

  • Informations d’identification décrites dans l’authentification de l’Espace partenaires. Ce scénario prend en charge l'authentification avec des identifiants d'application autonomes ainsi que des identifiants combinés application+utilisateur.

  • ID client (customer-tenant-id). Si vous ne connaissez pas l’ID du client, vous pouvez le rechercher dans Partner Center en sélectionnant l’espace de travail Clients, puis le client dans la liste des clients, puis Compte. Dans la page Compte du client, recherchez l’ID Microsoft dans la section Informations sur le compte client . L’ID Microsoft est identique à l’ID client (customer-tenant-id).

C#

Pour créer une commande pour un client :

  1. Créez une instance de l’objet Cart.

  2. Créez une liste d’objets CartLineItem et affectez la liste à la propriété LineItems du panier. Chaque article de ligne de panier contient les informations d’achat d’un produit. Vous devez disposer d’au moins un élément de ligne de panier.

  3. Obtenez une interface pour les opérations de panier en appelant la méthode IAggregatePartner.Customers.ById avec l’ID client pour identifier le client, puis en récupérant l’interface à partir de la propriété Cart .

  4. Appelez la méthode Create ou CreateAsync pour créer le panier.

  5. Pour effectuer l’attestation et inclure d’autres revendeurs, consultez les exemples suivants de demande et de réponse :

Demander un échantillon


{
    "PartnerOnRecordAttestationAccepted":true,     "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
            "quantity": 1,
            "billingCycle": "monthly",
            "termDuration": "P1M",
            "renewsTo": null,
            "provisioningContext": {},
            "customTermEndDate": "2022-02-19T00:00:00Z"
        },
        {
            "id": 1,
            "catalogItemId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
            "quantity": 2,
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "participants": [
                {
                    "key": "transaction_reseller",
                    "value": "5357564"
                },
                 {
                    "key": "additional_transaction_reseller",                     
                    "value": "517285"
                },
                 {
                    "key": "additional_transaction_reseller", 
                    "value": "5357563"
                }
            ]
        }
    ]
}


Exemple de réponse


{
    "id": "3e22b548-647d-4223-9675-1fcb6cb57665",
    "creationTimestamp": "2021-08-18T17:29:52.3517492Z",
    "lastModifiedTimestamp": "2021-08-18T17:29:52.3517553Z",
    "expirationTimestamp": "2021-08-25T17:30:11.2406416Z",
    "lastModifiedUser": "da62a0dc-35e9-4601-b48e-a047bd3ec7c1",
    "status": "Active",
    "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
            "quantity": 1,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1M",
	    "customTermEndDate": "2022-02-19T00:00:00Z";
            "provisioningContext": {},
            "orderGroup": "0"
        },
        {
            "id": 1,
            "catalogItemId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
            "quantity": 2,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "participants": [
                {
                    "key": "transaction_reseller",
                    "value": "5357564"
                },
                {
                    "key": "additional_transaction_reseller", 
                    "value": "517285"
                },
                {
                    "key": "additional_transaction_reseller", 
                    "value": "5357563"
                }
            ],
            "provisioningContext": {},
            "orderGroup": "0"
        }
    ],
    "links": {
        "self": {
            "uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/carts/3e22b548-647d-4223-9675-1fcb6cb57665",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Cart"
    }
}


Exemple en code C#

// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;

var cart = new Cart()
{
    LineItems = new List<CartLineItem>()
    {
        new CartLineItem()
        {
      /* Microsoft Azure Subscription */
            Id = 0,
            CatalogItemId = "MS-AZR-0145P",
            Quantity = 1,
            BillingCycle = BillingCycleType.Monthly,
            TermDuration = "P1Y"
        },
        new CartLineItem()
        {
      /* Azure Reserved Instance */
            Id = 1,
            CatalogItemId = "DZH318Z0BQ36:004G:DZH318Z08C0S",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime,
            TermDuration = "P1Y",
            ProvisioningContext = new Dictionary<string, string>
            {
                { "subscriptionId", subscriptionId },
                { "scope", "shared" }
            }
        },
        new CartLineItem()
        {
      /* Azure Reserved Instance */
            Id = 2,
            CatalogItemId = "DZH318Z0BQ36:004J:DZH318Z08B8X",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime,
            TermDuration = "P3Y",
            ProvisioningContext = new Dictionary<string, string>
            {
                { "subscriptionId", subscriptionId },
                { "scope", "shared" }
            }
        },
        new CartLineItem()
        {
      /* Perpetual Software */
            Id = 3,
            CatalogItemId = "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
            Quantity = 1,
            BillingCycle = BillingCycleType.OneTime
        },
        new CartLineItem()
        {
      /* SaaS */
            Id = 4,
            CatalogItemId = "DZH318Z0BXWC:0002:DZH318Z0BMRV",
            Quantity = 1,
            BillingCycle = BillingCycleType.Monthly,
            TermDuration = "P1M"
        },
        new CartLineItem()
        {
      /* SaaS Free Trial */
            Id = 5,
            CatalogItemId = "DZH318Z0C0WF:0001:DZH318Z0BP69",
            Quantity = 10,
            BillingCycle = BillingCycleType.None,
            TermDuration = "P1M",
            RenewsTo = new RenewsTo
            {
                TermDuration = "P1Y"
            }
        }
    }
};

cart = partnerOperations.Customers.ById(customerId).Carts.Create(cart);

Java

Le Kit de développement logiciel (SDK) Java de Partner Center peut être utilisé pour gérer les ressources de Partner Center. Il s’agit d’un projet open source géré par la communauté partenaire et non officiellement pris en charge par Microsoft. Vous pouvez obtenir de l’aide de la communauté ou ouvrir une issue sur GitHub si vous rencontrez un problème.

Pour créer une commande pour un client :

  1. Créez une instance de l’objet Cart.

  2. Créez une liste d’objets CartLineItem et affectez la liste aux éléments de ligne du panier. Chaque article du panier contient les informations d’achat d’un produit. Vous devez disposer d’au moins un article du panier.

  3. Obtenez une interface pour les opérations de panier en appelant la fonction IAggregatePartner.getCustomers().byId avec l’ID client pour identifier le client, puis en récupérant l’interface à partir de la fonction getCart .

  4. Appelez la fonction create pour créer le panier.

Exemple Java

// IAggregatePartner partnerOperations;
// String customerId;
// String subscriptionId;
// String catalogItemId;

CartLineItem lineItem = new CartLineItem();

lineItem.setBillingCycle(BillingCycleType.OneTime);
lineItem.setCatalogItemId(catalogItemId);
lineItem.setFriendlyName("Sample RI Purchase");
lineItem.setQuantity(1);

Map<String, String> provisioningContext = new HashMap<String,String>();

provisioningContext.put("duration", "3Years");
provisioningContext.put("scope", "shared");
provisioningContext.put("subscriptionId", subscriptionId);

lineItem.setProvisioningContext(provisioningContext);

List<CartLineItem> lineItemList = new ArrayList<CartLineItem>();
lineItemList.add(lineItem);

Cart cart = new Cart();
cart.setLineItems(lineItemList);

Cart cartCreated = partnerOperations.getCustomers().byId(customerId).getCarts().create(cart);

PowerShell

Le module PowerShell Partner Center peut être utilisé pour gérer les ressources de Partner Center. Il s’agit d’un projet open source géré par la communauté partenaire et non officiellement pris en charge par Microsoft. Vous pouvez obtenir de l’aide de la communauté ou ouvrir un problème sur GitHub si vous rencontrez un problème.

Pour créer une commande pour un client :

  1. Créez une instance d’un objet Cart.

  2. Créez une liste d’objets CartLineItem et affectez la liste aux éléments de ligne du panier. Chaque ligne du panier contient les informations d’achat d’un produit. Vous devez disposer d’au moins un élément de ligne de panier.

  3. Exécutez la commande New-PartnerCustomerCart pour créer le panier.

# $customerId
# $subscriptionId
# $catalogItemId

$lineItem = New-Object -TypeName Microsoft.Store.PartnerCenter.PowerShell.Models.Carts.PSCartLineItem

$lineItem.BillingCycle = 'OneTime'
$lineItem.CatalogItemId = $catalogItemId
$lineItem.FriendlyName = 'Sample RI Purchase'
$lineItem.ProvisioningContext.Add('duration', '1Year')
$lineItem.ProvisioningContext.Add('scope', 'shared')
$lineItem.ProvisioningContext.Add('subscriptionId', $subsciptionId)
$lineItem.Quantity = 10

New-PartnerCustomerCart -CustomerId $customerId -LineItems $lineItem

Requête REST

Syntaxe de la requête

Méthode URI de la requête
POST {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1

Paramètre d’URI

Utilisez le paramètre de chemin d’accès suivant pour identifier le client.

Nom Type Obligatoire Descriptif
customer-id ficelle Oui ID client au format GUID qui identifie le client.

En-têtes de requête

Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.

Corps de la requête

Ce tableau décrit les propriétés Cart dans le corps de la requête.

Propriété Type Obligatoire Descriptif
pièce d'identité ficelle Non Identificateur de panier fourni lors de la création réussie du panier.
creationTimeStamp Date et heure Non Date de création du panier, au format date-heure. Appliqué lors de la création réussie du panier.
lastModifiedTimeStamp Date et heure Non Date de la dernière mise à jour du panier, au format date-heure. Appliqué lors de la création réussie du panier.
expirationTimeStamp Date et heure Non Date d’expiration du panier, au format date-heure. Appliqué lors de la création réussie du panier.
lastModifiedUser ficelle Non L’utilisateur ayant mis à jour le panier en dernier. Appliqué lors de la création réussie du panier.
lignes d’article Tableau d’objets Oui Ensemble de ressources CartLineItem.
Attestation du partenaire enregistré acceptée Booléen Oui Confirme que l’attestation est terminée

Ce tableau décrit les propriétés CartLineItem dans le corps de la requête.

Note

Lors de l’extraction d’un panier via l’API, les éléments de ligne sont traités dans l’ordre dans lequel ils sont placés dans le panier. La commande peut affecter l’éligibilité aux promotions avec les contraintes New To Offer s’il y a deux produits du même type dans le panier, l’un ayant l’ID promotionnel et l’autre pas (par exemple, avec des conditions différentes). Veillez à placer les éléments de ligne éligibles pour une promotion en premier dans le panier si vous recherchez plusieurs éléments.

Propriété Type Obligatoire Descriptif
pièce d'identité ficelle Non Identificateur unique d’un élément de ligne de panier. Appliqué lors de la création réussie du panier.
catalogId ficelle Oui Identificateur de l’élément de catalogue. Vérifiez que la disponibilité de l’élément de catalogue est définie pour le bon segment.
friendlyName ficelle Non Optional. Nom explicite de l’élément défini par le partenaire pour aider à lever l’ambiguïté.
promotionId ficelle Non Optional. La plupart des nouvelles promotions commerciales s’appliquent automatiquement, mais pour les promotions facultatives (telles que Bridge to the Cloud 2) à appliquer à un élément de ligne de panier, les partenaires doivent inclure l’ID de promotion lors de l’ajout au panier.
quantité int Oui Nombre de licences ou d’instances.
code de devise ficelle Non Code monétaire.
billingCycle Objet Oui Type de cycle de facturation défini pour la période actuelle.
customTermEndDate Date et heure Non Date de fin d’un abonnement existant sur laquelle vous souhaitez aligner la date de fin du nouvel abonnement.
Participants Liste des paires de chaînes d’objet Non Collection de PartnerId enregistrés pour l’achat.
provisioningContext Dictionnaire<chaîne, chaîne> Non Informations requises pour le provisionnement de certains éléments du catalogue. La propriété provisioningVariables dans une référence SKU indique les propriétés requises pour des éléments spécifiques dans le catalogue.
orderGroup ficelle Non Groupe pour indiquer quels éléments peuvent être placés ensemble.
erreur Objet Non Appliqué après la création du panier en cas d’erreur.
renouvelle en Tableau d’objets Non Ensemble de ressources RenewsTo.
Attestation acceptée Booléen Non Indique l’accord pour les conditions de l’offre ou du SKU. Obligatoire uniquement pour les offres ou références SKU pour lesquelles SkuAttestationProperties ou OfferAttestationProperties enforceAttestation vaut True.
transaction_reseller Chaîne Non Lorsqu’un fournisseur indirect place une commande pour le compte d’un revendeur indirect, renseignez ce champ avec l’ID partenaire du revendeur indirect uniquement (jamais l’ID du fournisseur indirect). Cela garantit une comptabilité appropriée pour les incitations.
transaction supplémentaire du revendeur Chaîne Non Lorsqu’un fournisseur indirect passe une commande pour le compte d’un revendeur indirect, renseignez ce champ avec l’ID partenaire du revendeur indirect supplémentaire uniquement (jamais l’ID du fournisseur indirect). Les primes incitatives ne s’appliquent pas à ces autres revendeurs. Seuls un maximum de cinq revendeurs indirects peuvent être entrés. Ce réquierment n’est applicable qu’aux partenaires qui effectuent des transactions dans des pays/régions européens.
scheduledNextTermInstructions Objet Non Définit les instructions pour la prochaine période d’un abonnement d’évaluation. Les partenaires peuvent spécifier la « termDuration », la « billingFrequency » et la quantité que l’abonnement payant correspondant a au renouvellement.

Ce tableau décrit les propriétés RenewsTo dans le corps de la demande pour les offres de la Place de marché Microsoft.

Propriété Type Obligatoire Descriptif
termDuration ficelle Non Représentation ISO 8601 de la durée de la période de renouvellement. Les valeurs prises en charge actuelles sont P1M (1 mois) et P1Y (1 an).
ScheduledNextTermInstructions

Ce tableau décrit les propriétés scheduledNextTermInstructions dans le corps de la demande pour les offres d’évaluation basées sur des licences NCE. Si aucune valeur n’est spécifiée, les essais sont renouvelés en abonnements payants avec une période annuelle, une facturation mensuelle et 25 licences.

Propriété Type Obligatoire Descriptif
produit tableau Non Tableau qui précise dans quel abonnement se transforme un abonnement d’essai lors du renouvellement, ainsi que la durée et la fréquence de facturation de l’abonnement payant.
quantité int Non Quantité de licence que l’abonnement payant correspondant a une fois l’offre d’évaluation renouvelée.
Groupes de commandes

L’API affecte la orderGroup valeur retournée sur les éléments de ligne de panier lors de la création ou de la mise à jour du panier. L’API remplace toute valeur que vous fournissez. Lors du passage en caisse, chaque groupe de commandes devient une commande distincte.

Placez les éléments de ligne dans le même groupe d’ordres uniquement lorsque toutes les valeurs suivantes correspondent :

  • Cycle de facturation, tels que annual, monthly ou essais
  • Segment, comme commercial ou education
  • Code ISO de la devise
  • Famille de produits, par exemple OnlineServicesNCE
  • Legacy vs NCE

Un groupe de commandes peut contenir jusqu’à 10 lignes de commande. Le système place des articles de ligne supplémentaires dans un nouveau groupe de commandes. Il n’existe aucune limite au nombre de groupes de commandes qui peuvent apparaître dans un panier.

Le système place les types d’éléments suivants dans des groupes d’ordre distincts :

  • Réservations Azure
  • Avantages Azure, y compris les promotions et FlexSpendPlan
Produit

Ce tableau décrit les propriétés productTerm dans le corps de la demande pour les offres d’évaluation basées sur des licences NCE. Si aucune valeur n’est spécifiée dans ce tableau, les essais sont renouvelés dans les abonnements payants avec une période annuelle, une facturation mensuelle.

Propriété Type Obligatoire Descriptif
ID de produit ficelle Non Un GUID formulé pour représenter le produit de l'abonnement payant dans lequel la version d'évaluation est renouvelée.
skuId ficelle Non GUID mis en forme pour représenter la référence SKU de l’abonnement payant dans lequel la version d’évaluation est renouvelée.
availabilityId ficelle Non Un GUID formaté pour indiquer la disponibilité de l'abonnement payant auquel la version d'évaluation se renouvelle.
cycle de facturation ficelle Non La fréquence de facturation de l'abonnement payant correspondant après que l'offre d'évaluation est renouvelée.
termDuration ficelle Non La durée de l'abonnement payant correspondant après le renouvellement de l'offre d'évaluation.

Exemple de requête

POST /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 496
Expect: 100-continue

{
  "lineItems": [
    {
    /* Microsoft Azure Subscription */
      "id": 0,
      "catalogItemId": "MS-AZR-0145P",
      "quantity": 1,
      "billingCycle": "monthly",
      "termDuration": "P1Y"
    },
    {
    /* Azure Reserved Instance */
      "id": 1,
      "catalogItemId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
      "quantity": 1,
      "billingCycle": "one_time",
      "termDuration": "P1Y",
      "provisioningContext": {
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "scope": "shared"
      }
    },
    {
    /* Azure Reserved Instance */
      "id": 2,
      "catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
      "quantity": 1,
      "billingCycle": "one_time",
      "termDuration": "P3Y",
      "provisioningContext": {
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "scope": "single"
      }
    },
    {
    /* Perpetual Software */
      "id": 3,
      "catalogItemId": "DG7GMGF0DWTL:0001:DG7GMGF0DSFM",
      "quantity": 1,
      "billingCycle": "one_time"
    },
    {
    /* SaaS */
      "id": 4,
      "catalogItemId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
      "quantity": 1,
      "billingCycle": "monthly",
      "termDuration": "P1M"
    },
  {
    /* SaaS Free Trial */
       "id": 5,
       "catalogItemId": "DZH318Z0C0WF:0001:DZH318Z0BP69",
       "quantity": 10,
       "billingCycle": "none",
       "termDuration": "P1M",
       "renewsTo": {
         "termDuration": "P1Y"
       }
    }
  ]
}

Important

En date de juin 2023, la dernière version 3.4.0 du Kit de développement logiciel (SDK) .NET de Partner Center est désormais archivée. Vous pouvez télécharger la version du Kit de développement logiciel (SDK) à partir de GitHub, ainsi qu’un fichier lisez-moi qui contient des informations utiles.

Les partenaires sont encouragés à continuer à utiliser les API REST Partner Center.

Réponse REST

Si elle réussit, cette méthode retourne la ressource Cart remplie dans le corps de la réponse.

Réussite de la réponse et codes d’erreur

Chaque réponse est fournie avec un code d’état HTTP qui indique la réussite ou l’échec et les informations de débogage. Utilisez un outil de suivi réseau pour lire ce code, le type d’erreur et d’autres paramètres. Pour obtenir la liste complète, consultez Codes d’erreur.

Exemple de réponse

HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
X-Locale: en-US,en-US
MS-CV: sF/wRa2ih0CzbABc.0
MS-ServerId: 000001
Date: Thu, 15 Mar 2018 17:15:01 GMT
{
  "id": "3655b1a0-b1c9-4268-9824-577fdbc4d0be",
  "creationTimestamp": "2019-01-16T00:45:41.6062996Z",
  "lastModifiedTimestamp": "2019-01-16T00:45:41.6062996Z",
  "expirationTimestamp": "2019-01-16T01:00:54.4188497Z",
  "lastModifiedUser": "1824b7fc-2fac-4478-b177-66823c40ab75",
  "status": "Active",
  "lineItems": [
    {
      "id": 0,
      "catalogItemId": "MS-AZR-0145P",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "monthly",
      "termDuration": "P1Y",
      "orderGroup": "OMS-0"
    },
    {
      "id": 1,
      "catalogItemId": "DZH318Z0BQ36:004G:DZH318Z08C0S",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "termDuration": "P1Y",
      "provisioningContext": {
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "scope": "shared"
      },
      "orderGroup": "0"
    },
    {
      "id": 2,
      "catalogItemId": "DZH318Z0BQ36:004J:DZH318Z08B8X",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "termDuration": "P3Y",
      "provisioningContext": {
        "subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
        "scope": "shared"
      },
      "orderGroup": "0"
    },
    {
      "id": 3,
      "catalogItemId": "DG7GMGF0DWM3:0002:DG7GMGF0DT1M",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "one_time",
      "orderGroup": "0"
    },
    {
      "id": 4,
      "catalogItemId": "DZH318Z0BXWC:0002:DZH318Z0BMRV",
      "quantity": 1,
      "currencyCode": "USD",
      "billingCycle": "monthly",
      "termDuration": "P1M",
      "orderGroup": "1"
    },
  {
      "id": 5,
      "catalogItemId": "DZH318Z0C0WF:0001:DZH318Z0BP69",
      "quantity": 10,
      "currencyCode": "USD",
      "billingCycle": "none",
      "termDuration": "P1M",
      "renewsTo": {
  "termDuration": "P1Y"
      },
    "orderGroup": "2"
    }
  ],
  "links": {
    "self": {
      "uri": "/customers/28045616-f6b9-462f-9701-0d89b5e65c44/carts/3655b1a0-b1c9-4268-9824-577fdbc4d0be",
      "method": "GET",
      "headers": []
    }
  },
  "attributes": {
    "objectType": "Cart"
  }
}

Exemple pour les nouveaux services basés sur des licences du nouveau commerce

Note

Les nouvelles expériences commerciales pour les services basés sur des licences incluent de nombreuses nouvelles fonctionnalités et sont disponibles pour tous les Fournisseur de solutions Cloud (CSP). Pour plus d’informations, consultez la Vue d’ensemble des nouvelles expériences commerciales.

Exemple de requête

POST /v1/customers/932c4101-dc08-461b-b4c1-75d80e905775/carts HTTP/1.1
Host: api.partnercenter.microsoft.com
Content-Type: application/json
Content-Length: 165

{
	"LineItems": [
		{
			"CatalogItemId":"CFQ7TTC0LFLZ:0002:CFQ7TTC0K4TS",
			"Quantity": 1,
			"TermDuration": "P1M",
			"BillingCycle": "Monthly"
		}
	]
}

Important

Les éléments de ligne du plan Azure et de logiciel perpétuel ne prennent pas en charge la propriété termDuration. Évitez de l'inclure lors de l'acquisition de ce type d'article.

// request example where several renewal values for an NCE license-based trial are specified
http
POST /v1/customers/932c4101-dc08-461b-b4c1-75d80e905775/carts HTTP/1.1
Host: api.partnercenter.microsoft.com
Content-Type: application/json
Content-Length: 165
{
  "lineItems": [
    {
      "id": 0,
      "catalogItemId": "CFQ7TTC0LCHC:0003:CFQ7TTC0XCQC",
      "quantity": 25,
      "currencyCode": "USD",
      "billingCycle": "none",
      "termDuration": "P1M",
      "promotionId": null,
      "provisioningContext": {},
      "customTermEndDate": null,
      "scheduledNextTermInstructions": {
        "product": {
          "billingCycle": "monthly",
          "termDuration": "P1M" 
        }
      }
    }
  ],
  "partnerOnRecordAttestationAccepted": true
}

Réponse REST

Si elle réussit, cette méthode retourne la ressource Cart remplie dans le corps de la réponse.

Réussite de la réponse et codes d’erreur

Chaque réponse est fournie avec un code d’état HTTP qui indique la réussite ou l’échec et d’autres informations de débogage. Utilisez un outil de suivi réseau pour lire ce code, le type d’erreur et d’autres paramètres. Pour obtenir la liste complète, consultez Codes d’erreur.

Exemple de réponse


{
    "id": "2517c51b-58cd-4abe-87ed-3ab812401ab4",
    "creationTimestamp": "2023-07-11T21:16:11.55149Z",
    "lastModifiedTimestamp": "2023-07-11T21:16:11.5515713Z",
    "expirationTimestamp": "2023-07-18T21:16:17.2480482Z",
    "lastModifiedUser": "9db12087-fbc3-481c-8965-73d44ff88e27",
    "status": "Active",
    "lineItems": [
        {
            "id": 0,
            "catalogItemId": "CFQ7TTC0LF8S:0001:CFQ7TTC0VZW5",
            "quantity": 1,
            "currencyCode": "USD",
            "billingCycle": "monthly",
            "termDuration": "P1Y",
            "provisioningContext": {},
            "orderGroup": "0",
            "pricing": {
                "listPrice": 30.4,
                "discountedPrice": 30.4,
                "proratedPrice": 30.4,
                "price": 30.4,
                "extendedPrice": 364.8
            }
        }
    ],
    "links": {
        "self": {
            "uri": "/customers/ebd8b4c2-4069-46a8-bd70-123d6dec3e39/carts/2517c51b-58cd-4abe-87ed-3ab812401ab4",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Cart"
    }
}
// response content for an order containing an NCE license-based trial
{
  "id": "99d3777b-61da-4c95-aefa-203c248c4180",
  "creationTimestamp": "2025-02-04T22:22:36.7924103Z",
  "lastModifiedTimestamp": "2025-02-04T22:22:36.7924109Z",
  "expirationTimestamp": "2025-02-11T22:23:34.5190698Z",
  "lastModifiedUser": "b5109661-56c5-45ed-9447-f67463458a97",
  "status": "Active",
  "lineItems": [
    {
      "id": 0,
      "catalogItemId": "CFQ7TTC0LCHC:0003:CFQ7TTC0XCQC",
      "quantity": 25,
      "currencyCode": "USD",
      "billingCycle": "none",
      "termDuration": "P1M",
      "provisioningContext": {},
      "orderGroup": "0",
      "pricing": {
        "listPrice": 0.0,
        "discountedPrice": 0.0,
        "proratedPrice": 0.0,
        "price": 0.0,
        "extendedPrice": 0.0
      },
      "scheduledNextTermInstructions": {
        "product": {
          "productId": "CFQ7TTC0LCHC",
          "skuId": "0002",
          "availabilityId": "CFQ7TTC0XL82",
          "billingCycle": "monthly",
          "termDuration": "P1M"
        },
        "quantity": 25
      }
    }
  ],
  "links": {
    "self": {
      "uri": "/customers/81e78b53-9aa8-44e7-a041-3b15272d8f84/carts/99d3777b-61da-4c95-aefa-203c248c4180",
      "method": "GET",
      "headers": []
    }
  },
  "attributes": {
    "objectType": "Cart"
  }
}