products
リソースを使用すると、60 を超える商品属性を柔軟に管理できます。Google ショッピングでの表示が承認されるためには、これらのフィールドを含めることが必須となるフィールドが数多くあります。場所、商品のタイプ、商品バリエーション、商品バンドルなどのさまざまな条件に基づいて、必須になる可能性のあるオプション フィールドがいくつかあります。商品に対して構成できる 60 以上のオプション パラメータの詳細については、商品データ仕様をご覧ください。
products
リソースを使用すると、Merchant Center データベース内のすべての商品を insert
、get
、update
、delete
一度に 1 つずつ指定したり、list
のすべての商品を登録したりすることができます。
productstatuses
リソースを使用すると、掲載先における特定の商品の承認ステータスまたは不承認ステータスを確認できます。データ品質に問題がある可能性がある商品と、それがどのような問題を引き起こすかについて詳しくは、商品ステータス ガイドをご覧ください。
この API の例では、2 つの Google T シャツと 1 つの Google キャップという 3 つの商品を使用します。次の表に示す最小限の商品データセットを使用して、products
リソース呼び出しを行い、個々の商品と商品のバッチを挿入、取得、更新、一覧表示、削除します。
送料と税金の情報は、商品レベルではなくアカウント レベルで構成することをおすすめします。
ショッピングモールの複数販売者サブアカウントの場合は、すべての商品に external_seller_id
フィールドを含める必要があります。詳しくは、プロダクト ID をご覧ください。
id | online:en:US:1111111111 | online:en:US:2222222222 | online:en:US:3333333333 |
---|---|---|---|
offerId | 1111111111 | 2222222222 | 3333333333 |
title | 黒の Google T シャツ | Google T シャツ(緑) | Google ツイルキャップ |
説明 | 黒の Google T シャツ | 綿 100% の Google T シャツ | 従来の Google キャップ |
商品グループ ID | google_tee | google_tee | |
リンク | http://my.site.com/blacktee | http://my.site.com/greentee | http://my.site.com/blackhat |
condition | 新規 | 新規 | 新規 |
price | 2199.00 JPY | 2199.00 JPY | 1099.00 JPY |
稼働率 | 在庫あり | 在庫あり | 在庫あり |
imageLink | https://shop.example.com/ |
https://shop.example.com/ |
https://shop.example.com/ |
gtin | 9504000059422 | 9504000059446 | 9504000059452 |
mpn(製品番号) | 00638NIC | 00638ANG | 00638ABC |
brand | |||
Google 商品カテゴリ | ファッション・アクセサリー > 衣料品 | ファッション・アクセサリー > 衣料品 | ファッション・アクセサリー > ファッション・アクセサリー > 帽子 |
色 | Black | 緑 | Black |
size | L | M | M |
age_group | アダルト | アダルト | アダルト |
gender | male | male | 男女共用 |
included_destination | ショッピング アクション、ショッピング広告 | ショッピング アクション、ショッピング広告 | Shopping Actions |
products.insert
単一の商品を挿入するには、次のリクエスト URL を使用して、販売者 ID とサンプル JSON 本文を指定します。挿入により新しい商品が作成されます。特定のプロダクトの属性 channel
、contentLanguage
、offerId
、feedLabel
に値が存在する場合、このメソッドはそのエントリを更新し、特定のプロダクトの以前の API 呼び出しのデータをすべて置き換えます。
すべての掲載先から 7 日間除外された商品は、自動的に削除されます。
この例では、購入可能な商品に新しい「黒の Google T シャツ」を挿入しています。
POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products
products.insert
のリクエスト本文の呼び出しの例:
{
"kind": "content#product",
"offerId": "1111111111",
"title": "Google Tee Black",
"description": "The Black Google Tee is available in unisex sizing.",
"link": "http://my.site.com/blacktee/",
"imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-25T13:00:00-08:00",
"brand": "Google",
"color": "black",
"condition": "new",
"gender": "male",
"googleProductCategory": "1604",
"gtin": "608802531656",
"itemGroupId": "google_tee",
"mpn": "608802531656",
"price": {
"value": "21.99",
"currency": "USD"
},
"sizes": [
"Large"
]
}
商品には、JSON 本文内にカスタム属性を設定することもできます。たとえば、1 つの商品に purchase_quantity_limit
を設定すると、ユーザーが注文できるアイテム数を制限できます。
"customAttributes": [
{
"name": "purchase_quantity_limit",
"value": "4"
}
]
purchase_quantity_limit
カスタム属性は、商品定義に対してユーザーの注文 1 件あたりの購入制限を設定し、フィードでもサポートされています。この属性は、API で完全にサポートされるまでは、現在ベータ版です。販売者は任意のカスタム属性を追加できますが、API による特定の処理は行われません。
呼び出しが成功すると、HTTP 200
コードと、id
、offerId
、contentLanguage
、feedLabel
、channel
のみが入力された商品リソースを含むレスポンス本文が返されます。
{
"kind": "content#product",
"id": "online:en:US:1111111111",
"offerId": "1111111111",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online"
}
products.get
Merchant Center データベース内の特定の商品の情報を取得するには、products.get
を使用します。新しく挿入した商品がこの呼び出しで使用可能になるまでに数分かかることがあります。
次の HTTP リクエスト URL とパラメータ、販売者 ID、取得する商品の商品 ID(REST ID 形式)を使用します。
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
呼び出しが成功すると、レスポンスの本文で HTTP 200
と「商品リソース」が返されます。ID が online:en:US:1111111111
の商品から取得される商品データの例は次のとおりです。
{
"kind": "content#product",
"id": "online:en:US:1111111111",
"offerId": "1111111111",
"source": "api",
"title": "Google Tee Black",
"description": "The Black Google Tee is available in unisex sizing.",
"link": "http://my.site.com/blacktee/",
"imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-25T13:00:00-08:00",
"brand": "Google",
"color": "black",
"condition": "new",
"gender": "male",
"googleProductCategory": "1604",
"gtin": "608802531656",
"itemGroupId": "google_tee",
"mpn": "608802531656",
"price": {
"value": "21.99",
"currency": "USD"
},
"sizes": [
"Large"
]
}
products.update
1 つの商品を更新するには、次のリクエスト URL を PATCH メソッドで使用します。販売者 ID、商品 ID、商品について更新するデータを含む JSON 本文を指定します。該当するすべてのフィールドを指定する必要がある products.insert
とは異なり、products.update
では変更するフィールドを指定するだけで済みます。
属性を追加または変更するには、JSON の本文で新しい値を含むフィールドを指定します。この例では、リクエストの本文で提供された商品データで、既存の「黒の Google T シャツ」の title
と description
を更新し、その他のフィールドはすべてそのままにします。
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
products.update
のリクエスト本文の呼び出しの例:
{
"title": "Google Tee Black Limited Edition",
"description": "The Limited Edition Tee is available in unisex sizing and features a retail fit."
}
products.update
リクエストで更新できるのは最上位のフィールドのみです。ネストされたフィールドを更新するには、最上位オブジェクト全体を指定する必要があります。
この例では、既存の商品のネストされたフィールドを含む最上位の salePrice
オブジェクトを、リクエスト本文で指定された商品データで更新し、その他のフィールドはすべてそのまま更新します。
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
{
"salePrice": {
"value": "17.99",
"currency": "USD"
}
}
リクエストの本文に含まれる他のフィールドを変更せずに更新する特定のフィールドを選択するには、updateMask
を指定します。このクエリ文字列パラメータには、変更するフィールドのカンマ区切りのリストを指定する必要があります。updateMask
は、名前付きフィールドのみが更新されることをアサートする場合に役立ちます。updateMask
を指定しないと、上記の例に示すように、リクエスト内のすべてのフィールドを更新するようにマークするのと同じ結果になります。
この例では、リクエスト本文で指定されたそれぞれの商品データで、既存の「黒の Google T シャツ」の description
と availability
のみを更新し、title
を含む他のすべてのフィールドは変更しません。
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}?updateMask=description,availability
products.update
のリクエスト本文の呼び出しの例:
{
"title": "Google Tee Black",
"description": "This Limited Edition is out of print.",
"availability": "out of stock"
}
updateMask
リストでフィールドが指定されているものの、リクエストの本文には含まれていない場合、そのフィールドは Product
リソースから削除されます(存在する場合)。
この例では、updateMask
を使用して salePrice
フィールドの値を削除します。
PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}?updateMask=salePrice
サンプルのリクエスト本文には、削除するための salePrice
フィールドを含めないでください。本文または空の本文を指定することもできます。他のフィールドは、updateMask
に含まれていない限り、変更されません。
products.custombatch
リクエスト内で updateMask
を使用するには、リクエストの本文で updateMask
を指定する必要があります。
この例では、products.custombatch
を使用して、バッチエントリで指定された商品データで既存の「黒の Google T シャツ」の price
と availability
を更新し、title
と description
などの他のフィールドはすべて変更しません。
POST https://shoppingcontent.googleapis.com/content/v2.1/products/batch
{
"entries": [{
"batchId": 1,
"merchantId": "MERCHANT_ID",
"productId": "online:en:US:1111111111",
"method": "update",
"product": {
"title": "Google Tee Black",
"description": "The Black Google Tee is available in unisex sizing.",
"availability": "in stock",
"price": {
"value": "19.99",
"currency": "USD"
}
},
"updateMask": "availability,price"
}]
}
products.delete
単一の商品を削除するには、products.delete
を使用して、サンプル HTTP リクエスト URL、販売者 ID、削除する商品の商品 ID(online:en:US:1111111111
などの REST ID 形式)を指定します。
DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId}
成功すると、レスポンスの本文なしで HTTP Status 204
が返されます。
products.list
products.list
: 販売者が Merchant Center データベースに登録されているすべての商品をリストします。次のリクエスト URL を使用します。
GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products
呼び出しが成功すると、「resources」キーに含まれる商品の HTTP 200
と JSON データが返されます。
次の 3 つのサンプル商品が返されます。
{
"kind": "content#productsListResponse",
"resources": [
{
"kind": "content#product",
"id": "online:en:US:1111111111",
"offerId": "1111111111",
"source": "api",
"title": "Google Tee Black",
"description": "The Black Google Tee is available in unisex sizing.",
"link": "http://my.site.com/blacktee/",
"imageLink": "https://shop.example.com/.../images/GGOEGXXX1100.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-25T13:00:00-08:00",
"brand": "Google",
"color": "black",
"condition": "new",
"gender": "male",
"googleProductCategory": "1604",
"gtin": "608802531656",
"itemGroupId": "google_tee",
"mpn": "608802531656",
"price": {
"value": "21.99",
"currency": "USD"
},
"sizes": [
"Large"
]
},
{
"kind": "content#product",
"id": "online:en:US:2222222222",
"offerId": "2222222222",
"source": "api",
"title": "Google Tee Green",
"description": "100% cotton jersey fabric sets this Google t-shirt above the crowd.
Features the google logo across the chest. Unisex sizing.",
"link": "http://my.site.com/greentee/",
"imageLink": "https://shop.example.com/.../images/GGOEGXXX0906.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-25T13:00:00-08:00",
"brand": "Google",
"color": "green",
"condition": "new",
"gender": "male",
"googleProductCategory": "1604",
"gtin": "608802531649",
"itemGroupId": "google_tee",
"mpn": "608802531649",
"price": {
"value": "21.99",
"currency": "USD"
},
"sizes": [
"Medium"
]
},
{
"kind": "content#product",
"id": "online:en:US:3333333333",
"offerId": "3333333333",
"source": "api",
"title": "Google Twill Cap",
"description": "Classic urban styling distinguishes this Google cap.
Retains its shape, even when not being worn.",
"link": "http://my.site.com/blackhat/",
"imageLink": "https://shop.example.com/.../images/GGOEGHPB071610.jpg",
"contentLanguage": "en",
"targetCountry": "US",
"feedLabel": "US",
"channel": "online",
"ageGroup": "adult",
"availability": "in stock",
"availabilityDate": "2019-01-07T13:00:00-08:00",
"brand": "Google",
"color": "black",
"condition": "new",
"gender": "male",
"googleProductCategory": "173",
"gtin": "689355417246",
"mpn": "689355417246",
"price": {
"value": "10.99",
"currency": "USD"
},
"sizes": [
"Medium"
]
}
]
}