v1 在庫スキーマ

食品カタログ フィードは、schema.org の DataFeed エンティティに基づいています。食品カタログ フィードは、レストランの住所、メニュー、場所などのレストランのロケール情報と、レストランのサービスの詳細(配送料、配達地域、および以下で指定するその他のアイテム)で構成されます。

DataFeed には要素のコレクションが含まれ、各要素は schema.org ボキャブラリで表現される 1 つのアイテムを表します。DataFeed タイプを使用すると、すべての構造化データを JSON-LD 形式で公開できます。

この仕様を使用してフィードを作成する方法については、在庫の統合の概要をご覧ください。

DateTime 形式と Time 形式

DateTime は schema.org タイプに基づいています。特に明記されていない限り、ISO 8601 形式に従い、日付、時刻、タイムゾーンを含める必要があります。DateTime には次の構文を使用します。

// DateTime format:
YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]

次に例を示します。

2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z  // UTC time zone. The optional "Z" suffix represents the UTC time zone.

Time も特定のレストランまたはサービスの場所のタイムゾーンの現地時間です。これも schema.org のタイプに基づいており、ISO 8601 形式に従う必要があります。Time の構文は次のとおりです。

// Time format:
THH:MM:SS

次に例を示します。

T08:08:00 // 8:08 AM

DateTime または Time を指定するときは、次の点に注意してください。

  • 時刻の前にある「T」接頭辞は、この形式の一部であり必須です。
  • DATETIME にはタイムゾーンを指定する必要があります。TIME では不要です。
  • 時刻はレストランまたはサービスの現地時間で指定する必要があります。

封筒

食品カタログ フィードの開始コードには「エンベロープ」セクションを含める必要があります。

「エンベロープ」は各フィードの最上位の構造であり、次のプロパティを持つ DataFeed である必要があります。

プロパティ タイプ 必要性 説明
@context URL 必須 使用中のコンテキスト。通常は http://schema.googleapis.com です。
@type テキスト 必須 常に「DataFeed」です。
dateModified DateTime 必須

データフィードの最後に変更された DateTime(ISO 8601 形式)。

このフィード内の商品アイテムが変更された日時(ISO_OFFSET_DATE_TIME 形式)。このフィールドがない場合、更新時刻は Google サーバーで push メッセージが受信された(またはクロールが行われた)時刻とみなされます。

push とクロールを併用している場合は、これを実装することを強くおすすめします。このタイムスタンプは、タイムゾーンとミリ秒単位で指定します。例: 2016-12-28T06:30:00:123-07:00

バッチフィードでは、エンティティのバージョニングはフィードのエンベロープの dateModified フィールドで決定されます。

dataFeedElement MenuRestaurant、または Service の配列 必須 このフィードに含まれる 1 つ以上のアイテム。詳細については、以下をご覧ください。

次の例は、エンベロープを示しています。

{
  "@context": "http://schema.googleapis.com",
  "dateModified": "2016-12-28T06:30:00:123-07:00",
  "@type": "DataFeed",
  "dataFeedElement": [
    /* All items that are part of this feed go here */
  ]
}

AdditiveDetails

このタイプを使用するには、gs1 コンテキストを追加します。 "@context": ["http://gs1.org/voc/", "http://schema.org"]

次に、適切な MenuItem または MenuItemOption の型に FoodBeverageTobaccoProduct を追加します。

次の表に、AdditiveDetails タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「AdditiveDetails」になります。
additiveName テキスト 任意 添加物の名前。
additiveLevelOfContainment テキスト 任意 gs1:LevelOfContainmentCode に基づく封じ込めコード。 たとえば、http://gs1.org/voc/LevelOfContainmentCode-CONTAINShttp://gs1.org/voc/LevelOfContainmentCode-FREE_FROMhttp://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN です。

次の例は、AdditiveDetails タイプの使用方法を示しています。

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/8",
  "name": "Energy Drink",
  "description": "A 0.25l can of energy drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-energy-drink",
    "price": "3.49",
    "priceCurrency": "USD"
  },
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AdditiveDetails",
      "additiveName": "phosphate",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

AddOnMenuItem

MenuItem のアドオン メニュー項目に表示される食品や飲み物のアイテム。

次の表に、AddOnMenuItem タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 これは常に「AddOnMenuItem」です。
@id URL 必須 アドオン メニュー項目の一意の識別子。
name テキスト 必須 ユーザーがメニューをブラウジングしているときに AddOnMenuItem を識別するテキスト。
description テキスト 任意 アドオンのメニュー項目の説明。
image URL 任意

次のガイドラインに一致するアドオン メニュー項目の画像。

  • アスペクト比 3:2
  • >
  • 最小解像度 600 x 400 ピクセル、72 dpi
  • >
  • 推奨解像度 1400x960 ピクセル、72 dpi
offers Offer の配列 必須*

この AddOnMenuItem を提供するための 1 つ以上のオファー。

この AddOnMenuItem を利用できるタイミングと価格を記述します。特定の時点で有効なオファーは 1 つのみです。時間帯によって価格や在庫状況が変動する可能性がある場合は、有効な特典を多数設定できます。アドオンまたはアイテムが、基本属性またはアドオン アイテム自体のバリエーションによって異なっている場合(アドオンとして小、中、大のフライドポテトなど)は、hasMenuItemOption プロパティを使用します。

Offer.eligibleQuantity のデフォルトは、最小値は 0、最大値は 1 です。

AddOnMenuItem では次の Offer プロパティが使用されます。

  • Offer.skuが必要です
  • Offer.priceが必要です
  • Offer.priceCurrencyが必要です
  • Offer.availabilityStarts(省略可)
  • Offer.availabilityEnds(省略可)
  • Offer.availableDay(省略可)
  • Offer.validFrom(省略可)
  • Offer.validThrough(省略可)
  • Offer.eligibleQuantity(省略可)
  • Offer.inventoryLevel(省略可)
hasMenuItemOptions MenuItemOption の配列 必須*

このアドオン メニュー項目のアドオン アイテム自体のバリエーション(アドオンとして小、中、大のフライドポテトなど)を記述する基本属性の配列。オプションを使用して、このアドオン メニュー項目に使用できるさまざまなバリエーションを指定します。これが発生するシナリオは 2 つあります。

  • 基本バリエーションはアドオン アイテム自体にあります(アドオンとして小、中、大のフライドポテトなど)。
  • このアドオンが関連付けられているメニュー項目の基本バリエーション(大きなピザ用のアドオンとして余分なチーズなど)
suitableForDiet RestrictedDiet の配列 任意 該当の料理が、記載されている食事制限(「GlutenFreeDiet」や「VeganDiet」など)を遵守している。これは、有効な値の列挙リストです。
nutrition NutritionInformation 任意 料理の栄養情報、特にカロリー。
menuAddOn AddOnMenuSection の配列 任意 AddOnMenuItem には、アドオンとして追加できる許可された項目で構成されたメニュー セクションを含めることができます。

次の例は、AddOnMenuItem を示しています。

例 1

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

例 2

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small-pepperoni-pizza",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large-pepperoni-pizza",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ],
  "menuAddOn": [
    {
      "@type": "AddOnMenuSection",
      "name": "Choice of toppings",
      "@id": "https://www.example.com/1089/addon/1",
      "hasMenuItem": [
        {
          "@type": "AddOnMenuItem",
          "@id": "https://www.example.com/1089/addon/1/a",
          "name": "Shrimp",
          "hasMenuItemOptions": [
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],
              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-small",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-large",
                "price": "2.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-small",
                "price": "1.50",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-large",
                "price": "2.50",
                "priceCurrency": "USD"
              }
            }
          ]
        }
      ]
    }
  ]
}

AddOnMenuSection

メニュー項目のアドオン メニュー セクションとしての食品や飲料項目のサブグループ。

次の表に、AddOnMenuSection タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「AddOnMenuSection」です。
@id URL 必須 メニュー セクションの一意の識別子。
name テキスト 必須 ユーザーがメニューをブラウジングしているときに AddOnMenuSection を識別できるテキスト。
description テキスト 任意 メニュー セクションの説明。
eligibleQuantity QuantitativeValue 任意 このメニュー セクションでアドオンとして許可されているアイテムの数を示します。このフィールドを使用して、ピザに選択できるトッピングの最小数と最大数など、アドオンの数を制限できます。
image URL 任意 メニュー セクションの画像。
hasMenuItem AddOnMenuItem の配列 必須* AddOnMenuSection に含まれるアドオン メニュー項目。
offers Offer の配列 任意

Offer.availabilityStartsOffer.availabilityEnds を使用して、この AddOnMenuSection が使用可能な期間を指定します。

AddOnMenuSection で使用される Offer プロパティを以下に示します。

  • Offer.availabilityStarts(省略可)
  • Offer.availabilityEnds(省略可)
  • Offer.availableDay(省略可)
  • Offer.validFrom(省略可)
  • Offer.validThrough(省略可)
hasMenuSection AddOnMenuSection の配列 必須* アドオン メニューの論理的なサブグループ化(ディナー、前菜、魚料理など)。
defaultOption AddOnMenuItem の配列 任意

AddOnMenuSection のユーザーに対してデフォルトで事前選択されるアドオン メニュー項目。ユーザーは最終的な選択を変更できます。defaultOption が指定されていない場合、AddOnMenuItem は事前に選択されません。

AddOnMenuItem オブジェクトは、AddOnMenuSectionhasMenuItem に存在している必要があります。

defaultOption の数は AddOnMenuSection の最大 eligibleQuantity を超えることはできません。

numberOfFreeAddOns Number 任意 ユーザーが無料で選択できるアドオンの数を示します。

次の例は、AddOnMenuSection オブジェクトです。

例 1

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

例 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

例 3

「Cheese Sandwich」メニュー項目には「Choice of Cheese」AddOnMenuSection があり、デフォルトでは「Swiss」と「Mozzarella」があらかじめ選択されています。

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "defaultOption": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a"
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b"
    }
  ],
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozzarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

