카트 업데이트

카트에서 고객의 주문을 업데이트하는 방법입니다.

카트는 초기 생성부터 7일 후에 만료됩니다.

필수 조건

  • 자격 증명(파트너 센터 인증에서 설명). 이 시나리오는 독립 실행형 앱과 App+사용자 자격 증명을 모두 사용하여 인증을 지원합니다.

  • 고객 ID (customer-tenant-id). 고객의 ID를 모르는 경우 고객 작업 영역을 선택하고 고객 목록에서 고객을 선택한 다음 계정을 선택하여 파트너 센터에서 조회할 수 있습니다. 고객 계정 페이지의 고객 계정 정보 섹션에서 Microsoft ID를 찾습니다. Microsoft ID는 고객 ID(customer-tenant-id)와 동일합니다.

  • 기존 카트의 카트 ID입니다.

C#

고객의 주문을 업데이트하려면 ById() 함수를 사용하여 고객 및 카트 ID를 전달하여 Get() 메서드를 사용하여 카트를 가져옵니다. 카트에 필요한 변경 내용을 적용합니다. 이제 ById() 메서드를 사용하여 고객 및 카트 ID를 사용하여 Put 메서드를 호출합니다.

마지막으로 Put() 또는 PutAsync() 메서드를 호출하여 주문을 만듭니다.

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

증명을 완료하고 다른 재판매인을 포함하려면 다음 샘플을 참조하세요.

API 샘플 - 카트 체크 아웃

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

REST 요청

요청 구문

메서드 요청 URI
PUT {baseURL}/v1/customers/{customer-id}/carts/{cart-id} HTTP/1.1

URI 매개 변수

다음 경로 매개 변수를 사용하여 고객을 식별하고 업데이트할 카트를 지정합니다.

속성 Type 필수 설명
customer-id string 고객을 식별하는 GUID 형식의 고객 ID입니다.
cart-id string 카트를 식별하는 GUID 형식의 cart-id입니다.

요청 헤더

자세한 내용은 파트너 센터 REST 헤더를 참조하세요.

요청 본문

이 표에서는 요청 본문의 Cart 속성에 대해 설명합니다.

속성 형식 필수 설명
id string 아니요 카트를 성공적으로 만들 때 제공되는 카트 식별자입니다.
creationTimeStamp DateTime 아니요 카트를 만든 날짜(날짜-시간 형식)입니다. 카트를 성공적으로 만들 때 적용됩니다.
lastModifiedTimeStamp DateTime 아니요 카트가 마지막으로 업데이트된 날짜(날짜-시간 형식)입니다. 카트를 성공적으로 만들 때 적용됩니다.
expirationTimeStamp DateTime 아니요 카트가 만료되는 날짜(날짜-시간 형식)입니다. 카트를 성공적으로 만들 때 적용됩니다.
lastModifiedUser string 아니요 카트를 마지막으로 업데이트한 사용자입니다. 카트를 성공적으로 만들 때 적용됩니다.
lineItems 개체의 배열 CartLineItem 리소스의 배열입니다.

이 표에서는 요청 본문의 CartLineItem 속성에 대해 설명합니다.

속성 형식 필수 설명
id string 아니요 카트 품목의 고유 식별자입니다. 카트를 성공적으로 만들 때 적용됩니다.
catalogId string 카탈로그 항목 식별자입니다.
friendlyName string 아니요 선택 사항. 명확하게 구분하기 위해 파트너가 정의한 항목의 이름입니다.
promotionId string 아니요 선택 사항. 대부분의 NCE 프로모션은 자동 적용되지만 선택적 프로모션(예: Bridge to the Cloud 2)이 카트 품목에 적용하려면 파트너는 카트에 추가 요청에 프로모션 ID를 포함해야 합니다.
quantity int 라이선스 또는 인스턴스 수입니다.
currencyCode string 아니요 통화 코드입니다.
billingCycle Object 현재 기간에 대해 설정된 청구 주기 형식입니다.
participants 개체 문자열 쌍 목록 아니요 구매한 참가자의 컬렉션입니다.
provisioningContext <사전 문자열, 문자열> 아니요 제품 프로비전에 사용되는 컨텍스트입니다.
orderGroup string 아니요 함께 배치할 수 있는 항목을 나타내는 그룹입니다.
error Object 아니요 오류로 인해 카트를 만든 후에 적용됩니다.
AdditionalPartnerIdsOnRecord 문자열 아니요 간접 공급자가 간접 재판매인을 대신하여 주문을 하는 경우 이 필드를 추가 간접 재판매인의 PartnerID로만 채웁니다(간접 공급자의 ID가 없음). 이러한 다른 재판매인에게는 인센티브가 적용되지 않습니다. 최대 5개의 간접 재판매인만 입력할 수 있습니다. 이는 EU/EFTA 국가/지역 내에서 거래하는 해당 파트너만 해당합니다.

요청 예시

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

Important

2023년 6월 현재 최신 파트너 센터 .NET SDK 릴리스 3.4.0이 보관됩니다. 유용한 정보가 포함된 추가 정보 파일함께 GitHub에서 SDK 릴리스를 다운로드할 수 있습니다.

파트너는 파트너 센터 REST API계속 사용하는 것이 좋습니다.

REST 응답

성공하면 이 메서드는 응답 본문에 채워진 Cart 리소스를 반환합니다.

응답 성공 및 오류 코드

각 응답에는 성공 또는 실패와 추가 디버깅 정보를 나타내는 HTTP 상태 코드가 함께 제공됩니다. 네트워크 추적 도구를 사용하여 이 코드, 오류 유형 및 기타 매개 변수를 읽습니다. 전체 목록은 오류 코드를 참조하세요.

응답 예제

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