Delen via


Een winkelwagen maken met invoegtoepassingen aan een klantorder

U kunt invoegtoepassingen kopen via een winkelwagen. Zie Partneraanbiedingen in het Cloud Solution Provider-programma voor meer informatie over wat momenteel beschikbaar is om te verkopen.

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.

Nieuwe commerce winkelwagens met invoegtoepassingen verschillen van de traditionele aanbiedingen op basis van licenties. Nieuwe commerce-invoegtoepassingen worden op dezelfde manier aangeschaft als basisaanbiedingen. Ze gebruiken de eigenschap addonItems niet. Dit onderwerp bevat voorbeelden van aanvragen en antwoorden die specifiek zijn bedoeld voor een nieuwe op commerce gebaseerde product-SKU met een product-SKU voor invoegtoepassingen.

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#

Met een winkelwagen kunt u een basisaanbieding en de bijbehorende invoegtoepassingen aanschaffen. Volg deze stappen om een winkelwagen te maken:

  1. Instantieer een Cart-object.

  2. Maak een lijst met CartLineItem-objecten die de basisaanbieding(en) vertegenwoordigen en wijs de lijst toe aan de lineItems-eigenschap van de winkelwagen.

  3. Vul onder elk winkelwagenitem van elke basisaanbieding de lijst met AddOnItems in met andere CartLineItem-objecten die elk een invoegtoepassing vertegenwoordigen die op basis van die basisaanbieding wordt aangeschaft.

  4. Haal een interface op voor winkelwagenbewerkingen met behulp van IAggregatePartner om de methode ICustomerCollection.ById aan te roepen met de klant-id om de klant te identificeren en haal vervolgens de interface op uit de eigenschap Cart.

  5. Roep tot slot de methode Create of CreateAsync aan om de winkelwagen te maken.

C#-voorbeeld

// 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);

Volg deze stappen om een winkelwagen te maken waarmee u invoegtoepassingen kunt kopen voor bestaande basisabonnementen:

  1. Maak een winkelwagen met een nieuwe CartLineItem met de abonnements-id in de eigenschap ProvisioningContext met de sleutel ParentSubscriptionId.

  2. Roep de methode Create of CreateAsync aan.

// 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);

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 .

In deze tabel worden de eigenschappen cartLineItem in de aanvraagtekst beschreven.

Eigenschap Type Beschrijving
id tekenreeks Een unieke id voor een winkelwagenregelitem. Toegepast bij het maken van een winkelwagen.
catalogId tekenreeks De id van het catalogusitem.
Friendlyname tekenreeks Optioneel. De beschrijvende naam voor het item dat door de partner is gedefinieerd om te helpen ondubbelzinnig te zijn.
quantity int Het aantal licenties of exemplaren.
currencyCode tekenreeks De valutacode.
billingCycle Object Het type factureringscyclus dat is ingesteld voor de huidige periode.
Deelnemers Lijst met objectreeksparen Een verzameling PartnerId on Record (PartnerID) bij de aankoop.
provisioningContext Woordenlijsttekenreeks<, tekenreeks> Een context die wordt gebruikt voor het inrichten van aanbiedingen.
orderGroup tekenreeks Een groep om aan te geven welke items samen kunnen worden geplaatst.
addonItems Lijst met CartLineItem-objecten Een verzameling winkelwagenregelitems voor invoegtoepassingen die worden gekocht voor het basisabonnement dat het resultaat is van de aankoop van het bovenliggende winkelwagenitem. Deze eigenschap is alleen bedoeld voor traditionele, op licenties gebaseerde nieuwe commerce winkelwagens bevatten invoegtoepassingen als op basis van aanbiedingen. Nieuwe commerce-items gebruiken deze eigenschap addonItems niet.
error Object Toegepast nadat de winkelwagen is gemaakt als er een fout optreedt.

Aanvraagvoorbeeld (nieuw basisabonnement) voor traditionele licentie

In het volgende REST-voorbeeld ziet u hoe u een winkelwagen maakt met invoegtoepassingsitems voor een nieuw basisabonnement.

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: f73baf70-bbc3-43d0-8b29-dffa08ff9511

{
    "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"
                }
            ]
        }
    ]
}

Aanvraagvoorbeeld (nieuw basisabonnement) voor een nieuwe commerce-winkelwagen voor een basisaanbieding met een invoegtoepassing

{
    "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"
        }
    ]
}

Aanvraagvoorbeeld (bestaand basisabonnement) voor traditionele licentie

In het volgende REST-voorbeeld ziet u hoe u invoegtoepassingen toevoegt aan een bestaand basisabonnement. Dit voorbeeld is alleen relevant voor traditionele licenties, niet voor nieuwe handel.

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: 182474ba-7303-4d0f-870a-8c7fba5ccc4b

{
    "LineItems": [
        {
            "Id":0,
            "CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
            "Quantity":1,
            "BillingCycle":"annual",
            "ProvisioningContext":{"ParentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"}
        }
    ]
}

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 het succes of de fout optreedt en meer informatie over foutopsporing. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en meer parameters te lezen. Zie Foutcodes voor de volledige lijst.

Antwoordvoorbeeld (nieuw basisabonnement) voor traditionele licentie

HTTP/1.1 201 Created
Content-Length: 958
Content-Type: application/json
MS-CorrelationId: f73baf70-bbc3-43d0-8b29-dffa08ff9511
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"
    }
}

Antwoordvoorbeeld (bestaand basisabonnement) voor traditionele licentie

HTTP/1.1 201 Created
Content-Length: 707
Content-Type: application/json
MS-CorrelationId: 182474ba-7303-4d0f-870a-8c7fba5ccc4b
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"
    }
}

Antwoordvoorbeeld voor een nieuwe basisaanbieding op basis van een commercelicentie en invoegtoepassing

{
    "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"
    }
}