AdvanceServiceDeliveryHoursSpecification

ユーザーが宅配とテイクアウトの事前注文をスケジュールするフルフィルメント時間を表します。

通常、opens の値は closes の値よりも小さくなります。opens プロパティと closes プロパティを使用する場合は、次のガイドラインが適用されます。

  • AdvanceServiceDeliveryHoursSpecification では opens プロパティと closes プロパティは省略可能ですが、含めることを強くおすすめします。
  • 時刻はサービスの現地時間で指定する必要があります。opens または closes の値にタイムゾーンを含めないでください。指定したタイムゾーンは無視されます。
  • openscloses が明示的に指定されていない場合、いつでも事前注文が利用可能であるとみなされます。
  • openscloses が同じ場合、事前注文は利用できないとみなされます。
  • openscloses より大きい場合、終了時刻は翌日であると解釈されます。たとえば、営業時間が 1 月 1 日午後 5 時に設定され、閉店時間が午前 2 時である場合、レストランは 1 月 2 日の午前 2 時に閉店すると解釈されます。
  • openscloses は、将来の時間帯を示します。closes は排他的です。たとえば、opens が午前 10 時、closes が午後 4 時で、serviceTimeInterval が 15 分の場合、最初の時間枠は午前 10 時に開始し、最後の時間枠は午後 3 時 45 分に開始されます。

次の表に、AdvanceServiceDeliveryHoursSpecification タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 これは常に「AdvanceServiceDeliveryHoursSpecification」になります。
validFrom DateTime 条件

ユーザーの事前注文を処理できる開始日。例: "2017-05-01T00:00:00-07:00"

このプロパティが設定されていない場合は、毎日有効とみなされます。validFrom プロパティと validThrough プロパティは存在しないか、一緒に存在している必要があります。

この型が Service レベルで specialOpeningHoursSpecification として指定されている場合、AdvanceServiceDeliveryHoursSpecification のこの validFrom プロパティは必須です。

詳細については、 DateTime 形式と Time 形式をご覧ください。

validThrough DateTime 任意

ユーザーの事前予約注文を処理できない終了日。例: "2018-12-01T00:00:00-07:00"

このプロパティが設定されていない場合は、毎日有効とみなされます。validFrom プロパティと validThrough プロパティは存在しないか、一緒に存在している必要があります。

この型が Service レベルで specialOpeningHoursSpecification として指定されている場合、AdvanceServiceDeliveryHoursSpecificationvalidThrough プロパティは必須です。

validThrough の時間は含まれません。たとえば、その時刻が午後 6 時に設定されている場合、この時刻は午後 5:59:59 まで有効です。

詳細については、DateTime 形式と Time 形式をご覧ください。

opens Time 任意

宅配またはテイクアウトの時間枠に適用されます。

ユーザーの予約注文を処理できる特定の時刻。たとえば、午前 6:30 は「T06:30:00」になります。

サービス提供時刻は現地時間で指定する必要があります。opens の値にタイムゾーンを含めないでください。タイムゾーンが指定された場合、Google はこの情報を無視します。

詳細については、DateTime 形式と Time 形式をご覧ください。

closes Time 任意

宅配またはテイクアウトの時間枠に適用されます。

ユーザーの事前注文を処理できない特定の時間帯。たとえば、午後 9 時は「T21:00:00」になります。closes> は排他的であるため、serviceTimeInterval が 15 分の場合、これを午後 9 時に設定すると、使用可能な最後の時間枠は午後 8 時 45 分に開始されます。

時刻はサービス提供地域の現地時間で指定する必要があります。closes の値にタイムゾーンを含めないでください。タイムゾーンが指定された場合、Google はこの情報を無視します。

詳細については、DateTime 形式と Time 形式をご覧ください。

dayOfWeek DayOfWeek の配列 任意

事前配送が可能な曜日有効な値は次のとおりです。

  • 「月曜日」
  • 「火曜日」
  • 「水曜日」
  • 「木曜日」
  • 「金曜日」
  • 「土曜日」
  • 「日曜日」

曜日を指定しない場合、AdvanceServiceDeliveryHoursSpecification はすべての日付に適用されます。

serviceTimeInterval Duration 必須

連続する 2 つのサービス提供時刻の間隔。

たとえば、openscloses が午前 8 時と午後 8 時で、serviceTimeInterval が 15 分の場合、ユーザーはフルフィルメント時間(午前 8 時、午前 8 時 15 分、午前 8 時 30 分、午前 8 時 45 分など)を午後 8 時まで選択できます。

Duration は ISO 8601 の期間で指定する必要があります。たとえば、"P15M" は 15 分間隔を意味します。

advanceBookingRequirement QuantitativeValue 必須

注文時刻から事前注文を処理できる時間(分)。

QuantitativeValueminmax の値は分数に設定し、unitCode は「MIN」に設定する必要があります。

たとえば、事前注文のフルフィルメントに 60 分以上必要で、2 日以上後の注文の処理が制限されている場合、min 値は 60、max 値は 2,880 になります。

次の例は、AdvanceServiceDeliveryHoursSpecification タイプの使用方法を示しています。

例 1

{
  "@type": "AdvanceServiceDeliveryHoursSpecification",
  "opens": "T10:00:00",  // Delivery between 10AM and 7:59:59PM
  "closes": "T20:00:00",
  "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601)
  "advanceBookingRequirement": {
    "minValue": 60,   // The slot should be at least 60 mins away
    "maxValue": 8640, // but not more than 6 days away
    "unitCode": "MIN"
  }
}

AllergenDetails

このタイプを使用するには、gs1 コンテキストを追加します。 "@context": ["http://gs1.org/voc/", "http://schema.org"]

次に、適切な MenuItem または MenuItemOption の型に FoodBeverageTobaccoProduct を追加します。

次の表に、AllergenDetails タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「AllergenDetails」になります。
allergenType テキスト 任意 gs1:AllergenTypeCode ごとのアレルゲンの種類。例: http://gs1.org/voc/AllergenTypeCode-PEANUTS
allergenLevelOfContainmentCode テキスト 任意 gs1:LevelOfContainmentCode に基づく封じ込めコード。 たとえば、http://gs1.org/voc/LevelOfContainmentCode-CONTAINShttp://gs1.org/voc/LevelOfContainmentCode-FREE_FROMhttp://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN です。

次の例は、AllergenDetails タイプの使用方法を示しています。

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/6",
  "name": "Strawberry joghurt drink",
  "description": "A 0.5l bottle of strawberry joghurt drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-joghurt-drink",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

DeliveryChargeSpecification

次の表に、DeliveryChargeSpecification タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「DeliveryChargeSpecification」になります。
@id URL 任意 送料の仕様の識別子。
price Number 必須 送料の合計を数値のみで指定します。通貨記号の代わりに通貨の種類を指定するには、priceCurrency プロパティを使用します。(例: 通貨記号なしの「6.00」)。
priceCurrency テキスト 必須 3 文字の ISO 4217 通貨コードを指定します。例: 「USD」
eligibleTransactionVolume PriceSpecification 任意 この配信料金の指定が有効なトランザクション量(金額単位)。たとえば、最小購入量を示したり、一定の注文数を超えると追加料金なしで配送可能であることを示したりします。
eligibleQuantity QuantitativeValue 任意 配送料が有効な注文数量の測定間隔と測定単位。たとえば、特定の運賃が特定の数量に対してのみ有効であることを指定できます。
eligibleRegion GeoShapePlace、または GeoCircle の配列 任意 特典または配送料の仕様が有効な地政学的な地域の場所、または GeoShape/GeoCircle。このプロパティは、送料が地域によって異なる場合にのみ使用してください。
validFrom DateTime 任意 指定した配送料が有効になる日時(タイムゾーンを含む)。例: "2017-05-01T06:30:00-07:00"詳細については、DateTime 形式と Time 形式をご覧ください。
validThrough DateTime 任意 指定した配送料金が無効になる日時(タイムゾーンを含む)。例: "2017-05-01T06:30:00-07:00"validThrough の時刻は含まれません。たとえば、この時刻が午後 6 時に設定されている場合、この時刻は午後 5:59:59 まで有効です。詳細については、DateTime 形式と Time 形式をご覧ください。

次の例は、DeliveryChargeSpecification 要素を示しています。

例 1

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}

例 2

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

例 3

"priceSpecification": [{
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
    "price": "8.00", // Charges $8 for area5
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00",
      "priceCurrency": "USD"
    },
    "eligibleRegion": [ // area5
      {
        "@type": "GeoCircle",
        "geoMidpoint": {
          "@type": "GeoCoordinates",
          "latitude": "37.7392607",
          "longitude": "-122.3895522"
        },
        "geoRadius": "4505"
      }
    ]
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
    "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00", // Minimum order price for delivery is $20
      "priceCurrency": "USD"
    }
  }
]

"@type": ["DeliveryChargeSpecification"] に加えて、UnitPriceSpecification を使用してオブジェクトを拡張できます。

"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]

この拡張機能では、パーセンテージで計算される送料に必要な 2 つのプロパティが追加されています。

プロパティ タイプ 必要性 説明
referenceQuantity QuantitativeValue 必須 特定の価格が適用される参照数量。たとえば、referenceQuantity の値が 10 で、unitCode が「P1」の場合、結果は注文額の 10% になります。現時点では unitCode「P1」のみがサポートされています。
basePrice Number 任意 referenceQuantity に加算される基本料金。たとえば、referenceQuantity が 10 で、unitCode が「P1」で basePrice が 5(USD)の場合、$5 + 注文額の 10% になります。デフォルト値は 0 です。

配送料の例

Google では、Service エンティティの Offer.PriceSpecification を使用して、ユーザーにさまざまな料金を事前に指定できます。

現在、エンドツーエンドの注文でサポートされている DeliveryChargeSpecification は 1 つのみです。すべての種類の料金を 1 つの DeliveryChargeSpecification に結合します。

