リレーショナル インベントリ スキーマ

このページでは、Google に提供する注文エンドツーエンド データフィード(フード カタログ仕様)の形式について説明します。この情報の機械読み取り可能なバージョンについては、JSON スキーマをダウンロードしてください。

全般的な要件

エンティティは、フィード内のエンティティごとに 1 行に配置するように構成する必要があります(エンティティは改行文字で区切られます)。読みやすくするため、このページの JSON の例では、この構造に従っていません。ただし、フィードを送信する際は、その構造に従う必要があります。たとえば、メニュー エンティティは次のコードのように構造化する必要があります。

{"@type": "Menu","name": "Coffee Shop A","@id": "1535"}

各「レストラン」エンティティには、2 つの Service エンティティ(「DELIVERY」サービスタイプと「TAKEOUT」サービスタイプのそれぞれ 1 つ)を含めることができます。各「Service」エンティティに設定できる「Menu」エンティティは 1 つのみです。

サブエンティティは、複数のレストランで再利用できます。

JSON 値のガイドライン

型の強制変換

値を必要な型に強制変換できる限り、JSON 値の型はスキーマで定義された型と異なる場合があります。たとえば、文字列プロパティは、文字列値と整数値の両方を入力として受け入れることができます。同様に、整数プロパティは、文字列を有効な整数として解析できる限り、文字列値を受け入れることができます。

型変換は、繰り返しプロパティにも適用されます。繰り返しプロパティは、角かっこ [] で囲まなくても値を入力として受け入れることができます。たとえば、OperationHours.serviceId プロパティは、"service_id"["service_id"] の両方を有効な入力として受け入れます。

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 format:
THH:MM:SS

次に例を示します。

T08:08:00 // 8:08 AM

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

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

レストランデータ

レストラン(必須)

実装に必要なエンティティ。レストランの説明。

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

プロパティ タイプ 説明
@type Const

必須。

値: Restaurant

@id String

必須。

レストランまたは配送業者の一意の識別子。

例: restaurant_1

name String

必須。

レストランの名前。

例: Foo

description String

レストランの説明。

例: Best seafood in town

url URL

レストランを表す URL。レストランのドメインは、アグリゲータのドメインよりも優先されます。

例: http://www.provider.com/somerestaurant

sameAs URL

レストランの公式ウェブサイト。

例: http://www.provider2.com/somerestaurant

telephone String

レストランの電話番号。

例: +12345665898

streetAddress String

必須。

レストランの住所。

例: 12345 Bar Avenu

addressLocality String

必須。

市町村区。

例: San Francisco

addressRegion String

必須。

都道府県。

例: CA

postalCode String

必須。

郵便番号です。

例: 94124

addressCountry String

必須。

2 文字の ISO 3166-1 alpha-2 国コード。

例: US

latitude 数値

緯度。値の範囲は [-90, 90] に制限されます。精度は小数点 5 桁以上にする必要があります。

例: 35.7392607

longitude 数値

経度。値は [-180, 180] の範囲に制限されます。精度は小数点 5 桁以上にする必要があります。

例: -120.3895522

dealId List<String>

レストランの該当する Deal

imprint String

レストランの概要は、レストランに関する追加情報(正式名称、正式な住所、登録番号など)のセクションです。この情報は「"」を使用してフォーマットできます。

例:

Three Brothers Tacos
123 FooSt
Mountain View
CA 94041, United States
email: contact@threebrotherstacos.com

Commercial Register: 123456789

economicOperator String

レストランに関連付けられた経済事業者の情報(該当する場合)。この情報は、[取引業者情報] セクションに表示されます。テキストは「 」を使用して書式設定できます。

例:

XYZ Corp
123 Main Street
555-555-5555

dateModified ISO タイムスタンプ

レストラン エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は String)。

例: 2017-01-02T00:00:00-07:00

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

{
  "@type": "Restaurant",
  "@id": "10824",
  "name": "Pronto Wood Fired Pizzeria",
  "url": "https://www.provider.com/pronto-wood-fired-pizzeria",
  "telephone": "+16503659978",
  "streetAddress": "2560 El Camino Real",
  "addressLocality": "Palo Alto",
  "addressRegion": "CA",
  "postalCode": "94061",
  "addressCountry": "US",
  "latitude": 37.472842,
  "longitude": -122.217144
}

取引

カートに適用できる割引の種類。

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

プロパティ タイプ 説明
@type Const

必須。

値: Deal

@id String

必須。

取引の一意の識別子。

例: FREEDELIVERY

dealCode String

必須。

パートナーごとに取引ごとに一意の取引 ID。この ID は、プロモーション システム内で取引を一意に識別できるものでなければなりません。Google からこの ID が CheckoutRequestpromotions.coupon フィールドに送信され、検証されます。

例: ADETRE23

applicableServiceType List<ServiceType>

この取引が適用されるサービス。デフォルトでは、すべてのユーザーに適用される取引が想定されます。

eligibleMaxOrders 整数

この取引は、ユーザーが過去にこの数以下の注文を正常に完了している場合にのみ対象となります。

availabilityId List<String>

メニュー セクションが利用可能な日時の詳細を提供する、空室状況エンティティの @id 値。

例: [ "availability_1" ]

isDisabled ブール値

これにより、他の有効性チェックがオーバーライドされます。

dealType DealType

必須。

割引を適用する取引のカテゴリ。カテゴリには、カート内の合計金額、サービス料金、配送料金などがあります。

priceCurrency String

discount is defined の場合は必須です。

eligibleTransactionVolumeMin is defined の場合は必須です。

割引の通貨(3 文字の ISO 4217 形式)。

例: USD

eligibleTransactionVolumeMin 数値

このプロモーションが有効な取引額(通貨単位)。

termsOfServiceUrl URL

必須。

人が読める形式の利用規約ドキュメント。

dateModified ISO タイムスタンプ

取引エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は文字列)。

