Aggiornare un carrello
Come aggiornare un ordine per un cliente in un carrello.
Nota, i carrelli scadono sette giorni dalla creazione iniziale.
Prerequisiti
Credenziali descritte in Autenticazione del Centro per i partner. Questo scenario supporta l'autenticazione con le credenziali app autonome e App+Utente.
ID cliente (
customer-tenant-id
). Se non si conosce l'ID del cliente, è possibile cercarlo nel Centro per i partner selezionando l'area di lavoro Clienti , quindi il cliente dall'elenco dei clienti, quindi Account. Nella pagina dell'account del cliente cerca l'ID Microsoft nella sezione Info account del cliente. L'ID Microsoft corrisponde all'ID del cliente (customer-tenant-id
).ID carrello per un carrello esistente.
C#
Per aggiornare un ordine per un cliente, ottenere il carrello usando il metodo Get() passando gli ID cliente e carrello usando la funzione ById(). Apportare le modifiche necessarie al carrello. Chiamare ora il metodo Put usando gli ID cliente e carrello usando il metodo ById().
Infine, chiamare il metodo Put() o PutAsync() per creare l'ordine.
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);
Per completare l'attestazione e includere altri rivenditori, vedere l'esempio seguente.
Esempio di API - Eseguire il check-out del carrello
{
"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"
}
}
Richiesta REST
Sintassi della richiesta
metodo | URI della richiesta |
---|---|
PUT | {baseURL}/v1/customers/{customer-id}/carts/{cart-id} HTTP/1.1 |
Parametri URI
Usare i parametri di percorso seguenti per identificare il cliente e specificare il carrello da aggiornare.
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
customer-id | string | Sì | GUID formattato con ID cliente che identifica il cliente. |
cart-id | string | Sì | ID carrello formattato con GUID che identifica il carrello. |
Intestazioni delle richieste
Per altre informazioni, vedi Intestazioni REST del Centro per i partner.
Corpo della richiesta
Questa tabella descrive le proprietà del carrello nel corpo della richiesta.
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
id | string | No | Identificatore del carrello fornito al completamento della creazione del carrello. |
creationTimeStamp | Data/Ora | No | Data di creazione del carrello, in formato data/ora. Applicato al completamento della creazione del carrello. |
lastModifiedTimeStamp | Data/Ora | No | Data dell'ultimo aggiornamento del carrello, in formato data/ora. Applicato al completamento della creazione del carrello. |
expirationTimeStamp | Data/Ora | No | Data di scadenza del carrello, in formato data/ora. Applicato al completamento della creazione del carrello. |
lastModifiedUser | string | No | Utente che ha aggiornato il carrello per ultimo. Applicato al completamento della creazione del carrello. |
lineItems | Matrice di oggetti | Sì | Matrice di risorse CartLineItem . |
Questa tabella descrive le proprietà CartLineItem nel corpo della richiesta.
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
id | string | No | Identificatore univoco per una voce del carrello. Applicato al completamento della creazione del carrello. |
catalogId | string | Sì | Identificatore dell'elemento del catalogo. |
friendlyName | string | No | (Facoltativo). Nome descrittivo dell'elemento definito dal partner per evitare ambiguità. |
promotionId | string | No | (Facoltativo). La maggior parte delle promozioni NCE verrà applicata automaticamente, ma per le promozioni facoltative (ad esempio Bridge to the Cloud 2) da applicare a una voce del carrello, i partner devono includere l'ID promozione nella richiesta di aggiunta al carrello. |
quantity | int | Sì | Numero di licenze o istanze. |
currencyCode | string | No | Il codice valuta. |
billingCycle | Object | Sì | Tipo di ciclo di fatturazione impostato per il periodo corrente. |
participants | Elenco di coppie di stringhe oggetto | No | Raccolta di partecipanti all'acquisto. |
provisioningContext | Stringa dizionario<, stringa> | No | Contesto utilizzato per il provisioning dell'offerta. |
orderGroup | string | No | Gruppo per indicare quali elementi possono essere posizionati insieme. |
Errore | Object | No | Applicato dopo la creazione del carrello in un errore. |
AdditionalPartnerIdsOnRecord | Stringa | No | Quando un provider indiretto inserisce un ordine per conto di un rivenditore indiretto, popolare questo campo con l'ID partner solo del rivenditore indiretto aggiuntivo (mai l'ID del provider indiretto). Gli incentivi non sono applicabili per questi altri rivenditori. È possibile immettere solo un massimo di cinque rivenditori indiretti. Si tratta solo di partner applicabili che effettuano transazioni all'interno di paesi/aree geografiche UE/EFTA. |
Esempio di richiesta
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"
}
}
],
}
}
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, questo metodo restituisce la risorsa cart popolata nel corpo della risposta.
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. Usare uno strumento di traccia di rete per leggere questo codice, il tipo di errore e altri parametri. Per l'elenco completo, vedi Codici di errore.
Risposta di esempio
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"
}
}