地域、距離、注文額に基づいて配送料を指定する方法については、サービス フィードの例をご覧ください。

料金が発生しない場合、Offer.PriceSpecification は省略されます。

  • 例 1: 配送料がカート小計の 5% である
  • 例 2: 配送料が 5 ドル
  • 例 3: 送料が 5 ドル + カート小計の 10%
  • 例 4: 配送料が $5、手荷物料金が $0.1
  • 例 5: カート小計の手数料が 5%、手数料が 2% の場合
  • 例 6: 1 km の距離を移動すると配送料が 5 ドル、さらに 1 ドルがかかる

例 1

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

例 2

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

例 3

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "10.00", // 10%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "5.00" // User always pays $5 in addition to 10%
  }
]

例 4

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }

例 5

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]

例 6

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "basePrice": 5.00, // User always pays $5
    "price": 1.00, // An additional $1.00 is added per 1km
    "priceCurrency": "USD",
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "unitCode": "MTR", // MTR == meter
      "value": "1000.0" // 1km
    }
  }
]

GeoCircle

次の表に、GeoCircle タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「GeoCircle」です。
geoMidpoint GeoCoordinates 必須 GeoCircle の中心の GeoCoordinates を示します。
geoRadius Number 必須 GeoCircle のおおよその半径(メートル単位)を示します。

次の例は、GeoCircle 要素を示しています。

{
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": "37.7392607",
    "longitude": "-122.3895522"
  },
  "geoRadius": "4505"
}

GeoCoordinates

次の表に、GeoCoordinates タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「GeoCoordinates」です。
latitude Number 必須

緯度。値は -90 ~ 90 の範囲に制限されます。指定された値が -90 未満の場合は -90 に設定され、90 より大きい値は 90 に設定されます。

精度は小数点以下 5 桁以上にする必要があります。

longitude Number 必須

経度。-180 ~ 180 の範囲外の値は、範囲内に収まるように折り返します。たとえば、-190 の値は 170 に変換されます。値 190 は -170 に変換されます。これは経度が地球を一周しているという事実を反映しています。

精度は小数点以下 5 桁以上にする必要があります。

次の例は、GeoCoordinates 要素を示しています。

"geo": {
  "@type": "GeoCoordinates",
  "latitude": "35.7392607",
  "longitude": "-120.3895522"
}

GeoShape

次の表に、GeoShape タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 これは常に「GeoShape」です。
polygon テキストの配列 必須

3 つ以上のスペースで区切られたポイントのシリーズとして表現されるポリゴンまたはマルチポリゴン。最初と最後の点を同じにすることをおすすめしますが、必須ではありません。

ポリゴンまたはマルチポリゴン内の各ポイントは、緯度ポイントの後に経度ポイントが続くことで定義されます。また、反時計回りの方向にポイントを指定する必要があります。

ほとんどの場合、ポリゴンは 1 つだけです。より複雑なユースケースについては、配達サービス提供地域のドキュメントをご覧ください。

次の例は、GeoShape 要素を示しています。

例 1

{
  "@type": "GeoShape", // area4
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
},

例 2

{
  "@type": "GeoShape", // A service area with a hole.
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”,
               “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”]
},

例 3

{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "areaServed": [
    {
      "@type": "GeoShape",  // Richmond District delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474"
    },
    {
      "@type": "GeoShape",  // Haight-Ashbury delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417"
    }  ],
...
},

次の表に、Menu タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「メニュー」です。
@id URL 必須 メニューの一意の識別子。
name テキスト 任意 ユーザーがメニューをブラウジングしているときに Menu を識別できるテキスト。
description テキスト 任意 メニューの説明。
disclaimer MenuDisclaimer 任意 メニューの免責条項。例: 栄養情報の開示、アレルゲンの開示。
hasMenuSection 単一のオブジェクトまたは MenuSection の配列 任意 メニューの論理的なサブグループ化(ディナー、アペタイザー、魚料理など)。
hasMenuItem 単一のオブジェクトまたは MenuItem の配列 任意 Menu に含まれる MenuItem オブジェクト(通常は MenuMenuSections で分割されていない場合)。
inLanguage テキスト 任意 メニュー コンテンツの言語(IETF BCP 47 標準の言語コード)。例: 「en-US」。

次の例は、Menu タイプの使用方法を示しています。

例 1

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "hasMenuSection": {
    "@type": "MenuSection",
    "@id": "http://www.provider.com/somerestaurant/menusection/1",
    "name": "Tacos",
    "description": "Tacos inspired by India cuisine.",
    "offers": {
      "@type": "Offer",
      "availabilityStarts": "T08:00:00", // Starts at 8:00AM
      "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM
    },
    "hasMenuItem": {
      "@type": "MenuItem",
      "@id": "http://www.provider.com/somerestaurant/menuitem/1",
      "name": "Aloo Gobi Taco",
      "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.",
      "offers": {
        "@type": "Offer",
        "sku": "offer-aloo-gobi-taco",
        "price": "3.50",
        "priceCurrency": "USD"
      },
      "nutrition": {
        "@type": "NutritionInformation",
        "calories": "170 Cal",
        "fatContent": "3 g",
        "fiberContent": "2 g",
        "proteinContent": "4 g"
      },
      "suitableForDiet": "http://schema.org/GlutenFreeDiet"
    }
  },
  "inLanguage": "English"
}

例 2

この例では、hasMenuItem を配列として示しています。

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Main",
      "description": "Main course",
      "image": "http://www.provider.com/somerestaurant/main_dishes.jpg",
      "hasMenuItem": [
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/1",
          "name": "Pizza",
          "description": "Pizza",
          "offers": {
            "@type": "Offer",
            "sku": "offer-pizza",
            "price": "7.49",
            "priceCurrency": "USD",
            "availabilityStarts": "T08:00:00", // Starts at 8:00AM
            "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
          }
        },
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/2",
          "name": "Pasta",
          "description": "Pasta",
          "offers": [
            {
              "@type": "Offer",
              "sku": "offer-pasta-lunch",
              "price": "7.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T08:00:00", // Starts at 8:00AM
              "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
            },
            {
              "@type": "Offer",
              "sku": "offer-pasta-dinner",
              "price": "10.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T18:00:00", // Starts at 6:00PM
              "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM
            }
          ]
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/2",
      "name": "Soups & Salads",
      "description": "Salads and a few choices of soup",
      "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/3",
        "name": "Pea Soup",
        "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-pea-soup",
          "price": "3.49",
          "priceCurrency": "USD"
        },
        "suitableForDiet": "http://schema.org/GlutenFreeDiet"
      }
    }
  ]
}

例 3

この例では、hasMenuSection を配列として示しています。

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Dinner",
      "description": "Dinner dishes",
      "hasMenuSection": [
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/2",
          "name": "Starters",
          "description": "Appetizers and such",
          "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/1",
            "name": "Potato Skins",
            "description": "Small serving of stuffed potato skins.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-potato-skins",
              "price": "7.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/3",
          "name": "Soups & Salads",
          "description": "Salads and a few choices of soup",
          "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/2",
            "name": "Pea Soup",
            "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-pea-soup",
              "price": "3.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/4",
          "name": "Steak",
          "description": "Steak Dishes",
          "image": "https://steak.com/steak_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/3",
            "name": "Sirloin",
            "description": "Sirloin steak dish.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-sirloin-steak",
              "price": "15.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/5",
      "name": "Desserts",
      "description": "Dessert dishes.",
      "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/4",
        "name": "Chocolate Pie",
        "description": "A slice of chocolate pie.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chocolate-pie",
          "price": "3.49",
          "priceCurrency": "USD"
        }
      }
    }
  ]
}

Menu エンティティのその他の例については、レストランやメニューのフィードの例をご覧ください。

次の表に、MenuDisclaimer タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「MenuDisclaimer」です。
@id URL 必須 メニューの免責条項の一意の識別子。
text テキスト 必須 免責条項のテキスト。たとえば、「成人の平均一日エネルギー摂取量は 8,700 kJ です」などです。
url URL 任意 免責条項の詳細を説明するページの URL。

次の例は、MenuDisclaimer タイプの使用方法を示しています。

{
    "@type": "Menu",
    "@id": "menu_1",
    "disclaimer": {
        "@type": "MenuDisclaimer",
        "@id": "menu_1_disclaimer_1",
        "text": "The average adult daily energy intake is 8700 kJ",
        "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html"
    }
}

メニュー内のアイテムを表すメニュー項目。次の表に、MenuItem タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「MenuItem」です。
@id URL 必須 メニュー項目の一意の識別子。
name テキスト 必須 ユーザーがメニューをブラウジングしているときに MenuItem を識別できるテキスト。
description テキスト 任意 メニュー項目の説明。
image URL 任意

メニュー項目の画像。画像に関する次のガイドラインを使用してください。

  • アスペクト比 3:2
  • 最小解像度 600 x 400 ピクセル、72 dpi
  • 推奨解像度 1400x960 ピクセル 72 dpi
menuAddOn AddOnMenuSection の配列 任意 メニュー項目にアドオンとして追加できるメニュー セクションの項目。
offers Offer の配列 必須*

この MenuItem を提供する 1 つ以上のオファー。この MenuItem を利用できる時期と価格を表します。特定の時点で有効なオファーは 1 つだけです。時間帯によって価格や在庫状況が異なる場合は、複数の商品を指定できます。基本属性(ピザのサイズなど)によって食品が異なる場合は、menuItemOption を使用します。Offer.eligibleQuantity のデフォルトは 0 で、上限はありません。

MenuItem で使用される Offer プロパティを次の表に示します。

  • Offer.skuが必要です
  • Offer.priceが必要です
  • Offer.priceCurrencyが必要です
  • Offer.availabilityStarts(省略可)
  • Offer.availabilityEnds(省略可)
  • Offer.availableDay(省略可)
  • Offer.validFrom(省略可)
  • Offer.validThrough(省略可)
  • Offer.eligibleQuantity(省略可)
  • Offer.inventoryLevel(省略可)