例: 2017-01-02T00:00:00-07:00

次のいずれかのプロパティ グループを 1 つ指定する必要があります。
discount グループ 1 数値

割引の値(数値)。

discountPercentage グループ 2 数値

元の価格に対する割引率。

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

例 1

{
  "@type": "Deal",
  "@id": "ONEDOLLARFEE",
  "dealCode": "THREEDOLLARFEE",
  "dealType": "CART_OFF",
  "availabilityId": [
    "availability_may2020"
  ],
  "termsOfServiceUrl": "http://www.provider.com/onedollardeal",
  "applicableServiceType": [
    "TAKEOUT"
  ],
  "discount": 3,
  "priceCurrency": "USD"
}

例 2

{
  "@type": "Deal",
  "@id": "10PERCOFF",
  "dealCode": "10PERCOFF",
  "dealType": "CART_OFF",
  "availabilityId": [
    "availability_weekdays_evening"
  ],
  "termsOfServiceUrl": "http://www.provider.com/deal",
  "discountPercentage": 10,
  "priceCurrency": "USD"
}

例 3

{
  "@type": "Deal",
  "@id": "FREEDELIVERY",
  "dealCode": "FREEDELIVERY",
  "dealType": "DELIVERY_OFF",
  "availabilityId": [
    "availability_may"
  ],
  "applicableServiceType": [
    "DELIVERY"
  ],
  "termsOfServiceUrl": "http://www.provider.com/free_delivery_deal",
  "discountPercentage": 100,
  "eligibleTransactionVolumeMin": 25,
  "priceCurrency": "USD"
}

サービスデータ

サービス(必須)

レストランの食事注文サービスの詳細を記述します。Service は実装が必須のエンティティです。

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

プロパティ タイプ 説明
@type Const

必須。

値: Service

@id String

必須。

フルフィルメント サービスの識別子。

例: service_1

serviceType ServiceType

必須。

提供されるサービスのタイプ。指定可能な値は「DELIVERY」または「TAKEOUT」です。

例: DELIVERY

restaurantId String

必須。

この Service エンティティに関連付けられている Restaurant エンティティの @id 値。

例: restaurant_1

menuId String

必須。

この Service エンティティに関連付けられた Menu エンティティの @id 値。

例: menu_1

dateModified ISO タイムスタンプ

サービス エンティティ フィードの最終更新日時(ISO タイムスタンプ形式)。

例: 2017-01-02T00:00:00-07:00

isDisabled ブール値

エンティティが無効かどうかを示します。このタイプは、予期しない事象によりエンティティを無効にする必要があり、サービスが再開される時期が不明な場合にのみ使用してください(例: 休日には使用しないでください)。

例: true

servingConfig ServingConfig

さまざまな機能(プロモーション ウィジェットの無効化など)の制御に使用されるサービスのサービング構成。

actionLinkUrl String

エンドツーエンドの食事注文からリダイレクトへの移行中に使用される、デリバリー/テイクアウト サービスの URL が含まれています。

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

例 1

{
  "@type": "Service",
  "@id": "10824/takeout",
  "serviceType": "TAKEOUT",
  "menuId": "10824",
  "restaurantId": "10824",
  "actionLinkUrl": "https://www.rwgpartnerwebsite.com/foodorderpickup/merchant_foepa_3"
}

例 2

{
  "@type": "Service",
  "@id": "10824/delivery",
  "serviceType": "DELIVERY",
  "menuId": "10824",
  "restaurantId": "10824",
  "actionLinkUrl": "https://www.rwgpartnerwebsite.com/foodorderdelivery/merchant_foepa_3"
}

ServiceArea

食品を配達できる地域を指定します。関連する Service エンティティの serviceType が「DELIVERY」に設定されている場合、このエンティティを実装する必要があります。

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

プロパティ タイプ 説明
@type Const

必須。

値: ServiceArea

@id String

必須。

サービスエリアの一意の識別子。

例: service_area_1

serviceId List<String>

必須。

この ServiceArea エンティティに関連付けられた Service エンティティの @id 値。

例: [ "service_1" ]

dateModified ISO タイムスタンプ

ServiceArea エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は String)。

例: 2017-01-02T00:00:00-07:00

exclude ブール値

このサービス提供地域を配送地域から除外します。たとえば、郵便番号を大きなポリゴン領域から除外できます。

次のいずれかのプロパティ グループを 1 つ指定する必要があります。
polygon グループ 1 List<String>

3 つ以上のスペース区切りの点の連続で表されるポリゴンまたはマルチポリゴン。最初のポイントと最後のポイントは同じにすることをおすすめしますが、必須ではありません。 ポリゴンまたはマルチポリゴンの各ポイントは、緯度ポイントと経度ポイントで定義されます。また、点を反時計回りに指定する必要があります。

例: [ "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747" ]

geoMidpointLatitude グループ 2 数値

CIRCLE エリアの中心の緯度座標を示します。

例: 37.806000

geoMidpointLongitude グループ 2 数値

CIRCLE エリアの中心の経度座標を示します。

例: -122.425592

geoRadius グループ 2 整数

CIRCLE 領域のおおよその半径(メートル単位)を示します。

例: 10000

postalCode グループ 3 String

郵便番号を示します。

例: 91234

addressCountry グループ 3 String

2 文字の ISO 3166-1 alpha-2 国コードを指定します。

例: US

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

{
  "@type": "ServiceArea",
  "@id": "28427",
  "serviceId": [
    "10824/delivery"
  ],
  "polygon": [
    "37.4818562 -122.25801303 37.48247836 -122.25801303 37.48434484 -122.25621319 37.48621133 -122.25424681 37.49181077 -122.24704744 37.49305509 -122.24541414 37.49429942 -122.2436143 37.49803238 -122.23821477 37.49803238 -122.21285044 37.49367726 -122.15885517 37.49056645 -122.15722187 37.48621133 -122.15542202 37.48558917 -122.15525548 37.4818562 -122.15525548 37.43191387 -122.17865343 37.43191387 -122.23444854"
  ]
}

