Een winkelwagen bijwerken

Een bestelling bijwerken voor een klant in een winkelwagen.

Houd er rekening mee dat winkelwagens zeven dagen na het maken verlopen.

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).

  • Een winkelwagen-id voor een bestaande winkelwagen.

C#

Als u een bestelling voor een klant wilt bijwerken, haalt u de winkelwagen op met behulp van de Methode Get() door de klant- en winkelwagen-id's door te geven met behulp van de functie ById(). Breng de benodigde wijzigingen aan in de winkelwagen. Roep nu de Put-methode aan met behulp van klant- en winkelwagen-id's met behulp van de ById() -methode.

Roep tot slot de methode Put() of PutAsync() aan om de order te maken.

IAggregatePartner partnerOperations;
string customerId;
string cartId;

var cart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Get();

cart.LineItems.ToArray()[0].Quantity++;

var updatedCart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Put(cart);

Zie het volgende voorbeeld om attestation te voltooien en andere resellers op te nemen.

API-voorbeeld - Winkelwagen uitchecken

{
    "orders": [
        {
            "id": "f76c6b7f449d",
            "alternateId": "f76c6b7f449d",
            "referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
            "billingCycle": "monthly",
            "currencyCode": "USD",
            "currencySymbol": "$",
            "lineItems": [
                {
                    "lineItemNumber": 0,
                    "offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
                    "subscriptionId": "ebc0beef-7ffb-4044-c074-16f324432139",
                    "termDuration": "P1M",
                    "transactionType": "New",
                    "friendlyName": "AI Builder Capacity add-on",
                    "quantity": 1,
                    "links": {
                        "product": {
                            "uri": "/products/CFQ7TTC0LH0Z?country=US",
                            "method": "GET",
                            "headers": []
                        },
                        "sku": {
                            "uri": "/products/CFQ7TTC0LH0Z/skus/0001?country=US",
                            "method": "GET",
                            "headers": []
                        },
                        "availability": {
                            "uri": "/products/CFQ7TTC0LH0Z/skus/0001/availabilities/CFQ7TTC0K18P?country=US",
                            "method": "GET",
                            "headers": []
                        }
                    }
                },
                {
                    "lineItemNumber": 1,
                    "offerId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
                    "subscriptionId": "261bac40-7d88-4327-dfa3-dacd09222d62",
                    "termDuration": "P1Y",
                    "transactionType": "New",
                    "friendlyName": "Azure Active Directory Premium P1",
                    "quantity": 2,
                    "partnerIdOnRecord": "517285",
                    "additionalPartnerIdsOnRecord": 
                        "5357564",
                        "5357563"
                    ],
                 
   "links": {
                        "product": {
                            "uri": "/products/CFQ7TTC0LFLS?country=US",
                            "method": "GET",
                            "headers": []
                        },
                        "sku": {
                            "uri": "/products/CFQ7TTC0LFLS/skus/0002?country=US",
                            "method": "GET",
                            "headers": []
                        },
                        "availability": {
                            "uri": "/products/CFQ7TTC0LFLS/skus/0002/availabilities/CFQ7TTC0KDLJ?country=US",
                            "method": "GET",
                            "headers": []
                        }
                    }
                }
            ],
            "creationDate": "2021-08-18T07:52:23.1921872Z",
            "status": "pending",
            "transactionType": "UserPurchase",
            "links": {
                "self": {
                    "uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d",
                    "method": "GET",
                    "headers": []
                },
                "provisioningStatus": {
                    "uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d/provisioningstatus",
                    "method": "GET",
                    "headers": []
                },
                "patchOperation": {
                    "uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d",
                    "method": "PATCH",
                    "headers": []
                }
            },
            "client": {},
            "attributes": {
                "objectType": "Order"
            }
        }
    ],
    "attributes": {
        "objectType": "CartCheckoutResult"
    }
}

REST-aanvraag

Aanvraagsyntaxis

Methode Aanvraag-URI
PUT {baseURL}/v1/customers/{customer-id}/carts/{cart-id} HTTP/1.1

URI-parameters

Gebruik de volgende padparameters om de klant te identificeren en geef de winkelwagen op die moet worden bijgewerkt.

Name Type Vereist Beschrijving
klant-id tekenreeks Ja Een door DE GUID opgemaakte klant-id die de klant identificeert.
cart-id tekenreeks Ja Een met GUID opgemaakte winkelwagen-id die de winkelwagen 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 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.
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.
Deelnemers Lijst met objectreeksparen Nee Een verzameling deelnemers aan de aankoop.
provisioningContext Woordenlijsttekenreeks<, tekenreeks> Nee Een context die wordt gebruikt voor het inrichten van aanbiedingen.
orderGroup tekenreeks Nee Een groep om aan te geven welke items samen kunnen worden geplaatst.
error Object Nee Toegepast nadat de winkelwagen is gemaakt in een fout.
AdditionalPartnerIdsOnRecord 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 andere resellers. Er kunnen maximaal vijf indirecte resellers worden ingevoerd. Dit zijn alleen van toepassing zijnde partners die handelen binnen EU/EVA-landen/regio's.

Aanvraagvoorbeeld

PUT /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/65faf57b-0205-47ee-92b3-08dcf233ea73/ HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
MS-CorrelationId: 0e93c70c-977a-4a88-9580-7cf084c73286
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

{
    {
        "Id":"b4c8fdea-cbe4-4d17-9576-13fcacbf9605",
        "CreationTimestamp":"2018-03-15T17:15:02.3840528Z",
        "LastModifiedTimestamp":"2018-03-15T17:15:02.3840528Z",
        "ExpirationTimestamp":"0001-01-01T00:00:00",
        "LastModifiedUser":"2713ccd7-ea3b-470a-9cfb-451d5d0482cc",
        "LineItems":[
            {
                "Id":0,
                "CatalogItemId":"DG7GMGF0DWTL:0001:DG7GMGF0DSJB",
                "FriendlyName":"A_sample_Azure_RI",
                "Quantity":2,
                "BillingCycle":"one_time",
                "ProvisioningContext": {
                    "SubscriptionId": "3D5ECED6-1151-44C7-AEE6-70A4BB725666",
                    "Scope": "shared",
                    "Duration": "1Year"
                }
            }
        ],
    }
}

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 fout is geslaagd of mislukt en aanvullende informatie over foutopsporing. Gebruik een hulpprogramma voor netwerktracering om deze code, het fouttype en meer 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: 0e93c70c-977a-4a88-9580-7cf084c73286
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": "b4c8fdea-cbe4-4d17-9576-13fcacbf9605",
    "creationTimestamp": "2018-03-15T17:15:02.3840528Z",
    "lastModifiedTimestamp": "2018-03-15T17:15:02.3840528Z",
    "lastModifiedUser": "2713ccd7-ea3b-470a-9cfb-451d5d0482cc",
    "lineItems": [
        {
            "id": 0,
            "catalogItemId": "DG7GMGF0DWTL:0001:DG7GMGF0DSJB",
            "friendlyName": "A_sample_Azure_RI",
            "quantity": 2,
            "currencyCode": "USD",
            "billingCycle": "one_time",
            "ProvisioningContext": {
                "subscriptionId": "3D5ECED6-1151-44C7-AEE6-70A4BB725666",
                "scope": "shared",
                "duration": "1Year"
            }
            "orderGroup": "0"
        }
    ],
    "links": {
        "self": {
            "uri": "/v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/b4c8fdea-cbe4-4d17-9576-13fcacbf9605/",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Cart"
    }
}