hasMenuItemOptions MenuItemOption の配列 必須 このメニュー項目の基本オプション/バリエーションのリスト。Options を使用して、小、中、大など、そのアイテムで利用できるさまざまな基本のバリエーションを指定する必要があります。
suitableForDiet RestrictedDiet の配列 任意 料理が記載の食事制限に準拠している(例: http://schema.org/GlutenFreeDiet、http://schema.org/VeganDiet)。これは、有効な値の列挙リストです。
nutrition NutritionInformation 任意 料理の栄養情報、特にカロリー。
hasAllergen AllergenDetails 任意 gs1:AllergenDetails あたりの料理のアレルゲンです。 このプロパティ("@context": ["http://gs1.org/voc/", "http://schema.org"])を使用するには、gs1 コンテキストを追加します。MenuItem の型に FoodBeverageTobaccoProduct を追加します。
additive AdditiveDetails の配列 任意 gs1:AdditiveDetails ごとの料理の添加物。 これは、有効な値の列挙リストです。このプロパティ("@context": ["http://gs1.org/voc/", "http://schema.org"])を使用するには、gs1 コンテキストを追加します。MenuItem の型に FoodBeverageTobaccoProduct を追加します。
packaging PackagingDetails 任意 gs1:PackagingDetails に基づく、この MenuItem のパッケージとリサイクルに関する情報。 このプロパティ("@context": ["http://gs1.org/voc/", "http://schema.org"])を使用するには、gs1 コンテキストを追加します。MenuItem の型に FoodBeverageTobaccoProduct を追加します。

次の例は、MenuItem 要素を示しています。

例 1

"hasMenuItem": {
  "@type": "MenuItem",
  "@id": "http://www.provider.com/bar/menuitem/1",
  "name": "Potato Skins",
  "description": "Small serving of stuffed potato skins.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-potato-skins",
    "price": "7.49",
    "priceCurrency": "USD"
  },
  "suitableForDiet": "http://schema.org/GlutenFreeDiet"
}

例 2

"hasMenuItem": [
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170067",
    "name": "Veg Grill Burrito",
    "offers": {
      "@type": "Offer",
      "sku": "offer-veg-grill-burrito",
      "price": "12.99",
      "priceCurrency": "USD"
    },
    "menuAddOn": {
      "@type": "AddOnMenuSection",
      "name": "Cheese",
      "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
      "eligibleQuantity":
        "@type": "QuantitativeValue",
        "minValue": 0,
        "maxValue": 2 // Maximum of 2 cheeses are allowed
      }
    }
  },
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170018",
    "name": "Chicken Taco",
    "offers": {
      "@type": "Offer",
      "sku": "offer-chicken-taco",
      "price": "6.99",
      "priceCurrency": "USD"
    }
  }
]

例 3

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

例 4

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

例 5

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/9",
  "name": "Ice Coffee",
  "offers": {
    "@type": "Offer",
    "sku": "offer-ice-coffee",
    "price": "3.99",
    "priceCurrency": "USD"
  },
  "nutrition": {
    "@type": "NutritionInformation",
    "description": "Contains preservatives and artificial flavor"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN"
    }
  ],
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ],
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.10",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
}

MenuItem エンティティのその他の例については、レストランやメニューのフィードの例をご覧ください。

料理やコンボを選ぶ際にユーザーが行う必要がある選択肢を表すオプション。ユーザーはオプションを選択する必要があります。選択しない場合、注文は無効と見なされます。たとえば、ピザの場合は小、中、大を選択します。

MenuItemOption の使用例については、MenuItemOption を使用したカスタマイズに関するガイドをご覧ください。

次の表に、MenuItemOption タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「MenuItemOption」です。
value PropertyValue 必須 オプションを表す名前と値のペアを含む PropertyValue
offers Offer の配列 必須

この MenuItemOption を提供する 1 つ以上のオファー。このメニュー項目のオプションをいつ、いくらで購入できるかを示します。 特定の時点で有効なオファーは 1 つのみです。時間帯によって価格や在庫状況が変動する可能性がある場合は、有効な特典を多数設定できます。 Offer.eligibleQuantity は使用しないでください。MenuItemOption は相互に排他的であるため、指定しても Offer.eligibleQuantity は無視されます。

MenuItemOption で使用される Offer プロパティを次の表に示します。

  • Offer.skuが必要です
  • Offer.priceが必要です
  • Offer.priceCurrencyが必要です
  • Offer.availabilityStarts(省略可)
  • Offer.availabilityEnds(省略可)
  • Offer.availableDay(省略可)
  • Offer.validFrom(省略可)
  • Offer.validThrough(省略可)
  • Offer.eligibleQuantity(省略可)
  • Offer.inventoryLevel(省略可)
menuAddOn Array of AddOnMenuSection 任意 アドオンとして追加できる、許可された項目のメニュー セクション。これは、アドオンが特定のメニュー項目オプションに固有の場合にのみ使用してください。それ以外の場合は、MenuItem.menuAddOn プロパティを使用してアドオンを提供します。
suitableForDiet RestrictedDiet の配列 任意 食事制限を遵守している食事を示す列挙リスト(「http://schema.org/GlutenFreeDiet」や「http://schema.org/VeganDiet」など)。
nutrition NutritionInformation 任意 料理の栄養情報、特にカロリー。
hasAllergen AllergenDetails 任意 gs1:AllergenDetails あたりの料理のアレルゲンです。 このプロパティ("@context": ["http://gs1.org/voc/", "http://schema.org"])を使用するには、gs1 コンテキストを追加します。MenuItemOption の型に FoodBeverageTobaccoProduct を追加します。
additive AdditiveDetails の配列 任意 gs1:AdditiveDetails ごとの料理の添加物。 これは、有効な値の列挙リストです。このプロパティ("@context": ["http://gs1.org/voc/", "http://schema.org"])を使用するには、gs1 コンテキストを追加します。MenuItemOption の型に FoodBeverageTobaccoProduct を追加します。
packaging PackagingDetails 任意 この MenuItem のパッケージとリサイクルに関する情報(gs1:PackagingDetails に準拠) このプロパティ("@context": ["http://gs1.org/voc/", "http://schema.org"])を使用するには、gs1 コンテキストを追加します。 MenuItemOption の型に FoodBeverageTobaccoProduct を追加します。

次の例は、MenuItemOption 要素を示しています。

例 1

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

例 2

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

メニューの特定のセクションを表すメニュー セクション。次の表に、MenuSection タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「MenuSection」になります。
@id URL 必須 メニュー セクションの一意の識別子。
name テキスト 必須 ユーザーがメニューをブラウジングしたときに MenuSection を識別できるテキスト。
description テキスト 任意 メニュー セクションの説明。
hasMenuSection MenuSection の配列 任意 MenuSection の論理的なサブグループ化。たとえば、ディナー メニュー セクションには、「鶏肉料理」や「ベジタリアン」などの複数の sub-MenuSections があります。
hasMenuItem MenuItem の配列 任意 MenuSection に含まれるメニュー項目。
offers Offer の配列 任意

Offer.availabilityStartsOffer.availabilityEnds を使用して、この MenuSection が提供される期間を指定します。Offer.eligibleQuantity は使用しないでください。

MenuSection で使用される Offer プロパティを次のリストに示します。

  • Offer.availabilityStarts(省略可)
  • Offer.availabilityEnds(省略可)
  • Offer.availableDay(省略可)
  • Offer.validFrom(省略可)
  • Offer.validThrough(省略可)
image URL 任意 メニュー セクションの画像。

次の例は、MenuSection エンティティを示しています。

例 1

{
  "@type": "MenuSection",
  "@id": "http://www.provider.com/bar/menusection/4",
  "name": "Steak",
  "description": "Steak Dishes",
  "image": "https://steak.com/steak_dishes.jpg",
  "hasMenuItem": {
    "@type": "MenuItem",
    "@id": "http://www.provider.com/bar/menuitem/3",
    "name": "Sirloin",
    "description": "Sirloin steak dish.",
    "offers": {
      "@type": "Offer",
      "sku": "offer-sirloin-steak",
      "price": "15.49",
      "priceCurrency": "USD"
    },
    "suitableForDiet": "http://schema.org/GlutenFreeDiet"
  }
}

例 2

"hasMenuSection": [
  {
    "@type": "MenuSection",
    "@id": "https://www.example.com/1089/categorization/25114480",
    "name": "Main Items",
    "hasMenuItem": [
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170067",
        "name": "Veg Grill Burrito",
        "offers": {
          "@type": "Offer",
          "sku": "offer-veg-grill-burrito",
          "price": "12.99",
          "priceCurrency": "USD"
        },
        "menuAddOn": {
          "@type": "AddOnMenuSection",
          "name": "Cheese",
          "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
          "eligibleQuantity":
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2 // Maximum of 2 cheeses are allowed
          }
        }
      },
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170018",
        "name": "Chicken Taco",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chicken-taco",
          "price": "6.99",
          "priceCurrency": "USD"
        }
      }
    ]
  },
  {
    "@type": "AddOnMenuSection",
    "@id": "https://www.example.com/1089/addon/1",
    "name": "AddOnCheese",
    "hasMenuItem": [
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/a",
        "name": "Swiss",
        "offers": {
          "@type": "Offer",
          "sku": "offer-swiss",
          "price": "2.99",
          "priceCurrency": "USD"
        }
      },
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/b",
        "name": "Mozarella",
        "offers": {
          "@type": "Offer",
          "sku": "offer-mozzarella",
          "price": "1.99",
          "priceCurrency": "USD"
        }
      }
    ]
  }
]

MenuSection エンティティのその他の例については、レストランやメニューのフィードの例をご覧ください。

情報" id="nutritioninformation" tabindex="-1">NutritionInformation