OperationHours(必須)

ユーザーがフローから ASAP または今後の注文を行うことができる注文期間を指定します。OperationHours の実装は必須で、デフォルトではすべての曜日のすべての時間にオペレーションを表します。

OperationHours opens 属性と closes 属性は、ユーザーが注文できるオンライン システムの営業時間と閉店時間を指定します。オンライン システムの営業時間内であれば、ServiceHours を使用して、ユーザーの注文を処理できる営業時間と閉店時間を指定できます。

時間は、サービスのローカル時間で指定する必要があります。opens 値にタイムゾーンを含めないでください。タイムゾーンが指定されている場合、この情報は無視されます。詳細については、日時と時刻の形式をご覧ください。

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

プロパティ タイプ 説明
@type Const

必須。

値: OperationHours

@id String

必須。

ユーザーがフローからアクセスして ASAP または将来の注文をできる注文期間を記述するエンティティの一意の識別子。

例: operation_hour_1

serviceId List<String>

必須。

この OperationHours エンティティに関連付けられている Service エンティティの @id 値。

例: [ "service_1" ]

opens ISO 時刻(ローカル)

ユーザーが注文を開始できる時刻を ISO 形式で指定します。

例: T00:00

closes ISO 時刻(ローカル)

ユーザーが注文できない特定の時刻を ISO 形式で指定します。

例: T16:00

dayOfWeek List<DayOfWeek>

営業時間が有効な曜日のリスト。指定可能な値は「MONDAY」、「TUESDAY」、「WEDNESDAY」、「THURSDAY」、「FRIDAY」、「SATURDAY」、「SUNDAY」です。

例: [ "MONDAY", "TUESDAY" ]

validFrom ISO タイムスタンプ

isSpecialHour = true の場合は必須です。

ユーザーがフローから ASAP 注文または将来の注文をできる注文期間の開始時間を示す ISO タイムスタンプ。

例: 2017-01-01T00:00:00-07:00

validThrough ISO タイムスタンプ

isSpecialHour = true の場合は必須です。

注文可能期間の終了時間を示す ISO タイムスタンプ。この時間以降、ユーザーはフローにはアクセスできず、ASAP 注文や将来の注文を確定できません。

例: 2017-01-02T00:00:00-07:00

isSpecialHour ブール値

OperationHours が特別営業時間かどうかを示すブール値。指定できる値は「false」と「true」です。

例: False

dateModified ISO タイムスタンプ

OperationHours エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は String)。

例: 2017-01-02T00:00:00-07:00

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

例 1

{
  "@type": "OperationHours",
  "@id": "10824/deliveryOh",
  "serviceId": [
    "10824/delivery"
  ],
  "isSpecialHour": false
}

例 2

{
  "@type": "OperationHours",
  "@id": "10824/takeoutOh",
  "serviceId": [
    "10824/takeout"
  ],
  "isSpecialHour": false
}

ServiceHours(必須)

ユーザーがフルフィルメント スロット(ASAP または将来のスロット)を選択できるフルフィルメント期間を指定します。ServiceHours の実装が必要です。

OperationHours opens 属性と closes 属性は、ユーザーが注文できるオンライン システムの営業時間と閉店時間を指定します。オンライン システムの営業時間内であれば、ServiceHours を使用して、ユーザーの注文を処理できる営業時間と閉店時間を指定できます。

時間は、サービスのローカル時間で指定する必要があります。opens 値にタイムゾーンを含めないでください。タイムゾーンが指定されている場合、この情報は無視されます。詳細については、日時と時刻の形式をご覧ください。

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

プロパティ タイプ 説明
@type Const

必須。

値: ServiceHours

@id String

必須。

ユーザーがフルフィルメント スロット(ASAP または将来のスロット)を選択できるフルフィルメント期間を記述するエンティティの一意の ID。

例: service_hour_1

orderType OrderType

必須。

サービス時間は ASAP 注文と事前注文のどちらに適用されるかを示す文字列。指定できる値は「ASAP」と「ADVANCE」です。

例: ASAP

serviceId List<String>

必須。

この ServiceHours エンティティに関連付けられた Service エンティティの @id 値。

例: [ "service_1" ]

operationHoursId List<String>

isSpecialHour = false の場合は必須です。

この ServiceHours エンティティに関連付けられている OperationHours エンティティの @id 値。

例: [ "operation_hour_1" ]

opens ISO 時刻(ローカル)

ユーザーの注文の処理を開始できる特定の時刻を ISO 形式で指定します。

例: T00:00

closes ISO 時刻(ローカル)

ユーザーの注文を処理できない ISO 形式の特定の時刻を指定します。

例: T16:00

dayOfWeek List<DayOfWeek>

営業時間が有効な曜日のリスト。

例: [ "MONDAY", "TUESDAY" ]

validFrom ISO タイムスタンプ

isSpecialHour = true の場合は必須です。

ユーザーがフローから ASAP 注文または将来の注文をできる注文期間の開始時間を示す ISO タイムスタンプ。

例: 2017-01-01T00:00:00-07:00

validThrough ISO タイムスタンプ

isSpecialHour = true の場合は必須です。

注文可能期間の終了時間を示す ISO タイムスタンプ。この時間以降、ユーザーはフローにはアクセスできず、ASAP 注文や将来の注文を確定できません。

例: 2017-01-02T00:00:00-07:00

isSpecialHour ブール値

OperationHours が特別営業時間かどうかを示すブール値。指定できる値は「false」と「true」です。

例: False

leadTimeMin 整数

ASAP 注文が確定してから配送/集荷までの最短予想時間(分単位)。このプロパティを設定することを強くおすすめします。

例: 60

leadTimeMax 整数

