直接 API 调用

在这种与 Merchant API 互动的方法中,您需要直接向 API 端点发出原始请求,通常是通过 HTTP(S)。您需要手动处理一些方面,例如构建请求正文、设置标头(包括身份验证)以及解析响应。

第 1 步:注册为开发者

如需使用 Merchant API,您必须注册开发者联系信息。

注册可实现以下目的:

  • 通过向用户分配 API developer 角色,为您的 Merchant Center 账号创建技术联系人。这样,Google 就可以专门针对开发者正在使用的 API 和功能发送重要更新,例如服务通告和新功能信息,这些信息可能对非开发者来说不太重要。
  • 让您无需多次注册即可使用多个商家账号。注册时,用于向 Merchant API 进行身份验证的 Google Cloud 项目 ID 会与您的 Merchant Center 账号相关联,该账号具有技术联系人(API developer)。这样,只要使用已注册的 Google Cloud 云项目完成身份验证,您就可以获取所管理的所有商家账号的重要更新。

注册时,请遵守注册中详述的前提条件和限制。

如需使用 developerRegistration.registerGcp 方法进行注册,您可以从以下示例开始,将请求正文中的 {DEVELOPER_EMAIL} 替换为适当的电子邮件地址。

POST https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/developerRegistration:registerGcp

{
  "developerEmail": "{DEVELOPER_EMAIL}"
}

成功的调用会返回 DeveloperRegistration 资源,用于确认项目与账号之间的关联。

{
  "name": "accounts/{ACCOUNT_ID}/developerRegistration",
  "gcpIds": [
    "123456789012345"
  ]
}

第 2 步:管理开发者联系信息和权限

注册时:

  • 如果该邮箱属于 Merchant Center 账号中的用户,则该用户会被授予 API_DEVELOPER 角色。
  • 如果该电子邮件地址不属于现有用户,系统会向该地址发送邀请。接收者必须接受邀请,才能以 API_DEVELOPER 角色添加为新用户。

在初始注册后,我们建议您添加多位开发者并向其授予额外的访问权限。

第 2a 步:授予其他权限

API_DEVELOPER 角色是接收重要通知所必需的,但在 Merchant Center 中拥有的权限最少。如需允许此用户进行其他 API 调用或在 Merchant Center 界面中管理设置,您需要向其授予其他角色,例如 STANDARD 或 ADMIN。如需了解详情,请参阅访问类型。

您可以使用 accounts.users.patch 方法更新用户的访问权限。

以下示例展示了如何更新用户,向其同时授予 ADMIN 和 API_DEVELOPER 角色。这样,他们就可以全面管理账号,并且还会收到与 API 相关的通讯。

PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/users/{DEVELOPER_EMAIL}?update_mask=access_rights
{
  "access_rights": [
    "ADMIN",
    "API_DEVELOPER"
  ]
}

第 2b 步:添加备用开发者

为防止在主要开发者联系人离开组织时您的 API 访问权限中断,您应至少添加一个备用开发者。

您可以使用 accounts.users.create 方法添加用户,也可以使用 accounts.users.patch 更新用户。我们建议您同时向此用户授予 ADMIN 和 API_DEVELOPER 角色。

第 3 步:创建主要商品数据源

如需插入商品,您需要一个主要商品数据源。以下请求展示了如何创建可用于向账号插入商品的数据源:

POST https://merchantapi.googleapis.com/datasources/v1/accounts/{ACCOUNT_ID}/dataSources

{
  "primaryProductDataSource": {
    "contentLanguage": "en",
    "countries": [
      "US"
    ],
    "feedLabel": "US"
  },
  "name": "primary-data-source",
  "displayName": "Primary Products Data Source"
}

将 {ACCOUNT_ID} 替换为您创建的 Merchant Center 账号的 ID。

成功运行此请求后,您应该会看到以下响应:

{
  "name": "accounts/{ACCOUNT_ID}/dataSources/{DATASOURCE_ID}",
  "dataSourceId": "{DATASOURCE_ID}",
  "displayName": "Primary Products Data Source",
  "primaryProductDataSource": {
    "feedLabel": "US",
    "contentLanguage": "en",
    "countries": [
      "US"
    ],
    "defaultRule": {
      "takeFromDataSources": [
        {
          "self": true
        }
      ]
    }
  },
  "input": "API"
}

复制 name 字段的值。您需要使用它来插入商品。

您可以在 Merchant Center 界面中查看此数据源。如需了解详情,请参阅如何查找“数据源”标签页。

第 4 步:插入产品

创建数据源后,请尝试向其中插入商品。运行以下命令,并提供正确的 ACCOUNT_ID。将 {DATASOURCE_NAME} 替换为您之前复制的值。

POST https://merchantapi.googleapis.com/products/v1/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE_NAME}
{
  "contentLanguage": "en",
  "feedLabel": "US",
  "name": "Red T-shirt",
  "productAttributes": {
    "gender": "MALE",
    "brand": "New brand"
  },
  "offerId": "tshirt-123"
}

成功运行此请求后,您应该会看到以下响应:

{
  "name": "accounts/{ACCOUNT_ID}/productInputs/en~US~tshirt-123",
  "product": "accounts/{ACCOUNT_ID}/products/en~US~tshirt-123",
  "offerId": "tshirt-123",
  "contentLanguage": "en",
  "feedLabel": "US",
  "productAttributes": {
    "brand": "New brand",
    "gender": "MALE"
  }
}

新创建的商品 ID 为 en~US~tshirt-123。您可以使用 accounts.products.get 方法检索有关此商品的详细信息。您还可以使用 Merchant Center 界面查看此商品。如需详细了解如何查看商品数据,请参阅 Merchant Center 商品概览。