次の表に、NutritionInformation タイプのプロパティを示します。測定単位では大文字と小文字が区別されます。たとえば、「Cal」は指定できますが、「cal」は使用できません。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「NutritionInformation」です。
description テキスト 任意 自由形式のテキスト形式の栄養情報。たとえば、「保存料を含む」などです。
calories テキスト 任意

カロリー、kcal、kJ のカロリー数。次の形式を使用します。

number Cal_kcal_OR_kJ

例: 「240 カロリー」。

carbohydrateContent テキスト 任意

炭水化物の量(通常は g 単位)。以下の形式を使用します。

number g_OR_mg

例: 「7 g」。

cholesterolContent テキスト 任意

コレステロール量(通常は mg 単位)。以下の形式を使用します。

number g_OR_mg

例: 「12 mg」。

fatContent テキスト 任意

脂肪の量(通常は g 単位)。以下の形式を使用します。

number g_OR_mg

例: 「42 g」。

fiberContent テキスト 任意

繊維の g または mg 数。次の形式を使用します。

number g_OR_mg
proteinContent テキスト 任意

タンパク質の g または mg 数。以下の形式を使用します。

number g_OR_mg
saturatedFatContent テキスト 任意

飽和脂肪酸の g または mg 数(次の形式を使用):

number g_OR_mg
servingSize テキスト 任意 体積または質量で表した、mL、L、g、kg 単位の 1 食あたりのサイズ。
sodiumContent テキスト 任意

ナトリウムの mg または g 数(次の形式を使用):

number g_OR_mg
sugarContent テキスト 任意

以下の形式で表した、砂糖の g または mg 数:

number g_OR_mg
transFatContent テキスト 任意

トランス脂肪の g または mg 数(次の形式)。

number g_OR_mg
unsaturatedFatContent テキスト 任意

不飽和脂肪の量(通常は g 単位)。次の形式を使用します。

number g_OR_mg

次の例は、NutritionInformation 要素を示しています。

例 1

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},

例 2

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/7",
  "name": "Peach Ice Tea",
  "description": "A 0.5l bottle of peach ice tea.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-peach-ice-tea",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "nutrition": {
              "@type": "NutritionInformation",
              "description": "Contains preservatives and artificial flavor"
  }
},

特典

メニュー アイテムを提供。次の表に、Offer タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「Offer」になります。
sku テキスト 条件

オファーの一意の識別子。Offer 内で一意の任意のテキスト値を指定できます。sku の値は、購入手続きと送信で lineitemofferId として参照されます。

このプロパティは、次の特典タイプでのみ使用されます。

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
price テキスト 条件

オファーされた商品アイテムの価格。(例: 通貨記号なしの「6.00」)。

このプロパティは、次の特典タイプでのみ必須です。

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

次の特典タイプでは使用されません。

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency テキスト 条件

PriceSpecification とそのサブタイプに関連付けられている場合の価格または価格コンポーネントの通貨(3 文字の ISO 4217 形式)。

このプロパティは、次の特典タイプでのみ必須です。

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

次の特典タイプでは使用されません。

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime または Time 任意 クーポンを利用できる日時または時刻。たとえば、パンケーキが午前 7 時に提供される場合、このフィールドの値は "2017-05-01T07:00:00-07:00" のようになります。詳細については、DateTime 形式と Time 形式をご覧ください。
availabilityEnds DateTime または Time 任意 クーポンを利用できない日時または時刻。この時間帯は対象外です。たとえば、パンケーキの在庫が午前 10 時に終了する場合、最後のパンケーキは午前 9:59:59 に提供されます。このフィールドの値は「2017-05-01T10:00:00-07:00」のようになります。 詳細については、DateTime 形式と Time 形式をご覧ください。
availableDay DayOfWeek の配列 任意

この商品アイテムを購入できる曜日。指定できる値は次のとおりです。

  • 「月曜日」
  • 「火曜日」
  • 「水曜日」
  • 「木曜日」
  • 「金曜日」
  • 「土曜日」
  • 「日曜日」

曜日ごとに異なる空き時間がある場合は、複数の Offer オブジェクトを使用します。以下の例をご覧ください。

validFrom DateTime 任意

指定された価格が有効な日時(タイムゾーンを含む)。たとえば、パスタが昼食時に $8、夕食時に $10 であるとします。詳細については、DateTime 形式と Time 形式をご覧ください。

このプロパティは、次のタイプの特典で使用できます。

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

このプロパティは、次の特典タイプでは使用されません。

  • Service.Offer
validThrough DateTime 任意

指定した価格が無効になった日時(タイムゾーンを含む)。たとえば、パスタが昼食時に $8、夕食時に $10 であるとします。validThrough の時刻は含まれません。たとえば、この時刻が午後 6 時に設定されている場合、この時刻は午後 5:59:59 まで有効です。詳細については、DateTime 形式と Time 形式をご覧ください。

このプロパティは、次のタイプの特典で使用できます。

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

このプロパティは、次の特典タイプでは使用されません。

  • Service.Offer
eligibleQuantity QuantitativeValue 任意

この商品アイテムが許可される注文数量。たとえば、レストランでは 1 回の宅配でピザを 10 枚以上注文する必要があるとします。

この値は省略可能です。デフォルトでは上限はありませんが、レストランで上限を指定できます。最小制限は、ユーザーがアイテムを選択した場合にのみ適用されます。

このプロパティは、次のタイプの特典で使用できます。

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

このプロパティは、次の特典タイプでは使用されません。

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating 任意

アイテムのレビューや評価をまとめた総合評価。

このプロパティは、次のタイプの特典で使用できます。

  • AddOnMenuItem.Offer
  • MenuItem.Offer

このプロパティは、次のタイプでは使用されません。

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
inventoryLevel QuantitativeValue 任意

商品アイテムの現在のおおよその在庫状況。

このプロパティは、次のタイプの特典で使用できます。

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer

このプロパティは、次の特典タイプでは使用されません。

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification DeliveryChargeSpecification の配列または PaymentChargeSpecification の配列 任意

Service.Offer で使用する場合は、送料の詳細を示します。複数の DeliveryChargeSpecification オブジェクトが適用される場合は、最も限定的なオブジェクトが適用されます。あいまいさを避けるため、相互に排他的な DeliveryChargeSpecification オブジェクトを使用してください。

このプロパティは、次のタイプの特典で使用できます。

  • Service.Offer

このプロパティは、次の特典タイプでは使用されません。

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Restaurant ID の配列 任意

この Offer が提供されるレストランを表します。

指定しない場合、この Offer はすべてのレストランに提供されます。

このプロパティは、次のタイプの特典で使用できます。

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

このプロパティは、次の特典タイプでは使用されません。

  • Service.Offer
applicableFulfillmentMethod テキストの配列 任意

この Offer が実行されるサービスタイプを表します。有効な値は「DELIVERY」または「TAKEOUT」です。

指定しない場合、この Offer は宅配とテイクアウトの両方で処理されます。

このプロパティは、次のタイプの特典で使用できます。

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

このプロパティは、次の特典タイプでは使用されません。

  • Service.Offer
@id URL 非推奨 オファーの一意の識別子。2019 年 4 月 25 日に非推奨となりました。上記のように sku に置き換えてください。

次の例は、Offer 要素を示しています。

例 1

シンプルな特典の例を次に示します。

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD"
}

例 2

次の例は、週末の午前 8 時から午前 10 時までの空き状況を示しています。

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",  // Only available from 8-9:59:59 AM
  "availabilityEnds": "T10:00:00-07:00",
  "availableDay": ["Saturday", "Sunday"]  // Only on weekends.
}

例 3

次の例では、月曜、水曜、金曜は午前 9 時から 10 時 59 分 59 秒まで、火曜と木曜は午前 8 時 59 分 59 秒までの可用性が示されています。

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T09:00:00-07:00",
  "availabilityEnds": "T11:00:00-07:00",
  "availableDay": ["Monday", "Wednesday", "Friday"]
}, {
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/141/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",
  "availabilityEnds": "T12:00:00-07:00",
  "availableDay": ["Tuesday", "Thursday"]
}

例 4

次の例は、アドオン メニュー項目の有効な数量セットを示しています。ユーザーは、その項目の最大 2 つの部分を注文できます。

{
  "@type": "AddOnMenuItem",
  "@id": "https://www.example.com/1089/addon/a",
  "name": "Ranch",
  "offers": {
    "@type": "Offer",
    "@id": "https://www.example.com/1089/addon/a/offer",
    "price": "2.99",
    "priceCurrency": "USD"
    "eligibleQuantity": {
         "@type": "QuantitativeValue",
         "maxValue": 2
     }
  }
}

例 5

次の例は、特定の地域での宅配サービスを示しています。

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD",
  "applicableFulfillmentMethods": ["DELIVERY"],
  "offeredBy": [
    {
      "@type": "Restaurant",
      "@id": "https://www.provider.com/location/1",
    }
  ]
}

OpeningHoursSpecification

サービスの注文が利用可能になるタイミングを定義します。通常、opens の値は closes の値よりも小さくなります。opens プロパティと closes プロパティを使用する場合は、次のガイドラインが適用されます。

  • opens プロパティと closes プロパティは省略可能ですが、順序が可能な場合は指定することを強くおすすめします。営業時間を定義する際は、opens プロパティと closes プロパティを指定した ServiceDeliveryHoursSpecification を含む deliveryHours 配列を含めることをおすすめします。次に、事前注文の時間枠を限定したい場合は、独自の opens プロパティと closes プロパティを持つ AdvanceServiceDeliveryHoursSpecification オブジェクトを deliveryHours に含めます。
  • openscloses が明示的に指定されていない場合、注文サービスは毎日 24 時間利用できるとみなされます。
  • 時刻はサービスの現地時間で指定する必要があります。opens または closes の値にタイムゾーンを含めないでください。タイムゾーンが指定された場合、この情報は Google によって無視されます。
  • openscloses が同じ場合、レストランは 0 分間営業していると想定します。
  • openscloses より大きい場合、終了時刻は翌日であると解釈されます。たとえば、営業時間が 1 月 1 日午後 5 時に設定され、閉店時間が午前 2 時である場合、レストランは 1 月 2 日午前 2 時に営業終了と解釈されます。
  • closes の時間は含まれません。したがって、この注文時間枠の開始時間と終了時間がそれぞれ午前 10 時と午後 4 時に設定されている場合、最後の注文は午後 3 時 59 分 59 秒になります。

