Aktualizowanie koszyka
Jak zaktualizować zamówienie klienta w koszyku.
Pamiętaj, że koszyki wygasają siedem dni od utworzenia początkowego.
Wymagania wstępne
Poświadczenia zgodnie z opisem w temacie Uwierzytelnianie w Centrum partnerskim. Ten scenariusz obsługuje uwierzytelnianie zarówno przy użyciu autonomicznych poświadczeń aplikacji, jak i aplikacji i użytkownika.
Identyfikator klienta (
customer-tenant-id
). Jeśli nie znasz identyfikatora klienta, możesz wyszukać go w Centrum partnerskim, wybierając obszar roboczy Klienci , a następnie klienta z listy klienta, a następnie pozycję Konto. Na stronie Konto klienta poszukaj identyfikatora Microsoft w sekcji Informacje o koncie klienta. Identyfikator Microsoft jest taki sam jak identyfikator klienta (customer-tenant-id
).Identyfikator koszyka dla istniejącego koszyka.
C#
Aby zaktualizować zamówienie klienta, pobierz koszyk przy użyciu metody Get(), przekazując identyfikatory klienta i koszyka przy użyciu funkcji ById(). Wprowadź niezbędne zmiany w koszyku. Teraz wywołaj metodę Put przy użyciu identyfikatorów klienta i koszyka przy użyciu metody ById().
Na koniec wywołaj metodę Put() lub PutAsync(), aby utworzyć zamówienie.
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);
Aby ukończyć zaświadczenie i dołączyć innych odsprzedawców, zobacz poniższy przykład.
Przykład interfejsu API — wyewidencjonowywanie koszyka
{
"orders": [
{
"id": "f76c6b7f449d",
"alternateId": "f76c6b7f449d",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"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": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"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"
}
}
Żądanie REST
Składnia żądania
Method | Identyfikator URI żądania |
---|---|
PUT | {baseURL}/v1/customers/{customer-id}/carts/{cart-id} HTTP/1.1 |
Parametry identyfikatora URI
Użyj następujących parametrów ścieżki, aby zidentyfikować klienta i określić koszyk do zaktualizowania.
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
identyfikator klienta | string | Tak | Identyfikator GUID sformatowany przez klienta, który identyfikuje klienta. |
cart-id | string | Tak | Identyfikator GUID sformatowany w koszyku, który identyfikuje koszyk. |
Nagłówki żądań
Aby uzyskać więcej informacji, zobacz Nagłówki REST Centrum partnerskiego.
Treść żądania
W tej tabeli opisano właściwości koszyka w treści żądania.
Właściwość | Type | Wymagania | Opis |
---|---|---|---|
identyfikator | string | Nie | Identyfikator koszyka dostarczony po pomyślnym utworzeniu koszyka. |
creationTimeStamp | DateTime | Nie. | Data utworzenia koszyka w formacie daty i godziny. Zastosowane po pomyślnym utworzeniu koszyka. |
lastModifiedTimeStamp | DateTime | Nie. | Data ostatniej aktualizacji koszyka w formacie daty i godziny. Zastosowane po pomyślnym utworzeniu koszyka. |
expirationTimeStamp | DateTime | Nie. | Data wygaśnięcia koszyka w formacie daty i godziny. Zastosowane po pomyślnym utworzeniu koszyka. |
lastModifiedUser | string | Nie | Użytkownik, który ostatnio zaktualizował koszyk. Zastosowane po pomyślnym utworzeniu koszyka. |
lineItems | Tablica obiektów | Tak | Tablica zasobów CartLineItem . |
W tej tabeli opisano właściwości CartLineItem w treści żądania.
Właściwość | Type | Wymagania | Opis |
---|---|---|---|
identyfikator | string | Nie | Unikatowy identyfikator elementu wiersza koszyka. Zastosowane po pomyślnym utworzeniu koszyka. |
catalogId | string | Tak | Identyfikator elementu wykazu. |
Friendlyname | string | Nie | Opcjonalny. Przyjazna nazwa elementu zdefiniowanego przez partnera w celu ułatwienia uściślania. |
identyfikator promocji | string | Nie | Opcjonalny. Większość promocji NCE będzie automatycznie stosować, jednak w przypadku opcjonalnych promocji (takich jak Bridge to the Cloud 2) w celu zastosowania do elementu wiersza koszyka, partnerzy muszą dołączyć identyfikator promocji w żądaniu dodawania do koszyka. |
ilość | int | Tak | Liczba licencji lub wystąpień. |
currencyCode | string | Nie | Kod waluty. |
billingCycle | Objekt | Tak | Typ cyklu rozliczeniowego ustawiony dla bieżącego okresu. |
Uczestników | Lista par ciągów obiektów | Nie. | Kolekcja uczestników zakupu. |
provisioningContext | Ciąg słownika<, ciąg> | Nie. | Kontekst używany do aprowizacji oferty. |
orderGroup | string | Nie | Grupa wskazująca, które elementy można umieścić razem. |
error | Objekt | Nie. | Zastosowane po utworzeniu koszyka w błędzie. |
AdditionalPartnerIdsOnRecord | String | Nie | Gdy dostawca pośredni składa zamówienie w imieniu odsprzedawcy pośredniego, wypełnij to pole tylko identyfikatorem PartnerID dodatkowego odsprzedawcy pośredniego (nigdy identyfikator dostawcy pośredniego). Zachęty nie mają zastosowania dla tych innych odsprzedawców. Można wprowadzić maksymalnie pięć odsprzedawców pośrednich. Dotyczy to tylko transakcji partnerów w krajach/regionach UE/EFTA. |
Przykład żądania
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: 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
{
{
"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": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"Scope": "shared",
"Duration": "1Year"
}
}
],
}
}
Ważne
Od czerwca 2023 r. najnowsza wersja zestawu .NET SDK Centrum partnerskiego 3.4.0 jest teraz archiwizowana. Możesz pobrać wersję zestawu SDK z usługi GitHub wraz z plikiem readme zawierającym przydatne informacje.
Zachęcamy partnerów do dalszego korzystania z interfejsów API REST Centrum partnerskiego.
Odpowiedź REST
Jeśli ta metoda powiedzie się, zwraca wypełniony zasób koszyka w treści odpowiedzi.
Kody powodzenia i błędów odpowiedzi
Każda odpowiedź zawiera kod stanu HTTP, który wskazuje powodzenie lub niepowodzenie i dodatkowe informacje o debugowaniu. Użyj narzędzia do śledzenia sieci, aby odczytać ten kod, typ błędu i inne parametry. Aby uzyskać pełną listę, zobacz Kody błędów.
Przykład odpowiedzi
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": "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": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"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"
}
}