常规要求
实体必须采用结构化形式,在 Feed 中每个实体占一行(实体之间以换行符分隔)。为方便阅读,本页中的 JSON 示例不遵循该结构。不过,您在发送 Feed 时必须遵循该结构。例如,菜单实体必须采用以下代码结构:
{"@type": "Menu","name": "Coffee Shop A","@id": "1535"}
每个 `Restaurant` 实体可以有两个 Service 实体(分别对应于 `DELIVERY` 和 `TAKEOUT` 服务类型)。每个 `Service` 实体只能有一个 `Menu` 实体。
任何子实体都可以在多个餐厅中重复使用。
JSON 值准则
类型强制转换
JSON 值的类型可以与架构中定义的类型不同,只要该值可以强制转换为所需的类型即可。例如,字符串属性可以接受字符串和整数值作为输入。同样,整数属性可以接受字符串值,前提是字符串可以解析为有效的整数。
类型强制转换也适用于重复属性。重复的属性可以接受值作为输入,而无需用括号 []
括起来。例如,OperationHours.serviceId
属性接受 "service_id"
和 ["service_id"]
作为有效输入。
DateTime 和时间值
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 | 必填。 值: |
|
@id |
String | 必填。 餐厅或送餐服务提供商的唯一标识符。 示例: |
|
name |
String | 必填。 餐厅的名称。 示例: |
|
description |
String |
餐厅的说明。 示例: |
|
url |
网址 |
表示相应餐厅的网址。餐厅网域优先于集合商家网域。 示例: |
|
sameAs |
网址 |
餐厅的官方网站。 示例: |
|
telephone |
String |
餐厅的电话号码。 示例: |
|
streetAddress |
String | 必填。 餐厅的街道地址。 示例: |
|
addressLocality |
String | 必填。 所在地或城市。 示例: |
|
addressRegion |
String | 必填。 地区或州/省。 示例: |
|
postalCode |
String | 必填。 邮政编码。 示例: |
|
addressCountry |
String | 必填。 由 2 个字母组成的 ISO 3166-1 alpha-2 国家/地区代码。 示例: |
|
latitude |
编号 |
纬度(以度为单位)。值仅限于范围 [[-90, 90]]。 精度应至少为 5 位小数。 示例: |
|
longitude |
编号 |
经度(以度为单位)。值仅限于 [[-180, 180]] 范围。 精度应至少为 5 位小数。 示例: |
|
dealId |
List<String> |
餐厅的适用 |
|
imprint |
String |
餐厅信息是餐厅的其他信息部分,例如法律名称、法律地址和注册号。此信息可以使用“ ”进行格式设置。 示例:
|
|
economicOperator |
String |
与餐厅相关联的经济运营商信息(如果适用)。这些信息将显示在“交易者信息”部分中。您可以使用“ ”设置文本格式。 示例:
|
|
dateModified |
ISO 时间戳 |
餐厅实体 Feed 的最后修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
以下示例展示了 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 | 必填。 值: |
|
@id |
String | 必填。 交易的唯一标识符。 示例: |
|
dealCode |
String | 必填。 每个合作伙伴的每笔交易都有唯一的交易 ID。此 ID 必须能唯一标识您的促销活动系统中的特惠。Google 会在 示例: |
|
applicableServiceType |
List<ServiceType > |
此特惠适用的服务。默认值表示相应特惠适用于所有用户。 |
|
eligibleMaxOrders |
整数 |
只有当用户过去成功完成的订单数量不超过此数量时,此特惠才符合条件。 |
|
availabilityId |
List<String> |
库存状况实体的 @id 值,用于详细说明菜单部分的提供时间。 示例: |
|
isDisabled |
布尔值 |
这会替换其他有效性检查。 |
|
dealType |
DealType |
必填。 要应用折扣的交易类别。类别可以是购物车总金额、服务费或运费。 |
|
priceCurrency |
String |
折扣的币种(采用由 3 个字母表示的 ISO 4217 格式)。 示例: |
|
eligibleTransactionVolumeMin |
编号 |
此促销活动适用的交易量(以货币单位表示)。 |
|
termsOfServiceUrl |
网址 | 必填。 人类可读的服务条款文档。 |
|
dateModified |
ISO 时间戳 |
特惠实体 Feed 的最后修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
|
必须提供以下某个属性组。 | |||
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 | 必填。 值: |
|
@id |
String | 必填。 履单服务的标识符。 示例: |
|
serviceType |
ServiceType |
必填。 提供的服务类型。可能的值为“DELIVERY”或“TAKEOUT”。 示例: |
|
restaurantId |
String | 必填。 与此服务实体相关联的餐厅实体的 @id 值。 示例: |
|
menuId |
String | 必填。 与此 Service 实体相关联的 Menu 实体的 @id 值。 示例: |
|
dateModified |
ISO 时间戳 |
服务实体 Feed 的上次修改日期和时间,采用 ISO 时间戳格式。 示例: |
|
isDisabled |
布尔值 |
指示实体是否已停用。仅当您因意外事件而必须停用实体且不知道何时会重新建立服务时(例如,请勿在节假日使用此类型),才应使用此类型。 示例: |
|
servingConfig |
ServingConfig |
用于控制各种功能(例如停用促销信息 widget 等)的服务投放配置。 |
|
actionLinkUrl |
String |
包含外卖服务的网址,将在从端到端食品订购体验迁移到重定向时使用。 |
以下示例展示了 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 | 必填。 值: |
|
@id |
String | 必填。 服务区域的唯一标识符。 示例: |
|
serviceId |
List<String> | 必填。 与此 ServiceArea 实体相关联的 Service 实体的 @id 值。 示例: |
|
dateModified |
ISO 时间戳 |
ServiceArea 实体 Feed 的上次修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
|
exclude |
布尔值 |
从整个配送区域中排除此服务区域。例如,您可以从较大的多边形区域中排除某个邮政编码。 |
|
必须提供以下某个属性组。 | |||
polygon |
第 1 组 | List<String> |
多边形或多重多边形,表示为一系列由空格分隔的三个或更多点。建议第一个点和最后一个点相同,但这并非强制要求。 多边形或多边形复合体中的每个点由纬度点和经度点组成。您还必须按逆时针方向指定点。 示例: |
geoMidpointLatitude |
第 2 组 | 编号 |
表示 CIRCLE 区域中心的纬度坐标。 示例: |
geoMidpointLongitude |
第 2 组 | 编号 |
表示 CIRCLE 区域中心的经度坐标。 示例: |
geoRadius |
第 2 组 | 整数 |
表示 CIRCLE 区域的大致半径(以米为单位)。 示例: |
postalCode |
第 3 组 | String |
表示邮政编码。 示例: |
addressCountry |
第 3 组 | String |
表示由两个字母组成的 ISO 3166-1 alpha-2 国家/地区代码 示例: |
以下示例展示了 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(必填)
说明用户可以访问该流程并下单的期限,以及可以下单的类型(即尽快送达或日后送达)。必须实现 OperationHours
,默认表示全天候营业。
OperationHours
opens
和 closes
属性用于指定允许用户下单的在线系统的营业时间和非营业时间。在这些在线系统营业时间内,使用 ServiceHours
指定可以处理用户订单的营业时间和休息时间。
时间必须以服务的当地时间指定。请勿在 opens
值中添加时区。如果指定了时区,Google 会忽略此信息。如需了解详情,请参阅日期时间和时间格式。
下表列出了 OperationHours
类型的属性:
属性 | 类型 | 说明 | |
---|---|---|---|
@type |
Const | 必填。 值: |
|
@id |
String | 必填。 用于描述订购时间范围的实体的唯一标识符,用户可以访问该流程并下单(尽快送达/未来送达)。 示例: |
|
serviceId |
List<String> | 必填。 与此 OperationHours 实体相关联的 Service 实体的 @id 值。 示例: |
|
opens |
ISO 时间(本地) |
指明用户可以下单的开始时间(采用 ISO 格式)。 示例: |
|
closes |
ISO 时间(本地) |
指明用户无法下单的特定时间(采用 ISO 格式)。 示例: |
|
dayOfWeek |
List<DayOfWeek > |
这些营业时间适用的星期几的列表。可接受的值为“MONDAY”“TUESDAY”“WEDNESDAY”“THURSDAY”“FRIDAY”“SATURDAY”和“SUNDAY”。 示例: |
|
validFrom |
ISO 时间戳 |
一个 ISO 时间戳,表示用户可以访问流程并下单尽快送达/未来送达的订单时间范围的开始时间。 示例: |
|
validThrough |
ISO 时间戳 |
ISO 时间戳,表示订购时间范围的结束时间。如果超过该时间,用户将无法访问该流程并下单。 示例: |
|
isSpecialHour |
布尔值 |
一个布尔值,表示 OperationHours 是否适用于特殊营业时间。可接受的值为“false”和“true”。 示例: |
|
dateModified |
ISO 时间戳 |
OperationHours 实体 Feed 的上次修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
以下示例展示了 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
值中添加时区。如果指定了时区,Google 会忽略此信息。如需了解详情,请参阅日期时间和时间格式。
下表列出了 ServiceHours
类型的属性:
属性 | 类型 | 说明 | |
---|---|---|---|
@type |
Const | 必填。 值: |
|
@id |
String | 必填。 实体的唯一标识符,用于描述用户可以选择的执行时间范围,例如尽快或未来的时间范围。 示例: |
|
orderType |
OrderType |
必填。 一个字符串,表示服务时间是否适用于“尽快”或“提前”订单。可接受的值为“ASAP”和“ADVANCE”。 示例: |
|
serviceId |
List<String> | 必填。 与此 ServiceHours 实体相关联的 Service 实体的 @id 值。 示例: |
|
operationHoursId |
List<String> |
与此 ServiceHours 实体相关联的 OperationHours 实体的 @id 值。 示例: |
|
opens |
ISO 时间(本地) |
指明用户订单可从何时开始履单,采用 ISO 格式。 示例: |
|
closes |
ISO 时间(本地) |
指明用户订单的处理截止时间(采用 ISO 格式),超过此时间将无法再处理。 示例: |
|
dayOfWeek |
List<DayOfWeek > |
这些营业时间适用的星期几的列表。 示例: |
|
validFrom |
ISO 时间戳 |
一个 ISO 时间戳,表示用户可以访问流程并下单尽快送达/未来送达的订单时间范围的开始时间。 示例: |
|
validThrough |
ISO 时间戳 |
ISO 时间戳,表示订购时间范围的结束时间。如果超过该时间,用户将无法访问该流程并下单。 示例: |
|
isSpecialHour |
布尔值 |
一个布尔值,表示 OperationHours 是否适用于特殊营业时间。可接受的值为“false”和“true”。 示例: |
|
leadTimeMin |
整数 |
下单后,最短预计送货/自提时间(以分钟为单位)。我们强烈建议您设置此属性。 示例: |
|
leadTimeMax |
整数 |
下单后,最长预计送达/自提时间(以分钟为单位)。我们强烈建议您设置此属性。 示例: |
|
advanceBookingRequirementMin |
整数 |
从下单时间起,提前订单最短可满足的分钟数。 例如,如果提前订单需要至少 60 分钟才能完成,则 advanceBookingRequirementMin 为 60。 示例: |
|
advanceBookingRequirementMax |
整数 |
从下单时间起,提前订单可完成的最长分钟数。 例如,如果提前预订的订单不得晚于 2 天后履行,则 advanceBookingRequirementMax 的值为 2880。 示例: |
|
advanceBookingSlotInterval |
String |
连续两个提前预订时间空档之间的间隔。 例如:如果开始时间和结束时间分别为上午 8 点和晚上 8 点,并且 advanceBookingSlotInterval 为 15 分钟,则用户可以选择上午 8 点、上午 8:15、上午 8:30、上午 8:45 等时间,一直到晚上 8 点。 时长必须指定为 ISO 时段时长。例如,“PT15M”表示 15 分钟的间隔时间。 示例: |
|
dateModified |
ISO 时间戳 |
ServiceHours 实体 Feed 的最后修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
以下示例展示了 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 | 必填。 值: |
|
@id |
String | 必填。 用于描述费用的实体的唯一标识符。 示例: |
|
serviceId |
List<String> | 必填。 与此费用实体相关联的服务实体的 @id 值。 示例: |
|
feeType |
FeeType |
必填。 一个字符串,表示相应费用是否适用于送货订单或服务订单。可接受的值为“DELIVERY”和“SERVICE”。 示例: |
|
priceCurrency |
String | 必填。 由 3 个字母表示的 ISO 4217 货币代码。 示例: |
|
basePrice |
编号 |
费用的基本价格,适用于使用 示例: |
|
minPrice |
编号 |
使用 示例: |
|
maxPrice |
编号 |
最高费用,使用 示例: |
|
eligibleRegion |
List<String> |
适用费用的地缘政治区域的 ServiceArea 的 @id。仅当配送费用因地区而异时,才使用此属性。 示例: |
|
eligibleTransactionVolumeMin |
编号 |
此费用规范适用的最低交易量(以货币单位表示)。 示例: |
|
eligibleTransactionVolumeMax |
编号 |
此费率规范适用的最高交易量(以货币单位表示)。例如,如果订单量超过一定数量,则不收取此费用。 示例: |
|
validFrom |
ISO 时间戳 |
一个 ISO 时间戳,表示费用生效的开始时间。 示例: |
|
validThrough |
ISO 时间戳 |
ISO 时间戳,表示费用的结束时间(超过此时间,费用无效)。 示例: |
|
dateModified |
ISO 时间戳 |
费用实体 Feed 的上次修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
|
priority |
编号 |
非零正值。如果用户的购物车中有多项费用,则优先级最高的费用将优先于优先级较低的费用。如果提供此字段,则此优先级始终优先于计算出的优先级。 示例: |
|
必须提供以下某个属性组。 | |||
price |
第 1 组 | 编号 |
费用价格。如果价格不固定,可以提供 minPrice 和 maxPrice 来代替 price。 示例: |
percentageOfCart |
第 2 组 | 编号 |
费用占购物车价值的百分比。可接受的值为介于 0 到 100 之间的浮点值(包括这两个数值)。 示例: |
pricePerMeter |
第 3 组 | 编号 |
距离用户的半径距离每米费用。例如,如果距离用户的距离为 5 公里,费率为 0.001 美元,则用户费用为 5 美元。 示例: |
以下示例展示了 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 | 必填。 值: |
|
@id |
String | 必填。 菜单的唯一标识符。 示例: |
|
name |
String |
在用户浏览菜单时可用于识别菜单的文本。 示例: |
|
disclaimer |
String |
菜单的免责声明。例如,营养信息披露和致敏原披露。 示例: |
|
disclaimerUrl |
网址 |
指向提供免责声明更多详细信息的页面的网址。 |
|
dateModified |
ISO 时间戳 |
菜单实体 Feed 的上次修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
以下示例展示了 Menu
元素:
示例
{ "@type": "Menu", "@id": "10824" }
MenuSection
可选择实现的实体。描述菜单中的特定部分。
下表列出了 MenuSection
类型的属性:
属性 | 类型 | 说明 | |
---|---|---|---|
@type |
Const | 必填。 值: |
|
@id |
String | 必填。 菜单部分的唯一标识符。 示例: |
|
menuId |
List<ReverseReference > |
与此 示例: |
|
menuSectionId |
List<String> |
与此 重要提示:您只能使用 示例: |
|
parentMenuSectionId |
List<ReverseReference > |
与此 重要提示:您只能使用 示例: |
|
name |
String | 必填。 在用户浏览菜单时可用于识别 示例: |
|
description |
String |
菜单部分的说明。 示例: |
|
image |
网址 |
菜单部分图片的网址。 示例: |
|
menuItemId |
List<String> |
与此 重要提示:您只能使用 示例: |
|
parentMenuItemId |
List<ReverseReference > |
与此 重要提示:您只能使用 示例: |
|
parentMenuItemOptionId |
List<ReverseReference > |
与此 重要提示:您只能使用 示例: |
|
eligibleQuantityMax |
整数 |
在插件部分中可选择的插件数量上限。 示例: |
|
eligibleQuantityMin |
整数 |
在插件部分应选择的插件数量下限。 示例: |
|
defaultItemId |
List<String> |
一个 @id 列表,其中引用了默认情况下要为插件 示例: |
|
availabilityId |
List<String> |
库存状况实体的 @id 值,用于详细说明菜单部分的提供时间。 示例: |
|
numberOfFreeAddOns |
整数 |
表示用户可以免费选择的插件数量。仅适用于插件菜单版块。 示例: |
|
dateModified |
ISO 时间戳 |
示例: |
|
applicableServiceType |
List<ServiceType > |
此 |
|
offeredById |
List<String> |
此 示例: |
以下示例展示了 MenuSection
元素:
示例 1
{ "@type": "MenuSection", "@id": "853705", "menuId": [ { "@id": "10824", "displayOrder": 853705 } ], "menuSectionId": [ 12345, 43645 ], "name": "Pasta", "applicableServiceType": [ "TAKEOUT" ], "offeredById": [ "italian_restaurant_location_1" ] }
示例 2
{ "@type": "MenuSection", "@id": "427484", "menuId": [ { "@id": "4287", "displayOrder": 964376 } ], "menuItemId": [ 46784, 42728 ], "name": "Burger", "applicableServiceType": [ "TAKEOUT", "DELIVERY" ] }
示例 3
{ "@type": "MenuSection", "@id": "3138486", "name": "Choose a side:", "parentMenuItemId": [ { "@id": "6680295", "displayOrder": 3138486 } ], "eligibleQuantityMax": "5", "numberOfFreeAddOns": "2" }
示例 4
{ "@type": "MenuSection", "@id": "3138482", "name": "Additional Pizza Toppings", "parentMenuItemId": [ { "@id": "6680246", "displayOrder": 3138482 } ], "eligibleQuantityMax": "3" }
可用性
可选择实现的实体。描述 MenuSection
实体投放的时间段。
下表列出了 Availability
类型的属性:
属性 | 类型 | 说明 | |
---|---|---|---|
@type |
Const | 必填。 值: |
|
@id |
String | 必填。 用于描述菜单版块可用性的实体的唯一标识符。 示例: |
|
availabilityStarts |
ISO 时间(本地) |
ISO 时间戳,表示菜单版块播出信息有效的开始时间。 示例: |
|
availabilityEnds |
ISO 时间(本地) |
ISO 时间戳,表示菜单部分的有效结束时间。 示例: |
|
availableDay |
List<DayOfWeek > |
菜单版块的营业时间适用的一周中的日期列表。 示例: |
|
validFrom |
ISO 时间戳 |
一个 ISO 时间戳,表示菜单部分库存状况有效的开始时间。 示例: |
|
validThrough |
ISO 时间戳 |
ISO 时间戳,表示菜单版块的播出信息在该时间之后无效。 示例: |
|
dateModified |
ISO 时间戳 |
播出信息实体 Feed 的上次修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
以下示例展示了 Availability
元素:
示例
{ "@type": "Availability", "@id": "85343705", "availabilityStarts": "06:00", "availabilityEnds": "22:30", "availableDay": [ "SATURDAY", "SUNDAY" ] }
MenuItem(必需)
必须实现的实体。描述 Menu
实体中的项。
下表列出了 MenuItem
类型的属性:
属性 | 类型 | 说明 | |
---|---|---|---|
@type |
Const | 必填。 值: |
|
@id |
String | 必填。 菜单项的唯一标识符。 示例: |
|
name |
String | 必填。 在用户浏览菜单时可用于识别 示例: |
|
description |
String |
菜单项的说明。 示例: |
|
image |
网址 |
菜单项图片的网址。 示例: |
|
parentMenuSectionId |
List<ReverseReference > |
与此 重要提示:您只能使用 示例: |
|
menuAddOnId |
List<String> |
与此 重要提示:您只能使用 示例: |
|
nutrition |
NutritionInformation |
菜肴的营养信息,尤其是卡路里。 示例: |
|
allergen |
List<Allergen > |
此 MenuItem 的过敏原。 示例: |
|
additive |
List<Additive > |
此 MenuItem 的添加项。 示例: |
|
suitableDiet |
List<RestrictedDiet > |
菜肴符合所述的饮食禁忌。 示例: |
|
depositInfo |
DepositInfo |
此 MenuItem 的包装和回收信息。 示例: |
|
numberOfServings |
整数 |
指定菜单项中的份数。 示例: |
|
dateModified |
ISO 时间戳 |
示例: |
以下示例展示了 MenuItem
元素:
示例 1
{ "@type": "MenuItem", "@id": "18931508", "name": "Sauteed Baby Spinach", "parentMenuSectionId": [ { "@id": "3138479", "displayOrder": 18931508 } ] }
示例 2
{ "@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
可选的实体。描述用户在选择菜肴/套餐时需要做出的选择。用户必须选择一个选项,否则订单会被视为无效(例如,用户必须为披萨选择小、中或大)。
下表列出了 MenuItemOption
类型的属性:
属性 | 类型 | 说明 | |
---|---|---|---|
@type |
Const |
值: |
|
@id |
String | 必填。 菜单项选项的唯一标识符。 示例: |
|
menuItemId |
ReverseReference |
必填。 与此 示例: |
|
optionType |
OptionType |
一个字符串,用于指明菜单项选项是按大小、选项还是比萨配菜进行分类的。可接受的值为“SIZE”“OPTION”和“PIZZA_SIDE”。“SIZE”:MenuItemOption 的大小。例如,小、中或大。“OPTION”:除尺寸之外的任何变体(例如,沙拉或三明治)。如果您无法区分“SIZE”和“OPTION”,请使用“OPTION”。“PIZZA_SIDE”:仅适用于披萨:例如,此 示例: |
|
value |
字符串或 PizzaSide |
字符串值或枚举值。枚举值仅适用于 PIZZA_SIDE 选项类型。 |
|
applicableParentOptionValue |
String |
一个字符串,其中包含此选项可用的父项选项值的值。 示例: |
|
menuAddOnId |
List<String> |
与此 重要提示:您只能使用 示例: |
|
nutrition |
NutritionInformation |
菜肴的营养信息,尤其是卡路里。 示例: |
|
allergen |
List<Allergen > |
此 MenuItem 的过敏原。 示例: |
|
additive |
List<Additive > |
此 MenuItem 的添加项。 示例: |
|
depositInfo |
DepositInfo |
此 MenuItem 的包装和回收信息。 示例: |
|
numberOfServings |
整数 |
给定菜单项选项中的份数。 示例: |
|
dateModified |
ISO 时间戳 |
MenuItemOption 实体 Feed 的最后修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
以下示例展示了 MenuItemOption
元素:
示例 1
{ "@type": "MenuItemOption", "@id": "56177944", "menuItemId": { "@id": "18930213", "displayOrder": 1234 }, "optionType": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" }
示例 2
{ "@type": "MenuItemOption", "@id": "56177944", "menuItemId": { "@id": "18930213", "displayOrder": 1234 }, "applicableParentOptionValue": "Small Pizza" }
MenuItemOffer(必填)
必须实现的实体。描述 MenuItem
或 MenuItemOption
实体的优惠。
下表列出了 MenuItemOffer
类型的属性:
属性 | 类型 | 说明 | |
---|---|---|---|
@type |
Const | 必填。 值: |
|
@id |
String | 必填。 菜单项优惠的唯一标识符。 示例: |
|
sku |
String | 必填。 菜品优惠的标识符。多个菜单项商品实体的 SKU 值可以不同,也可以相同。当我们向您发出 API 调用时,系统会按顺序设置 sku 值。 示例: |
|
price |
编号 | 必填。 菜品优惠的价格。 示例: |
|
priceCurrency |
String | 必填。 由 3 个字母表示的 ISO 4217 货币代码。 示例: |
|
availabilityId |
List<String> |
库存状况实体的 @id 值,用于详细说明菜单项优惠的提供时间。 示例: |
|
eligibleQuantityMin |
编号 |
示例: |
|
eligibleQuantityMax |
编号 |
示例: |
|
inventoryLevel |
编号 |
与此 MenuItemOffer 对应的商品的当前大致库存状况。 示例: |
|
dateModified |
ISO 时间戳 |
示例: |
|
applicableServiceType |
List<ServiceType > |
此 |
|
offeredById |
List<String> |
此 示例: |
|
必须提供以下某个属性组。 | |||
menuItemId |
第 1 组 | String |
与此 示例: |
menuItemOptionId |
第 2 组 | String |
与此 示例: |
以下示例展示了 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 |
卡路里数(以卡路里、千卡或千焦为单位),采用以下格式:值(卡路里)或最小值-最大值(卡路里) 示例: |
|
sodiumContent |
String |
钠的毫克数或克数,格式为:值(克)或最小值-最大值(克) 示例: |
以下示例展示了 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
用于控制各种功能(例如停用促销信息 widget 等)的服务投放配置。
下表列出了 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