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