ASAP 注文が確定してから配送/集荷までの最長予想時間(分)。このプロパティを設定することを強くおすすめします。

例: 70

advanceBookingRequirementMin 整数

orderType = "ADVANCE" の場合は必須です。

事前注文を処理できる注文時間からの最小分数。たとえば、事前注文の処理に 60 分以上かかる場合、advanceBookingRequirementMin は 60 になります。

例: 15

advanceBookingRequirementMax 整数

orderType = "ADVANCE" の場合は必須です。

事前注文を処理できる注文時間からの最大分数。 たとえば、事前注文の提供が 2 日以上遅れることが制限されている場合、advanceBookingRequirementMax の値は 2880 です。

例: 10080

advanceBookingSlotInterval String

orderType = "ADVANCE" の場合は必須です。

連続する 2 つの事前予約スロット時間の間隔。たとえば、営業開始時間と営業終了時間が午前 8 時と午後 8 時で、advanceBookingSlotInterval が 15 分の場合、ユーザーは午前 8 時、午前 8 時 15 分、午前 8 時 30 分、午前 8 時 45 分など、午後 8 時までの提供時間を指定できます。 期間は ISO 期間の長さとして指定する必要があります。たとえば、「PT15M」は 15 分間隔を意味します。

例: PT15M

dateModified ISO タイムスタンプ

ServiceHours エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は String)。

例: 2017-01-02T00:00:00-07:00

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

例 1

{
  "@type": "ServiceHours",
  "@id": "613741/delivery",
  "orderType": "ASAP",
  "serviceId": [
    "10824/delivery"
  ],
  "opens": "T00:00",
  "closes": "T00:00",
  "isSpecialHour": true,
  "validFrom": "2017-12-25T00:00:00-07:00",
  "validThrough": "2017-12-25T23:59:00-07:00"
}

例 2

{
  "@type": "ServiceHours",
  "@id": "10824/takeoutSh_0",
  "orderType": "ASAP",
  "serviceId": [
    "10824/takeout"
  ],
  "operationHoursId": [
    "10824/takeoutOh"
  ],
  "opens": "11:00",
  "closes": "21:00",
  "dayOfWeek": [
    "MONDAY",
    "TUESDAY",
    "WEDNESDAY",
    "THURSDAY"
  ],
  "isSpecialHour": false
}

手数料

料金の説明。関連する Service エンティティで serviceType が「DELIVERY」に設定されている場合、feeType が「DELIVERY」に設定された Fee が必要です。

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

プロパティ タイプ 説明
@type Const

必須。

値: Fee

@id String

必須。

料金を表すエンティティの一意の識別子。

例: service_fee_1

serviceId List<String>

必須。

この料金エンティティに関連付けられている Service エンティティの @id 値。

例: [ "service_1" ]

feeType FeeType

必須。

配送注文またはサービス注文に手数料が適用されるかどうかを示す文字列。指定できる値は「DELIVERY」と「SERVICE」です。

例: DELIVERY

priceCurrency String

必須。

3 文字の ISO 4217 通貨コードを指定します。

例: USD

basePrice 数値

料金の基本価格。percentageOfCart または pricePerMeter が使用されている場合に適用されます。

例: 2.0

minPrice 数値

percentageOfCart または pricePerMeter が使用されている場合の最小料金、上限料金の値。

例: 2.0

maxPrice 数値

percentageOfCart または pricePerMeter が使用されている場合の最大手数料、上限手数料の値。

例: 10.0

eligibleRegion List<String>

料金が有効な地政学的地域の ServiceArea の @id。このプロパティは、配送料が地域によって異なる場合にのみ使用します。

例: [ "service_area_1" ]

eligibleTransactionVolumeMin 数値

この料金仕様が有効となる最小取引額(通貨単位)。

例: 50

eligibleTransactionVolumeMax 数値

この料金仕様が有効な取引の最大額(通貨単位)。たとえば、注文量が一定量を超えると手数料は適用されません。

例: 10

validFrom ISO タイムスタンプ

料金が有効になる開始時間を示す ISO タイムスタンプ。

例: 2017-01-01T00:00:00-07:00

validThrough ISO タイムスタンプ

料金が無効になる終了時間を示す ISO タイムスタンプ。

例: 2017-01-02T00:00:00-07:00

dateModified ISO タイムスタンプ

料金エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は文字列)。

例: 2017-01-02T00:00:00-07:00

priority 数値

ゼロ以外の正の値。ユーザーのカートに複数の料金が適用される場合、優先度の高い料金が優先されます。このフィールドが指定されている場合、優先度は常に計算された優先度よりも優先されます。

例: 3

次のいずれかのプロパティ グループを 1 つ指定する必要があります。
price グループ 1 数値

料金。価格が固定されていない場合は、price の代わりに minPrice と maxPrice を指定できます。

例: 1.5

percentageOfCart グループ 2 数値

カート内の商品の金額に対する料金の割合。指定できる値は、0 ~ 100 の範囲内の浮動小数点値です。

例: 9.00

pricePerMeter グループ 3 数値

ユーザーからの距離に応じた料金(1 メートルあたり)。たとえば、ユーザーまでの距離が 5 km で料金が $0.001 の場合、ユーザー料金は $5 となります。

例: 0.001

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

例 1

{
  "@type": "Fee",
  "@id": "28427",
  "serviceId": [
    "10824/delivery"
  ],
  "feeType": "DELIVERY",
  "priceCurrency": "USD",
  "eligibleRegion": [
    "28427"
  ],
  "eligibleTransactionVolumeMin": 20,
  "price": 5
}

例 2

{
  "@type": "Fee",
  "@id": "28427",
  "serviceId": [
    "10824/delivery"
  ],
  "feeType": "DELIVERY",
  "priceCurrency": "USD",
  "eligibleRegion": [
    "28427"
  ],
  "eligibleTransactionVolumeMin": 20,
  "pricePerMeter": 0.0005,
  "basePrice": 4
}

