常规要求
实体的结构必须为 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
基于 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 |
常量 | 必填。 值: |
|
@id |
String | 必填。 餐馆或送餐服务提供商的唯一标识符。 示例: |
|
name |
String | 必填。 餐馆的名称。 示例: |
|
description |
String |
餐馆的说明。 示例: |
|
url |
网址 |
表示餐馆的网址。餐馆网域优先于集合商家网域。 示例: |
|
sameAs |
网址 |
餐馆的官方网站。 示例: |
|
telephone |
String |
餐馆的电话号码。 示例: |
|
streetAddress |
String | 必填。 餐馆的街道地址。 示例: |
|
addressLocality |
String | 必填。 市行政区或城市。 示例: |
|
addressRegion |
String | 必填。 地区或州。 示例: |
|
postalCode |
String | 必填。 邮政编码。 示例: |
|
addressCountry |
String | 必填。 由两个字母组成的 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 |
常量 | 必填。 值: |
|
@id |
String | 必填。 交易的唯一标识符。 示例: |
|
dealCode |
String | 必填。 每个合作伙伴每笔交易的唯一交易 ID。此 ID 必须能唯一标识您的促销系统中的交易。Google 会在 示例: |
|
applicableServiceType |
列表<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 |
常量 | 必填。 值: |
|
@id |
String | 必填。 执行方式服务的标识符。 示例: |
|
serviceType |
ServiceType |
必填。 提供的服务的类型。可能的值为“DELIVERY”或“TAKEOUT”。 示例: |
|
restaurantId |
String | 必填。 与此服务实体关联的餐馆实体的 @id 值。 示例: |
|
menuId |
String | 必填。 与此服务实体关联的菜单实体的 @id 值。 示例: |
|
dateModified |
ISO 时间戳 |
服务实体 Feed 的上次修改日期和时间(采用 ISO 时间戳格式)。 示例: |
|
isDisabled |
布尔值 |
指示实体是否已停用。只有在因意外事件而必须停用实体,且不知道何时重新建立服务的情况下,才使用此类型(例如,不要在节假日中使用)。 示例: |
|
servingConfig |
ServingConfig |
该服务的服务配置,用于控制各种功能,例如停用促销微件等。 |
|
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 |
常量 | 必填。 值: |
|
@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
opens
和 closes
属性用于指定允许用户下单的在线系统的开始和打烊时间。在这些在线系统营业时间内,使用 ServiceHours
指定可以履行用户订单的营业时间和结束营业时间。
必须为相应服务指定当地时间。请勿在 opens
值中添加时区。如果指定了时区,Google 会忽略此信息。如需了解详情,请参阅日期和时间格式。
下表列出了 OperationHours
类型的属性:
媒体资源 | 类型 | 说明 | |
---|---|---|---|
@type |
常量 | 必填。 值: |
|
@id |
String | 必填。 描述订餐时段的实体的唯一标识符,用户可以访问该流程并下达尽快/未来订单。 示例: |
|
serviceId |
List<String> | 必填。 与此 OperationHours 实体关联的服务实体的 @id 值。 示例: |
|
opens |
ISO 时间(本地) |
以 ISO 格式表示一天中的特定时间,从可下单的起始日期开始。 示例: |
|
closes |
ISO 时间(本地) |
表示一天中的特定时间(采用 ISO 格式),超过这个时间的用户就无法下单。 示例: |
|
dayOfWeek |
列表<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
。
OperationHours
opens
和 closes
属性用于指定允许用户下单的在线系统的开始和打烊时间。在这些在线系统营业时间内,使用 ServiceHours
指定可以履行用户订单的营业时间和结束营业时间。
必须为相应服务指定当地时间。请勿在 opens
值中添加时区。如果指定了时区,Google 会忽略此信息。如需了解详情,请参阅日期和时间格式。
下表列出了 ServiceHours
类型的属性:
媒体资源 | 类型 | 说明 | |
---|---|---|---|
@type |
常量 | 必填。 值: |
|
@id |
String | 必填。 实体的唯一标识符,用于描述履单时段,用户可以选择履单时段(即“尽快”或“未来”时段)。 示例: |
|
orderType |
OrderType |
必填。 指示服务时间是否适用于“尽快”或“提前订单”的字符串。可接受的值为“ASAP”和“ADVANCE”。 示例: |
|
serviceId |
List<String> | 必填。 与此 ServiceHours 实体关联的服务实体的 @id 值。 示例: |
|
operationHoursId |
List<String> |
与此 ServiceHours 实体关联的 OperationHours 实体的 @id 值。 示例: |
|
opens |
ISO 时间(本地) |
以 ISO 格式表示一天中可以履行用户订单的起始时间。 示例: |
|
closes |
ISO 时间(本地) |
用 ISO 格式指明一天中的特定时间,超过该时间后无法履行用户的订单。 示例: |
|
dayOfWeek |
列表<DayOfWeek > |
一周中营业时间有效的日期列表。 示例: |
|
validFrom |
ISO 时间戳 |
ISO 时间戳,指示用户可以访问流程和尽快/未来下单的下单窗口的开始时间。 示例: |
|
validThrough |
ISO 时间戳 |
ISO 时间戳,指明下单窗口的结束时间,超过此时间后,用户将无法访问流程和下达尽快/未来订单。 示例: |
|
isSpecialHour |
布尔值 |
指示 OperationHours 是否适用于特殊营业时间的布尔值。可接受的值为“false”和“true”。 示例: |
|
leadTimeMin |
整数 |
尽快下单后,预计最短送货/自提时间(以分钟为单位)。我们强烈建议您设置此属性。 示例: |
|
leadTimeMax |
整数 |
下单后的“尽快”订单后,预计最长送货/自提时间(以分钟为单位)。我们强烈建议您设置此属性。 示例: |
|
advanceBookingRequirementMin |
整数 |
从下单时间到可以提前履行订单时所需的最短分钟数。 例如,如果提前订单至少需要 60 分钟才能完成,则 advancedBookingRequirementMin 为 60。 示例: |
|
advanceBookingRequirementMax |
整数 |
自下单时间起,可以完成提前订单所需要的分钟数上限。 例如,如果提前订单被限制在超过 2 天后履单,则 AdvancedBookingRequirementMax 的值为 2880。 示例: |
|
advanceBookingSlotInterval |
String |
两次连续提前预订空档时间之间的时间间隔。 例如:如果开门和关门时间是上午 8 点和晚上 8 点,并且 advancedBookingSlotInterval 是 15 分钟,那么用户可以选择履单时间为上午 8 点、上午 8:15、上午 8:30、上午 8:45,等等。 必须将时长指定为 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”,则必须提供 Fee
,并将 feeType
设置为“DELIVERY”。
下表列出了 Fee
类型的属性:
媒体资源 | 类型 | 说明 | |
---|---|---|---|
@type |
常量 | 必填。 值: |
|
@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(含 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 |
常量 | 必填。 值: |
|
@id |
String | 必填。 菜单的唯一标识符。 示例: |
|
name |
String |
在用户浏览菜单时可用于识别该菜单的文字。 示例: |
|
disclaimer |
String |
菜单免责声明。例如,营养信息披露和过敏原披露。 示例: |
|
disclaimerUrl |
网址 |
指向提供免责声明的更多详情的网页的网址。 |
|
dateModified |
ISO 时间戳 |
菜单实体 Feed 的上次修改日期和时间,采用 ISO 时间戳格式,但类型为字符串。 示例: |
下例展示了一个 Menu
元素:
示例
{ "@type": "Menu", "@id": "10824" }
MenuSection
要实现的可选实体。描述菜单中的特定部分。
下表列出了 MenuSection
类型的属性:
媒体资源 | 类型 | 说明 | |
---|---|---|---|
@type |
常量 | 必填。 值: |
|
@id |
String | 必填。 菜单部分的唯一标识符。 示例: |
|
menuId |
列表<ReverseReference > |
与此 示例: |
|
menuSectionId |
List<String> |
与此 重要提示:您只能使用 示例: |
|
parentMenuSectionId |
列表<ReverseReference > |
与此 重要提示:您只能使用 示例: |
|
name |
String | 必填。 在用户浏览菜单时可识别 示例: |
|
description |
String |
菜单部分的说明。 示例: |
|
image |
网址 |
菜单部分图片的网址。 示例: |
|
menuItemId |
List<String> |
与此 重要提示:您只能使用 示例: |
|
parentMenuItemId |
列表<ReverseReference > |
与此 重要提示:您只能使用 示例: |
|
parentMenuItemOptionId |
列表<ReverseReference > |
与此 重要提示:您只能使用 示例: |
|
eligibleQuantityMax |
整数 |
最多可在插件部分选择插件。 示例: |
|
eligibleQuantityMin |
整数 |
应在“插件”部分选择的插件数量下限。 示例: |
|
defaultItemId |
List<String> |
@id 列表,引用了要默认为插件 示例: |
|
availabilityId |
List<String> |
可用性实体的 @id 值,提供有关菜单部分何时可用的详细信息。 示例: |
|
numberOfFreeAddOns |
整数 |
指明用户可以免费选择的插件数量。仅对插件菜单版块有效。 示例: |
|
dateModified |
ISO 时间戳 |
示例: |
|
applicableServiceType |
列表<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 |
常量 | 必填。 值: |
|
@id |
String | 必填。 描述菜单版块可用性的实体的唯一标识符。 示例: |
|
availabilityStarts |
ISO 时间(本地) |
指明菜单部分可用性有效的开始时间的 ISO 时间戳。 示例: |
|
availabilityEnds |
ISO 时间(本地) |
ISO 时间戳,表示在超过该时间后,菜单部分可用性无效的时间。 示例: |
|
availableDay |
列表<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 |
常量 | 必填。 值: |
|
@id |
String | 必填。 菜单项的唯一标识符。 示例: |
|
name |
String | 必填。 在用户浏览菜单时可识别 示例: |
|
description |
String |
菜单项的说明。 示例: |
|
image |
网址 |
菜单项图片的网址。 示例: |
|
parentMenuSectionId |
列表<ReverseReference > |
与此 重要提示:您只能使用 示例: |
|
menuAddOnId |
List<String> |
与此 重要提示:您只能使用 示例: |
|
nutrition |
NutritionInformation |
菜肴的营养信息,最主要是卡路里。 示例: |
|
allergen |
列表<Allergen > |
此 MenuItem 的过敏原。 示例: |
|
additive |
列表<Additive > |
此 MenuItem 的添加剂。 示例: |
|
suitableDiet |
列表<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 |
常量 |
值: |
|
@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 |
列表<Allergen > |
此 MenuItem 的过敏原。 示例: |
|
additive |
列表<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 |
常量 | 必填。 值: |
|
@id |
String | 必填。 菜单项优惠的唯一标识符。 示例: |
|
sku |
String | 必填。 菜单项优惠的标识符。多个菜单项的商品实体的 SKU 值可以不同或相同。当我们向您进行 API 调用时,系统将按顺序设置 SKU 值。 示例: |
|
price |
编号 | 必填。 菜品优惠的价格。 示例: |
|
priceCurrency |
String | 必填。 由 3 个字母表示的 ISO 4217 货币代码。 示例: |
|
availabilityId |
List<String> |
可用性实体的 @id 值,用于详细说明菜单项优惠何时可用。 示例: |
|
eligibleQuantityMin |
编号 |
示例: |
|
eligibleQuantityMax |
编号 |
示例: |
|
inventoryLevel |
编号 |
与此 MenuItemOffer 对应的一个或多个项目当前的大致库存水平。 示例: |
|
dateModified |
ISO 时间戳 |
示例: |
|
applicableServiceType |
列表<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 |
卡路里数(以 Cal、kcal 或 kJ 为单位),使用以下格式:Cal 值或 min-max Cal 示例: |
|
sodiumContent |
String |
mg 或 g 钠的数量,使用以下格式:值 g 或 min-max g 示例: |
下例展示了一个 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