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 型になりました。 |