直接 API 呼び出し

Merchant API とのやり取りを行うこのアプローチでは、通常は HTTP(S) 経由で API エンドポイントに直接リクエストを送信します。リクエスト本文の作成、ヘッダーの設定(認証を含む)、レスポンスの解析などの側面を手動で処理します。

ステップ 1. デベロッパーとして登録

Merchant API を使用するには、デベロッパーの連絡先情報を登録する必要があります。

登録により、次の処理が行われます。

  • ユーザーに API developer ロールを割り当てて、Merchant Center アカウントの技術担当者を作成します。これにより、Google は、デベロッパーが使用している API と機能に関する重要な更新情報(サービスの発表や新機能に関する情報など)を送信できます。これらの情報は、デベロッパー以外の方にはあまり関心がない可能性があります。
  • 複数回登録しなくても、複数の販売者アカウントを操作できます。登録すると、Merchant API の認証に使用される Google Cloud プロジェクト ID が、技術担当者(API developer)を含む Merchant Center アカウントに関連付けられます。これにより、登録済みの 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 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"
  ]
}

ステップ 2b. バックアップ デベロッパーを追加する

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

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 の UI で確認できます。詳細については、[データソース] タブを見つける方法をご覧ください。

ステップ 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 の UI を使用してこの商品を表示することもできます。商品データを表示するをご覧ください。