次の表に、OpeningHoursSpecification タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「OpeningHoursSpecification」になります。
@id URL 任意 OpeningHoursSpecification の識別子。
dayOfWeek DayOfWeek の配列 任意

これらの営業時間が有効な曜日。指定できる値は、「Monday」、「Tuesday」、「Wednesday」、「Thursday」、「Friday」、「Saturday」、「Sunday」です。次に例を示します。

"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]

曜日を指定しない場合、OpeningHoursSpecification はすべての日付に適用されます。

opens Time 任意

このプロパティを Restaurant 仕様で使用する場合、レストランの特定の曜日の営業時間を示します。たとえば、午前 6:30 は「T06:30:00」になります。

Service 仕様で使用する場合は、ユーザーの注文が可能な特定の時刻を示します。オンライン システムが稼働する時間帯を指定し、ユーザーが注文できるようにします。オンライン システムの開店時間と閉店時間内で、deliveryHours を使用して、ユーザーが特別な種類の配送を注文できる開店時間と閉店時間を指定できます。

時刻はサービスの現地時間で指定する必要があります。opens の値にタイムゾーンを含めないでください。タイムゾーンが指定された場合、Google はこの情報を無視します。

詳細については、DateTime 形式と Time 形式をご覧ください。

closes Time 任意

このプロパティを Service 仕様で使用する場合、ユーザーの注文を受け付けることができない特定の時間帯を示します。オンライン システムの稼働終了時刻を指定し、ユーザーが注文できるようにします。オンライン システムの開店時間と閉店時間内で、deliveryHours を使用して、ユーザーが特別な種類の配送を注文できる開店時間と閉店時間を指定できます。

時刻はサービスの現地時間で指定する必要があります。closes の値にタイムゾーンを含めないでください。タイムゾーンが指定された場合、Google はこの情報を無視します。

詳細については、DateTime 形式と Time 形式をご覧ください。

validFrom DateTime 任意

このプロパティを Restaurant 仕様で使用する場合、レストランの openscloses で指定された営業時間が有効である日付を示します。

たとえば、指定された営業時間が 2017 年全体に適用される場合は、validFrom を「2017-01-01T00:00:00-07:00」に設定し、validThrough を「2017-12-31T23:59:59-07:00」に設定します。

Service 仕様で使用する場合、validFrom はユーザーの注文が可能な開始日を示します。

このプロパティがフィードで指定されていない場合、Google は、そのレストランやサービスを毎日利用できると見なします。

日付に加えて、値の時刻とタイムゾーンの部分も必須です。

タイムゾーンには、レストランまたはサービスのタイムゾーンを使用します。

詳細については、DateTime 形式と Time 形式をご覧ください。

validThrough DateTime 任意

Restaurant で使用する場合、openscloses で指定された営業時間が無効になる日付を指定します。

たとえば、指定された営業時間が 2017 年全体に適用される場合は、validFrom を「2017-01-01T00:00:00-07:00」に設定し、validThrough を「2017-12-31T23:59:59-07:00」に設定します。

Service 仕様で使用する場合、validThrough は終了日を示します。この日を過ぎると、ユーザーは注文できなくなります。

このプロパティがフィードで指定されていない場合、Google は、そのレストランやサービスを毎日利用できると見なします。

日付に加えて、DateTime の時刻とタイムゾーンの部分が必須です。

タイムゾーンには、レストランまたはサービスのタイムゾーンを使用します。

validThrough の時間は含まれません。たとえば、その時刻が午後 6 時に設定されている場合、この時刻は午後 5:59:59 まで有効です。

詳細については、DateTime 形式と Time 形式をご覧ください。

deliveryHours ServiceDeliveryHoursSpecification の配列または AdvanceServiceDeliveryHoursSpecification の配列 条件

配達時間または持ち帰り時間の仕様。

レストランが閉まっている場合(openscloses が設定され、互いに同じである)場合を除き、このパラメータは必須です。

  • ServiceDeliveryHoursSpecification: 開店時間と閉店時間の中で、ユーザーが「できるだけ早く」注文できる「営業中」と「閉店」の時間を設定できます。
  • AdvanceServiceDeliveryHoursSpecification: 開店時間と閉店時間内に、ユーザーが予約注文を行える「営業開始」時間と「閉店」時間を設定できます。

次の例は、OpeningHoursSpecification 要素を示しています。

例 1

// Ordering times for Monday through Friday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      "@type": "AdvanceServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T12:00:00", // Advance ordering begins at noon
      "closes": "T23:59:59", // Advance ordering ends at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    },
    {
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T10:00:00", // ASAP ordering begins at 10AM
      "closes": "T14:00:00", // ASAP ordering ends at 2PM
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
},

例 2

// Ordering times for Saturday and Sunday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      // In this case advance orders are unavailable on Saturday and Sunday
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "T12:00:00", // ASAP orders start at noon
      "closes": "T23:59:59", // ASAP orders end at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
}

例 3

"hoursAvailable": {
  "@type": "OpeningHoursSpecification",
  "validFrom": "2016-02-01T00:00:00-07:00",
  "validThrough": "2016-03-01T00:00:00-07:00",
  "opens": "T08:00:00",  // Ordering begins at 8:00AM and ends at 6:00PM.
                         // ASAP and and advance orders are restricted to this
                         // time frame since the user won't be able to place
                         // orders outside of this window.
  "closes": "T18:00:00",
  "deliveryHours": {
    "@type": "ServiceDeliveryHoursSpecification",
    "deliveryLeadTime": {
      "@type": "QuantitativeValue",
      "value": "60",
      "unitCode": "MIN"
    }
  }
},

例 4

// List hours available for 2017 and 2018
"hoursAvailable": [
  {
    "@type": "OpeningHoursSpecification",
    // Array containing advance order hours for each day
    "deliveryHours": [
      {
        // Open 10:00AM to 9:29:59PM on Mondays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Monday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Tuesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Tuesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Wednesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Wednesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Thursdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "dayOfWeek": [
          "Thursday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Fridays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Friday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Saturdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Saturday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 11:00AM to 6:59:59PM on Sundays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Sunday"
        ],
        "opens": "T11:00:00",
        "closes": "T19:00:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      }
    ]
  }
],

PackagingDetails

このタイプ "@context": ["http://gs1.org/voc/", "http://schema.org"] を使用するには、gs1 コンテキストを追加します。MenuItem または MenuItemOption の型に FoodBeverageTobaccoProduct を追加します。

次の表に、PackagingDetails タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 これは常に「PackagingDetails」です。
packagingRecyclingProcessType テキスト 任意 gs1:PackagingRecyclingProcessTypeCode に基づく梱包のリサイクル プロセスのタイプ。例: http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLEhttp://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails 任意 gs1:ReturnablePackageDepositDetails に記載されている、返品可能なパッケージ デポジットの詳細。 たとえば、ボトルや缶には、返品可能な荷物のデポジットが関連付けられています。

次の例は、PackagingDetails タイプの使用方法を示しています。

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

PaymentChargeSpecification

次の表に、PaymentChargeSpecification タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「PaymentChargeSpecification」になります。
@id URL 任意 PaymentChargeSpecification の識別子。
price Number 必須 請求の合計金額。(例: 通貨記号なしの「6.00」)。
priceCurrency テキスト 必須 価格の 3 文字の ISO 4217 通貨コードを指定します。例: 「USD」
eligibleTransactionVolume PriceSpecification 任意 最小購入量を示すなど、この支払い料金の仕様が有効な取引量(金額単位)。
eligibleQuantity QuantitativeValue 任意 支払い請求が有効な注文数量。たとえば、このプロパティを使用すると、1 つの注文に必要な最小数のアイテムを指定できます。
validFrom DateTime 任意 指定した支払い料金が有効になる日時(タイムゾーンを含む)。例: "2017-05-01T07:00:00-07:00"詳細については、DateTime 形式と Time 形式をご覧ください。
validThrough DateTime 任意 指定された支払い料金が有効でない日時(タイムゾーンを含む)。例: "2017-05-01T07:30:00-07:00"validThrough の時刻は含まれません。たとえば、この時刻が午後 6 時に設定されている場合、この時刻は午後 5:59:59 まで有効です。詳細については、DateTime 形式と Time 形式をご覧ください。

次の例は、PaymentChargeSpecification 要素を示しています。

"priceSpecification": [{
  "@type": "PaymentChargeSpecification",
  "@id": "http://www.provider.com/paymentCharge/bar",
  "priceCurrency": "USD",
  "price": "6.00", // Charges $6 for processing fee
  "eligibleQuantity": {
    "@type": "QuantitativeValue",
    "minValue": 2 // Minimum of two items required
  }
}]

"@type": ["PaymentChargeSpecification"] に加えて、UnitPriceSpecification"@type": ["PaymentChargeSpecification", "UnitPriceSpecification"])を使用してオブジェクトを拡張できます。この拡張機能には、パーセンテージで計算されるサービス手数料に必要な 2 つのプロパティが追加されています。

プロパティ タイプ 必要性 説明
referenceQuantity QuantitativeValue 必須 特定の価格が適用される参照数量。たとえば、referenceQuantity の値が 10 で、unitCode が「P1」の場合、結果は注文額の 10% になります。現在サポートされているのは unitCode「P1」のみです。
basePrice Number 任意 referenceQuantity に加算される基本料金。たとえば、referenceQuantity が 10 で、unitCode が「P1」で basePrice が 5(USD)の場合、$5 + 注文額の 10% になります。デフォルト値は 0 です。

データ エクスポートの料金の例

Google では、Service エンティティの Offer.PriceSpecification を使用して、ユーザーにさまざまな料金を事前に指定できます。

