Google パートナーは、予約待ちリストの統合を通じて、構造化されたメニューデータを Google に提供できます。このデータは、レストランの Google ビジネス プロフィールの [メニュー] セクションや、Google のユーザー向けサービス全体の他のエントリ ポイントで使用されます。
メニューデータは汎用フィードを使用して取り込まれます。始める前に:
- アカウントの設定が完了していることを確認します。
- 汎用フィードのアップロード プロセスを理解する
- 汎用フィードのアップロード用にアカウントを設定する方法について
メニュー フィードの作成とアップロード
メニュー フィードを作成してアップロードする際は、次のガイドラインと規則に沿ってください。-
レストランの詳細を提供するには、販売者フィードで説明されているデータ仕様に沿って対応してください。JSON ファイルの例については、JSON のサンプルを参照してください。データファイル名はアップロードごとに一意である必要があります。ファイル名にタイムスタンプを含めることをおすすめします(例:
menu1_1633621547.json)。 -
メニュー フィードのファイルセット記述子で、
nameフィールドをgoogle.food_menuに設定します。記述子ファイルの内容の例については、記述子ファイルの JSON サンプルを参照してください。記述子ファイルの名前は、アップロード間で一意である必要があります。ファイル名にタイムスタンプ(例:descriptor_1633621547.filesetdesc.json)を含めることをおすすめします。記述子ファイルは、メニュー フィードの一部として汎用 SFTP サーバーにアップロードする必要があります。 - フィードは、完全な更新として毎日汎用 SFTP サーバーにアップロードする必要があります。
- 汎用フィードの sftp の使用で説明されているように、フィードを 1,000 個のシャード(ファイル)に制限します。
フィードの取り込みステータスは、パートナー ポータルの [取り込み] > [履歴] セクションで確認できます。フィードの SFTP サーバー情報は、パートナー ポータルの [Configuration > Feeds] セクションで確認できます。
フィードの取り込みステータスは、パートナー ポータルの [取り込み > 履歴] セクションで確認できます。フィード SFTP サーバーの情報は、パートナー ポータルの [構成 > フィード] セクションで確認できます。
メニュー項目のオプションの操作
メニュー項目のオプションは、MenuItemOption proto を使用して指定できます。
1 つのメニュー項目に複数の必須オプションのセットがあるパートナー(サイズ オプションとミルク オプションがあるラテなど)は、Google でこれらのオプションを最適に表示する方法を決定する必要があります。Google では次のことをおすすめします。
- メニュー フィードは、パートナーの注文サイト(または、店舗の注文サイトがない場合はレストランの店内メニュー)と一致している必要があります。注文サイトに個別の価格が表示される場合は、
MenuItemを使用する必要があります。基本価格と複数のオプションが表示される商品には、MenuItemOptionを使用する必要があります。 - 次のような、オプションの長いリストは含めないでください。
- チキン ブリトー
- チーズ入りチキン ブリトー
- サルサソースを添えたチキンブリトー
- サルサとチーズを添えたチキン ブリトー
- ワカモレ付きチキン ブリトー
- ワカモレとサルサを添えたチキン ブリトー
- メニュー項目のオプションは、料理でオプションのいずれかの選択が必須の場合にのみサポートされます。たとえば、ピザを注文する場合、サイズは必須のオプションです。アドオン用のメニュー項目オプション(「アボカドを追加するオプション」など)は対象外です。フィードに含めないでください。
メニュー項目のオプションの価格は、そのオプションが選択された項目の全額である必要があります。料金はメニュー アイテムまたはオプションのいずれかに設定する必要があります。両方に設定することはできません。
複数のメニューがあるレストラン
1 つのレストラン(エンティティ)に設定できるメニューは 1 つのみです。複数のメニュー(ランチとディナーのメニューが別々になっているなど)があるレストランの場合、すべてのメニューを MenuSections を使用して 1 つのメニューにまとめることができます(ランチのセクションとディナーのセクションがある 1 つのメニューなど)。結果のメニューの構造は次のようになります。
- メニュー
- ランチ セクション
- スープ
- スープ 1
- スープ 2
- サンドイッチ
- サンドイッチ 1
- サンドイッチ 2
- ディナー セクション
- 先発メンバー
- スターター 1
- 開始条件 2
- メイン
- メインディッシュ 1
- メインディッシュ 2
複数のレストランでメニューを共有する
メニューの merchant_ids リストにすべてのレストランを含めることで、1 つのメニューを複数のレストランで共有できます。このリストでは、エンティティ フィードを使用しているパートナーのエンティティ ID を受け付けます。
ベスト プラクティス
メニューフィードを開発する際のベスト プラクティスは次のとおりです。
- レストランに関連付けることができるメニューは 1 つだけです。
- TextField の最初の言語として優先言語を指定します。複数の LocalizedText オブジェクトを送信する場合、テキスト リストの最初のオブジェクトがユーザーに表示されます。
- すべてのメニュー項目は、メニュー セクションに追加する必要があります。メニュー項目をメニュー オブジェクトに直接追加しないでください。
- utf-8 エンコードを使用してコンテンツを提供します。ASCII 以外の文字をエスケープする必要はありません。
- 複数の地域でリリースする場合は、単位と nanos のフィールドで正しい通貨コードと額面を使用していることを確認してください。特に nanos のフィールドは単位の 10^-9 であるため、注意が必要です。在庫ビューアのメニュー ビジュアライザーを使用して、価格が正しく設定されていることを確認します。
- 視覚的に豊かで、包括的で、最新のメニューをユーザーに提供することは、有益で魅力的なユーザー エクスペリエンスを提供するうえで重要です。価格、説明、写真、食事に関する情報は、意思決定を促すうえで重要な要素です。最適なユーザー エクスペリエンスと販売者エクスペリエンスを提供するため、パートナーは可能な限り多くのデータを提供することをおすすめします。
- 価格を表示しない場合は、Offer proto に空の Price proto を含めます。
開発とテストのツール
メニューフィードが リリースされると、メニューフィードのデータが検索結果に表示されるようになり、レストランのプレースシートの [メニュー] タブに表示される可能性があります。メニュータブは Google 検索(モバイルとパソコン)でサポートされており、Google マップなどの他のサービスにも拡大される予定です。レンダリングされるエクスペリエンスは、サーフェスによって異なる場合があります。
メニューが正しく構成されていることを確認するには、在庫ビューアのメニュー ビジュアライザーを使用してメニューをプレビューします。
レストランのメニューは、Google ビジネス プロフィールを通じてレストラン自身が提供する情報、料理の注文や予約のパートナー、ユーザーが撮影したメニューの写真など、さまざまな情報源から取得されます。同じレストランのメニューを複数のソースが提供している場合、販売者は Google ビジネス プロフィールのメニュー エディタで優先するプロバイダを選択できます。
スキーマ
メニュー スキーマの完全なリストはこちらで確認できます。
FoodMenuFeed
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
data | オブジェクトの配列(MenuComponent) |
MenuComponent
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
| oneOf(type) | この oneOf のフィールドは 1 つだけ設定できます。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
menu_id | 文字列 | 必須 | パートナー フィード内のメニューを一意に識別するパートナーからの不透明な文字列。必須。 |
merchant_ids | 文字列の配列 | 必須 | メニューが適用される販売者。注: このフィールドは繰り返し指定できるため、チェーン店は複数の店舗(それぞれが個別の販売者)で同じメニューを共有できます。必須。 |
display_name | object(TextField) | ユーザーがメニューを閲覧しているときにメニューを識別できる名前。省略可。 | |
language | 文字列 | メニューに含まれるテキストラベルに関連付けられたデフォルトの言語コード。「en-US」や「sr-Latn」などの BCP-47 言語コードが想定されます。詳細については、http://www.unicode.org/reports/tr35/#Unicode_locale_identifier をご覧ください。省略可。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
text | オブジェクトの配列(LocalizedText) | 必須 | 言語 / 地域ごとのテキスト値。 サポートする言語 / 地域が 1 つだけの場合は、各テキスト内の language_code を設定する必要はありません。言語はメニューのデフォルトの言語から推測されます。複数のテキストが異なるロケールにまたがっている場合は、各テキストに language_code を設定する必要があります。リストの最初のテキストが優先される表現とみなされます。必須。 |
LocalizedText
特定の言語のテキストのローカライズされたバリエーション。
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
text | 文字列 | 以下の [language_code][google.type.LocalizedText.language_code] に対応する言語のローカライズされた文字列。 | |
language_code | 文字列 | テキストの BCP-47 言語コード(「en-US」や「sr-Latn」など)。詳細については、http://www.unicode.org/reports/tr35/#Unicode_locale_identifier をご覧ください。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
menu_section_id | 文字列 | 必須 | パートナー フィード内の MenuSection を一意に識別するパートナーからの不透明な文字列。必須。 |
display_name | object(TextField) | 必須 | ユーザーがメニューを閲覧しているときに MenuSection を識別できる名前。必須。 |
description | object(TextField) | メニュー セクションの説明。 省略可。 | |
images | オブジェクトの配列(Image) | メニュー セクションの画像。省略可。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
uri | 文字列 | 必須 | 画像の生ピクセルを含む URL。必須。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
menu_item_id | 文字列 | 必須 | パートナー フィード内の MenuItem を一意に識別するパートナーからの不透明な文字列。必須。 |
display_name | object(TextField) | 必須 | ユーザーがメニューを閲覧しているときに MenuItem を識別できる名前。必須。 |
description | object(TextField) | メニュー項目の説明。省略可。 | |
images | オブジェクトの配列(Image) | メニュー項目の画像。省略可。 | |
| oneOf(pricing) | 必須 | この oneOf のフィールドは 1 つだけ設定できます。 |
item_attributes | object(MenuItemAttributes) | このメニュー項目の属性。省略可。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
offers | オブジェクトの配列(Offer) | 必須 | 可能なオファーのリスト。必須。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
price | object(Money) | 次の場合は無効となり、メニュー アイテムは削除されます。 通貨コードがなく、単位またはナノ秒、あるいはその両方がある価格: price {units: 100, nanos: 1000000} price {units: 100} price {nanos: 1000000} 通貨コードが無効で、単位またはナノ秒、あるいはその両方がある価格: price {currency_code: 'gXYZ', units: 100, nanos: 1000000} price {currency_code: 'gXYZ', units: 100} price {currency_code: 'gXYZ', nanos: 1000000} 通貨コードはあるが、単位またはナノ秒が無効な価格 price {currency_code: 'USD', units: 100, nanos: -100} price {currency_code: 'USD', units: -100, nanos: 100} |
金額
金額をその通貨タイプで表します。
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
currency_code | 文字列 | ISO 4217 で定義されている 3 文字の通貨コード。 | |
units | 文字列 | 金額の整数部分。たとえば、currencyCode が "USD" の場合、1 単位は 1 米ドルです。 | |
nanos | 数値 | 金額のナノ単位(10 のマイナス 9 乗)の数。値は -999,999,999 以上 +999,999,999 以下でなければなりません。units が正の場合、nanos は正またはゼロでなければなりません。units がゼロの場合、nanos には正数、0、または負数を指定できます。units が負の場合、nanos は負数または 0 を指定します。たとえば、$-1.75 は units = -1、nanos = -750,000,000 と表されます。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
menu_item_option_ids | 文字列の配列 | 必須 | このメニュー項目に適用可能なメニュー項目オプションの ID。必須。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
number_of_servings | 数値 | 特定のメニュー項目で利用可能なサービングの数。省略可。 | |
nutrition_information | object(NutritionInformation) | アイテムのすべての栄養情報(カロリー、脂肪含有量など)を説明します。省略可。 | |
suitable_diets | enum(DietaryRestriction) の配列 | このメニュー アイテムが準拠している食事制限。省略可。 | |
additive | オブジェクトの配列(Additive) | このメニュー項目の添加物。省略可。 | |
allergen | オブジェクトの配列(Allergen) | このメニュー項目のアレルゲン。省略可。 | |
packaging_deposit_info | object(DepositInfo) | このメニュー項目のパッケージとリサイクルに関する情報。省略可。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
energy | object(NutritionValue) | 1 食分の食品の栄養エネルギー量。カロリーまたはキロジュールで定義できます。省略可。 | |
sodium_content | object(NutritionValue) | ナトリウム含有量(グラムまたはミリグラム単位)。省略可。 | |
serving_size | 数値 | 栄養価が適用されるサービングの数。省略可。 | |
description | object(TextField) | 栄養成分情報。自由形式で指定します。例: 「保存料が含まれています」。省略可。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
| oneOf(value) | この oneOf のフィールドは 1 つだけ設定できます。 | |
unit | enum(NutritionValueUnit) | 必須 | パートナーから指定された金額に関連付けられている単位。各栄養価の単位がその値のタイプに適合するように、フィードを検証します。たとえば、NutritionalInformation のエネルギー プロパティには ENERGY_CALORIES と ENERGY_KILOJOULES のみが想定されます。必須。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
min | 数値 | 必須 | 栄養価の最小量。必須。 |
max | 数値 | 必須 | 栄養価の最大量。必須。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
name | object(TextField) | 必須 | 添加物の説明テキスト(例: 「保存料」)。必須。 |
containment_level_code | enum(ContainmentLevelCode) | MenuItem にこの添加物が含まれているか、含まれている可能性があるか、含まれていないか。 デフォルトは contains です。省略可。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
allergen_type_code | enum(AllergenTypeCode) | 必須 | アレルゲンの種類。必須。 |
containment_level_code | enum(ContainmentLevelCode) | MenuItem にこのアレルゲンが含まれているか、含まれている可能性があるか、含まれていないか。 デフォルトは contains です。省略可。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
deposit_code | enum(DepositCode) | 使用するデポジット戦略(「再利用可能」など)。省略可。 | |
deposit_value | object(Money) | 商品を適切に預けた場合に払い戻される金額。 省略可。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
menu_item_option_id | 文字列 | 必須 | パートナー フィード内の MenuItemOption を一意に識別するパートナーからの不透明な文字列。必須。 |
value | object(MenuItemOptionProperty) | 必須 | オプションのプロパティと値(例: サイズ: S)。 必須。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
property_type | enum(PropertyType) | 必須 | このオプション プロパティの型。 必須。 |
| oneOf(value) | 必須 | この oneOf のフィールドは 1 つだけ設定できます。 |
NutritionValueUnit
| 名前 | 説明 |
|---|---|
NUTRITION_VALUE_UNIT_UNSPECIFIED | 使用しない。栄養価の単位が明示的に設定されていません。 |
ENERGY_CALORIES | メニュー項目のエネルギー量を表す単位。 |
ENERGY_KILOJOULES | |
WEIGHT_MILLIGRAMS | メニュー項目に含まれる物質の量を重量で表すために使用される単位。 |
WEIGHT_GRAMS |
DietaryRestriction
食品の準備中に遵守された食事制限またはガイドラインを示します。
| 名前 | 説明 |
|---|---|
DIET_UNSPECIFIED | 使用しない。食事制限が明示的に指定されていません。 |
DIET_DIABETIC | |
DIET_GLUTEN_FREE | |
DIET_HALAL | |
DIET_HINDU | |
DIET_KOSHER | |
DIET_LOW_CALORIE | |
DIET_LOW_FAT | |
DIET_LOW_LACTOSE | |
DIET_LOW_SALT | |
DIET_VEGAN | |
DIET_VEGETARIAN |
ContainmentLevelCode
食品アイテムに特定の属性(アレルギー物質や添加物など)がどの程度含まれているかを示します。
| 名前 | 説明 |
|---|---|
CONTAINMENT_LEVEL_CODE_UNSPECIFIED | 使用しない。封じ込めレベルコードが明示的に指定されていません。 |
CONTAINMENT_LEVEL_CODE_CONTAINS | |
CONTAINMENT_LEVEL_CODE_DOES_NOT_CONTAIN | |
CONTAINMENT_LEVEL_CODE_MAY_CONTAIN |
AllergenTypeCode
GS1 から派生したアレルゲン タイプ: http://gs1.org/voc/AllergenTypeCode
| 名前 | 説明 |
|---|---|
ALLERGEN_TYPE_CODE_UNSPECIFIED | 使用しない。アレルゲン タイプコードが明示的に指定されていません。 |
ALLERGEN_TYPE_CODE_ALMONDS | |
ALLERGEN_TYPE_CODE_ALPHA_ISOMETHYL_IONONE | |
ALLERGEN_TYPE_CODE_ALCOHOL | |
ALLERGEN_TYPE_CODE_AMYL_CINNAMAL | |
ALLERGEN_TYPE_CODE_ANISE_ALCOHOL | |
ALLERGEN_TYPE_CODE_BARLEY | |
ALLERGEN_TYPE_CODE_BENZYL_ALCOHOL | |
ALLERGEN_TYPE_CODE_BENZYL_BENZOATE | |
ALLERGEN_TYPE_CODE_BENZYL_CINNAMATE | |
ALLERGEN_TYPE_CODE_BENZYL_SALICYLATE | |
ALLERGEN_TYPE_CODE_BRAZIL_NUTS | |
ALLERGEN_TYPE_CODE_BUTYLPHENYL_METHYLPROPIONATE | |
ALLERGEN_TYPE_CODE_CARROTS | |
ALLERGEN_TYPE_CODE_CASHEW_NUTS | |
ALLERGEN_TYPE_CODE_CELERY | |
ALLERGEN_TYPE_CODE_CEREALS_CONTAINING_GLUTEN | |
ALLERGEN_TYPE_CODE_CINNAMAL | |
ALLERGEN_TYPE_CODE_CINNAMYL_ALCOHOL | |
ALLERGEN_TYPE_CODE_CITRAL | |
ALLERGEN_TYPE_CODE_CITRONELLOL | |
ALLERGEN_TYPE_CODE_COCOA | |
ALLERGEN_TYPE_CODE_CORIANDER | |
ALLERGEN_TYPE_CODE_CORN | |
ALLERGEN_TYPE_CODE_COUMARIN | |
ALLERGEN_TYPE_CODE_CRUSTACEANS | |
ALLERGEN_TYPE_CODE_EGGS | |
ALLERGEN_TYPE_CODE_EUGENOL | |
ALLERGEN_TYPE_CODE_EVERNIA_FURFURACEA | |
ALLERGEN_TYPE_CODE_EVERNIA_PRUNASTRI | |
ALLERGEN_TYPE_CODE_FARNESOL | |
ALLERGEN_TYPE_CODE_FISH | |
ALLERGEN_TYPE_CODE_GERANIOL | |
ALLERGEN_TYPE_CODE_GLUTEN | |
ALLERGEN_TYPE_CODE_HAZELNUTS | |
ALLERGEN_TYPE_CODE_HEXYL_CINNAMAL | |
ALLERGEN_TYPE_CODE_HYDROXYCITRONELLAL | |
ALLERGEN_TYPE_CODE_HYDROXYISOHEXYL_3_CYCLOHEXENE_CARBOXALDEHYDE_ISOEUGENOL_LIMONENE_LINAL | |
ALLERGEN_TYPE_CODE_KAMUT | |
ALLERGEN_TYPE_CODE_LACTOSE | |
ALLERGEN_TYPE_CODE_LUPINE | |
ALLERGEN_TYPE_CODE_MACADAMIA_NUTS | |
ALLERGEN_TYPE_CODE_METHYL_2_OCTYNOATE | |
ALLERGEN_TYPE_CODE_MILK | |
ALLERGEN_TYPE_CODE_MOLLUSCS | |
ALLERGEN_TYPE_CODE_MUSTARD | |
ALLERGEN_TYPE_CODE_NO_DECLARED_ALLERGENS | |
ALLERGEN_TYPE_CODE_OAT | |
ALLERGEN_TYPE_CODE_PEANUTS | |
ALLERGEN_TYPE_CODE_PEAS | |
ALLERGEN_TYPE_CODE_PECAN_NUTS | |
ALLERGEN_TYPE_CODE_PISTACHIOS | |
ALLERGEN_TYPE_CODE_POD_FRUITS | |
ALLERGEN_TYPE_CODE_QUEENSLAND_NUTS | |
ALLERGEN_TYPE_CODE_RYE | |
ALLERGEN_TYPE_CODE_SESAME_SEEDS | |
ALLERGEN_TYPE_CODE_SOYBEANS | |
ALLERGEN_TYPE_CODE_SPELT | |
ALLERGEN_TYPE_CODE_SULPHUR_DIOXIDE | |
ALLERGEN_TYPE_CODE_TREE_NUTS | |
ALLERGEN_TYPE_CODE_TREE_NUT_TRACES | |
ALLERGEN_TYPE_CODE_WALNUTS | |
ALLERGEN_TYPE_CODE_WHEAT |
DepositCode
食品やボトルを正しく預ける方法を示します。
| 名前 | 説明 |
|---|---|
DEPOSIT_CODE_UNSPECIFIED | 使用しない。デポジット コードが明示的に指定されていません。 |
DEPOSIT_CODE_REUSABLE | |
DEPOSIT_CODE_RECYCLABLE |
PropertyType
オプションの対象となるプロパティのタイプ。
| 名前 | 説明 |
|---|---|
UNKNOWN_PROPERTY_TYPE | 使用しない。プロパティの型が明示的に指定されていません。 |
OPTION | 以下のより具体的なタイプに該当しない、一般的なメニュー アイテム オプションのプロパティ。プロパティが SIZE または PIZZA_SIDE タイプでない場合に使用します。 |
SIZE | サイズ(小、中、大など)のメニュー項目のオプション プロパティを示します。 |
PIZZA_SIDE | ピザ固有のプロパティ。たとえば、この MenuItemOption は、ピザの一部または全体(左側、右側、またはピザ全体のマッシュルーム トッピングなど)でのみ有効です。 |
PropertyValue
オプション プロパティの明確に定義された値。
| 名前 | 説明 |
|---|---|
UNKNOWN_PROPERTY_VALUE | 使用しない。プロパティ値が明示的に指定されていません。 |
PIZZA_SIDE_LEFT | MenuItemOption はピザの左側にのみ適用されます。 |
PIZZA_SIDE_RIGHT | MenuItemOption はピザの右側にのみ適用されます。 |
PIZZA_SIDE_WHOLE | MenuItemOption はピザ全体に適用されます。 |
type
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
menu | object(Menu) |
| |
section | object(MenuSection) |
| |
item | object(MenuItem) |
| |
option | object(MenuItemOption) |
|
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
offer_set | object(OfferSet) |
| この食品アイテムを購入できる特典。 |
menu_item_option_set | object(MenuItemOptionSet) |
| このメニュー項目の利用可能なオプション。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
amount | 数値 |
| 栄養価の量を示す単一の数値。 |
range | object(Range) |
| 栄養価の量を示す範囲。 |
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
property_val | enum(PropertyValue) |
| オプション プロパティの明確に定義された値。現在、property_type が PIZZA_SIDE の場合にのみ想定されます。 |
text_val | object(TextField) |
| プロパティの値の自由形式のテキスト。property_type が OPTION と SIZE の場合に想定されます。 |