Merchant API を使ってみる

このページでは、Merchant API を使用して Merchant Center アカウントを作成し、サンプル商品をアップロードする方法について説明します。

始める前に

Google Cloud プロジェクトで Merchant API を有効にします。

ショッピング コンテンツ サービスを使用して AppScript で API 統合を使用すると、デフォルトの Google Cloud プロジェクトが作成され、Merchant API サービスが自動的に有効になります。ただし、Merchant API を使用する前に、デベロッパー登録を 1 回完了する必要があります。詳細については、Apps Script で Merchant API サービスを使用するをご覧ください。

Google Cloud に移動

アカウントを作成する

Merchant API を使用するには、Merchant Center アカウントが必要です。アカウントを作成するには、Google Merchant Center の利用を開始するをご覧ください。

Merchant Center に移動

デベロッパーとして登録

Merchant API を使用するには、Google Cloud プロジェクトとメインの Merchant Center アカウントの間にリンクを作成する必要があります。この 1 回限りの登録は、Merchant API で使用するすべての Google Cloud プロジェクトで必要です。

デベロッパーとして登録すると、次の 2 つのことが可能になります。

  • これにより、Google Cloud プロジェクトがメインの Merchant Center アカウントにリンクされ、正式な接続が確立されます。
  • Merchant Center アカウントのユーザーに API_DEVELOPER の役割を割り当てることで、技術担当者を作成します。これにより、Google はサービスのお知らせや新機能に関する情報など、API に関する重要な最新情報を送信できます。

Google Cloud プロジェクトを登録する

登録するには、developerRegistration.registerGcp メソッドを呼び出します。この呼び出しにより、呼び出しを行うために使用する Google Cloud プロジェクトが、リクエストで指定した Merchant Center アカウントにリンクされます。

リクエスト本文で、技術担当者として使用するデベロッパーのメールアドレスを指定する必要があります。このアドレスは、Google アカウント(Google Workspace アカウントまたは Gmail アカウント)に関連付けられている必要があります(例: sampleuser@gmail.com)。

  • メールアドレスが Merchant Center アカウントのユーザーにすでに属している場合、そのユーザーには API_DEVELOPER ロールが付与されます。
  • メールアドレスが既存のユーザーに属していない場合は、そのアドレスに招待状が送信されます。招待を受けたユーザーは、API_DEVELOPER ロールを持つ新しいユーザーとして追加されることを承認する必要があります。

以下にリクエストの例を示します。

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

{
  "developerEmail": "{DEVELOPER_EMAIL}"
}

呼び出しが成功すると、DeveloperRegistration リソースが返されます。これにより、プロジェクトとアカウント間のリンクが確認されます。

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

デベロッパーの連絡先と権限を管理する

登録後、複数のデベロッパーを追加して、追加のアクセス権を付与することをおすすめします。

追加の権限を付与する

重要な通知を受け取るには API_DEVELOPER ロールが必要ですが、Merchant Center 内での権限は最小限です。このユーザーが他の API 呼び出しを行ったり、Merchant Center UI で設定を管理したりできるようにするには、STANDARDADMIN などの追加のロールを付与する必要があります。詳細については、アクセスタイプをご覧ください。

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

バックアップ デベロッパーを追加する

メインのデベロッパーの連絡先が組織を離れた場合に API へのアクセスが中断されないようにするには、少なくとも 1 人のバックアップ デベロッパーを追加する必要があります。

accounts.users.create メソッドを使用してユーザーを追加したり、accounts.users.patch メソッドを使用して既存のユーザーを更新したりできます。このユーザーに ADMIN ロールと API_DEVELOPER ロールの両方を付与することをおすすめします。

メインの商品データソースを作成する

商品を挿入するには、メインの商品データソースが必要です。次のリクエストは、アカウントに商品を挿入するために使用できるデータソースを作成する方法を示しています。

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

{
  "primaryProductDataSource": {
    "channel": "ONLINE_PRODUCTS",
    "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": {
    "channel": "ONLINE_PRODUCTS",
    "feedLabel": "US",
    "contentLanguage": "en",
    "countries": [
      "US"
    ],
    "defaultRule": {
      "takeFromDataSources": [
        {
          "self": true
        }
      ]
    }
  },
  "input": "API"
}

name フィールドの値をコピーします。商品を追加する際に必要になります。

このデータソースは Merchant Center の UI で確認できます。詳細については、[データソース] タブを見つける方法をご覧ください。

商品を挿入する

アカウントにサンプル商品を挿入するには、次のリクエストを実行します。

POST https://merchantapi.googleapis.com/products/v1/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE_NAME} HTTP/1.1

{
  "channel": "ONLINE",
  "contentLanguage": "en",
  "feedLabel": "US",
  "name": "Red T-shirt",
  "attributes": {
    "gender": "Male",
    "brand": "New brand"
  },
  "offerId": "tshirt-123"
}

{DATASOURCE_NAME} は、前にコピーした値に置き換えます。

このリクエストが正常に実行されると、次のレスポンスが表示されます。

{
  "name": "accounts/{ACCOUNT_ID}/productInputs/online~en~US~tshirt-123",
  "product": "accounts/{ACCOUNT_ID}/products/online~en~US~tshirt-123",
  "channel": "ONLINE",
  "offerId": "tshirt-123",
  "contentLanguage": "en",
  "feedLabel": "US",
  "attributes": {
    "brand": "New brand",
    "gender": "Male"
  }
}

新しく作成されたアイテムのアイテム ID は online~en~US~tshirt-123 です。accounts.products.get メソッドを使用すると、このアイテムの詳細情報を取得できます。Merchant Center の UI を使用してこの商品を表示することもできます。商品データを表示するをご覧ください。