Creare un carrello con componenti aggiuntivi per un ordine cliente
È possibile acquistare componenti aggiuntivi tramite un carrello. Per altre informazioni su ciò che è attualmente disponibile per la vendita, vedere offerte Partner nel programma Cloud Solution Provider.
Nota
Le nuove esperienze commerciali per i servizi basati su licenza includono molte nuove funzionalità e sono disponibili per tutti i provider di soluzioni cloud. Per altre informazioni, vedere panoramica delle nuove esperienze commerciali.
I nuovi carrelli commerciali con componenti aggiuntivi sono diversi dalle tradizionali offerte basate su licenza. I nuovi componenti aggiuntivi commerciali vengono acquistati allo stesso modo delle offerte di base, non usano la proprietà addonItems. Questo argomento include esempi di richiesta e risposta specifici per un nuovo SKU di prodotto basato sul commercio con uno SKU del prodotto aggiuntivo.
Nota
I carrelli scadono 7 giorni dalla creazione iniziale.
Credenziali come descritto nell'autenticazione del Partner Center
. Questo scenario supporta l'autenticazione con le credenziali dell'App autonoma 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 il ID Microsoft nella sezione informazioni sull'account cliente. L'ID Microsoft corrisponde all'ID cliente (customer-tenant-id
).
Un carrello consente l'acquisto di un'offerta di base e dei relativi componenti aggiuntivi. Per creare un carrello, seguire questa procedura:
Creare un'istanza di un oggetto Cart.
Creare un elenco di oggetti CartLineItem che rappresentano le offerte di base e assegnare l'elenco alla proprietà LineItems del carrello.
Sotto ogni voce del carrello dell'offerta di base, compilare l'elenco di AddOnItems con altre voci CartLineItem che rappresentano un componente aggiuntivo da acquistare con quell'offerta di base.
Ottenere un'interfaccia per le operazioni del carrello utilizzando IAggregatePartner per chiamare il metodo ICustomerCollection.ById con l'ID cliente per identificare il cliente e quindi recuperare l'interfaccia dalla proprietà Cart.
Chiamare infine il metodo Create o CreateAsync per creare il carrello.
// IAggregatePartner partnerOperations;
// string customerId;
var cart = new Cart()
{
LineItems = new List<CartLineItem>()
{
new CartLineItem()
{
Id = 0,
CatalogItemId = "A_base_offer_ID",
FriendlyName = "Myofferpurchase",
Quantity = 3,
BillingCycle = BillingCycleType.Monthly,
AddonItems = new List<CartLineItem>
{
new CartLineItem
{
Id = 1,
CatalogItemId = "An_addon_item_ID",
BillingCycle = BillingCycleType.Monthly,
Quantity = 2,
},
new CartLineItem
{
Id = 2,
CatalogItemId = "Another_addon_item_ID",
BillingCycle = BillingCycleType.Monthly,
Quantity = 3
}
}
}
}
};
var createdCart = partnerOperations.Customers.ById(customerId).Carts.Create(cart);
Seguire questa procedura per creare un carrello che consenta l'acquisto di componenti aggiuntivi rispetto alle sottoscrizioni di base esistenti:
Creare un Cart con un nuovo CartLineItem che contiene l'ID della sottoscrizione nella proprietà ProvisioningContext con la chiave "ParentSubscriptionId".
Chiamare il metodo Create o CreateAsync.
// IAggregatePartner partnerOperations;
// string selectedCustomerId;
var cart = new Cart()
{
LineItems = new List<CartLineItem>()
{
new CartLineItem()
{
Id = 0,
CatalogItemId = "An_addon_item_ID",
ProvisioningContext = new Dictionary<string, string>
{
{
"ParentSubscriptionId", "An_existing_subscription_Id"
}
},
Quantity = 1,
BillingCycle = BillingCycleType.Annual,
}
}
};
var createdCart = partnerOperations.Customers.ById(selectedCustomerId).Carts.Create(cart);
Metodo | URI della richiesta |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
Usare il parametro path seguente per identificare il cliente.
Nome | Digitare | Obbligatorio | Descrizione |
---|---|---|---|
id cliente | corda | Sì | Un identificativo cliente con formato GUID che identifica il cliente. |
Per altre informazioni, vedere intestazioni REST del Partner Center.
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 | DateTime | No | Data di creazione del carrello, in formato data/ora. Applicato al completamento della creazione del carrello. |
lastModifiedTimeStamp | Data e Ora | No | Data dell'ultimo aggiornamento del carrello, in formato data/ora. Applicato al completamento della creazione del carrello. |
marcaTemporaleDiScadenza | DateTime | No | Data di scadenza del carrello, in formato data/ora. Applicato dopo la creazione riuscita del carrello. |
lastModifiedUser | corda | No | Utente che ha aggiornato il carrello per ultimo. Applicato dopo la creazione riuscita del carrello. |
lineItems | Matrice di oggetti | Sì | Un insieme di risorse CartLineItem. |
Questa tabella descrive le proprietà CartLineItem nel corpo della richiesta.
Proprietà | Digitare | Descrizione |
---|---|---|
Id | corda | Identificatore univoco per un elemento nella linea del carrello. Applicato dopo la creazione riuscita del carrello. |
catalogId | corda | Identificatore dell'elemento del catalogo. |
nome amichevole | corda | Opzionale. Nome intuitivo dell'elemento definito dal partner per facilitare la disambiguazione. |
quantità | Int | Numero di licenze o istanze. |
codice valuta | corda | Codice valuta. |
ciclo di fatturazione | Oggetto | Tipo di ciclo di fatturazione impostato per il periodo corrente. |
Partecipanti | Elenco di coppie oggetto-stringa | Raccolta di PartnerId nel registro relativo all'acquisto. |
provisioningContext | Dizionario<string, string> | Contesto utilizzato per la configurazione dell'offerta. |
orderGroup | corda | Gruppo per indicare quali elementi possono essere posizionati insieme. |
elementi aggiuntivi | Elenco di oggetti CartLineItem | Raccolta delle voci del carrello per i componenti aggiuntivi che verranno acquistati per la sottoscrizione di base, in seguito all'acquisto della voce principale nel carrello. Questa proprietà è destinata solo ai carrelli con licenze tradizionali; i carrelli con licenze per il nuovo commercio includono componenti aggiuntivi come opzioni basate su offerte. Gli elementi di new-commerce non usano questa proprietà addonItems. |
errore | Oggetto | Applicato dopo la creazione del carrello se si verifica un errore. |
Nell'esempio REST seguente viene illustrato come creare un carrello con elementi aggiuntivi per una nuova sottoscrizione di base.
POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
{
"LineItems": [
{
"Id":0,
"CatalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
"FriendlyName":"Myofferpurchase",
"Quantity":3,
"BillingCycle":"monthly",
"AddonItems": [
{
"Id":1,
"CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"Quantity":2,
"BillingCycle":"monthly"
},
{
"Id":2,
"CatalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
"Quantity":3,
"BillingCycle":"monthly"
}
]
}
]
}
Esempio di richiesta (nuova sottoscrizione di base) per un nuovo carrello commerciale per un'offerta di base con un componente aggiuntivo
{
"LineItems": [
{
"Id": 0,
"CatalogItemId":"CFQ7TTC0LFLX:0001:CFQ7TTC0LB30", - Base
"Quantity": 20,
"BillingCycle": "Monthly",
"TermDuration": "P1M"
},
{
"Id": 1,
"CatalogItemId":"CFQ7TTC0HDJX:0001:CFQ7TTC0K806", - Add on
"Quantity": 20,
"BillingCycle": "Monthly",
"TermDuration": "P1M"
}
]
}
Nell'esempio REST seguente viene illustrato come aggiungere componenti aggiuntivi a una sottoscrizione di base esistente. Questo esempio è rilevante solo per le licenze tradizionali, non per il nuovo commercio.
POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
{
"LineItems": [
{
"Id":0,
"CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"Quantity":1,
"BillingCycle":"annual",
"ProvisioningContext":{"ParentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"}
}
]
}
In caso di esito positivo, questo metodo restituisce la risorsa Cart popolata nel corpo 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 .
HTTP/1.1 201 Created
Content-Length: 958
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:29:05 GMT
{
"id":"dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
"creationTimestamp":"2018-11-01T22:29:03.6900182Z",
"lastModifiedTimestamp":"2018-11-01T22:29:03.6900182Z",
"expirationTimestamp":"2018-11-01T22:44:05.0025799Z",
"lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
"status":"Active",
"lineItems": [
{
"id":0,
"catalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
"friendlyName":"Myofferpurchase",
"quantity":3,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0",
"addonItems": [
{
"id":1,
"catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"quantity":2,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0"
},
{
"id":2,
"catalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
"quantity":3,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0"
}
]
}
],
"links": {
"self": {
"uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
"method":"GET",
"headers":[
]
}
},
"attributes": {
"objectType":"Cart"
}
}
HTTP/1.1 201 Created
Content-Length: 707
Content-Type: application/json
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:46:18 GMT
{
"id":"4d927e27-93d1-448b-abe5-819b66ecca22",
"creationTimestamp":"2018-11-01T22:46:16.2996364Z",
"lastModifiedTimestamp":"2018-11-01T22:46:16.2996364Z",
"expirationTimestamp":"2018-11-01T23:01:18.7543264Z",
"lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
"status":"Active",
"lineItems": [
{
"id":0,
"catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"quantity":1,
"currencyCode":"USD",
"billingCycle":"annual",
"provisioningContext": {
"parentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"
},
"orderGroup":"OMS-0"
}
],
"links": {
"self": {
"uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/4d927e27-93d1-448b-abe5-819b66ecca22",
"method":"GET",
"headers":[
]
}
},
"attributes": {
"objectType":"Cart"
}
}
Esempio di risposta per una nuova offerta di base basata su licenza commerciale e componente aggiuntivo
{
"id": "ea37ea81-efaf-4113-9785-e1c266aea2ed",
"creationTimestamp": "2022-02-10T16:04:22.4908435Z",
"lastModifiedTimestamp": "2022-02-10T16:04:22.4908444Z",
"expirationTimestamp": "2022-02-17T16:04:26.3085755Z",
"lastModifiedUser": "a7155e79-65e3-42b0-a62a-a41297979782",
"status": "Active",
"lineItems": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LFLX:0001:CFQ7TTC0LB30", - Base
"quantity": 20,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1M",
"promotionId": "39NFJQT1PHSN:0008:39NFJQT1Q5J0",
"provisioningContext": {},
"orderGroup": "0"
},
{
"id": 1,
"catalogItemId": "CFQ7TTC0HDJX:0001:CFQ7TTC0K806", - Add on
"quantity": 20,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1M",
"provisioningContext": {},
"orderGroup": "0"
}
],
"links": {
"self": {
"uri": "/customers/3a15e1df-b095-41d4-9029-27a5974c2458/carts/ea37ea81-efaf-4113-9785-e1c266aea2ed",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}