食品目录 Feed 基于 schema.org DataFeed
实体。食品目录 Feed 包含餐厅语言区域详细信息(例如餐厅地址、菜单和营业地点),以及餐厅的服务详细信息(例如送餐费、送餐区域和下文中指定的其他项目)。
DataFeed
包含一组元素,每个元素都表示一个使用 schema.org 词汇表示的项。您可以使用 DataFeed
类型以 JSON-LD 格式发布所有结构化数据。
如需了解如何使用此规范构建 Feed,请参阅商品目录集成概览。
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
不需要提供该字段。 - 时间必须以相应餐厅或服务的当地时间指定。
信封
任何食品目录 Feed 的起始代码都应包含“封装容器”部分。
“封装容器”是每个 Feed 的顶级结构,必须是具有以下属性的 DataFeed
:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@context |
网址 | 必填 | 使用的上下文;通常为“http://schema.googleapis.com”。 |
@type |
文本 | 必填 | 此值始终为“DataFeed”。 |
dateModified |
DateTime |
必填 |
数据 Feed 的上次修改 此 Feed 中商品的修改日期和时间(采用 ISO_OFFSET_DATE_TIME 格式)。如果没有此字段,则假定更新时间为 Google 服务器收到推送消息(或抓取发生)的时间。 如果您同时使用推送和抓取,我们强烈建议您实现此操作。此时间戳应指定时区和毫秒级精度;例如“2016-12-28T06:30:00:123-07:00”。 在批量 Feed 中,实体版本控制是通过 Feed 封装容器中的 |
dataFeedElement |
Menu 、Restaurant 或 Service 的数组 |
必填 | 此 Feed 中的一个或多个项。如需了解详情,请参阅下文。 |
以下示例展示了信封:
示例
{ "@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"]
然后,将 FoodBeverageTobaccoProduct
添加到相应 MenuItem
或 MenuItemOption
的类型中。
下表介绍了 AdditiveDetails
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“AdditiveDetails”。 |
additiveName |
文本 | 可选 | 添加剂的名称。 |
additiveLevelOfContainment |
文本 | 可选 | gs1:LevelOfContainmentCode 对应的封装代码。
例如 http://gs1.org/voc/LevelOfContainmentCode-CONTAINS 、http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM 或 http://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 |
网址 | 必填 | 插件菜单项的唯一标识符。 |
name |
文本 | 必填 | 用户浏览菜单时用于标识 AddOnMenuItem 的文本。 |
description |
文本 | 可选 | 插件菜单项的说明。 |
image |
网址 | 可选 |
符合以下准则的插件菜单项图片:
|
offers |
Offer 的数组 |
必填* |
提供此 AddOnMenuItem 的一项或多项优惠。 说明此 AddOnMenuItem 的推出时间和价格。
在特定时间段内,只有一项优惠有效。如果价格或空房情况可能会因时间而异,您可以设置多个有效的房价。如果附加项或商品因基本属性或附加项商品本身的变体(例如作为附加项的小薯条、中薯条和大薯条)而有所不同,请使用
AddOnMenuItem 中使用了以下
|
hasMenuItemOptions |
MenuItemOption 的数组 |
必填* |
此附加菜单项的基本属性数组,用于描述附加项本身的款式/规格(例如,作为附加项的薯条有小、中、大三个规格)。使用选项指定此插件菜单项可用的各种变体。这种情况可能发生在以下两种情况下:
|
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 |
网址 | 必填 | 菜单部分的唯一标识符。 |
name |
文本 | 必填 | 在用户浏览菜单时可用于标识 AddOnMenuSection 的文本。 |
description |
文本 | 可选 | 菜单部分的说明。 |
eligibleQuantity |
QuantitativeValue |
可选 | 表示此菜单部分允许作为插件添加的项数。您可以使用此字段来限制附加项的数量,例如披萨可选的最低和最高馅料数量。 |
image |
网址 | 可选 | 菜单部分的图片。 |
hasMenuItem |
AddOnMenuItem 的数组 |
必填* | AddOnMenuSection 中包含的插件菜单项。 |
offers |
Offer 的数组 |
可选 |
使用 下表显示了 AddOnMenuSection 中使用的
|
hasMenuSection |
AddOnMenuSection 的数组 |
必填* | 附加菜单的逻辑子分组(例如“晚餐”“开胃菜”或“鱼类菜肴”)。 |
defaultOption |
AddOnMenuItem 的数组 |
可选 |
在
|
numberOfFreeAddOns |
数字 | 可选 | 表示用户可以免费选择的插件数量。 |
以下示例包含 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
“芝士三明治”菜单项包含“奶酪选项”AddOnMenuSection
,默认情况下,系统会预选“瑞士奶酪”和“马苏里拉奶酪”。
{ "@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
属性:
opens
和closes
属性对AdvanceServiceDeliveryHoursSpecification
来说是可选的,但我们强烈建议您添加这些属性。- 时间必须以服务的当地时间指定。请勿在
opens
或closes
值中添加时区。系统会忽略指定的时区。 - 如果未明确指定
opens
和closes
,我们会假定可随时在所有日期进行预订。 - 如果
opens
和closes
相同,则我们假定无法预订。 - 如果
opens
大于closes
,则关店时间将被解读为次日。例如,如果将开业时间设置为 1 月 1 日下午 5 点,将打烊时间设置为凌晨 2 点,则系统会将该餐厅的打烊时间解读为 1 月 2 日凌晨 2 点。 opens
和closes
是指未来的时间空档。closes
不包含在范围内。例如,如果opens
为上午 10 点,closes
为下午 4 点,serviceTimeInterval
为 15 分钟,则第一个时间段的开始时间为上午 10 点,最后一个时间段的开始时间为下午 3:45。
下表介绍了 AdvanceServiceDeliveryHoursSpecification
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“AdvanceServiceDeliveryHoursSpecification”。 |
validFrom |
DateTime |
基于条件 |
用户的预订商品可从该日期开始履单。例如,“2017-05-01T00:00:00-07:00”。 如果未设置此属性,则系统会假定其每天都有效。
如果此类型在 如需了解详情,请参阅 日期时间和时间格式。 |
validThrough |
DateTime |
可选 |
结束日期,超出该日期后,系统将无法再履行用户的预订。例如,“2018-12-01T00:00:00-07:00”。 如果未设置此属性,则假定其每天都有效。
如果此类型在
如需了解详情,请参阅日期时间和时间格式。 |
opens |
Time |
可选 |
适用于外卖或外带时间段。 用户的预订订单可从哪个时间开始配送的具体时间。例如,凌晨 6:30 表示为“T06:30:00”。 必须使用当地时间指定服务时间。请勿在 如需了解详情,请参阅日期时间和时间格式。 |
closes |
Time |
可选 |
适用于外卖或外带时间段。 用户的预订交易无法履行的具体时间。例如,晚上 9:00 表示为“T21:00:00”。
服务时间必须以当地时间指定。请勿在 如需了解详情,请参阅日期时间和时间格式。 |
dayOfWeek |
DayOfWeek 的数组 |
可选 |
可提前指定配送时间的星期几。有效值包括:
如果您未指定任何日期,则 |
serviceTimeInterval |
Duration |
必填 |
两次连续服务时间之间的间隔。 例如:如果
|
advanceBookingRequirement |
QuantitativeValue |
必填 |
从下单时间起到可以履行预订的时间所需的分钟数。
例如,如果提前订单需要至少 60 分钟才能完成,并且限制在 2 天后才能完成,则 |
以下示例展示了 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"]
然后,将 FoodBeverageTobaccoProduct
添加到相应 MenuItem
或 MenuItemOption
的类型中。
下表介绍了 AllergenDetails
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“AllergenDetails”。 |
allergenType |
文本 | 可选 | 每种过敏原的类型(根据 gs1:AllergenTypeCode
)。例如 http://gs1.org/voc/AllergenTypeCode-PEANUTS 。
|
allergenLevelOfContainmentCode |
文本 | 可选 | gs1:LevelOfContainmentCode 对应的封装代码。
例如 http://gs1.org/voc/LevelOfContainmentCode-CONTAINS 、http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM 或 http://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 |
网址 | 可选 | 配送费规范的标识符。 |
price |
数字 | 必填 | 总配送费用,该值只能为数字。使用 priceCurrency 属性来表示货币类型,而不是货币符号。例如“6.00”,不带货币符号。 |
priceCurrency |
文本 | 必填 | 由 3 个字母表示的 ISO 4217 货币代码。例如,“USD”。 |
eligibleTransactionVolume |
PriceSpecification |
可选 | 此配送费用规范适用的交易量(以货币单位表示)。例如,指明最低购买量,或指明超过一定订单量即可免运费。 |
eligibleQuantity |
QuantitativeValue |
可选 | 适用配送费的订购数量的间隔和计量单位。例如,您可以指定某个运费仅适用于特定数量的商品。 |
eligibleRegion |
GeoShape 、Place 或 GeoCircle 的数组 |
可选 | 商品或运费规范适用的地理政治区域的地点,或 GeoShape/GeoCircle。仅当配送费用因地区而异时,才使用此属性。 |
validFrom |
DateTime |
可选 | 指定配送费生效的日期和时间(包括时区)。例如,“2017-05-01T06:30:00-07:00”。如需了解详情,请参阅日期时间和时间格式。 |
validThrough |
DateTime |
可选 | 指定的配送费用失效的日期和时间(包括时区)。例如,“2017-05-01T06:30:00-07:00”。
validThrough 的时间是排他的:例如,如果将该时间设置为下午 6 点,则该时间的有效期为下午 5:59:59。
如需了解详情,请参阅日期时间和时间格式。 |
以下示例展示了 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"]
该扩展程序提供了另外两个属性,供按百分比计算配送费用时使用。
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
必填 | 某个价格适用的参考数量。例如,referenceQuantity 的值为 10,unitCode 为“P1”,则运费为订单金额的 10%。目前仅支持 unitCode “P1”。 |
basePrice |
数字 | 可选 | 除了 referenceQuantity 之外的基本费用。例如,如果 referenceQuantity 为 10,unitCode 为“P1”,basePrice 为 5(美元),则运费为 5 美元 + 订单金额的 10%。默认值为 0。 |
配送费示例
Google 允许您使用服务实体的 Offer.PriceSpecification
向用户预先指定各种费用。
请注意,端到端订购目前仅支持一个 DeliveryChargeSpecification
。将所有类型的费用合并到单个 DeliveryChargeSpecification
中。
如需了解如何根据区域、距离和订单金额指定运费,请参阅服务 Feed 示例。
如果没有费用,则省略 Offer.PriceSpecification
。
- 示例 1:运费为购物车总金额的 5%
- 示例 2:配送费为 5 美元
- 示例 3:运费为 5 美元 + 购物车小计的 10%
- 示例 4:运费为 5 美元,购物袋费为 0.1 美元
- 示例 5:运费为 5%,便利费为购物车小计的 2%
- 示例 6:运费为 5 美元,每增加 1 公里的距离需支付 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 |
数字 | 必填 | 表示 GeoCircle 的近似半径(以米为单位)。 |
以下示例展示了 GeoCircle
元素:
示例
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
下表介绍了 GeoCoordinates
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“GeoCoordinates”。 |
latitude |
数字 | 必填 |
纬度(以度为单位)。值的范围限制在 -90 到 90(包括这两个数值)之间。如果指定的值小于 -90,则会被设置为 -90;如果值大于 90,则会被设置为 90。 精度应至少为 5 位小数。 |
longitude |
数字 | 必填 |
经度(以度为单位)。超出 -180 到 180 范围的值会被换算为此范围内的值。例如,值 -190 将被转换为 170。值 190 会被转换为 -170。这反映了经线环绕地球这一事实。 精度应至少为 5 位小数。 |
以下示例展示了 GeoCoordinates
元素:
示例
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
下表介绍了 GeoShape
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“GeoShape”。 |
polygon |
文本数组 | 必填 |
多边形或多重多边形,表示为一系列由三个或更多空格分隔的点。建议第一个点和最后一个点相同,但这并非强制要求。 多边形或多边形复合体中的每个点由纬度点和经度点组成。您还必须按逆时针方向指定点。 在大多数情况下,您只会有一个多边形。对于更复杂的用例,请参阅送货服务区域文档。 |
以下示例展示了 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 |
文本 | 必填 | 此值始终为“Menu”。 |
@id |
网址 | 必填 | 菜单的唯一标识符。 |
name |
文本 | 可选 | 在用户浏览菜单时可用于识别 Menu 的文本。 |
description |
文本 | 可选 | 菜单的说明。 |
disclaimer |
MenuDisclaimer |
可选 | 菜单的免责声明。例如,营养信息披露和致敏原披露。 |
hasMenuSection |
单个 MenuSection 对象或数组 |
可选 | 菜单的逻辑子分组(例如晚餐、开胃菜或鱼类菜肴)。 |
hasMenuItem |
单个 MenuItem 对象或数组 |
可选 | Menu 中包含的 MenuItem 对象,通常是指 Menu 未按 MenuSections 细分的情况。 |
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
实体的示例,请参阅餐厅和菜单 Feed 示例。
MenuDisclaimer
下表列出了 MenuDisclaimer
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“MenuDisclaimer”。 |
@id |
网址 | 必填 | 菜单免责声明的唯一标识符。 |
text |
文本 | 必填 | 免责声明文本。例如,“成年人的平均每日能量摄入量为 8700 千焦。” |
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
用于表示菜单中项的菜单项。下表列出了 MenuItem
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“MenuItem”。 |
@id |
网址 | 必填 | 菜单项的唯一标识符。 |
name |
文本 | 必填 | 在用户浏览菜单时可识别 MenuItem 的文本。 |
description |
文本 | 可选 | 菜单项的说明。 |
image |
网址 | 可选 |
菜单项的图片。请遵循以下图片准则:
|
menuAddOn |
AddOnMenuSection 的数组 |
可选 | 菜单版块中的项,可作为插件添加到菜单项。 |
offers |
Offer 的数组 |
必填* |
提供此 下面的列表显示了
|
hasMenuItemOptions |
MenuItemOption 的数组 |
必填 | 此菜单项的基本选项/变体列表。应使用选项指定商品可用的各种基本款式/规格,例如小号、中号和大号。 |
suitableForDiet |
RestrictedDiet 的数组 |
可选 | 菜肴符合所述的饮食禁忌(例如“http://schema.org/GlutenFreeDiet”或“http://schema.org/VeganDiet”)。这是可能值的枚举列表。 |
nutrition |
NutritionInformation |
可选 | 菜肴的营养信息,尤其是卡路里。 |
hasAllergen |
AllergenDetails |
可选 | 每个 gs1:AllergenDetails 的菜肴过敏原。
添加 gs1 上下文以使用此属性:"@context": ["http://gs1.org/voc/", "http://schema.org"] 。
并将 FoodBeverageTobaccoProduct 添加到 MenuItem 的类型中。 |
additive |
AdditiveDetails 数组 |
可选 | 每 gs1:AdditiveDetails 的菜肴添加剂。
这是可能值的枚举列表。添加 gs1 上下文以使用此属性:"@context": ["http://gs1.org/voc/", "http://schema.org"] 。
并将 FoodBeverageTobaccoProduct 添加到 MenuItem 的类型中。 |
packaging |
PackagingDetails |
可选 | 此 MenuItem 的包装和回收信息(按 gs1:PackagingDetails )。
添加 gs1 上下文以使用此属性:"@context": ["http://gs1.org/voc/", "http://schema.org"] 。
并将 FoodBeverageTobaccoProduct 添加到 MenuItem 的类型中。
|
以下示例展示了 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
实体的示例,请参阅餐厅和菜单 Feed 示例。
MenuItemOption
用于表示用户在选择菜肴或套餐时需要做出的选择的选项。用户必须选择一个选项,否则订单会被视为无效。例如,在披萨的情况下,选择小、中或大。
如需查看 MenuItemOption
的示例用例,请参阅我们的使用 MenuItemOption
进行自定义指南。
下表列出了 MenuItemOption
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“MenuItemOption”。 |
value |
PropertyValue |
必填 | 包含表示选项的名称/值对的 PropertyValue 。 |
offers |
Offer 的数组 |
必填 |
提供此
下面的列表显示了
|
menuAddOn |
Array of |
可选 | 可作为插件添加的允许内容的菜单部分。仅当插件特定于特定菜单项选项时,才应使用此属性。否则,请使用 MenuItem .menuAddOn 属性提供插件。
|
suitableForDiet |
RestrictedDiet 的数组 |
可选 | 枚举列表,用于指明此菜肴符合所述饮食限制的饮食(例如“http://schema.org/GlutenFreeDiet”或“http://schema.org/VeganDiet”)。 |
nutrition |
NutritionInformation |
可选 | 菜肴的营养信息,尤其是卡路里。 |
hasAllergen |
AllergenDetails |
可选 | 每个 gs1:AllergenDetails 的菜肴过敏原。
添加 gs1 上下文以使用此属性:"@context": ["http://gs1.org/voc/", "http://schema.org"] 。
并将 FoodBeverageTobaccoProduct 添加到 MenuItemOption 的类型中。
|
additive |
AdditiveDetails 数组 |
可选 | 每 gs1:AdditiveDetails 的菜肴添加剂。
这是可能值的枚举列表。添加 gs1 上下文以使用此属性:"@context": ["http://gs1.org/voc/", "http://schema.org"] 。
并将 FoodBeverageTobaccoProduct 添加到 MenuItemOption 的类型中。
|
packaging |
PackagingDetails |
可选 | 此 MenuItem 的包装和回收信息(按 gs1:PackagingDetails )
添加 gs1 上下文以使用此属性:"@context": ["http://gs1.org/voc/", "http://schema.org"] 。
并将 FoodBeverageTobaccoProduct 添加到 MenuItemOption 的类型中。
|
以下示例展示了 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
菜单版块,用于表示菜单中的特定版块。下表列出了 MenuSection
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“MenuSection”。 |
@id |
网址 | 必填 | 菜单部分的唯一标识符。 |
name |
文本 | 必填 | 在用户浏览菜单时可用于识别 MenuSection 的文本。 |
description |
文本 | 可选 | 菜单部分的说明。 |
hasMenuSection |
MenuSection 的数组 |
可选 | MenuSection 的逻辑子分组。例如,“晚餐”菜单部分可以有多个子菜单部分,例如“家禽菜肴”或“素食”。 |
hasMenuItem |
MenuItem 的数组 |
可选 | MenuSection 中包含的菜单项。 |
offers |
Offer 的数组 |
可选 |
使用 下表显示了
|
image |
网址 | 可选 | 菜单部分的图片。 |
以下示例展示了 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
实体的示例,请参阅餐厅和菜单 Feed 示例。
NutritionInformation
下表介绍了 NutritionInformation
类型的属性。度量单位区分大小写。例如,“Cal”是可接受的,但“cal”不可接受。
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此属性始终为“NutritionInformation”。 |
description |
文本 | 可选 | 营养信息(采用自由文本格式)。例如“含防腐剂”。 |
calories |
文本 | 可选 |
卡路里数(以 Cal、kcal 或 kJ 为单位),使用以下格式: number Cal_kcal_OR_kJ 例如,“240 卡路里”。 |
carbohydrateContent |
文本 | 可选 |
碳水化合物的量,通常以克为单位,采用以下格式: number g_OR_mg 例如“7 克”。 |
cholesterolContent |
文本 | 可选 |
胆固醇含量(通常以毫克为单位),采用以下格式: number g_OR_mg 例如“12 mg”。 |
fatContent |
文本 | 可选 |
脂肪含量(通常以克为单位),采用以下格式: number g_OR_mg 例如“42 克”。 |
fiberContent |
文本 | 可选 |
纤维的克数或毫克数,采用以下格式: number g_OR_mg |
proteinContent |
文本 | 可选 |
蛋白质的克数或毫克数,采用以下格式: number g_OR_mg |
saturatedFatContent |
文本 | 可选 |
饱和脂肪的克数或毫克数,采用以下格式: number g_OR_mg |
servingSize |
文本 | 可选 | 食用份量(以体积或质量的数量表示),单位为毫升 (mL)、升 (L)、克 (g) 或千克 (kg)。 |
sodiumContent |
文本 | 可选 |
钠的毫克数或克数,采用以下格式: number g_OR_mg |
sugarContent |
文本 | 可选 |
糖的克数或毫克数,采用以下格式: number g_OR_mg |
transFatContent |
文本 | 可选 |
反式脂肪的克数或毫克数,采用以下格式: number g_OR_mg |
unsaturatedFatContent |
文本 | 可选 |
不饱和脂肪的量,通常以克为单位,采用以下格式: 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 |
文本 | 基于条件 |
商品的唯一标识符。可以是 此属性仅用于以下商品类型:
|
price |
文本 | 基于条件 |
所售商品的价格。例如,不带货币符号的“6.00”。 只有以下类型的商品详情需要此属性:
以下商品类型不使用此属性:
|
priceCurrency |
文本 | 基于条件 |
价格或价格组成部分(当附加到 PriceSpecification 及其子类型时)的币种(采用由 3 个字母表示的 ISO 4217 格式)。 只有以下类型的商品需要此属性:
以下商品类型不使用此属性:
|
availabilityStarts |
DateTime 或 Time |
可选 | 优惠的开始日期和时间,或仅提供开始时间。 例如,如果从上午 7:00 开始供应薄饼,则此字段的值可以如下所示:“2017-05-01T07:00:00-07:00”。 如需了解详情,请参阅日期时间和时间格式。 |
availabilityEnds |
DateTime 或 Time |
可选 | 优惠失效的日期和时间,或仅时间。此时间是专属时间。例如,如果薄饼的供应时间结束于上午 10 点,那么上午 9:59:59 时可以供应最后一张薄饼。那么,此字段的值可以如下所示:“2017-05-01T10:00:00-07:00”。 如需了解详情,请参阅日期时间和时间格式。 |
availableDay |
DayOfWeek 数组 | 可选 |
此商品提供的周几。有效值包括:
如果您在每周不同天有不同的空闲时间,请使用多个 |
validFrom |
DateTime |
可选 |
指定价格有效的日期和时间(包括时区)。例如,午餐时意大利面条的价格为 8 美元,晚餐时为 10 美元。如需了解详情,请参阅日期时间和时间格式。 此属性可用于以下商品类型:
以下商品类型不使用此属性:
|
validThrough |
DateTime |
可选 | 指定价格失效的日期和时间(包括时区)。例如,午餐时意大利面条的价格为 8 美元,晚餐时为 10 美元。 此属性可用于以下商品类型:
以下商品类型不使用此属性。
|
eligibleQuantity |
QuantitativeValue | 可选 |
此商品允许的订购数量。例如,某家餐厅可能要求订购至少 10 个披萨才能配送。 此值为可选值。默认情况下,没有上限,但餐厅可以指定上限。最低限额仅在用户选择相应商品时才会应用。 此属性可用于以下商品类型:
以下商品类型不使用此属性。
|
aggregateRating |
AggregateRating | 可选 |
总体评分,基于相应内容的一系列评价或评分。 此属性可用于以下商品类型:
以下类型不使用此属性。
|
inventoryLevel |
QuantitativeValue | 可选 |
商品的当前大致库存水平。 此属性可用于以下商品类型:
以下商品类型不使用此属性:
|
priceSpecification |
DeliveryChargeSpecification 的数组或 PaymentChargeSpecification 的数组 | 可选 |
在 此属性可用于以下商品类型:
以下商品类型不使用此属性:
|
offeredBy |
Restaurant ID 的数组 |
可选 | 表示提供此 如果未指定,此 此属性可用于以下商品类型:
以下商品类型不使用此属性:
|
applicableFulfillmentMethod |
文本数组 | 可选 | 表示此 如果未指定,此 此属性可用于以下商品类型:
以下商品类型不使用此属性:
|
@id |
网址 | 已弃用 | 商品的唯一标识符。自 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 点至 11: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
属性是可选的,但强烈建议使用这些属性来指明何时可以订购。定义营业时间的最佳实践是添加一个deliveryHours
数组,其中包含具有opens
和closes
属性的ServiceDeliveryHoursSpecification
。然后,如果您想提供更有限的预订时间范围,可以在deliveryHours
中添加具有自己的opens
和closes
属性的AdvanceServiceDeliveryHoursSpecification
对象。- 如果未明确指定
opens
和closes
,我们会假定订购服务每天全天候提供。 - 时间必须以服务的当地时间指定。请勿在
opens
或closes
值中添加时区。如果指定了时区,Google 会忽略此信息。 - 如果
opens
和closes
相同,则我们假定餐厅的营业时间为 0 分钟。 - 如果
opens
大于closes
,则关店时间将被解读为次日。例如,如果将开业时间设置为 1 月 1 日下午 5 点,将打烊时间设置为凌晨 2 点,则系统会将该餐厅的打烊时间解读为 1 月 2 日凌晨 2 点。 closes
的时间不含此时间。因此,如果此订购时间范围的开始时间和结束时间分别设为上午 10 点和下午 4 点,则最后一笔订单的截止时间为下午 3:59:59。
下表介绍了 OpeningHoursSpecification
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“OpeningHoursSpecification”。 |
@id |
网址 | 可选 | OpeningHoursSpecification 的标识符。 |
dayOfWeek |
DayOfWeek 数组 |
可选 |
这些营业时间适用的一周中的日期。可接受的值包括“Monday”“Tuesday”“Wednesday”“Thursday”“Friday”“Saturday”和“Sunday”。例如: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] 如果您未指定任何日期,则 |
opens |
Time |
可选 |
在 在 时间必须以服务的当地时间指定。请勿在 如需了解详情,请参阅日期时间和时间格式。 |
closes |
Time |
可选 |
在 时间必须以服务的当地时间指定。请勿在 如需了解详情,请参阅日期时间和时间格式。 |
validFrom |
DateTime |
可选 |
在 例如,如果指定的时段适用于 2017 年全年,您可以将 在 如果您的 Feed 中未指定此属性,Google 会假定餐厅或服务每天营业。 除了日期之外,值的时间和时区部分也是必需的。 对于时区,请使用餐厅或服务的时区。 如需了解详情,请参阅日期时间和时间格式。 |
validThrough |
DateTime |
可选 |
在 例如,如果指定的时段适用于 2017 年全年,您可以将 在 如果您的 Feed 中未指定此属性,Google 会假定餐厅或服务每天营业。 除了日期之外,DateTime 的时间和时区部分也是必填项。 对于时区,请使用餐厅或服务的时区。
如需了解详情,请参阅日期时间和时间格式。 |
deliveryHours |
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
添加 gs1 上下文以使用此类型:"@context": ["http://gs1.org/voc/", "http://schema.org"]
。
并将 FoodBeverageTobaccoProduct
添加到 MenuItem
或 MenuItemOption
的类型中。
下表介绍了 PackagingDetails
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“PackagingDetails”。 |
packagingRecyclingProcessType |
文本 | 可选 | 每种
gs1:PackagingRecyclingProcessTypeCode 对应的包装回收再利用流程类型。例如 http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE 或 http://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 |
网址 | 可选 | PaymentChargeSpecification 的标识符。 |
price |
数字 | 必填 | 扣款总金额。例如“6.00”,不带货币符号。 |
priceCurrency |
文本 | 必填 | 价格的 ISO 4217 货币代码,由 3 个字母组成。例如,“USD”。 |
eligibleTransactionVolume |
PriceSpecification |
可选 | 交易量(以货币单位表示),此付款费用规范适用于此交易量,例如用于指明最低购买交易量。 |
eligibleQuantity |
QuantitativeValue |
可选 | 付款费用适用的订购数量。例如,您可以使用此属性来要求订单中的商品数量不得低于最低数量。 |
validFrom |
DateTime |
可选 | 指定的付款扣款生效的日期和时间(包括时区)。例如,“2017-05-01T07:00:00-07:00”。如需了解详情,请参阅日期时间和时间格式。 |
validThrough |
DateTime |
可选 | 指定的付款扣款无效的日期和时间(包括时区)。例如,“2017-05-01T07:30:00-07:00”。
validThrough 的时间是排他的:例如,如果将该时间设置为下午 6 点,则该时间的有效期为下午 5:59:59 之前。
如需了解详情,请参阅日期时间和时间格式。 |
以下示例展示了 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"]
) 进行扩展。该扩展提供了另外两个属性,这些属性是按百分比计算服务费所必需的。
属性 | 类型 | 必要性 | 说明 |
referenceQuantity |
QuantitativeValue |
必填 | 某个价格适用的参考数量。例如,referenceQuantity 的值为 10,unitCode 为“P1”,则运费为订单金额的 10%。目前仅支持 unitCode “P1”。 |
basePrice |
数字 | 可选 | 除了 referenceQuantity 之外的基本费用。例如,如果 referenceQuantity 为 10,unitCode 为“P1”,basePrice 为 5(以美元为单位),则运费为 5 美元 + 订单金额的 10%。默认值为 0。 |
导出费用示例
Google 允许您使用服务实体的 Offer.PriceSpecification
向用户预先指定各种费用。
请注意,我们目前仅支持一个 PaymentChargeSpecification
。将所有类型的费用合并到单个 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 |
文本 | 必填 | 此值始终为“地点”。 |
address |
PostalAddress |
必填 | 地点的地址。 |
以下示例展示了地点元素:
示例
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
下表介绍了 PostalAddress
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此属性始终为“PostalAddress”。 |
addressLocality |
文本 | 必填* | 所在地或城市。例如“San Francisco”。 |
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 |
网址 | 可选 | PriceSpecification 的标识符。 |
minPrice |
数字 | 可选 | 如果价格是范围,则为最低价格。 |
maxPrice |
数字 | 可选 | 如果价格是范围,则为最高价格。 |
priceCurrency |
文本 | 必填 | 价格的 ISO 4217 货币代码,由 3 个字母组成。例如,“USD”。 |
eligibleQuantity |
QuantitativeValue |
可选 | 价格规范适用的订购数量。 例如,价格可能是每磅 2 美元,或 2 件商品 1 美元。 |
以下示例展示了 PriceSpecification
元素:
示例 1
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
用于描述 MenuItemOption
中的选项的属性值对。
下表列出了 PropertyValue
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“PropertyValue”。 |
name |
文本 | 必填 |
选项的名称或类型。 以下名称在
在
|
value |
文本 | 必填 |
选项的值。值可以是任何字符串,并会按原样显示。以下是有效值:
|
QuantitativeValue
下表介绍了 QuantitativeValue
类型的属性:
属性 | 类型 | 必要性 | 说明 |
---|---|---|---|
@type |
文本 | 必填 | 此值始终为“QuantitativeValue”。 |
value |
数字 | 可选 | 定量值或属性值节点的值。 |
unitCode |
Text 或 URL | 可选 |
计量单位(作为 UN/CEFACT 通用代码或网址)。 除了 UN/CEFACT 通用代码之外,您还可以使用带有前缀和英文冒号的代码。 |
maxValue |
数字 | 可选 | 某个特征或属性的上限值。 |
minValue |
数字 | 可选 | 某个特征或属性的较低值。 |
以下示例展示了 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 |
网址 | 必填 | 餐厅或送餐服务提供商的唯一标识符。例如,“http://www.provider.com/326”,其中“326”是相应餐厅的唯一标识符。 |
name |
文本 | 必填 | 用于在订购过程中识别 Restaurant 的文本。 |
url |
网址 | 必填 | 您网域中代表相应餐厅的网址。例如,“http://www.provider.com/somerestaurant”。 |
sameAs |
网址 | 可选 | 餐厅的官方网站。例如,“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 |
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", // Country code (+1) is required "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
实体的示例,请参阅餐厅和菜单 Feed 示例。
ReturnablePackageDepositDetails
如需使用此类型,请添加 gs1 上下文:“@context”:
["http://gs1.org/voc/", "http://schema.org"]
然后,将
FoodBeverageTobaccoProduct
添加到相应MenuItem
或MenuItemOption
的类型中。下表介绍了
ReturnablePackageDepositDetails
类型的属性:
属性 类型 必要性 说明 @type
文本 必填 此值始终为“ReturnablePackageDepositDetails”。 returnablePackageDepositAmount
gs1:PriceSpecification
可选 此商品的每项 gs1:PriceSpecification 的押金金额。例如,每罐押金 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
文本 必填 Feed 类型。
Service
:对于所有有效的服务 Feed,请使用此类型。DisabledService
:仅当您因意外事件而必须停用服务实体,并且不知道服务何时会重新建立时,才使用此类型。@id
网址 必填 履单服务的标识符。例如,“http://www.provider.com/service/1”。 description
文本 可选 商品的说明。 serviceType
文本 必填 提供的服务类型。可能的值为“DELIVERY”或“TAKEOUT”。 provider
Restaurant
必填 对餐厅唯一标识符的引用。例如,“http://www.provider.com/somerestaurant”。 areaServed
GeoShape
、Place
或GeoCircle
数组基于条件 提供服务的地理区域。此字段默认是可选字段,但如果 serviceType
为“DELIVERY”,则是必填字段。hoursAvailable
OpeningHoursSpecification
的数组必填 此服务的提供时间。 specialOpeningHoursSpecification
OpeningHoursSpecification
、ServiceDeliveryHoursSpecification
或AdvanceServiceDeliveryHoursSpecification
数组可选 替换更通用的
OpeningHoursSpecification
或执行时间的时间。您通常使用此字段来定义节假日和其他类型的临时停业或营业时间变动。使用
validFrom
和validThrough
属性定义特殊日期范围。指定这些属性时,时间和时区是必需的。offers
Offer
的数组基于条件 有关指定餐厅提供的送餐服务的详细信息。此字段默认是可选字段,但如果
serviceType
为“DELIVERY”,则为必填字段。
Offer.priceSpecification
属性在服务中是可选的。此处未使用任何其他Offer
属性。hasOfferCatalog
[ Menu
、OfferCatalog]必填 为此服务指定菜单。您可以为每项服务(例如外卖、配送和餐饮)提供不同的菜单。
您必须同时为类型指定
Menu
和OfferCatalog
。例如: "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
网址 可选 包含外卖服务的网址,将在从端到端食品订购体验迁移到重定向时使用。例如,“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" } } ] } },如需查看更多服务实体示例,请参阅服务 Feed 示例。
ServiceDeliveryHoursSpecification
表示用户可用于安排外卖和外带订单的 ASAP 服务时间。
通常,
opens
的值小于closes
的值。以下准则适用于使用opens
和closes
属性:
opens
和closes
属性对ServiceDeliveryHoursSpecification
而言是可选的,但我们强烈建议您添加这些属性。- 时间必须以服务的当地时间指定。请勿在
opens
或closes
值中添加时区。如果指定了时区,Google 会忽略时区信息。- 如果未明确指定
opens
和closes
,我们会假定 ASAP 订购功能每天全天可用。- 如果
opens
和closes
相同,则我们假定无法使用 ASAP 订购。- 如果
opens
大于closes
,则关店时间将被解读为次日。例如,如果将开业时间设置为 1 月 1 日下午 5 点,将打烊时间设置为凌晨 2 点,则系统会将该餐厅的打烊时间解读为 1 月 2 日凌晨 2 点。下表介绍了
ServiceDeliveryHoursSpecification
类型的属性:
属性 类型 必要性 说明 @type
文本 必填 此值始终为“ServiceDeliveryHoursSpecification”。 validFrom
DateTime
可选 用户的“尽快送达”订单可配送的日期和时间(包括时区)。例如,“2017-05-01T07:00:00-07:00”。如果未设置此属性,则系统会假定其每天都有效。
如需了解详情,请参阅日期时间和时间格式。
validThrough
DateTime
可选 用户的“尽快送达”订单无法在该日期和时间(包括时区)之后送达。例如,“2017-05-01T07:00:00-07:00”。如果未设置此属性,则假定其每天都有效。
validThrough
的时间不含此时间。例如,如果将该时间设置为下午 6 点,则该时间的有效期为下午 5:59:59。如需了解详情,请参阅日期时间和时间格式。
opens
Time
可选 开始为用户的“尽快送达”订单提供配送服务的时间。例如“T10:30:00”。
时间必须以服务的当地时间指定。请勿在
opens
值中添加时区。如果指定了时区,Google 会忽略此信息。如需了解详情,请参阅日期时间和时间格式。
closes
Time
可选 用户的“尽快送达”订单的送货时间不再提供。例如“T23:59:59”。
closes
的时间不含此时间。因此,如果您将此ServiceDeliveryHoursSpecification
的开启/关闭时间设置为上午 10 点和下午 4 点,则最后一个订单将是下午 3:59:59。时间必须以服务的当地时间指定。请勿在
closes
值中添加时区。如果指定了时区,Google 会忽略此信息。如需了解详情,请参阅日期时间和时间格式。
dayOfWeek
DayOfWeek
的数组可选 此服务适用于用户的“尽快送达”订单的一周工作日。 以下是有效值:
- “Monday”
- “Tuesday”
- “Wednesday”
- “Thursday”
- “Friday”
- “Saturday”
- “Sunday”
如果您未指定任何日期,则
ServiceDeliveryHoursSpecification
会应用于所有日期。deliveryLeadTime
QuantitativeValue
可选 下单后的预计送货时间(以分钟为单位)。我们强烈建议您设置此属性。将 QuantitativeValue
的value
字段设置为分钟数,并将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
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-26。