更新购物车
如何在购物车中更新客户的订单。
请注意,购物车自初始创建之日起七天过期。
先决条件
合作伙伴中心身份验证中所述的凭据。 此方案支持使用独立应用和 App+User 凭据进行身份验证。
客户 ID (
customer-tenant-id
)。 如果不知道客户的 ID,可以通过选择“客户”工作区,然后从客户列表中选择客户,然后选择“帐户”,在合作伙伴中心中查找该 ID。 在客户的“帐户”页上的“客户帐户信息”部分查找 Microsoft ID。 Microsoft ID 与客户 ID (customer-tenant-id
) 相同。现有购物车的购物车 ID。
C#
若要更新客户的订单,请使用 Get() 方法获取购物车,方法是使用 ById() 函数传递客户和购物车 ID。 对购物车进行必要的更改。 现在,使用 ById() 方法使用客户 ID 和购物车 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 参数
使用以下路径参数标识客户,并指定要更新的购物车。
名称 | 类型 | 必需 | 说明 |
---|---|---|---|
customer-id | string | 是 | 标识客户的 GUID 格式的客户 ID。 |
cart-id | string | 是 | 标识购物车的 GUID 格式的购物车 ID。 |
请求标头
有关详细信息,请参阅合作伙伴中心 REST 标头。
请求正文
下表描述了 请求正文中的 Cart 属性。
properties | 类型 | 必需 | 描述 |
---|---|---|---|
id | string | 否 | 成功创建购物车时提供的购物车标识符。 |
creationTimeStamp | 日期时间 | 否 | 以日期时间格式创建购物车的日期。 成功创建购物车时应用。 |
lastModifiedTimeStamp | 日期时间 | 否 | 上次更新购物车的日期,采用日期时间格式。 成功创建购物车时应用。 |
expirationTimeStamp | 日期时间 | 否 | 购物车将过期的日期,采用日期时间格式。 成功创建购物车时应用。 |
lastModifiedUser | string | 否 | 上次更新购物车的用户。 成功创建购物车时应用。 |
lineItems | 对象数组 | 是 | CartLineItem 资源的数组。 |
下表描述了 请求正文中的 CartLineItem 属性。
properties | 类型 | 必需 | 描述 |
---|---|---|---|
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)。 奖励不适用于这些其他经销商。 最多可以输入五个间接经销商。 这只是欧盟/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"
}
}
],
}
}
重要
截至 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"
}
}