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 Partner-aanbiedingen in het Cloud Solution Provider-programmavoor meer informatie over wat momenteel beschikbaar is om te verkopen.
Notitie
Winkelmandjes verlopen 7 dagen na de eerste aanmaak.
Voorwaarden
Referenties zoals beschreven in Partner Center-authenticatie. 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 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 artikel in de winkelwagen hebben.
Verkrijg een interface voor winkelwagenbewerkingen door de IAggregatePartner.Customers.ById methode aan te roepen met de klant-id om de klant te identificeren en de interface vervolgens op te halen uit de eigenschap Cart.
Roep de methode Create of CreateAsync methode 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 aanvragen
{
"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 artikel in de winkelwagen hebben.
Verkrijg een interface voor winkelwagenbewerkingen door de IAggregatePartner.getCustomers().byId functie aan te roepen met de klant-id om de klant te identificeren en de interface vervolgens op te halen uit 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 van 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 artikel in de winkelwagen 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
Methode | Aanvraag URI |
---|---|
POST | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
URI-parameter
Gebruik de volgende padparameter om de klant te identificeren.
Naam | Type | Vereist | Beschrijving |
---|---|---|---|
klantnummer | tekenreeks | Ja | Een klant-id in GUID-formaat die de klant identificeert. |
Aanvraagheaders
Zie Partnercentrum REST-headersvoor meer informatie.
Aanvraaginhoud
In deze tabel worden de eigenschappen van Cart in de aanvraagtekst beschreven.
Eigenschap | Type | Vereist | Beschrijving |
---|---|---|---|
ID | tekenreeks | Nee | Een winkelwagen-id die wordt opgegeven bij het maken van de winkelwagen. |
creationTimeStamp | Datum/tijd | Nee | De datum waarop de winkelwagen is gemaakt, in datum-tijdnotatie. Toegepast na succesvolle creatie van de winkelwagen. |
laatstGewijzigdeTijdstempel | Datum/tijd | Nee | De datum waarop de winkelwagen het laatst is bijgewerkt, in datum-tijdnotatie. Toegepast na succesvolle creatie van de winkelwagen. |
verloopTijdstempel | Datum/tijd | Nee | De vervaldatum van de winkelwagen, in datum-tijdnotatie. Toegepast na succesvolle aanmaak van de winkelwagen. |
laatst Gewijzigde Gebruiker | tekenreeks | Nee | De gebruiker die de winkelwagen voor het laatst heeft bijgewerkt. Toegepast na succesvolle aanmaak van de winkelwagen. |
lineItems | Matrix van objecten | Ja | Een matrix van CartLineItem resources. |
Partner op Record Attestatie Geaccepteerd | Booleaans | Ja | Bevestigt voltooiing van attestatie |
In deze tabel worden de eigenschappen CartLineItem in de aanvraagbody beschreven.
Eigenschap | Type | Vereist | Beschrijving |
---|---|---|---|
id | tekenreeks | Nee | Een unieke id voor een winkelwagenregelitem. Toegepast na succesvolle aanmaak van de winkelwagen. |
catalogId | tekenreeks | Ja | De catalogusitem-ID Zorg ervoor dat het catalogusitem beschikbaar is voor het juiste segment. |
vriendelijke naam | tekenreeks | Nee | Facultatief. De vriendelijke naam voor het item dat door de partner is gedefinieerd om verwarring te helpen voorkomen. |
promotionId | tekenreeks | Nee | Facultatief. 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. |
hoeveelheid | Int | Ja | Het aantal licenties of instanties. |
valutacode | tekenreeks | Nee | De valutacode. |
billingCycle | Object | Ja | Het type factureringscyclus dat is ingesteld voor de huidige periode. |
customTermEndDate (aangepasteTermijnEinddatum) | Datum/tijd | Nee | De einddatum van een bestaand abonnement waarmee u de nieuwe abonnementsperiode wilt laten samenvallen. |
Deelnemers | Lijst van Object-String-paren | Nee | Een verzameling PartnerId on Record (PartnerID) bij de aankoop. |
voorzieningscontext | Woordenlijst<string, string> | Nee | Informatie die vereist is voor het voorzien van bepaalde items in de catalogus. De eigenschap provisioningVariables in een SKU geeft aan welke eigenschappen vereist zijn voor specifieke items in de catalogus. |
bestelgroep | tekenreeks | Nee | Een groep om aan te geven welke items samen kunnen worden geplaatst. |
fout | Object | Nee | Toegepast nadat de winkelwagen is gemaakt als er een fout optreedt. |
renewsTo | Matrix van objecten | Nee | Een reeks van RenewsTo bronnen. |
AttestatieGeaccepteerd | Booleaans | Nee | Geeft aan dat er wordt ingestemd met de voorwaarden van een aanbod of SKU. Alleen vereist voor aanbiedingen of SKU's waarvoor de eigenschappen SkuAttestationProperties of OfferAttestationProperties enforceAttestation op True staan. |
transactie_wederverkoper | Snaar | Nee | Wanneer een indirecte provider namens een indirecte reseller een order plaatst, vult u dit veld in met de Partner-id van de indirecte reseller alleen (nooit de id van de indirecte provider). Dit zorgt voor een goede boekhouding voor incentives. |
aanvullende_transactie_wederverkoper | Snaar | Nee | Wanneer een indirecte provider een order plaatst namens een indirecte reseller, vult u dit veld in met de Partner-id van de Aanvullende indirecte reseller alleen (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 verzoektekst beschreven.
Eigenschap | Soort | Vereist | Beschrijving |
---|---|---|---|
looptijd | 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 met nuttige informatie.
Partners worden aangemoedigd om de Partner center REST API'ste blijven gebruiken.
REST-antwoord
Als dit lukt, retourneert deze methode de ingevulde Winkelwagen resource in de hoofdtekst van het antwoord.
Geslaagde antwoorden en foutcodes
Elk antwoord wordt geleverd met een HTTP-statuscode die aangeeft of de bewerking is geslaagd of mislukt, en die foutopsporingsinformatie bevat. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en andere parameters te lezen. Zie Foutcodesvoor de volledige lijst.
Voorbeeld van antwoord
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 van nieuwe licentie-gebaseerde handelservices
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 overzicht van nieuwe commerce-ervaringenvoor 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 software met een permanente licentie ondersteunen de eigenschap termDuration niet. Vermijd het opnemen hiervan bij het aanschaffen van deze soorten items.
REST-antwoord
Als dit lukt, retourneert deze methode de ingevulde Winkelwagen resource in de hoofdtekst van het antwoord.
Geslaagde antwoorden en foutcodes
Elk antwoord bevat een HTTP-statuscode die aangeeft of het succesvol was of mislukt is en andere informatie voor foutopsporing. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en andere parameters te lezen. Zie Foutcodesvoor de volledige lijst.
Voorbeeld van antwoord
{
"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"
}
}