このページでは、プログラマティックに商品をアップロードして管理する方法について説明します。Merchant Products API を使用すると、データソースに商品を挿入または更新したり、アカウントから商品を取得したり、データソースから商品を削除したりできます。
Merchant Products API には 2 つのリソースがあります。
productInputs
は、商品の入力部分を表します。products
は、入力パーツから構築された処理済みプロダクトを表します。
productInputs
は、メイン データソースまたは補助データソースにアップロードされるかどうかに応じて、メインまたは補助にすることができます。各 product
は、単一のプライマリ productInput
と任意の数の補足 productInputs
から構成されます。
Merchant Products API を使用して、オンライン ショップまたはローカル ショップのカタログを作成できます。これらのカタログに登録された商品は、複数のショッピング モールに表示できます。productInputs
リソースは、Merchant Center アカウントを作成して最初のデータソースを設定し、API を使用して最初の商品セットをアップロードする準備ができたら使用できます。
販売者は PrimaryProductDataSource というファイルを使用した商品のアップロードが可能ですが、Merchant API を使用して商品を作成、削除することにはいくつかの利点があります。これらの利点には、レスポンス時間の短縮や、大規模なファイルを管理することなく商品をリアルタイムで更新できる機能などがあります。API 呼び出しによって行われた商品の変更がショッピング データベースに反映されるまでには、最大で数時間かかることがあります。
前提条件
データソースがない場合は、Merchant DataSources API または Merchant Center を使用してデータソースを作成します。
Merchant Center の管理画面または API を使用して作成したデータソースがすでにある場合は、Merchant Products API を使用して商品を追加できます。Content API for Shopping を使用して商品を追加している場合は、移行ガイドで Merchant Products API の使用方法をご覧ください。
ショッピング広告と無料リスティングのポリシーに準拠する責任は販売者に帰属します。ショッピング広告は、これらのポリシーに違反するコンテンツや行為が見つかった場合、これらのポリシーを適用し、適切に対応する権利を留保します。
リソース
products
リソースを使用すると、ショッピング データベースから商品情報を取得できます。
productInput
リソースは、商品に対して送信する入力データを表します。また、商品情報を 1 つずつ、またはバッチモードで複数まとめて更新または削除できるメソッドも用意されています。productInput
リソースには、次のフィールドが必要です。
channel
: プロダクトのチャネル。offerId
: 商品の一意の識別子。contentLanguage
: 商品の 2 文字の ISO 639-1 言語コード。feedLabel
: 商品のフィードラベル。
アカウントに商品入力をアップロードする
商品入力をアカウントにアップロードするには、accounts.productInputs.insert
メソッドを使用します。メインまたは補助データソースの一意の識別子を渡す必要があります。
次のサンプル リクエストは、accounts.productInputs.insert
メソッドを使用して商品の入力を販売者アカウントにアップロードする方法を示しています。このリクエストでは、送料と地域、製造日やサイズなどのカスタム属性を設定します。
POST https://merchantapi.googleapis.com/products/v1beta/accounts/{ACCOUNT_ID}/productInputs:insert?dataSource={DATASOURCE}
{
"name": "{PRODUCT_TITLE}",
"versionNumber": {VERSION_NUMBER},
"contentLanguage": "{CONTENT_LANGUAGE}",
"feedLabel": "{FEED_LABEL}",
"offerId": "{OFFER_ID}",
"channel": "ONLINE",
"attributes": {
"availability": "in stock",
"imageLink": "{IMAGE_LINK}",
"link": "{PRODUCT_LINK}",
"brand": "{BRAND_NAME}",
"price": {
"currencyCode": "{CURRENCY_CODE}",
"amountMicros": {PRICE}
},
"color": "red",
"productWeight": {
"value": 320,
"unit": "g"
},
"adult": false,
"shipping": [
{
"country": "GB",
"price": {
"amountMicros": {SHIPPING_COST},
"currencyCode": "{CURRENCY_CODE_SHIPPING}"
},
"postalCode": "{SHIPPING_POSTALCODE}",
"service": "",
"region": "{SHIPPING_REGION}",
"maxHandlingTime": "{MAX_HANDLING_TIME}",
"minHandlingTime": "{MIN_HANDLING_TIME}",
"maxTransitTime": "{MAX_TRANSIT_TIME}",
"minTransitTime": "{MIN_TRANSIT_TIME}"
}
],
"gender": "Female"
},
"customAttributes": [
{
"name": "size",
"value": "Large"
},
{
"name": "Date of Manufacturing",
"value": "2024-05-05"
}
]
}
次のように置き換えます。
- {ACCOUNT_ID}: Merchant Center アカウントの一意の識別子。
- {DATASOURCE}: データソースの一意の識別子。
accounts/
{ACCOUNT_ID}/dataSources/
{DATASOURCE_ID} の形式で指定します。 - {PRODUCT_TITLE}: プロダクトの名前。
- {VERSION_NUMBER}: プロダクトのバージョン番号。省略可。
- {CONTENT_LANGUAGE}: 商品の 2 文字の ISO 639-1 言語コード。必須。
- {FEED_LABEL}: 商品を販売する地域の CLDR 地域コード。
feedLabel
に指定された値が無効な場合、targetCountry
フィールドには値が入力されません。 - {OFFER_ID}: 商品の一意の識別子。必須。
- {IMAGE_LINK}: ウェブサイト上の商品画像へのリンク。省略可。
- {PRODUCT_LINK}: ウェブサイトの商品へのリンク。省略可。
- {CURRENCY_CODE}: ISO 4217 に従って 3 文字の略語を使用した価格の通貨。省略可。
- {PRICE}: マイクロ単位の数値で表される商品の価格。省略可。
- {SHIPPING_COST}: 固定の送料を数値で表します。省略可。
- {SHIPPING_POSTALCODE}: 送料が適用される郵便番号の範囲。省略可。
- {MAX_HANDLING_TIME}: 注文を受けてから発送されるまでの最長発送準備時間(営業日数)。省略可。
- {MIN_HANDLING_TIME}: 注文を受けてから発送されるまでの最短発送準備時間(営業日数)。値 0 は、注文が受領された当日に配達されることを意味します。省略可。
- {MAX_TRANSIT_TIME}: 注文が発送されてから配達されるまでの最長お届け日数(営業日数)。省略可。
- {MIN_TRANSIT_TIME}: 注文が発送されてから配達されるまでの最短お届け日数(営業日)。値 0 は、注文が配送された当日に配達されることを意味します。省略可。
リクエストが正常に実行されると、次のようなレスポンスが表示されます。
{
"name": "{PRODUCT_NAME}",
"product": "{PRODUCT_ID}",
"channel": "ONLINE",
"offerId": "{OFFER_ID}",
"contentLanguage": "{CONTENT_LANGUAGE}",
"feedLabel": "{FEED_LABEL}",
"versionNumber": "{VERSION_NUMBER}",
"attributes": {
"link": "{PRODUCT_LINK}",
"imageLink": "{IMAGE_LINK}",
"adult": false,
"availability": "in stock",
"brand": "{BRAND_NAME}",
"color": "red",
"gender": "Female",
"price": {
"amountMicros": "{PRICE}",
"currencyCode": "{CURRENCY_CODE}"
},
"shipping": [
{
"price": {
"amountMicros": "{SHIPPING_COST}",
"currencyCode": "{CURRENCY_CODE}"
},
"country": "{SHIPPING_COUNTRY}",
"region": "{SHIPPING_REGION}",
"postalCode": "{SHIPPING_POSTALCODE}",
"minHandlingTime": "{MIN_HANDLING_TIME}",
"maxHandlingTime": "{MAX_HANDLING_TIME}",
"minTransitTime": "{MIN_TRANSIT_TIME}",
"maxTransitTime": "{MAX_TRANSIT_TIME}"
}
],
"productWeight": {
"value": 320,
"unit": "g"
}
},
"customAttributes": [
{
"name": "Size",
"value": "Large"
},
{
"name": "Date of Manufacturing",
"value": "2024-05-05"
}
]
}
アカウントから処理済みの商品を取得する
アカウントから処理済みの商品を取得するには、accounts.products.get
メソッドを使用します。挿入後、処理された商品が表示されるまでに数分かかることがあります。
処理された商品のリソース名は、accounts.productInputs.insert
のレスポンスの product
フィールドから取得できます。
アカウントから商品入力を削除する
アカウントから商品入力を削除するには、accounts.productInputs.delete
メソッドを使用します。Merchant Products API を使用して商品を削除するには、商品が属するメインまたは補助のデータソースの一意の ID を渡す必要があります。
アカウントの商品を一覧表示する
アカウントで処理された商品を一覧表示するには、accounts.products.list
メソッドを使用します。