Aktualisieren eines Warenkorbs

So aktualisieren Sie eine Bestellung für einen Kunden in einem Warenkorb.

Hinweis: Einkaufswagen laufen sieben Tage ab der ersten Erstellung ab.

Voraussetzungen

  • Anmeldeinformationen, wie unter Partner Center-Authentifizierung beschrieben. Dieses Szenario unterstützt die Authentifizierung mit eigenständigen App- und App+Benutzeranmeldeinformationen.

  • Eine Kunden-ID (customer-tenant-id). Wenn Sie die KUNDEN-ID nicht kennen, können Sie sie im Partner Center nachschlagen, indem Sie den Arbeitsbereich "Kunden " und dann den Kunden aus der Kundenliste und dann "Konto" auswählen. Suchen Sie auf der Kontoseite des Kunden im Abschnitt Kundenkontoinfo nach der Microsoft-ID. Die Microsoft-ID entspricht der Kunden-ID (customer-tenant-id).

  • Eine Einkaufswagen-ID für einen vorhandenen Warenkorb.

C#

Um eine Bestellung für einen Kunden zu aktualisieren, rufen Sie den Warenkorb mithilfe der Get()- Methode ab, indem Sie die Kunden- und Einkaufswagen-IDs mithilfe der ById() -Funktion übergeben. Nehmen Sie die erforderlichen Änderungen am Warenkorb vor. Rufen Sie nun die Put-Methode mithilfe von Kunden- und Einkaufswagen-IDs mithilfe der ById()-Methode auf.

Rufen Sie schließlich die Put()- oder PutAsync() -Methode auf, um die Reihenfolge zu erstellen.

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

Wenn Sie den Nachweis abschließen und andere Wiederverkäufer einbeziehen möchten, lesen Sie das folgende Beispiel.

API-Beispiel – Auschecken des Warenkorbs

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

Anforderungssyntax

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

URI-Parameter

Verwenden Sie die folgenden Pfadparameter, um den Kunden zu identifizieren, und geben Sie den zu aktualisierenden Warenkorb an.

Name Type Erforderlich Beschreibung
customer-id Zeichenfolge Ja Eine guid formatierte Kunden-ID, die den Kunden identifiziert.
Cart-ID Zeichenfolge Ja Eine guid formatierte Einkaufswagen-ID, die den Warenkorb identifiziert.

Anforderungsheader

Weitere Informationen finden Sie unter Partner Center-REST-Header.

Anforderungstext

In dieser Tabelle werden die Cart-Eigenschaften im Anforderungstext beschrieben.

Eigenschaft Type Erforderlich Beschreibung
id Zeichenfolge No Ein Warenkorbbezeichner, der bei erfolgreicher Erstellung des Warenkorbs bereitgestellt wird.
creationTimeStamp DateTime No Das Datum, an dem der Warenkorb erstellt wurde, im Datums-/Uhrzeitformat. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
lastModifiedTimeStamp DateTime No Das Datum, an dem der Warenkorb zuletzt im Datums-/Uhrzeitformat aktualisiert wurde. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
expirationTimeStamp DateTime No Das Datum, an dem der Warenkorb abläuft, im Datums-/Uhrzeitformat. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
lastModifiedUser Zeichenfolge No Der Benutzer, der den Warenkorb zuletzt aktualisiert hat. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
lineItems Array von Objekten Ja Ein Array von CartLineItem-Ressourcen .

In dieser Tabelle werden die CartLineItem-Eigenschaften im Anforderungstext beschrieben.

Eigenschaft Type Erforderlich Beschreibung
id Zeichenfolge No Ein eindeutiger Bezeichner für einen Einkaufswagenartikel. Auf erfolgreiche Erstellung des Warenkorbs angewendet.
catalogId Zeichenfolge Ja Der Katalogelementbezeichner.
friendlyName Zeichenfolge No Optional. Der Anzeigename für das element, das vom Partner definiert wurde, um mehrdeutig zu sein.
promotionId Zeichenfolge No Optional. Die meisten NCE-Werbeaktionen werden automatisch angewendet, jedoch für optionale Werbeaktionen (z. B. Bridge to the Cloud 2), die auf einen Einkaufswagenartikel angewendet werden sollen, müssen Partner die Angebots-ID im Add-To-Cart-Antrag enthalten.
Menge int Ja Die Anzahl der Lizenzen oder Instanzen.
currencyCode Zeichenfolge No Der Währungscode.
billingCycle Objekt Ja Der Typ der Abrechnungszeitraum für den aktuellen Zeitraum festgelegt.
participants Liste der Objektzeichenfolgenpaare No Eine Sammlung von Teilnehmern beim Kauf.
provisioningContext Wörterbuchzeichenfolge<, Zeichenfolge> No Ein Kontext, der für die Bereitstellung des Angebots verwendet wird.
orderGroup Zeichenfolge No Eine Gruppe, die angibt, welche Elemente zusammen platziert werden können.
error Objekt No Angewendet, nachdem der Warenkorb in einem Fehler erstellt wurde.
AdditionalPartnerIdsOnRecord String No Wenn ein indirekter Anbieter eine Bestellung im Auftrag eines indirekten Vertriebspartners abordnet, füllen Sie dieses Feld nur mit der PartnerID des zusätzlichen indirekten Vertriebspartners auf (niemals die ID des indirekten Anbieters). Anreize gelten nicht für diese anderen Wiederverkäufer. Es können nur maximal fünf indirekte Wiederverkäufer eingegeben werden. Dies gilt nur für Partner, die innerhalb der EU/EFTA-Länder/Regionen transaktionen.

Anforderungsbeispiel

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

Wichtig

Ab Juni 2023 ist jetzt die neueste Partner Center .NET SDK-Version 3.4.0 archiviert. Sie können das SDK-Release von GitHub zusammen mit einer Infodatei herunterladen, die nützliche Informationen enthält.

Partnern wird empfohlen, weiterhin die Partner Center-REST-APIs zu verwenden.

REST-Antwort

Bei erfolgreicher Ausführung gibt die Methode die aufgefüllte Cart-Ressource im Antworttext zurück.

Erfolgs- und Fehlercodes der Antwort

Jede Antwort enthält einen HTTP-Statuscode, der Aufschluss darüber gibt, ob der Vorgang erfolgreich war, sowie ggf. zusätzliche Debuginformationen. Verwenden Sie ein Netzwerkablaufverfolgungstool, um diesen Code, fehlertyp und weitere Parameter zu lesen. Die vollständige Liste findest du unter Partner-API: REST-Fehlercodes.

Beispielantwort

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