例 3

{
  "@type": "Fee",
  "@id": "28427",
  "serviceId": [
    "10824/delivery"
  ],
  "feeType": "DELIVERY",
  "priceCurrency": "USD",
  "eligibleRegion": [
    "28427"
  ],
  "eligibleTransactionVolumeMin": 20,
  "pricePerMeter": 0.0005,
  "basePrice": 4,
  "minPrice": 5,
  "maxPrice": 50
}

例 4

{
  "@type": "Fee",
  "@id": "28427",
  "serviceId": [
    "10824/delivery"
  ],
  "feeType": "DELIVERY",
  "priceCurrency": "USD",
  "eligibleRegion": [
    "28427"
  ],
  "eligibleTransactionVolumeMin": 20,
  "percentageOfCart": 5,
  "basePrice": 4
}

例 5

{
  "@type": "Fee",
  "@id": "28427",
  "serviceId": [
    "10824/delivery"
  ],
  "feeType": "DELIVERY",
  "priceCurrency": "USD",
  "eligibleRegion": [
    "28427"
  ],
  "eligibleTransactionVolumeMin": 20,
  "percentageOfCart": 5,
  "basePrice": 4,
  "minPrice": 5,
  "maxPrice": 50
}

実装に必要なエンティティ。メニューの説明。

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

プロパティ タイプ 説明
@type Const

必須。

値: Menu

@id String

必須。

メニューの一意の識別子。

例: menu_1

name String

ユーザーがメニューを閲覧しているときにメニューを識別できるテキスト。

例: Foo

disclaimer String

メニューの免責条項。たとえば、栄養情報の開示やアレルゲンの開示などです。

例: Items may contain peanuts.

disclaimerUrl URL

免責条項の詳細を記載したページへの URL。

dateModified ISO タイムスタンプ

メニュー エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は文字列)。

例: 2017-01-02T00:00:00-07:00

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

{
  "@type": "Menu",
  "@id": "10824"
}

実装するオプションのエンティティ。メニューの特定のセクションを記述します。

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

プロパティ タイプ 説明
@type Const

必須。

値: MenuSection

@id String

必須。

メニュー セクションの一意の識別子。

例: menu_section_1

menuId List<ReverseReference>

この MenuSection エンティティに関連付けられているメニュー エンティティの @id 値。

例: [ { "@id": "menu_id", "displayOrder": 4 } ]

menuSectionId List<String>

この MenuSection エンティティに対応する子 MenuSection エンティティの @id 値のリスト。

重要: menuSectionId または parentMenuSectionId(in child) の参照のいずれか 1 つだけを使用する必要があります。

例: [ "child_menu_section_1", "child_menu_section_2" ]

parentMenuSectionId List<ReverseReference>

この MenuSection エンティティに関連付けられている親 MenuSection エンティティの @id 値。

重要: parentMenuSectionId または menuSectionId(in parent) の参照のいずれか 1 つだけを使用する必要があります。

例: [ { "@id": "parent_menu_section_id", "displayOrder": 4 } ]

name String

必須。

ユーザーがメニューを閲覧しているときに MenuSection を識別できるテキスト。

例: Foo

description String

メニュー セクションの説明。

例: Example menu section description that helps users.

image URL

メニュー セクションの画像の URL。

例: https://provider.com/someimage

menuItemId List<String>

この MenuSection エンティティに対応する MenuItem エンティティの @id 値のリスト。

重要: menuItemId または MenuItem.parentMenuSectionId の参照のいずれか 1 つだけを使用する必要があります。

例: [ "menu_item1", "menu_item2" ]

parentMenuItemId List<ReverseReference>

この MenuSection エンティティに対応する親 MenuItem エンティティの @id 値のリスト。

重要: parentMenuItemId または MenuItem.menuAddOnId の参照のいずれか 1 つだけを使用する必要があります。

例: [ { "@id": "parent_menu_item_id", "displayOrder": 4 } ]

parentMenuItemOptionId List<ReverseReference>

この MenuSection エンティティに対応する親 MenuItemOption エンティティの @id 値のリスト。

重要: parentMenuItemOptionId または MenuItemOption.menuAddOnId の参照のいずれか 1 つだけを使用する必要があります。

例: [ { "@id": "parent_menu_item_option_id", "displayOrder": 4 } ]

eligibleQuantityMax 整数

アドオン セクションで選択できるアドオンの最大数。

例: 5

eligibleQuantityMin 整数

アドオン セクションで選択する必要があるアドオンの最小数。

例: 1

defaultItemId List<String>

アドオン MenuSection のユーザーに対してデフォルトで事前選択される、MenuItem エンティティを参照する @id のリスト。最終的な選択はユーザーが変更できます。defaultItemId が指定されていない場合、MenuItem は事前選択されません。

例: [ "item1", "item2" ]

availabilityId List<String>

メニュー セクションが利用可能な日時の詳細を提供する、空室状況エンティティの @id 値。

例: [ "menu_availability_1" ]

numberOfFreeAddOns 整数

ユーザーが無料で選択できるアドオンの数を示します。アドオン メニュー セクションでのみ有効です。

例: 3

dateModified ISO タイムスタンプ

MenuSection エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は文字列)。

例: 2017-01-02T00:00:00-07:00

applicableServiceType List<ServiceType>

この MenuSection が適用されるサービス。デフォルトでは、MenuSection がすべてのユーザーに適用されます。

offeredById List<String>

この MenuSection が利用可能な Restaurant エンティティの @id 値。デフォルトでは、MenuSection がすべてのロケーションで利用可能であると想定しています。

例: [ "restaurant_id_1", "restaurant_id_55" ]

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

