Skapa en kundvagn med en kundorder
gäller för: Partnercenter | Partnercenter som drivs av 21Vianet | Partnercenter för Microsoft Cloud for US Government
Du kan lägga till en beställning för en kund i en kundvagn. Mer information om vad som för närvarande är tillgängligt att sälja finns i Partner-erbjudanden i cloud solution provider-programmet.
Notera
Kundvagnar upphör att gälla 7 dagar från att de skapades.
Förutsättningar
Autentiseringsuppgifter enligt beskrivningen i Partnercenter-autentisering. Det här scenariot stöder autentisering med både fristående app- och App+User-autentiseringsuppgifter.
Ett kund-ID (
customer-tenant-id
). Om du inte känner till kundens ID kan du leta upp det i Partnercenter genom att välja arbetsytan Kunder, sedan kunden från kundlistan och sedan konto. På kundens kontosida letar du efter Microsoft-ID i avsnittet Kundkontoinformation. Microsoft-ID:t är detsamma som kund-ID :t (customer-tenant-id
).
C#
Så här skapar du en beställning för en kund:
Instansiera ett kundvagnsobjekt.
Skapa en lista över CartLineItem objekt och tilldela listan till kundvagnens LineItems-egenskap. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en artikel i kundvagnen.
Hämta ett gränssnitt för kundvagnsåtgärder genom att anropa metoden IAggregatePartner.Customers.ById med kund-ID:t för att identifiera kunden och sedan hämta gränssnittet från egenskapen Cart.
Anropa metoden Skapa eller CreateAsync för att skapa kundvagnen.
För att slutföra attesteringen och inkludera andra återförsäljare, se följande exempel på exempel på begäran och svar:
Begär prov
{
"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"
}
]
}
]
}
Svarsexempel
{
"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"
}
}
C#-exempel
// 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
Java SDK för Partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.
Så här skapar du en beställning för en kund:
Instansiera ett kundvagnsobjekt.
Skapa en lista över CartLineItem objekt och tilldela listan till kundvagnens radobjekt. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en artikel i kundvagnen.
Hämta ett gränssnitt för kundvagnsåtgärder genom att anropa funktionen IAggregatePartner.getCustomers().byId med kund-ID:t för att identifiera kunden och sedan hämta gränssnittet från funktionen getCart.
Anropa funktionen skapa för att skapa kundvagnen.
Java-exempel
// 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
PowerShell-modulen Partner Center kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.
Så här skapar du en beställning för en kund:
Instansiera ett kundvagnsobjekt.
Skapa en lista över CartLineItem objekt och tilldela listan till kundvagnens radobjekt. Varje kundvagnsrad innehåller inköpsinformation för en produkt. Du måste ha minst en artikel i kundvagnen.
Kör kommandot New-PartnerCustomerCart för att skapa kundvagnen.
# $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
REST-begäran
Syntax för förfrågan
Metod | Begärd URI |
---|---|
sv-SE: POST | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
URI-parameter
Använd följande sökvägsparameter för att identifiera kunden.
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
kund-ID | sträng | Ja | Ett GUID-formaterat kund-ID som identifierar kunden. |
Begärandehuvuden
För mer information, se Partnercenters REST-huvuden.
Begärandetext
I den här tabellen beskrivs egenskaperna Cart i begärandetexten.
Egenskap | Typ | Krävs | Beskrivning |
---|---|---|---|
Id | sträng | Nej | En kundvagnsidentifierare som tillhandahålls när kundvagnen har skapats. |
creationTimeStamp | DatumTid | Nej | Det datum då kundvagnen skapades i datum-tid-format. Tillämpas när kundvagnen har skapats. |
senast ändrad tidsstämpel | DatumTid | Nej | Datumet då kundvagnen senast uppdaterades, i datum-tid-format. Tillämpas när kundvagnen har skapats. |
utgångstidsstämpel | Datum och tid | Nej | Datumet då kundvagnen upphör att gälla, i datum-tid-format. Tillämpas när kundvagnen har skapats. |
Senast ändrad användare | sträng | Nej | Användaren som senast uppdaterade kundvagnen. Tillämpas när kundvagnen har skapats. |
lineItems | Matris med objekt | Ja | En matris med CartLineItem resurser. |
IntygOmPartnerPåRecordAccepterat | Boolesk | Ja | Bekräftar att attesteringen har slutförts |
I den här tabellen beskrivs egenskaperna CartLineItem i begärandetexten.
Egenskap | Typ | Krävs | Beskrivning |
---|---|---|---|
Id | sträng | Nej | En unik identifierare för ett objekt i kundvagnens rad. Tillämpas när kundvagnen har skapats. |
catalogId | sträng | Ja | Katalogpostens identifierare. Se till att tillgängligheten för katalogobjektet är för rätt segment. |
användarvänligt namn | sträng | Nej | Valfri. Det vänliga namnet för det objekt som definierats av partnern för att tydliggöra. |
promotionId | sträng | Nej | Valfri. De flesta NCE-kampanjer tillämpas automatiskt, men för valfria kampanjer (till exempel Bridge to the Cloud 2) för att gälla för ett kundvagnslinjeobjekt måste partner inkludera kampanj-ID:t i begäran om att lägga till i kundvagnen. |
kvantitet | Int | Ja | Antalet licenser eller instanser. |
valutakod | sträng | Nej | Valutakoden. |
billingCycle | Objekt | Ja | Typ av faktureringsperiod som angetts för den aktuella perioden. |
anpassatFörfallodatum | Datum och tid | Nej | Slutdatumet för en befintlig prenumeration som du vill samordna den nya prenumerationen med. |
Deltagare | Lista över objektsträngspar | Nej | En samling PartnerId on Record (PartnerID) vid köpet. |
provisioneringskontext | Ordlista<sträng, sträng> | Nej | Information som krävs för tillhandahållande av vissa artiklar i katalogen. Egenskapen provisioningVariables i en SKU anger vilka egenskaper som krävs för specifika objekt i katalogen. |
beställningsgrupp | sträng | Nej | En grupp som anger vilka objekt som kan placeras tillsammans. |
fel | Objekt | Nej | Tillämpas efter att kundvagnen har skapats om det finns ett fel. |
förnyas till | Matris med objekt | Nej | En matris med RenewsTo resurser. |
Intyg Godkänd | Boolesk | Nej | Indikerar godkännande av erbjudande- eller produktvillkor. Krävs endast för erbjudanden eller SKU:er där SkuAttestationProperties eller OfferAttestationProperties enforceAttestation är sant. |
transaktionsåterförsäljare | Sträng | Nej | När en indirekt leverantör lägger en beställning på uppdrag av en indirekt återförsäljare fyller du i det här fältet med PartnerID för den indirekta återförsäljaren endast (aldrig ID för den indirekta leverantören). Detta säkerställer korrekt redovisning av incitament. |
ytterligaretransaktionåterförsäljare | Sträng | Nej | När en indirekt leverantör gör en beställning åt en indirekt återförsäljare fyller du i det här fältet med PartnerID för Ytterligare indirekt återförsäljare endast (aldrig ID:t för den indirekta leverantören). Incitament gäller inte för dessa ytterligare återförsäljare. Endast högst 5 indirekta återförsäljare kan anges. Detta är endast tillämpliga partner som handlar inom EU/EFTA-länder/regioner. |
I den här tabellen beskrivs egenskaperna RenewsTo i begärandetexten.
Egenskap | Typ | Krävs | Beskrivning |
---|---|---|---|
periodens varaktighet | sträng | Nej | En ISO 8601-representation av förnyelseperiodens varaktighet. De aktuella värdena som stöds är P1M- (1 månad) och P1Y- (1 år). |
Exempel på begäran
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"
}
}
]
}
Viktig
Från och med juni 2023 arkiveras nu den senaste Partner Center .NET SDK-versionen 3.4.0. Du kan ladda ned SDK-versionen från GitHub, tillsammans med en readme-fil som innehåller användbar information.
Partner uppmanas att fortsätta att använda rest-API:erna för Partnercenter.
REST-svar
Om det lyckas returnerar den här metoden den ifyllda resursen Cart i svarstexten.
Svarsframgång och felkoder
Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i Felkoder.
Svarsexempel
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"
}
}
Exempel på nya licensbaserade tjänster för handel
Obs
De nya handelsupplevelserna för licensbaserade tjänster innehåller många nya funktioner och är tillgängliga för alla molnlösningsleverantörer (CSP:er). Mer information finns i översikt över nya handelsupplevelser.
Exempel på begäran
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"
}
]
}
Viktig
Azure-plan och eviga programvaruradobjekt stöder inte egenskapen termDuration. Undvik att inkludera detta när du införskaffar dessa typer av föremål.
REST-svar
Om det lyckas returnerar den här metoden den ifyllda resursen Cart i svarstexten.
Svarsframgång och felkoder
Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och annan felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i Felkoder.
Svarsexempel
{
"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"
}
}