現在サポートされている PaymentChargeSpecification は 1 つのみです。すべての種類の料金を 1 つの PaymentChargeSpecification にまとめる

料金が発生しない場合、Offer.PriceSpecification は省略されます。

  • 例 1: サービス手数料がカート小計の 5% である
  • 例 2: サービス手数料が $5
  • 例 3: 手荷物料金が 0.1 ドルで、サービス手数料がカート小計の 5% の場合
  • 例 4: 手荷物料金が 0.1 ドル、サービス手数料が 1 ドル
  • 例 5: サービス手数料が 5% で、必要なチップがカート小計の 10% の場合

例 1

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

例 2

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

例 3

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]

例 4

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]

例 5

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

場所

次の表に、Place タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「Place」です。
address PostalAddress 必須 場所の住所。

次の例は、プレイス要素を示しています。

{
  "@type": "Place", // area2
  "address": {
    "@type": "PostalAddress",
    "postalCode": "94041",
    "addressCountry": "US"
  }
},

PostalAddress

次の表に、PostalAddress タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「PostalAddress」になります。
addressLocality テキスト 必須* 地域区分または市区町村。例: 「サンフランシスコ」。
addressRegion テキスト 必須* 地域または州。例: 「CA」。
postalCode テキスト 必須* 郵便番号。例: 「94102」。
streetAddress テキスト 任意 番地。例: 「1600 Amphitheatre Pkwy」。
addressCountry テキスト 必須 2 文字の ISO 3166-1 alpha-2 国コード。例: 「US」。

配信プロバイダは、これらのプロパティをリストして、サービスが提供される Service.areaServed を指定できます。

Restaurant.address で使用する場合は、PostalAddress にリストされているすべてのプロパティが必要です。

次の例は、PostalAddress 要素を示しています。

"address": {
  "@type": "PostalAddress",
  "streetAddress": "12345 Bar Avenue",
  "addressLocality": "San Francisco",
  "addressRegion": "CA",
  "postalCode": "94124",
  "addressCountry": "US"
},

PriceSpecification

次の表に、PriceSpecification タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「PriceSpecification」になります。
@id URL 任意 PriceSpecification の識別子。
minPrice Number 任意 価格が範囲に含まれる場合の最低価格。
maxPrice Number 任意 価格が範囲に含まれる場合の最高価格。
priceCurrency テキスト 必須 価格の 3 文字の ISO 4217 通貨コードです。例: 「USD」
eligibleQuantity QuantitativeValue 任意 価格仕様が有効な注文数量。たとえば、1 ポンドあたり 2 ドル、1 ドルあたり 2 アイテムなどです。

次の例は、PriceSpecification 要素を示しています。

例 1

"eligibleTransactionVolume": {
  "@type": "PriceSpecification",
  "minPrice": "20.00", // Minimum order price for delivery is $20
  "priceCurrency": "USD"
}

PropertyValue

MenuItemOption でオプションを記述するために使用されるプロパティ値のペア。

次の表に、PropertyValue タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 これは常に「PropertyValue」です。
name テキスト 必須

オプションの名前またはタイプ。

MenuItem で使用する場合の有効な名前は次のとおりです。

  • "SIZE": MenuItem のサイズ。たとえば、小、中、大などです。
  • "OPTION": サイズ以外のバリエーション(サラダまたはサンドイッチとして提供される料理など)。「SIZE」と「OPTION」が区別できない場合は、「OPTION」を使用します。

AddOnMenuItem で使用する場合の有効な名前:

  • 「APPLICABLE_ITEM_OPTION」: それぞれの「SIZE/OPTION」で MenuItem とともに使用される場合にのみ適用されるアドオンのオプション。
  • "PIZZA_SIDE": ピザに固有のアドオンは、ピザの一部または全体(左側、右側、ピザ全体にキノコのトッピングなど)に対してのみ有効です。
  • 「SIZE」: アドオンのサイズを指定するオプション(例: フライドポテトを食事コンボのアドオンとして)。
  • "OPTION": サイズ以外のすべてのバリエーション。「SIZE」と「OPTION」が区別できない場合は、「OPTION」を使用します。
value テキスト 必須

オプションの値。値には任意の文字列を指定できます。有効な値は次のとおりです。

  • "PIZZA_SIDE": ピザに対応する値は「PIZZA_SIDE_LEFT」、「PIZZA_SIDE_RIGHT」、「PIZZA_SIDE_WHOLE」のいずれかになります。
  • 「APPLICABLE_ITEM_OPTION」: この値は、親 MenuItem の MenuItemOptions の対応する「OPTION/SIZE」選択肢のいずれかに指定します。

QuantitativeValue

次の表に、QuantitativeValue タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 これは常に「QuantitativeValue」です。
value Number 任意 定量的値またはプロパティ値ノードの値。
unitCode テキストまたは URL 任意

UN/CEFACT 共通コードまたは URL で表した測定単位。

UN/CEFACT 共通コード以外のコードは、接頭辞の後にコロンを付けて使用できます。

maxValue Number 任意 なんらかの特性やプロパティの上限値。
minValue Number 任意 特性やプロパティの下限値。

次の例は、QuantitativeValue タイプの使用方法を示しています。

例 1

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}

例 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

例 3

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

レストラン

次の表に、Restaurant タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「レストラン」になります。
@id URL 必須 レストランまたは配送業者の一意の識別子。たとえば、「http://www.provider.com/326」のように指定します。ここで、「326」はレストランの一意の識別子です。
name テキスト 必須 注文プロセスで Restaurant を識別できるテキスト。
url URL 必須 レストランを表すドメインの URL。例: http://www.provider.com/somerestaurant
sameAs URL 任意 レストランの公式ウェブサイト。(例: http://www.somerestaurant.com)。
email テキスト 任意 レストランの連絡先メールアドレス。
description テキスト 任意 レストランの説明。
telephone テキスト 必須

次の形式の電話番号:

"[+][country_code][phone_#_with_area_code]"

例: 「+16501234567」。

priceRange テキスト 任意 幅広い価格設定。例: "$$" ($-Inexpensive, $$-Moderate, $$$-Expensive, $$$$-Very Expensive).
logo URL Optional Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png".
image URL Optional Image of the restaurant.
servesCuisine Array of Text Optional Food types that are served at the restaurant. For example, ["sushi","Asian fusion"].
address PostalAddress Required* Address of the restaurant.
geo GeoCoordinates Optional* Geographic coordinates of the restaurant.
suitableForDiet Array of RestrictedDiet Optional Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list.
aggregateRating AggregateRating Optional Overall rating, based on a collection of reviews or ratings of the restaurant.
additionalProperty Array of name value string pairs Optional

A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n".

For example "additionalProperty": [{"name": "imprint", "value": "first row\nsecondrow\n"},]

The following examples show the usage of the Restaurant type:

Example 1

{
  "@type": "Restaurant",
  "@id": "http://www.provider.com/somerestaurant",
  "url": "www.provider.com/somerestaurant",
  "name": "Some Restaurant",
  "sameAs": "http://www.somerestaurant.com",
  "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg",
  "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "postalCode": "94105",
    "streetAddress": "345 Spear St",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "37.391115",
    "longitude": "-122.081099"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.4",
    "reviewCount": "89"
  },
  "priceRange": "$$",
  "telephone": "+16501234567", // 国コード(+1)は必須です
  "servesCuisine": [
    "Indian-Mexican Fusion"
  ]
},
  
  

例 2