{
  "@type": "MenuSection",
  "@id": "853705",
  "menuId": [
    {
      "@id": "10824",
      "displayOrder": 853705
    }
  ],
  "menuSectionId": [
    12345,
    43645
  ],
  "name": "Pasta",
  "applicableServiceType": [
    "TAKEOUT"
  ],
  "offeredById": [
    "italian_restaurant_location_1"
  ]
}
{
  "@type": "MenuSection",
  "@id": "427484",
  "menuId": [
    {
      "@id": "4287",
      "displayOrder": 964376
    }
  ],
  "menuItemId": [
    46784,
    42728
  ],
  "name": "Burger",
  "applicableServiceType": [
    "TAKEOUT",
    "DELIVERY"
  ]
}
{
  "@type": "MenuSection",
  "@id": "3138486",
  "name": "Choose a side:",
  "parentMenuItemId": [
    {
      "@id": "6680295",
      "displayOrder": 3138486
    }
  ],
  "eligibleQuantityMax": "5",
  "numberOfFreeAddOns": "2"
}
{
  "@type": "MenuSection",
  "@id": "3138482",
  "name": "Additional Pizza Toppings",
  "parentMenuItemId": [
    {
      "@id": "6680246",
      "displayOrder": 3138482
    }
  ],
  "eligibleQuantityMax": "3"
}

対象

実装するオプションのエンティティ。MenuSection エンティティが配信される期間を記述します。

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

プロパティ タイプ 説明
@type Const

必須。

値: Availability

@id String

必須。

メニュー セクションの提供状況を記述するエンティティの一意の識別子。

例: menu_section_avail_1

availabilityStarts ISO 時刻(ローカル)

メニュー セクションの空き状況が有効になる開始時間を示す ISO タイムスタンプ。

例: T00:00

availabilityEnds ISO 時刻(ローカル)

メニュー セクションの提供が無効になる終了時間を示す ISO タイムスタンプ。

例: T16:00

availableDay List<DayOfWeek>

メニュー欄の空き状況が有効な曜日のリスト。

例: [ "MONDAY", "TUESDAY" ]

validFrom ISO タイムスタンプ

メニュー セクションの空き状況が有効な開始時間を示す ISO タイムスタンプ。

例: 2017-01-01T00:00:00-07:00

validThrough ISO タイムスタンプ

メニュー セクションの提供が無効になる終了時間を示す ISO タイムスタンプ。

例: 2017-01-02T00:00:00-07:00

dateModified ISO タイムスタンプ

空室状況エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は文字列)。

例: 2017-01-02T00:00:00-07:00

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

{
  "@type": "Availability",
  "@id": "85343705",
  "availabilityStarts": "06:00",
  "availabilityEnds": "22:30",
  "availableDay": [
    "SATURDAY",
    "SUNDAY"
  ]
}

実装に必要なエンティティ。Menu エンティティ内のアイテムを記述します。

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

プロパティ タイプ 説明
@type Const

必須。

値: MenuItem

@id String

必須。

メニュー項目の一意の識別子。

例: menu_item_1

name String

必須。

ユーザーがメニューを閲覧しているときに MenuItem を識別できるテキスト。

例: Foo

description String

メニュー項目の説明。

例: Foo

image URL

メニュー項目の画像の URL。

例: http://someprovider.com/someimage

parentMenuSectionId List<ReverseReference>

この MenuItem エンティティに対応する親 MenuSection エンティティの @id 値のリスト。

重要: parentMenuSectionId または MenuSection.menuItemId の参照のいずれか 1 つだけを使用する必要があります。

例: { "@id": "menu_section_parent_id", "displayOrder": 4 }

menuAddOnId List<String>

この MenuItem エンティティに対応するアドオン セクションの MenuSection エンティティの @id 値のリスト。

重要: menuAddOnId または MenuSection.parentMenuItemId の参照のいずれか 1 つだけを使用する必要があります。

例: menu_addon_1

nutrition NutritionInformation

料理の栄養情報(特にカロリー)。

例: { "calories": "120-150 Cal" }

allergen List<Allergen>

この MenuItem のアレルゲン。

例: [ { "allergenType": "PEANUTS", "levelOfContainment": "MAY_CONTAIN" } ]

additive List<Additive>

この MenuItem の追加機能。

例: [ { "additiveName": "Sodium nitrite", "levelOfContainment": "CONTAINS" } ]

suitableDiet List<RestrictedDiet>

料理は、説明された食事制限に準拠している。

例: [ "DIABETIC", "GLUTEN_FREE" ]

depositInfo DepositInfo

この MenuItem の梱包とリサイクルに関する情報。

例: { "depositCode": "RECYCLABLE", "depositValue": "0.05", "depositValueCurrency": "USD" }

numberOfServings 整数

特定のメニューアイテムで提供できる人数。

例: 2

dateModified ISO タイムスタンプ

MenuItem エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は文字列)。

例: 2017-01-02T00:00:00-07:00

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

{
  "@type": "MenuItem",
  "@id": "18931508",
  "name": "Sauteed Baby Spinach",
  "parentMenuSectionId": [
    {
      "@id": "3138479",
      "displayOrder": 18931508
    }
  ]
}
{
  "@type": "MenuItem",
  "@id": "18931508",
  "name": "Hamburger",
  "parentMenuSectionId": [
    {
      "@id": "4645747",
      "displayOrder": 12345
    }
  ],
  "nutrition": {
    "calories": "400 cal"
  },
  "allergen": [
    {
      "allergenType": "GLUTEN",
      "levelOfContainment": "CONTAINS"
    }
  ],
  "additive": [
    {
      "additiveName": "Sodium nitrite",
      "levelOfContainment": "CONTAINS"
    }
  ],
  "suitableDiet": [
    "DIABETIC",
    "LOW_FAT"
  ]
}

実装するオプションのエンティティ。料理やセットを選択する際にユーザーが行う必要がある選択について説明します。ユーザーがオプションを選択する必要があります。選択しなかった場合、注文は無効と見なされます(例: ピザのサイズを小、中、大から選択する必要があります)。

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

