Merchant API では、商品データをより堅牢かつ直感的に管理できるようになります。主な変更点は、商品データが 2 つの異なるリソースに分離されたことです。ProductInput はデータを送信するためのリソース、Product は商品ステータスや問題など、最終的な処理済みバージョンを表示するためのリソースです。この新しい構造により、より予測可能で透明性の高いエクスペリエンスが実現します。
このガイドでは、統合を Content API for Shopping から移行するうえで重要な違いについて説明します。新機能の使用に関する詳細なガイドについては、プロダクトを管理するをご覧ください。
主な違い
Merchant API での商品管理方法と Content API for Shopping での商品管理方法の主な違いは次のとおりです。
入力データと処理済みデータ専用のリソース: Merchant API は、商品管理を 2 つのリソースに分割します。
ProductInputリソースを使用して、商品データを挿入、更新、削除できます。読み取り専用のProductリソースを使用すると、Google が入力を処理し、ルールを適用して、補助ソースのデータを結合した後の最終的な商品を表示できます。統合されたプロダクトのステータス:
productstatusesサービスが削除されます。商品検証の問題とリンク先ステータスがproductStatusフィールド内のProductリソースに直接含まれるようになり、データ取得が簡素化されました。予測可能なプロダクトの更新: 新しい
productInputs.patchメソッドは、特定のプロダクト入力を直接変更します。これは Content API for Shopping から大幅に改善された点です。Content API for Shopping では、他のフィードのアップロードによって更新が予期せず上書きされる可能性がありました。Merchant API では、特定の商品の入力が再度更新されるか削除されるまで、更新は維持されます。商品更新は、処理済みのProductリソースではなく、ProductInputリソースに適用されます。データソースを選択してデータ管理を簡素化: すべての
productInputs書き込みオペレーションでdataSourceクエリ パラメータが必要になり、変更するデータソースが明示的に指定されるようになりました。これは、複数のソースからデータが提供される場合に特に便利です。新しいリソース識別子: 商品は
idフィールドではなく、RESTful リソースnameで識別されるようになりました。形式はaccounts/{account}/products/{product}です。カスタム バッチなし:
custombatchメソッドは使用できなくなりました。非同期リクエストまたは HTTP バッチ処理を使用して、単一の HTTP 呼び出しで複数のリクエストを送信できます。任意のフィードラベルと言語のデータソース: Merchant API を使用すると、フィードラベルと言語を指定せずにデータソースを作成できるため、任意のフィードラベルと言語の商品を挿入できます。
リクエスト
このセクションでは、Content API for Shopping と Merchant API のリクエスト形式を比較します。
| リクエストの説明 | Content API for Shopping | Merchant API |
|---|---|---|
| 商品を入手する | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| 商品を一覧表示する | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| 商品を挿入する | POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert |
| 商品を更新する | PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| 商品の削除 | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| 商品のステータスを取得する | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| 商品のステータスを一覧表示する | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| 複数のリクエストをバッチ処理する | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch |
非同期リクエスト、HTTP バッチ処理 |
識別子
Merchant API での商品 ID の形式が標準の REST リソース名に変更されました。
| 識別子の説明 | Content API for Shopping | Merchant API |
|---|---|---|
| 商品 ID | コロン(:)で区切られたセグメントで構成される文字列。形式: channel:contentLanguage:targetCountry:offerId または channel:contentLanguage:feedLabel:offerId。例: online:en:US:sku123 |
REST リソース name 文字列。形式: accounts/{account}/products/{product}({product} は contentLanguage~feedLabel~offerId)。例: accounts/12345/products/en~US~sku123 |
メソッド
次の表に、Content API for Shopping のメソッドと、Merchant API での同等のメソッドを示します。
| Content API for Shopping のメソッド | Merchant API メソッド | 提供状況とメモ |
|---|---|---|
products.get |
products.get |
処理済みの最終的な商品を取得します。 |
products.list |
products.list |
最終的な処理済みプロダクトを一覧表示します。 |
products.insert |
productInputs.insert |
商品入力を挿入します。dataSource が必要です。 |
products.update |
productInputs.update |
動作は大きく異なります。特定の商品入力を更新し、永続化します。 |
products.delete |
productInputs.delete |
特定の商品入力を削除します。dataSource が必要です。 |
products.custombatch |
利用不可 | 非同期リクエストまたは HTTP バッチ処理を使用します。 |
productstatuses.get |
products.get |
productstatuses サービスが削除されます。ステータス情報が Product リソースの一部になりました。 |
productstatuses.list |
products.list |
productstatuses サービスが削除されます。ステータス情報が Product リソースの一部になりました。 |
productstatuses.custombatch |
利用不可 | [非同期 |
リクエスト](/merchant/api/samples/insert-product-input-async) または HTTP バッチ処理を使用します。|
フィールドの変更の詳細
次の表に、Merchant API で変更、追加、削除された重要なフィールドを示します。
| Content API for Shopping | Merchant API | 説明 |
|---|---|---|
id |
name |
プロダクトのプライマリ識別子は、REST リソース name になりました。 |
最上位の商品データ仕様の属性(title、price、link) |
productAttributes オブジェクト |
title、price、link などの商品属性は、トップレベル フィールドではなくなりました。これらは、Product リソースと ProductInput リソースの両方で productAttributes オブジェクト内にグループ化されています。これにより、よりクリーンで整理されたリソース構造が実現します。 |
targetCountry |
feedLabel |
Merchant Center の機能に合わせて、リソース名で targetCountry ではなく feedLabel が使用されるようになりました。 |
feedId |
dataSource(クエリ パラメータ) |
dataSource 名が、すべての productInputs 書き込みメソッド(insert、update、delete)の必須クエリ パラメータになりました。 |
channel |
利用できません。ローカルのみの商品には legacy_local を使用します。 |
channel フィールドが Merchant API から削除されました。Content API for Shopping で LOCAL チャネルを使用している商品は、代わりに legacy_local フィールドを true に設定する必要があります。 |
| 利用不可 | versionNumber |
ProductInput の新しいオプション フィールド。メイン データソースへの順不同の挿入を防ぐために使用できます。 |
定義された値のセットを持つ string 型のフィールド |
定義された値のセットを持つ enum 型のフィールド |
値のセットが定義されている商品属性内のフィールド(excluded_destinations、availability など)が enum 型になりました。 |