{
  "@type": "Restaurant",
  "@id": "http://www.example.com/threebrotherstacos",
  "name": "Three Brothers Tacos",
  "address": {
        "@type": "PostalAddress",
        "addressLocality": "Mountain View",
        "addressRegion": "CA",
        "postalCode": "94041",
        "streetAddress": "123 Foo St",
        "addressCountry": "US"
  },
  "additionalProperty": [
    {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"}
  ]
}

Restaurant エンティティのその他の例については、レストランやメニューのフィードの例をご覧ください。

ReturnablePackageDepositDetails

このタイプを使用するには、gs1 コンテキスト「@context」を追加します。

["http://gs1.org/voc/", "http://schema.org"]

次に、適切な MenuItem または MenuItemOption の型に FoodBeverageTobaccoProduct を追加します。

次の表に、ReturnablePackageDepositDetails タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「ReturnablePackageDepositDetails」になります。
returnablePackageDepositAmount gs1:PriceSpecification 任意 この商品アイテムのデポジット額( gs1:PriceSpecification ごと)。例: 1 缶あたり $0.25 のデポジット。

次の例は、ReturnablePackageDepositDetails タイプの使用方法を示しています。

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

サービス

配達組織による、レストランから地理的位置への注文エンドツーエンド アクションの配信について説明します。

次の表に、Service タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須

フィードタイプ。

  • Service: すべてのアクティブな Service フィードにこのタイプを使用します。
  • DisabledService: このタイプは、予期しないイベントのために Service エンティティを無効にする必要があり、サービスがいつ再確立されるかわからない場合にのみ使用します。
@id URL 必須 フルフィルメント サービスの ID。例: http://www.provider.com/service/1
description テキスト 任意 項目の説明。
serviceType テキスト 必須 提供しているサービスの種類。有効な値は「DELIVERY」または「TAKEOUT」です。
provider Restaurant 必須 レストランの一意の識別子への参照。例: http://www.provider.com/somerestaurant
areaServed GeoShapePlace、または GeoCircle の配列 条件 サービスを提供する地域。このフィールドはデフォルトでは省略可能ですが、serviceType が「DELIVERY」の場合は必須です。
hoursAvailable OpeningHoursSpecification の配列 必須 このサービスが利用可能な時間です。
specialOpeningHoursSpecification OpeningHoursSpecificationServiceDeliveryHoursSpecification、または AdvanceServiceDeliveryHoursSpecification の配列 任意

より一般的な OpeningHoursSpecification またはフルフィルメント時間をオーバーライドする時間。このフィールドは通常、休日などの臨時休業や営業時間の変更を定義するために使用されます。

validFrom プロパティと validThrough プロパティを使用して、特別な期間を定義します。これらのプロパティを指定する場合は、時刻とタイムゾーンが必要です。

offers Offer の配列 条件

指定したレストランの宅配サービスに関する詳細。このフィールドはデフォルトでは省略可能ですが、serviceType が「DELIVERY」の場合は必須です。

Service では、Offer.priceSpecification プロパティは省略可能です。他の Offer プロパティは使用しません。

hasOfferCatalog [Menu、OfferCatalog] 必須

このサービスのメニューを指定します。テイクアウト、宅配、ケータリングなど、サービスごとに異なるメニューを設定できます。

タイプには MenuOfferCatalog の両方を指定する必要があります。次に例を示します。

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty {name, value} の配列 任意

省略可能なサービス設定情報。アイテムは、オプションのフィールド名に対応するキー name を持つオブジェクトである必要があります。キー value は、フィールドのコンテキストに応じた値です。

特定の名前と値の詳細については、ServingConfig のリファレンスをご覧ください。

"additionalProperty": [{
  "name": "disableOrderInstructions",
  "value": false
}, {
  "name": "disableMenuItemSpecialInstructions",
  "value": false
}, {
  "name": "disableTipWidget",
  "value": false
}, {
  "name": "disablePromoWidget",
  "value": false
}, {
  "name": "menuItemSpecialInstructionsMaxLength",
  "value": 256
}, {
  "name": "orderInstructionsMaxLength",
  "value": 256
}]
potentialAction URL 任意

エンドツーエンドの料理注文エクスペリエンスからリダイレクト サービスに移行するときに使用される宅配/テイクアウト サービスの URL を指定します。例: "PotentialAction": { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" }

次の例は、Service タイプの使用方法を示しています。

{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "serviceType": "DELIVERY",
  "provider": {
    "@type": "Restaurant",
    "@id": "http://www.provider.com/threebrotherstacos"
  },
  "potentialAction": {
    "url": "https://foprovider.com/ordering/restaurant-1/delivery"
  },
  "hoursAvailable": [
    // Ordering times for Monday through Friday
    {
      "@type": "OpeningHoursSpecification",
      "deliveryHours": [
        {
          "@type": "AdvanceServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "T12:00:00", // Advance ordering begins at noon
          "closes": "T23:59:59", // Advance ordering ends at midnight
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        },
        {
          "@type": "ServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "T10:00:00", // ASAP ordering begins at 10AM
          "closes": "T14:00:00", // ASAP ordering ends at 2PM
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        }
      ]
    },
    // Ordering times for Saturday and Sunday
    {
      "@type": "OpeningHoursSpecification",
      "deliveryHours": [
        {
          // In this case advance orders are unavailable on Saturday and Sunday
          "@type": "ServiceDeliveryHoursSpecification",
          "deliveryLeadTime": {
            "@type": "QuantitativeValue",
            "value": "60",
            "unitCode": "MIN"
          },
          "dayOfWeek": [
            "Saturday",
            "Sunday"
          ],
          "opens": "T12:00:00", // ASAP orders start at noon
          "closes": "T23:59:59", // ASAP orders end at midnight
          "validFrom": "2017-01-01T00:00:00-07:00",
          "validThrough": "2018-12-31T23:59:59-07:00"
        }
      ]
    }
  ],
  "hasOfferCatalog": {
    "@type": ["Menu", "OfferCatalog"],
    "@id": "https://www.provider.com/menu/1"
  },
  "areaServed": [{
      "@type": "GeoCircle", // area1
      "geoMidpoint": {
        "@type": "GeoCoordinates",
        "latitude": "42.362757",
        "longitude": "-71.087109"
      },
      "geoRadius": "10000"
    },
    {
      "@type": "Place", // area2
      "address": {
        "@type": "PostalAddress",
        "postalCode": "94041",
        "addressCountry": "US"
      }
    },
    {
      "@type": "GeoShape", // area3
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.418128 -122.098167 37.382755 -122.118968 37.368551 -122.047978 37.400949 -122.048106 37.418128 -122.098167"
    },
    {
      "@type": "GeoShape", // area4
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
    },
    {
      "@type": "GeoCircle", // area5
      "geoMidpoint": {
        "@type": "GeoCoordinates",
        "latitude": "37.7392607",
        "longitude": "-122.3895522"
      },
      "geoRadius": "4505"
    }
  ],
  "offers": {
    "@type": "Offer",
    "priceSpecification": [{
        "@type": "DeliveryChargeSpecification",
        "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
        "price": "8.00", // Charges $8 for area5
        "priceCurrency": "USD",
        "eligibleTransactionVolume": {
          "@type": "PriceSpecification",
          "minPrice": "20.00",
          "priceCurrency": "USD"
        },
        "eligibleRegion": [ // area5
          {
            "@type": "GeoCircle",
            "geoMidpoint": {
              "@type": "GeoCoordinates",
              "latitude": "37.7392607",
              "longitude": "-122.3895522"
            },
            "geoRadius": "4505"
          }
        ]
      },
      {
        "@type": "DeliveryChargeSpecification",
        "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
        "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
        "priceCurrency": "USD",
        "eligibleTransactionVolume": {
          "@type": "PriceSpecification",
          "minPrice": "20.00", // Minimum order price for delivery is $20
          "priceCurrency": "USD"
        }
      }
    ]
  }
},

サービス エンティティのその他の例については、サービス フィードの例をご覧ください。

ServiceDeliveryHoursSpecification

ユーザーができるだけ早く配達とテイクアウトの注文をスケジュールできるフルフィルメント時間を表します。

通常、opens の値は closes の値よりも小さくなります。opens プロパティと closes プロパティを使用する場合は、次のガイドラインが適用されます。

  • ServiceDeliveryHoursSpecification では opens プロパティと closes プロパティは省略可能ですが、含めることを強くおすすめします。
  • 時刻はサービスの現地時間で指定する必要があります。opens または closes の値にタイムゾーンを含めないでください。タイムゾーンが指定されている場合、Google はタイムゾーン情報を無視します。
  • openscloses が明示的に指定されていない場合、毎日常に ASAP の注文を利用できるとみなされます。
  • openscloses が同じ場合、ASAP の注文は利用できないとみなされます。
  • openscloses より大きい場合、終了時刻は翌日であると解釈されます。たとえば、営業時間が 1 月 1 日午後 5 時に設定され、閉店時間が午前 2 時である場合、レストランは 1 月 2 日午前 2 時に営業終了と解釈されます。

次の表に、ServiceDeliveryHoursSpecification タイプのプロパティを示します。

プロパティ タイプ 必要性 説明
@type テキスト 必須 常に「ServiceDeliveryHoursSpecification」になります。
validFrom DateTime 任意

ユーザーの ASAP 注文を履行できる日時(タイムゾーンを含む)。例: "2017-05-01T07:00:00-07:00"このプロパティが設定されていない場合は、毎日有効とみなされます。

詳細については、DateTime 形式と Time 形式をご覧ください。

validThrough DateTime 任意

ユーザーの ASAP 注文を処理できない日時(タイムゾーンを含む)。例: "2017-05-01T07:00:00-07:00"このプロパティが設定されていない場合は、毎日有効とみなされます。

validThrough の時間は含まれません。たとえば、その時刻が午後 6 時に設定されている場合、この時刻は午後 5:59:59 まで有効です。

詳細については、DateTime 形式と Time 形式をご覧ください。

opens Time 任意

ユーザーが「できるだけ早く」注文したために、配送サービスが開始される時刻。例: T10:30:00。

時刻はサービスの現地時間で指定する必要があります。opens の値にタイムゾーンを含めないでください。タイムゾーンが指定された場合、Google はこの情報を無視します。

詳細については、DateTime 形式と Time 形式をご覧ください。

closes Time 任意

お客様の ASAP 注文に対する配送サービスが利用できなくなる時間。例: 「T23:59:59」。

closes の時間は含まれません。したがって、この ServiceDeliveryHoursSpecification の開閉時間を午前 10 時と午後 4 時に設定した場合、最後の注文は午後 3:59:59 になります。

時刻はサービスの現地時間で指定する必要があります。closes の値にタイムゾーンを含めないでください。タイムゾーンが指定された場合、Google はこの情報を無視します。

詳細については、DateTime 形式と Time 形式をご覧ください。

dayOfWeek DayOfWeek の配列 任意

ユーザーの ASAP 注文でこのサービスを利用できる曜日。有効な値は次のとおりです。

  • 「月曜日」
  • 「火曜日」
  • 「水曜日」
  • 「木曜日」
  • 「金曜日」
  • 「土曜日」
  • 「日曜日」

曜日を指定しない場合、ServiceDeliveryHoursSpecification はすべての日付に適用されます。

deliveryLeadTime QuantitativeValue 任意 注文確定後の配達予定日(分単位)。このプロパティを設定することを強くおすすめします。QuantitativeValuevalue フィールドを分数に設定し、unitCode を「MIN」に設定します。

次の例は、ServiceDeliveryHoursSpecification 要素を示しています。

例 1

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "value": "60", // If no exact deliveryLeadTime, put a maximum time
    "unitCode": "MIN"
  }
},

例 2

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "minValue": "30",
    "maxValue": "50",
    "unitCode": "MIN"
  }
}
    

列挙型

RestrictedDiet

RestrictedDiet 型には、次の値を使用できます。

  • http://schema.org/DiabeticDiet
  • http://schema.org/GlutenFreeDiet
  • http://schema.org/HalalDiet
  • http://schema.org/HinduDiet
  • http://schema.org/KosherDiet
  • http://schema.org/LowCalorieDiet
  • http://schema.org/LowFatDiet
  • http://schema.org/LowLactoseDiet
  • http://schema.org/LowSaltDiet
  • http://schema.org/VeganDiet
  • http://schema.org/VegetarianDiet