プロパティ タイプ 説明
@type Const

値: MenuItemOption

@id String

必須。

メニュー アイテム オプションの一意の識別子。

例: menu_item_1_option

menuItemId ReverseReference

必須。

この MenuItemOption エンティティに関連付けられている MenuItem エンティティの @id 値。

例: { "@id": "menu_item_1", "displayOrder": 4 }

optionType OptionType

メニュー項目オプションがサイズ、オプション、ピザサイドのいずれに分類されているかを示す文字列。指定できる値は「SIZE」、「OPTION」、「PIZZA_SIDE」です。「SIZE」: MenuItemOption のサイズ。(小、中、大など)。「オプション」: サイズ以外のバリエーション(サラダまたはサンドイッチのいずれかとして提供される料理など)。「SIZE」と「OPTION」を区別できない場合は、「OPTION」を使用します。「PIZZA_SIDE」: ピザに固有の項目です。この MenuItemOption は、ピザの一部または全体(左側、右側、ピザ全体にキノコのトッピングなど)にのみ有効です。

例: SIZE

value 文字列または PizzaSide

optionType is defined の場合は必須です。

文字列値または列挙型の値。列挙型の値は、PIZZA_SIDE オプション タイプに固有です。

applicableParentOptionValue String

このオプションが使用可能な親アイテムのオプション値の値を含む文字列。

例: Small

menuAddOnId List<String>

この MenuItemOption エンティティに対応するアドオン セクションの MenuSection エンティティの @id 値のリスト。

重要: menuAddOnId または MenuSection.parentMenuItemId の参照のいずれか 1 つだけを使用する必要があります。

例: menuAddOnId

nutrition NutritionInformation

料理の栄養情報(特にカロリー)。

例: { "calories": "120-150 Cal" }

allergen List<Allergen>

この MenuItem のアレルゲン。

例: { "allergenType": "PEANUTS", "levelOfContainment": "MAY_CONTAIN" }

additive List<Additive>

この MenuItem の追加機能。

例: { "additiveName": "Sodium nitrite", "levelOfContainment": "CONTAINS" }

depositInfo DepositInfo

この MenuItem の梱包とリサイクルに関する情報。

例: { "depositCode": "RECYCLABLE", "depositValue": "0.05", "depositValueCurrency": "USD" }

numberOfServings 整数

特定のメニュー項目オプションで利用可能な人数。

例: 2

dateModified ISO タイムスタンプ

MenuItemOption エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は String)。

例: 2017-01-02T00:00:00-07:00

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

{
  "@type": "MenuItemOption",
  "@id": "56177944",
  "menuItemId": {
    "@id": "18930213",
    "displayOrder": 1234
  },
  "optionType": "PIZZA_SIDE",
  "value": "PIZZA_SIDE_LEFT"
}
{
  "@type": "MenuItemOption",
  "@id": "56177944",
  "menuItemId": {
    "@id": "18930213",
    "displayOrder": 1234
  },
  "applicableParentOptionValue": "Small Pizza"
}

実装に必要なエンティティ。MenuItem エンティティまたは MenuItemOption エンティティの提供内容を記述します。

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

プロパティ タイプ 説明
@type Const

必須。

値: MenuItemOffer

@id String

必須。

メニュー アイテムの特典の一意の識別子。

例: menu_item_offer

sku String

必須。

メニュー アイテム オファーの識別子。SKU の値は、複数のメニュー アイテム オファー エンティティ間で異なる場合も同じ場合もあります。sku 値は、Google が API 呼び出しを行うときに順番に設定されます。

例: Menu_item_offer_sku

price 数値

必須。

メニュー アイテム オファーの価格。

例: 2.5

priceCurrency String

必須。

3 文字の ISO 4217 通貨コードを指定します。

例: USD

availabilityId List<String>

メニューアイテムの提供が可能な日時の詳細を提供する Availability エンティティの @id 値。

例: [ "menu_availability_1" ]

eligibleQuantityMin 数値

MenuItemOffer が有効な最小注文数量。

例: 1

eligibleQuantityMax 数値

MenuItemOffer が有効な最大注文数量。

例: 25

inventoryLevel 数値

この MenuItemOffer に対応するアイテムの現在の在庫レベル(おおよその数値)。

例: 10

dateModified ISO タイムスタンプ

MenuItemOffer エンティティ フィードの最終更新日時(ISO タイムスタンプ形式、型は文字列)。

例: 2017-01-02T00:00:00-07:00

applicableServiceType List<ServiceType>

この MenuItemOffer が適用されるサービス。デフォルトでは、MenuItemOffer がすべてのユーザーに適用されます。

offeredById List<String>

この MenuItemOffer が利用可能な Restaurant エンティティの @id 値。デフォルトでは、MenuItemOffer がすべてのロケーションで利用可能であると想定しています。

例: [ "restaurant_id_5", "restaurant_id_26" ]

次のいずれかのプロパティ グループを 1 つ指定する必要があります。
menuItemId グループ 1 String

この MenuItemOffer エンティティに関連付けられている MenuItem エンティティの @id 値。

例: menu_item_1

menuItemOptionId グループ 2 String

この MenuItemOffer エンティティに関連付けられている MenuItemOption エンティティの @id 値。

例: menu_item_option_1

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

{
  "@type": "MenuItemOffer",
  "@id": "6680262",
  "sku": "offer-mediterranean-bagel",
  "menuItemId": "896532",
  "price": 15.5,
  "priceCurrency": "USD",
  "applicableServiceType": [
    "DELIVERY"
  ],
  "offeredById": [
    "bagel_shop_location_5"
  ]
}

一般的な

ReverseReference

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

プロパティ タイプ 説明
@id String

必須。

親エンティティの @id。

displayOrder 整数

必須。

親内のアイテムの表示順序。

NutritionInformation

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

プロパティ タイプ 説明
description String

栄養情報(自由形式)。たとえば、「防腐剤が含まれています」など。

