Aggiornare un carrello
Come aggiornare un ordine di un cliente in un carrello.
Nota, i carrelli scadono sette giorni dalla creazione iniziale.
Prerequisiti
Credenziali come descritto in autenticazione di Partner Center. 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 in Centro per i partner selezionando l'area di lavoro clienti, quindi il cliente dall'elenco dei clienti, quindi Account. Nella pagina Account del cliente cercare l'ID Microsoft nella sezione Informazioni sull'account cliente. L'ID Microsoft corrisponde all'ID cliente (customer-tenant-id
).Un 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 - Procedere al checkout 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 | Digitare | Obbligatorio | Descrizione |
---|---|---|---|
id cliente | corda | Sì | Un ID cliente formattato GUID che identifica il cliente. |
cart-id | corda | Sì | Un identificatore del carrello formattato come GUID che identifica il carrello. |
Intestazioni della richiesta
Per altre informazioni, vedere intestazioni REST del Centro per i partner.
Corpo della richiesta
Questa tabella descrive le proprietà del carrello nel corpo della richiesta.
Proprietà | Digitare | Obbligatorio | Descrizione |
---|---|---|---|
Id | corda | No | Identificatore del carrello fornito al completamento della creazione del carrello. |
creationTimeStamp | Data e Ora | No | Data di creazione del carrello, in formato data/ora. Applicato una volta completata la creazione del carrello. |
lastModifiedTimeStamp | DateTime | No | Data dell'ultimo aggiornamento del carrello, in formato data/ora. Applicato al completamento della creazione del carrello. |
timestamp di scadenza | Data e Ora | No | Data di scadenza del carrello, in formato data/ora. Applicato al completamento della creazione del carrello. |
lastModifiedUser | corda | 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à | Digitare | Obbligatorio | Descrizione |
---|---|---|---|
Id | corda | No | Identificatore univoco per un elemento del carrello. Applicato al completamento della creazione del carrello. |
catalogId | corda | Sì | Identificatore dell'elemento del catalogo. |
friendlyName | corda | No | Opzionale. Nome descrittivo dell'elemento definito dal partner per evitare ambiguità. |
promotionId | corda | No | Opzionale. 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. |
quantità | Int | Sì | Il numero di licenze o di istanze. |
codice valuta | corda | No | Codice valuta. |
ciclo di fatturazione | Oggetto | Sì | Tipo di ciclo di fatturazione impostato per il periodo corrente. |
Partecipanti | Elenco di coppie Oggetto-Stringa | No | Raccolta di partecipanti all'acquisto. |
provisioningContext | Stringa<dizionario, stringa> | No | Contesto utilizzato per la fornitura dell'offerta. |
orderGroup | corda | No | Gruppo per indicare quali elementi possono essere posizionati insieme. |
errore | Oggetto | No | Applicato dopo la creazione del carrello in un errore. |
IdentificatoriPartnerAggiuntiviRegistrati | Corda | No | Quando un provider indiretto inserisce un ordine per conto di un rivenditore indiretto, popola questo campo con il PartnerID del Rivenditore indiretto aggiuntivo solo (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 esito positivo della risposta
Ogni risposta viene fornita con un codice di stato HTTP che indica l'esito positivo o negativo e altre informazioni di debug. Usare uno strumento di traccia di rete per leggere questo codice, il tipo di errore e altri parametri. Per l'elenco completo, vedere codici di errore .
Esempio di risposta
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"
}
}