Een winkelwagen maken met een klantorder
Van toepassing op: Partnercentrum | Partnercentrum beheerd door 21Vianet | Partnercentrum voor Microsoft Cloud voor de Amerikaanse overheid
U kunt een bestelling voor een klant toevoegen in een winkelwagen. Zie Partneraanbiedingen in het Cloud Solution Provider-programma voor meer informatie over wat momenteel beschikbaar is om te verkopen.
Notitie
Winkelwagens verlopen 7 dagen na de eerste aanmaak.
Vereisten
Referenties zoals beschreven in verificatie in partnercentrum. Dit scenario ondersteunt verificatie met zowel zelfstandige app- als app+gebruikersreferenties.
Een klant-id (
customer-tenant-id
). Als u de klant-id niet weet, kunt u deze opzoeken in het Partnercentrum door de werkruimte Klanten te selecteren, vervolgens de klant in de lijst met klanten en vervolgens Account. Zoek op de pagina Account van de klant naar de Microsoft-id in de sectie Klantaccountgegevens . De Microsoft-id is hetzelfde als de klant-id (customer-tenant-id
).
C#
Een bestelling voor een klant maken:
Instantieer een Cart-object.
Maak een lijst met CartLineItem-objecten en wijs de lijst toe aan de eigenschap LineItems van de winkelwagen. Elk winkelwagenitem bevat de aankoopgegevens voor één product. U moet ten minste één winkelwagen regelitem hebben.
Verkrijg een interface voor winkelwagenbewerkingen door de methode IAggregatePartner.Customers.ById aan te roepen met de klant-id om de klant te identificeren en vervolgens de interface op te halen uit de eigenschap Winkelwagen .
Roep de methode Create of CreateAsync aan om de winkelwagen te maken.
Als u attestation wilt voltooien en andere resellers wilt opnemen, raadpleegt u de volgende voorbeeldvoorbeelden voor aanvragen en antwoorden:
Voorbeeld van aanvraag
{
"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"
}
]
}
]
}
Voorbeeld van antwoord
{
"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#-voorbeeld
// 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
De Partner Center Java SDK kan worden gebruikt voor het beheren van Partnercentrum-resources. Het is een opensource-project dat wordt onderhouden door de partnercommunity en niet officieel wordt ondersteund door Microsoft. U kunt hulp krijgen van de community of een probleem openen op GitHub als u een probleem ondervindt.
Een bestelling voor een klant maken:
Instantieer een Cart-object.
Maak een lijst met CartLineItem-objecten en wijs de lijst toe aan de regelitems van de winkelwagen. Elk winkelwagenitem bevat de aankoopgegevens voor één product. U moet ten minste één winkelwagen regelitem hebben.
Haal een interface op voor winkelwagenbewerkingen door de functie IAggregatePartner.getCustomers().byId aan te roepen met de klant-id om de klant te identificeren en vervolgens de interface op te halen van de getCart-functie .
Roep de functie create aan om de winkelwagen te maken.
Java-voorbeeld
// 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
De PowerShell-module partnercentrum kan worden gebruikt voor het beheren van Partnercentrum-resources. Het is een opensource-project dat wordt onderhouden door de partnercommunity en niet officieel wordt ondersteund door Microsoft. U kunt hulp krijgen van de community of een probleem openen op GitHub als u een probleem ondervindt.
Een bestelling voor een klant maken:
Instantieer een Cart-object.
Maak een lijst met CartLineItem-objecten en wijs de lijst toe aan de regelitems van de winkelwagen. Elk winkelwagenitem bevat de aankoopgegevens voor één product. U moet ten minste één winkelwagen regelitem hebben.
Voer de opdracht New-PartnerCustomerCart uit om de winkelwagen te maken.
# $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-aanvraag
Aanvraagsyntaxis
Wijze | Aanvraag-URI |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
URI-parameter
Gebruik de volgende padparameter om de klant te identificeren.
Name | Type | Vereist | Beschrijving |
---|---|---|---|
klant-id | tekenreeks | Ja | Een door DE GUID opgemaakte klant-id die de klant identificeert. |
Aanvraagheaders
Zie Rest-headers in Partnercentrum voor meer informatie.
Aanvraagtekst
In deze tabel worden de eigenschappen van winkelwagen in de aanvraagbody beschreven.
Eigenschap | Type | Vereist | Beschrijving |
---|---|---|---|
id | tekenreeks | Nee | Een winkelwagen-id die wordt opgegeven bij het maken van de winkelwagen. |
creationTimeStamp | Datum en tijd | Nee | De datum waarop de winkelwagen is gemaakt, in datum-tijdnotatie. Toegepast bij het maken van de winkelwagen. |
lastModifiedTimeStamp | Datum en tijd | Nee | De datum waarop de winkelwagen het laatst is bijgewerkt, in datum-tijdnotatie. Toegepast bij het maken van de winkelwagen. |
expirationTimeStamp | Datum en tijd | Nee | De datum waarop de winkelwagen verloopt, in datum-tijdnotatie. Toegepast bij het maken van een winkelwagen. |
lastModifiedUser | tekenreeks | Nee | De gebruiker die de winkelwagen voor het laatst heeft bijgewerkt. Toegepast bij het maken van een winkelwagen. |
lineItems | Matrix van objecten | Ja | Een matrix van CartLineItem-resources . |
PartnerOnRecordAttestationAccepted | Booleaanse waarde | Ja | Bevestigt voltooiing van Attestation |
In deze tabel worden de eigenschappen cartLineItem in de aanvraagtekst beschreven.
Eigenschap | Type | Vereist | Beschrijving |
---|---|---|---|
id | tekenreeks | Nee | Een unieke id voor een winkelwagenregelitem. Toegepast bij het maken van een winkelwagen. |
catalogId | tekenreeks | Ja | De id van het catalogusitem. Zorg ervoor dat het catalogusitem beschikbaar is voor het juiste segment. |
friendlyName | tekenreeks | Nee | Optioneel. De beschrijvende naam voor het item dat door de partner is gedefinieerd om te helpen ondubbelzinnig te zijn. |
promotionId | tekenreeks | Nee | Optioneel. De meeste NCE-promoties worden automatisch toegepast, maar voor optionele promoties (zoals Bridge to the Cloud 2) om toe te passen op een winkelwagenlijnitem, moeten partners de promotie-id opnemen in de add to cart-aanvraag. |
quantity | int | Ja | Het aantal licenties of exemplaren. |
currencyCode | tekenreeks | Nee | De valutacode. |
billingCycle | Object | Ja | Het type factureringscyclus dat is ingesteld voor de huidige periode. |
customTermEndDate | Datum en tijd | Nee | De einddatum van een bestaand abonnement waarvoor u het nieuwe abonnement wilt bepalen. |
Deelnemers | Lijst met objectreeksparen | Nee | Een verzameling PartnerId on Record (PartnerID) bij de aankoop. |
provisioningContext | Woordenlijsttekenreeks<, tekenreeks> | Nee | Informatie die is vereist voor het inrichten van bepaalde items in de catalogus. De eigenschap provisioningVariables in een SKU geeft aan welke eigenschappen vereist zijn voor specifieke items in de catalogus. |
orderGroup | tekenreeks | Nee | Een groep om aan te geven welke items samen kunnen worden geplaatst. |
error | Object | Nee | Toegepast nadat de winkelwagen is gemaakt als er een fout optreedt. |
renewsTo | Matrix van objecten | Nee | Een matrix van RenewsTo-resources . |
AttestationAccepted | Booleaans | Nee | Geeft de overeenkomst aan om voorwaarden aan te bieden of sKU aan te bieden. Alleen vereist voor aanbiedingen of SkuAttestationProperties of OfferAttestationProperties enforceAttestation is True. |
transaction_reseller | String | Nee | Wanneer een indirecte provider namens een indirecte reseller een order plaatst, vult u dit veld alleen in met de PartnerID van de indirecte reseller (nooit de id van de indirecte provider). Dit zorgt voor een goede boekhouding voor incentives. |
additional_transaction_reseller | String | Nee | Wanneer een indirecte provider een order plaatst namens een indirecte reseller, vult u dit veld in met de PartnerID van de aanvullende indirecte reseller (nooit de id van de indirecte provider). Incentives zijn niet van toepassing op deze extra resellers. Er kunnen maximaal 5 indirecte resellers worden ingevoerd. Dit zijn alleen van toepassing zijnde partners die handelen binnen EU/EVA-landen/regio's. |
In deze tabel worden de eigenschappen RenewsTo in de aanvraagbody beschreven.
Eigenschap | Type | Vereist | Beschrijving |
---|---|---|---|
termDuration | tekenreeks | Nee | Een ISO 8601-weergave van de duur van de verlengingstermijn. De huidige ondersteunde waarden zijn P1M (1 maand) en P1Y (1 jaar). |
Aanvraagvoorbeeld
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"
}
}
]
}
Belangrijk
Vanaf juni 2023 wordt de nieuwste Versie van Partner Center .NET SDK 3.4.0 gearchiveerd. U kunt de SDK-release downloaden van GitHub, samen met een leesmij-bestand dat nuttige informatie bevat.
Partners worden aangemoedigd om de REST API's van partnercentrum te blijven gebruiken.
REST-antwoord
Als dit lukt, retourneert deze methode de gevulde winkelwagenresource in de hoofdtekst van het antwoord.
Geslaagde antwoorden en foutcodes
Elk antwoord wordt geleverd met een HTTP-statuscode die aangeeft dat de informatie over geslaagde of mislukte fouten en foutopsporing wordt aangegeven. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en andere parameters te lezen. Zie Foutcodes voor de volledige lijst.
Responsvoorbeeld
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"
}
}
Voorbeeld voor nieuwe commercelicentieservices
Notitie
De nieuwe commerce-ervaringen voor services op basis van licenties omvatten veel nieuwe mogelijkheden en zijn beschikbaar voor alle CSP's (Cloud Solution Provider). Zie het overzicht van nieuwe commerce-ervaringen voor meer informatie.
Aanvraagvoorbeeld
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"
}
]
}
Belangrijk
Azure-plan en permanente softwareregelitems bieden geen ondersteuning voor de eigenschap termDuration. Voorkom dat u dit opgeeft terwijl u deze typen items in gebruik hebt.
REST-antwoord
Als dit lukt, retourneert deze methode de gevulde winkelwagenresource in de hoofdtekst van het antwoord.
Geslaagde antwoorden en foutcodes
Elk antwoord wordt geleverd met een HTTP-statuscode die aangeeft dat de fout is geslaagd of mislukt en andere informatie over foutopsporing. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en andere parameters te lezen. Zie Foutcodes voor de volledige lijst.
Responsvoorbeeld
{
"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"
}
}