calories String

カロリー数(Cal、kcal、kJ): 値 Cal または最小値 - 最大値 Cal の形式で指定します。

例: 120.34 Cal

sodiumContent String

ナトリウムの mg または g の数値(値 g または最小値 - 最大値 g の形式を使用)。

例: 1200 mg

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

{
  "calories": "120-150 Cal",
  "sodiumContent": "100 mg"
}

アレルゲン

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

プロパティ タイプ 説明
allergenType AllergenType

必須。

アレルゲンの種類。

levelOfContainment ContainmentLevel

メニュー項目に含まれる特定のアレルゲンのレベル。

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

{
  "allergenType": "PEANUTS",
  "levelOfContainment": "MAY_CONTAIN"
}

モデリング

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

プロパティ タイプ 説明
additiveName String

必須。

添加物の名称。

levelOfContainment ContainmentLevel

メニュー項目内の特定の添加物のレベル。

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

{
  "additiveName": "Sodium nitrite",
  "levelOfContainment": "CONTAINS"
}

DepositInfo

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

プロパティ タイプ 説明
depositCode DepositCode

デポジット コード。

depositValue 数値

商品のデポジットの数値(リサイクルの場合など)。

depositValueCurrency String

デポジット額の通貨

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

{
  "depositCode": "RECYCLABLE",
  "depositValue": 0.05,
  "depositValueCurrency": "USD"
}

ServingConfig

さまざまな機能(プロモーション ウィジェットの無効化など)の制御に使用されるサービスのサービング構成。

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

プロパティ タイプ 説明
disableOrderInstructions ブール値

注文手順を指定できないようにします。

disableMenuItemSpecialInstructions ブール値

メニュー項目に特別な指示を指定できないようにします。

disableTipWidget ブール値

注文フローの [注文する] ページで、ヒント ウィジェットを非表示にします。

disablePromoWidget ブール値

注文フローの [注文する] ページでプロモーション ウィジェットを非表示にします。

menuItemSpecialInstructionsMaxLength 数値

メニュー項目の特別な指示に含めることができる文字数の上限を指定します。

orderInstructionsMaxLength 数値

注文指示に含めることができる文字数の上限を指定します。

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

例 1

{
  "disableMenuItemSpecialInstructions": true
}

例 2

{
  "disableTipWidget": true,
  "disablePromoWidget": true
}

例 3

{
  "menuItemSpecialInstructionsMaxLength": 250,
  "orderInstructionsMaxLength": 1000
}

列挙型

DayOfWeek

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

  • MONDAY
  • TUESDAY
  • WEDNESDAY
  • THURSDAY
  • FRIDAY
  • SATURDAY
  • SUNDAY

ServiceType

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

  • DELIVERY
  • TAKEOUT

OrderType

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

  • ASAP
  • ADVANCE

FeeType

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

  • DELIVERY
  • SERVICE

OptionType

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

  • SIZE
  • OPTION
  • PIZZA_SIDE

PizzaSide

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

  • PIZZA_SIDE_LEFT
  • PIZZA_SIDE_RIGHT
  • PIZZA_SIDE_WHOLE

AllergenType

gs1:AllergenTypeCode に従うアレルゲンの種類。

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

  • ALMONDS
  • ALPHA_ISOMETHYL_IONONE
  • ALCOHOL
  • AMYL_CINNAMAL
  • ANISE_ALCOHOL
  • BARLEY
  • BENZYL_ALCOHOL
  • BENZYL_BENZOATE
  • BENZYL_CINNAMATE
  • BENZYL_SALICYLATE
  • BRAZIL_NUTS
  • BUTYLPHENYL_METHYLPROPIONATE
  • CARROTS
  • CASHEW_NUTS
  • CELERY
  • CEREALS_CONTAINING_GLUTEN
  • CINNAMAL
  • CINNAMYL_ALCOHOL
  • CITRAL
  • CITRONELLOL
  • COCOA
  • CORIANDER
  • CORN
  • COUMARIN
  • CRUSTACEANS
  • EGGS
  • EUGENOL
  • EVERNIA_FURFURACEA
  • EVERNIA_PRUNASTRI
  • FARNESOL
  • FISH
  • GERANIOL
  • GLUTEN
  • HAZELNUTS
  • HEXYL_CINNAMAL
  • HYDROXYCITRONELLAL
  • HYDROXYISOHEXYL_3_CYCLOHEXENE_CARBOXALDEHYDE_ISOEUGENOL_LIMONENE_LINAL
  • KAMUT
  • LACTOSE
  • LUPINE
  • MACADAMIA_NUTS
  • METHYL_2_OCTYNOATE
  • MILK
  • MOLLUSCS
  • MUSTARD
  • NO_DECLARED_ALLERGENS
  • OAT
  • PEANUTS
  • PEAS
  • PECAN_NUTS
  • PISTACHIOS
  • POD_FRUITS
  • QUEENSLAND_NUTS
  • RYE
  • SESAME_SEEDS
  • SOYBEANS
  • SPELT
  • SULPHUR_DIOXIDE
  • TREE_NUTS
  • TREE_NUT_TRACES
  • WALNUTS
  • WHEAT

ContainmentLevel

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

  • CONTAINS
  • FREE_FROM
  • MAY_CONTAIN

DepositCode

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

  • REUSABLE
  • RECYCLABLE

DealType

割引を適用する取引のカテゴリ。カテゴリは、カート内の合計金額または配送料金に設定できます。

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

  • CART_OFF
  • DELIVERY_OFF

RestrictedDiet

schema.org:RestrictedDiet に従った制限付き食事の種類。

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

  • DIABETIC
  • GLUTEN_FREE
  • HALAL
  • HINDU
  • KOSHER
  • LOW_CALORIE
  • LOW_FAT
  • LOW_LACTOSE
  • LOW_SALT
  • VEGAN
  • VEGETARIAN