Inventory API(仅适用于 v2)

Inventory API 用于更新您的 Merchant Center 帐号中的商品价格和库存状况。虽然 products.insert API 方法的功能比 Inventory API 多,但是我们还是建议您使用 Inventory API 更新现有商品的价格和库存状况。

商品更新关系图

您可以通过 Feed 或 Products API 在 Google Merchant Center 数据库中创建商品。同样,您可以使用补充 Feed、Product API 或 Inventory API 更新您的商品。本指南介绍了如何将 Inventory API 用于此目的。

Inventory API 用于更新您的商品。可以使用 inventory.set 方法设置倾向于经常变化的属性(例如 quantitysellOnGoogleQuantityavailabilitypricesalePrice)。借助 inventory.custombatch 方法,您可以对许多商品同时执行 set 调用,这样可以节省时间和节约资源。

为了更新商品,inventory.set 方法较之 products.insert 方法是更好的选择,因为前一种方法允许您执行更多的调用。费率限制文档中发布了您能够执行的 inventory 调用数量。如果您能够使用 Inventory API 取代 Products API 来更新特定商品的 sellOnGoogleQuantity,则应该执行此操作。

在线与本地

某些属性只能为“在线”商品设置,而某些属性只能为“本地”商品设置。在此环境下,“在线”表示 Shopping Actions (SA) 和产品详情广告 (PLA)。同样,在此环境下,“本地”表示本地产品目录广告 (LIA)。在本文档中,“在线”和“LIA”用来指这两个类别。

Inventory set

使用 inventory.set 方法可以更新已使用 products.insert 添加的现有商品集(每次调用涉及一件商品)。您无法使用 inventory.set 添加新的商品,但您可以用其更新已使用 Products API 添加的现有商品。有关使用此 API 信息设置的属性列表,请参阅 Inventory.set 页面

pickupinstoreProductLocation 属性仅用于本地产品目录广告商品。只能为在线商品设置 sellOnGoogleQuantity(虽然可以为 PLA 执行此设置,但是实际上它只与已启用 SA 的商品相关)。Inventory.set 表中的某些字段有以下子字段:pricesalePriceloyaltyPoints

在线商品的示例正文

在线商品的 inventory.set 方法的示例网址如下所示:

https://www.googleapis.com/content/v2/{merchantID}/inventory/online/products/{productid}

网址中的 productid 应为 REST ID,其包含渠道(“在线”或“本地”)、语言代码、国家/地区代码和 offerId

{
  "inventory": {
    "salePrice": {
      "currency": "USD",
      "value": "225.72"
    },
    "sellOnGoogleQuantity": "1",
    "availability": "out of stock",
    "kind": "content#inventory",
    "price": {
      "currency": "USD",
      "value": "238.13"
    }
  },
  "productId": "online:en:US:999999",
  "storeCode": "online"
}

LIA 商品的示例正文

更新 LIA 商品会按商店提供商品的相关信息。

LIA 商品的 inventory.set 方法的示例网址如下所示:

https://www.googleapis.com/content/v2/{merchantID}/inventory/1301234/products/{productid}

一件 LIA 商品的 inventory.set 示例如下所示:

{
  "price": {
    "value": "15.00",
    "currency": "USD"
  },
  "availability": "in stock",
  "salePrice": {
    "value": "12.00",
    "currency": "USD"
  },
  "salePriceEffectiveDate": "2019-01-10T11:07:31+0100 ,2019-01-31T11:07:31+0100",
  "quantity": 5,
  "pickup": {
    "pickupMethod": "buy",
    "pickupSla": "multi day"
  },
  "instoreProductLocation": "Milpitas",
  "loyaltyPoints": {
    "name": "Eat A Lot, Spend A Lot",
    "pointsValue": 1,
    "ratio": 0.05
  }
}

Inventory custombatch

借助 inventory.custombatch 方法,您可以一次执行多个 inventory.set 调用。这样做的好处是可以花费更少的时间和使用更少的计算机资源,因为这样您就不必与 API 服务器多次建立连接然后再断开这些连接。

两件商品的 inventory.custombatch 示例如下所示:

{
  "entries": [{
      "batchId": 1,
      "merchantId": 123453678,
      "productId": "local:en:US:0",
      "storeCode": "7777777",
      "inventory": {
        "kind": "content#inventory",
        "price": {
          "value": "15.00",
          "currency": "USD"
        },
        "availability": "in stock",
        "salePrice": {
          "value": "12.00",
          "currency": "USD"
        },
        "salePriceEffectiveDate": "2019-01-10,2019-01-31",
        "installment": {
          "months": 24,
          "amount": {
            "value": "1.00",
            "currency": "USD"
          }
        },
        "quantity": 5,
        "pickup": {
          "pickupMethod": "buy",
          "pickupSla": "multi day"
        },
        "instoreProductLocation": "Milpitas",
        "loyaltyPoints": {
          "name": "Eat A Lot, Spend A Lot",
          "pointsValue": 1,
          "ratio": 0.05
        }
      }
    },
    {
      "batchId": 2,
      "merchantId": 1222222,
      "productId": "online:en:US:0",
      "storeCode": "online",
      "inventory": {
        "kind": "content#inventory",
        "price": {
          "value": "15.00",
          "currency": "USD"
        },
        "availability": "in stock",
        "salePrice": {
          "value": "12.00",
          "currency": "USD"
        },
        "salePriceEffectiveDate": "2019-01-10,2019-01-31",
        "sellOnGoogleQuantity": 5,
        "installment": {
          "months": 24,
          "amount": {
            "value": "1.00",
            "currency": "USD"
          }
        },
        "loyaltyPoints": {
          "name": "Eat A Lot, Spend A Lot",
          "pointsValue": 1,
          "ratio": 0.05
        },
        "customLabel0": "label0",
        "customLabel1": "label1",
        "customLabel2": "label2",
        "customLabel3": "label3",
        "customLabel4": "label4"
      }
    }
  ]
}

测试 Inventory API

首先,您必须向 Merchant Center 提供您可以更改的一些商品。要使用参考中的试用此 API,请在表格中填写您的商品 ID、实际商品的 REST ID 和有效的请求正文(修改本文档中的正文,或者使用试用此 API 正文编辑器创建正文)。

由于所有商品都在生产环境中,因此请小心操作,以免更改实际商品中的任何重要内容。我们建议您更改当前未使用的商品的属性,或者更改缺货商品的值,以减少无法预料的问题。

摘要

综上所述,使用 products.insert 方法可以在系统中创建商品,而使用 inventory.set 方法可以更新这些商品的库存状况和价格状态。

如果您要一次更新许多商品,请考虑使用 inventory.custombatch 方法。