Mettre à jour un panier
Comment mettre à jour une commande pour un client dans un panier.
Notez que les paniers expirent sept jours après la création initiale.
Prérequis
Informations d’identification, comme décrit dans Authentification auprès de l’Espace partenaires. Ce scénario prend en charge l’authentification avec les informations d’identification d’application et d’application+utilisateur autonomes.
ID du client (
customer-tenant-id
). Si vous ne connaissez pas l’ID du client, vous pouvez le rechercher dans l’Espace de partenaires en sélectionnant l’espace de travail Clients, puis le client dans la liste des clients, puis compte. Dans la page du compte du client, recherchez l’ID Microsoft dans la section Informations sur le compte client. L’ID Microsoft est le même que l’ID de client (customer-tenant-id
).ID de panier pour un panier existant.
C#
Pour mettre à jour une commande pour un client, obtenez le panier à l’aide de la méthode Get() en transmettant les ID de client et de panier à l’aide de la fonction ById(). Apportez les modifications nécessaires au panier. Appelez maintenant la méthode Put à l’aide des ID de client et de panier à l’aide de la méthode ById().
Enfin, appelez la méthode Put() ou PutAsync() pour créer l’ordre.
IAggregatePartner partnerOperations;
string customerId;
string cartId;
var cart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Get();
cart.LineItems.ToArray()[0].Quantity++;
var updatedCart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Put(cart);
Pour effectuer l’attestation et inclure d’autres revendeurs, consultez l’exemple suivant.
Exemple d’API - Extraire le panier
{
"orders": [
{
"id": "f76c6b7f449d",
"alternateId": "f76c6b7f449d",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "AI Builder Capacity add-on",
"quantity": 1,
"links": {
"product": {
"uri": "/products/CFQ7TTC0LH0Z?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001/availabilities/CFQ7TTC0K18P?country=US",
"method": "GET",
"headers": []
}
}
},
{
"lineItemNumber": 1,
"offerId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
"subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Azure Active Directory Premium P1",
"quantity": 2,
"partnerIdOnRecord": "517285",
"additionalPartnerIdsOnRecord":
"5357564",
"5357563"
],
"links": {
"product": {
"uri": "/products/CFQ7TTC0LFLS?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LFLS/skus/0002?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LFLS/skus/0002/availabilities/CFQ7TTC0KDLJ?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2021-08-18T07:52:23.1921872Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d",
"method": "PATCH",
"headers": []
}
},
"client": {},
"attributes": {
"objectType": "Order"
}
}
],
"attributes": {
"objectType": "CartCheckoutResult"
}
}
Demande REST
Syntaxe de la requête
Méthode | URI de requête |
---|---|
PUT | {baseURL}/v1/customers/{customer-id}/carts/{cart-id} HTTP/1.1 |
Paramètres d’URI
Utilisez les paramètres de chemin d’accès suivants pour identifier le client et spécifiez le panier à mettre à jour.
Nom | Type | Requise | Description |
---|---|---|---|
id-client | string | Oui | ID client au format GUID qui identifie le client. |
cart-id | string | Oui | ID de panier au format GUID qui identifie le panier. |
En-têtes de requête
Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.
Corps de la demande
Ce tableau décrit les propriétés cart dans le corps de la requête.
Propriété | Type | Requise | Description |
---|---|---|---|
id | string | Non | Identificateur de panier fourni lors de la création réussie du panier. |
creationTimeStamp | Date/Heure | Non | Date de création du panier, au format date-heure. Appliqué lors de la création réussie du panier. |
lastModifiedTimeStamp | Date/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/Heure | Non | Date d’expiration du panier, au format date-heure. Appliqué lors de la création réussie du panier. |
lastModifiedUser | string | Non | Utilisateur qui a mis à jour le panier pour la dernière fois. Appliqué lors de la création réussie du panier. |
lineItems | Tableau d’objets | Oui | Tableau de ressources CartLineItem . |
Ce tableau décrit les propriétés CartLineItem dans le corps de la requête.
Propriété | Type | Requise | Description |
---|---|---|---|
id | string | Non | Identificateur unique d’un élément de ligne de panier. Appliqué lors de la création réussie du panier. |
catalogId | string | Oui | Identificateur de l’élément de catalogue. |
friendlyName | string | Non | facultatif. Nom convivial de l’élément défini par le partenaire pour aider à lever l’ambiguïté. |
promotionId | string | Non | facultatif. La plupart des promotions NCE 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 dans l’ajout à la demande de panier. |
quantité | int | Oui | Nombre de licences ou d’instances. |
currencyCode | string | Non | Code devise. |
billingCycle | Object | Oui | Type de cycle de facturation défini pour la période actuelle. |
participants | Liste des paires de chaînes d’objet | Non | Collection de participants sur l’achat. |
provisioningContext | Chaîne de<dictionnaire, chaîne> | Non | Contexte utilisé pour l’approvisionnement de l’offre. |
orderGroup | string | Non | Groupe pour indiquer quels éléments peuvent être placés ensemble. |
error | Object | Non | Appliqué une fois le panier créé dans une erreur. |
AdditionalPartnerIdsOnRecord | 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 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. Il s’agit uniquement des partenaires qui effectuent des transactions dans les pays/régions de l’UE/AELE. |
Exemple de requête
PUT /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/65faf57b-0205-47ee-92b3-08dcf233ea73/ 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
{
{
"Id":"b4c8fdea-cbe4-4d17-9576-13fcacbf9605",
"CreationTimestamp":"2018-03-15T17:15:02.3840528Z",
"LastModifiedTimestamp":"2018-03-15T17:15:02.3840528Z",
"ExpirationTimestamp":"0001-01-01T00:00:00",
"LastModifiedUser":"2713ccd7-ea3b-470a-9cfb-451d5d0482cc",
"LineItems":[
{
"Id":0,
"CatalogItemId":"DG7GMGF0DWTL:0001:DG7GMGF0DSJB",
"FriendlyName":"A_sample_Azure_RI",
"Quantity":2,
"BillingCycle":"one_time",
"ProvisioningContext": {
"SubscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"Scope": "shared",
"Duration": "1Year"
}
}
],
}
}
Important
Depuis juin 2023, la dernière version du Kit de développement logiciel (SDK) .NET de l’Espace partenaires version 3.4.0 est désormais archivée. Vous pouvez télécharger la version du SDK à partir de GitHub, ainsi qu’un fichier lisezmoi contenant des informations utiles.
Les partenaires sont encouragés à continuer à utiliser les API REST de l’Espace partenaires.
Réponse REST
Si elle réussit, cette méthode retourne la ressource Cart remplie dans le corps de la réponse.
Codes d’erreur et de réussite de la réponse
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. 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": "b4c8fdea-cbe4-4d17-9576-13fcacbf9605",
"creationTimestamp": "2018-03-15T17:15:02.3840528Z",
"lastModifiedTimestamp": "2018-03-15T17:15:02.3840528Z",
"lastModifiedUser": "2713ccd7-ea3b-470a-9cfb-451d5d0482cc",
"lineItems": [
{
"id": 0,
"catalogItemId": "DG7GMGF0DWTL:0001:DG7GMGF0DSJB",
"friendlyName": "A_sample_Azure_RI",
"quantity": 2,
"currencyCode": "USD",
"billingCycle": "one_time",
"ProvisioningContext": {
"subscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"scope": "shared",
"duration": "1Year"
}
"orderGroup": "0"
}
],
"links": {
"self": {
"uri": "/v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/b4c8fdea-cbe4-4d17-9576-13fcacbf9605/",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}