更新产品定价和可用性
注意
清单 API 仅适用于已关闭的试点参与者。 API 和文档可能会更改。
如果只需在必应商家中心 (BMC) 商店更新产品的定价和可用性,则应使用 库存 资源而不是 产品 资源。 使用“产品”资源时,必须提供产品的完整详细信息,但“库存”资源允许你仅指定价格和可用性。
更新单个产品
若要更新单个产品,请在 HTTP POST 请求中使用 /bmc/{bmcMerchantId}/inventory/{storeCode}/products/{productUniqueId}
模板。 将 {bmcMerchantId} 设置为你的商店 ID,将 {storeCode} 设置为 online,将 {productUniqueId} 设置为产品的完全限定 ID。
请求正文是仅包含以下字段的 Product 对象:
- 价格
- availability
- salePrice
- salePriceEffectiveDate
price
和 availability
字段是必需的;如果未同时指定这两个字段,调用将失败。
salePrice
和 salePriceEffectiveDate
是可选的。 如果未指定它们,产品当前销售价格和生效日期值将从产品/服务中删除。
下面显示了一个示例 POST 请求。
POST https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/1234/inventory/online/products/online:en:US:5678 HTTP/1.1
AuthenticationToken: EwAAA3hl...
DeveloperToken: 0417...
Content-Type: application/json
Host: content.api.bingads.microsoft.com
Content-Length: 73
{
"availability":"out of stock",
"price":{
"currency":"USD",
"value":1234.0
}
}
如果请求成功,它将在 Location 标头中返回状态代码 200 和已更新产品的 URI。
HTTP/1.1 200 OK
Content-Type: application/json
Location: https://content.api.bingads.microsoft.com/shopping.svc/v9.1/bmc/1234/products/online:en:US:5678
WebRequestActivityId: e2c53946-e18c-4302-a40a-6d174429574a
Date: Fri, 09 Nov 2018 20:34:35 GMT
Content-Length: 46
{
"kind": "content#inventorySetResponse"
}
如果响应失败,请求将返回状态代码 400;正文包含用于标识问题的 错误响应 对象。
HTTP/1.1 400 Bad Request
Content-Type: application/json
Location: https://content.api.bingads.microsoft.com/shopping.svc/v9.1/bmc/1234/products/online:en:US:5678
WebRequestActivityId: d3d31a3f-8993-428e-858c-730032e32a46
Date: Sat, 10 Nov 2018 14:35:14 GMT
Content-Length: 305
{
"error": {
"errors": [
{
"reason": "invalid",
"message": "Invalid value for: availability, stock is not a valid value",
"domain": "global"
}
],
"code": "400",
"message": "Invalid value for: availability, stock is not a valid value"
}
}
有关演示如何使用库存资源更新单个产品的示例代码,请参阅 更新单个产品的定价和可用性。
更新多个产品
若要更新多个产品,请在 HTTP POST 请求中使用 /bmc/{bmcMerchantId}/inventory/batch
模板。 将 {bmcMerchantId} 设置为你的商店 ID。
请求正文是 一个 Batch 对象,最多可以包含 400 个要更新的产品。 批处理中的每个条目都提供用户定义的批 ID、设置为 联机的存储代码、产品的完全限定 ID 以及要更新的产品定价和可用性字段。 Product 对象只能包含以下字段:
- 价格
- availability
- salePrice
- salePriceEffectiveDate
price
和 availability
字段是必需的;如果未同时指定这两个字段,调用将失败。
salePrice
和 salePriceEffectiveDate
是可选的。 如果未指定它们,产品当前销售价格和生效日期值将从产品/服务中删除。
下面显示了一个示例 POST 请求。
POST https://content.api.bingads.microsoft.com/shopping/v9.1/bmc/1234/inventory/batch HTTP/1.1
AuthenticationToken: EwAAA3hl...
DeveloperToken: 0417...
Content-Type: application/json
Host: content.api.bingads.microsoft.com
Content-Length: 194
{
"entries":[
{
"batchId":1,
"storeCode":"online",
"productId":"online:en:US:5678",
"inventory":{
"availability":"in stock",
"price":{
"currency":"USD",
"value":4567.0
}
}
},
{
"batchId":2,
"storeCode":"online",
"productId":"online:en:US:9012",
"inventory":{
"availability":"bad in stock",
"price":{
"currency":"USD",
"value":678.0
}
}
}
]
}
由于请求尝试更新批中的每个产品,因此会返回状态代码 200。 若要确定更新是否失败,需要循环访问批处理中的所有条目。 如果条目包含 字段, errors
则更新失败;否则,更新成功。
HTTP/1.1 200 OK
Content-Type: application/json
WebRequestActivityId: bf019ef5-fa76-4703-9132-7954b0323c81
Date: Fri, 09 Nov 2018 20:48:15 GMT
Content-Length: 172
{
"kind": "content#inventoryCustomBatchResponse",
"entries": [
{
"kind": "content#inventoryCustomBatchEntryResponse",
"batchId": "1"
},
{
"kind": "content#inventoryCustomBatchEntryResponse",
"batchId": "2",
"errors": {
"errors": [
{
"reason": "invalid",
"message": "Invalid value for: availability, bad in stock is not a valid value",
"domain": "global"
}
]
}
}
]
}
有关演示如何使用库存资源更新一批产品的示例代码,请参阅 更新一批产品的定价和可用性。