Nguồn cấp dữ liệu danh mục thực phẩm dựa trên các thực thể trên schema.org DataFeed
. Nguồn cấp dữ liệu danh mục món ăn bao gồm thông tin chi tiết về ngôn ngữ của nhà hàng như địa chỉ nhà hàng, thực đơn và vị trí, cũng như thông tin chi tiết về dịch vụ của nhà hàng như phí giao hàng, khu vực giao hàng và các mục khác như được chỉ định dưới đây.
DataFeed
chứa một tập hợp các phần tử, mỗi phần tử đại diện cho một mục duy nhất được thể hiện bằng từ vựng trên schema.org. Bạn có thể sử dụng loại DataFeed
để phát hành tất cả dữ liệu có cấu trúc ở định dạng JSON-LD.
Để biết thông tin về cách sử dụng quy cách này để xây dựng nguồn cấp dữ liệu của bạn, hãy xem bài viết Tổng quan về tính năng tích hợp khoảng không quảng cáo.
Định dạng DateTime và Time
DateTime
dựa trên loại schema.org. Đồng thời, trừ phi có quy định khác, dữ liệu phải tuân theo định dạng ISO 8601 đồng thời bao gồm ngày, giờ và múi giờ. Sử dụng cú pháp sau cho DateTime
:
// DateTime format: YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]
Ví dụ:
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
là giờ địa phương cho múi giờ của một vị trí dịch vụ hoặc nhà hàng nhất định. Giờ đây, cũng dựa trên loại schema.org và cũng phải tuân theo định dạng ISO 8601. Thời gian sử dụng cú pháp sau:
// Time format: THH:MM:SS
Ví dụ:
T08:08:00 // 8:08 AM
Hãy lưu ý những điều sau mỗi khi bạn chỉ định DateTime
hoặc Time
:
- Tiền tố "T" trước thời gian là một phần của định dạng và bắt buộc.
- Bạn phải chỉ định múi giờ cho
DATETIME
. Đây không phải là yêu cầu bắt buộc đối vớiTIME
. - Bạn phải chỉ định thời gian theo giờ địa phương của nhà hàng hoặc dịch vụ.
Phong bì
Mã khởi đầu cho mọi nguồn cấp dữ liệu danh mục thực phẩm đều phải chứa phần "phong bì".
"Phong bì" là cấu trúc cấp cao nhất của mỗi nguồn cấp dữ liệu và phải là DataFeed
với các thuộc tính sau:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@context |
URL | Bắt buộc | Bối cảnh được sử dụng; thường là "http://schema.googleapis.com". |
@type |
Văn bản | Bắt buộc | Phương thức này luôn là "DataFeed". |
dateModified |
DateTime |
Bắt buộc |
Ngày và giờ ở định dạng ISO_OFFSET_DATE_TIME mà các mục trong nguồn cấp dữ liệu này được sửa đổi. Nếu không có trường này, hệ thống giả định rằng thời gian cập nhật là thời điểm nhận được thông báo đẩy (hoặc quá trình thu thập dữ liệu) tại các máy chủ của Google. Bạn nên triển khai cách này nếu sử dụng cả tính năng đẩy và thu thập dữ liệu. Bạn phải chỉ định dấu thời gian này với múi giờ và độ chi tiết theo mili giây; ví dụ: "2016-12-28T06:30:00:123-07:00". Trong nguồn cấp dữ liệu hàng loạt, cách tạo phiên bản thực thể được xác định thông qua trường |
dataFeedElement |
Mảng Menu , Restaurant hoặc Service |
Bắt buộc | Một hoặc nhiều mặt hàng thuộc nguồn cấp dữ liệu này. Hãy xem mục bên dưới để biết chi tiết. |
Ví dụ sau đây cho thấy phong bì:
Ví dụ:
{ "@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
Để sử dụng loại này, hãy thêm ngữ cảnh gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Sau đó, hãy thêm FoodBeverageTobaccoProduct
vào loại MenuItem
hoặc MenuItemOption
thích hợp.
Bảng sau đây mô tả các thuộc tính của loại AdditiveDetails
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | URL này luôn là "AdditiveDetails". |
additiveName |
Văn bản | Không bắt buộc | Tên của chất phụ gia. |
additiveLevelOfContainment |
Văn bản | Không bắt buộc | Mã vùng chứa theo gs1:LevelOfcontainsmentCode.
Ví dụ: http://gs1.org/voc/LevelOfContainmentCode-CONTAINS , http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM hoặc http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN . |
Ví dụ sau đây cho thấy cách sử dụng loại 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
Đồ ăn hoặc đồ uống được liệt kê trong một mục tiện ích bổ sung trên trình đơn của MenuItem
.
Bảng sau đây liệt kê các thuộc tính của loại AddOnMenuItem
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Mục này luôn là "AddOnMenuItem". |
@id |
URL | Bắt buộc | Giá trị nhận dạng duy nhất của mục trên trình đơn tiện ích bổ sung. |
name |
Văn bản | Bắt buộc | Văn bản xác định AddOnMenuItem khi người dùng đang duyệt qua trình đơn. |
description |
Văn bản | Không bắt buộc | Nội dung mô tả về mục trên trình đơn tiện ích bổ sung. |
image |
URL | Không bắt buộc |
Hình ảnh về mục trên trình đơn của tiện ích bổ sung phù hợp với các nguyên tắc sau:
|
offers |
Mảng Offer |
Bắt buộc* |
Một hoặc nhiều ưu đãi để cung cấp AddOnMenuItem này. Mô tả thời điểm và mức giá mà AddOnMenuItem này có sẵn.
Chỉ một ưu đãi có hiệu lực tại một thời điểm cụ thể. Bạn có thể có nhiều ưu đãi hợp lệ nếu giá hoặc tình trạng còn hàng có thể thay đổi theo thời gian trong ngày. Khi tiện ích bổ sung hoặc mặt hàng khác nhau thông qua một thuộc tính cơ sở hoặc một biến thể của chính mặt hàng bổ sung đó (như khoai tây chiên nhỏ, trung bình và lớn như một tiện ích bổ sung), hãy sử dụng thuộc tính Giá trị mặc định cho Các thuộc tính
|
hasMenuItemOptions |
Mảng MenuItemOption |
Bắt buộc* |
Mảng các thuộc tính cơ sở mô tả một biến thể của chính món ăn bổ sung (như khoai tây chiên nhỏ, vừa và lớn dưới dạng tiện ích bổ sung) cho món trong trình đơn tiện ích bổ sung này. Sử dụng các lựa chọn để chỉ định các biến thể hiện có cho mục trên trình đơn tiện ích bổ sung này. Có hai trường hợp điều này có thể xảy ra:
|
suitableForDiet |
Mảng RestrictedDiet |
Không bắt buộc | Món ăn tuân thủ quy định hạn chế về chế độ ăn đã mô tả (chẳng hạn như "GlutenFreeDiet" hoặc "VeganDiet"). Đây là danh sách liệt kê các giá trị có thể có. |
nutrition |
NutritionInformation |
Không bắt buộc | Thông tin dinh dưỡng của món ăn, đáng chú ý nhất là lượng calo. |
menuAddOn |
Mảng AddOnMenuSection |
Không bắt buộc | AddOnMenuItem có thể có một mục trình đơn bao gồm các mục được phép mà bạn có thể thêm dưới dạng tiện ích bổ sung. |
Ví dụ sau đây cho thấy AddOnMenuItem
:
Ví dụ 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" } } ] }
Ví dụ 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
Một nhóm nhỏ các mặt hàng thực phẩm hoặc đồ uống dưới dạng phần thực đơn bổ sung cho mục trong trình đơn.
Bảng sau đây liệt kê các thuộc tính của loại AddOnMenuSection
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Mục này luôn là "AddOnMenuSection". |
@id |
URL | Bắt buộc | Mã nhận dạng duy nhất của mục trong thực đơn. |
name |
Văn bản | Bắt buộc | Văn bản có thể xác định AddOnMenuSection khi người dùng đang duyệt qua trình đơn. |
description |
Văn bản | Không bắt buộc | Nội dung mô tả phần thực đơn. |
eligibleQuantity |
QuantitativeValue |
Không bắt buộc | Cho biết số lượng mục được phép làm tiện ích bổ sung cho mục trình đơn này. Bạn có thể sử dụng trường này để hạn chế số lượng tiện ích bổ sung, chẳng hạn như số lượng món ăn kèm tối thiểu và tối đa mà bạn có thể chọn cho bánh pizza. |
image |
URL | Không bắt buộc | Hình ảnh mục trong thực đơn. |
hasMenuItem |
Mảng AddOnMenuItem |
Bắt buộc* | Mục trên trình đơn tiện ích bổ sung có trong AddOnMenuSection. |
offers |
Mảng Offer |
Không bắt buộc |
Sử dụng Danh sách bên dưới cho biết thuộc tính
|
hasMenuSection |
Mảng AddOnMenuSection |
Bắt buộc* | Phân nhóm logic theo thực đơn bổ sung (như Bữa tối, Món khai vị hoặc Món cá). |
defaultOption |
Mảng AddOnMenuItem |
Không bắt buộc |
Các mục trên trình đơn tiện ích bổ sung được chọn sẵn theo mặc định cho người dùng trong Các đối tượng Số lượng |
numberOfFreeAddOns |
Số | Không bắt buộc | Cho biết số lượng tiện ích bổ sung mà người dùng có thể chọn mà không tốn phí. |
Các ví dụ sau đây bao gồm các đối tượng AddOnMenuSection
:
Ví dụ 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" } } ] }
Ví dụ 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 } }
Ví dụ 3
Mục trong trình đơn "Cheese Sandwich" có một mục "Lựa chọn phô mai" AddOnMenuSection
với "Thuỵ Sĩ" và "Mozzarella" được chọn sẵn theo mặc định.
{ "@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
Biểu thị giờ thực hiện đơn hàng để người dùng lên lịch đơn đặt hàng trước để giao hàng và lấy hàng mang đi.
Thông thường, giá trị của opens
nhỏ hơn giá trị của closes
. Các nguyên tắc sau đây áp dụng cho việc sử dụng các thuộc tính opens
và closes
:
- Bạn không bắt buộc phải sử dụng thuộc tính
opens
vàcloses
choAdvanceServiceDeliveryHoursSpecification
, nhưng bạn nên thêm các thuộc tính đó. - Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị
opens
hoặccloses
. Múi giờ đã chỉ định sẽ bị bỏ qua. - Nếu
opens
vàcloses
không được chỉ định rõ ràng, chúng tôi sẽ giả định rằng tính năng đặt hàng trước có sẵn vào mọi ngày. - Nếu
opens
vàcloses
giống nhau, thì chúng tôi sẽ giả định rằng không thể sử dụng tính năng sắp xếp trước. - Nếu
opens
lớn hơncloses
, thì giờ đóng cửa sẽ được diễn giải là vào ngày tiếp theo. Ví dụ: nếu giờ mở cửa được đặt thành 5 giờ chiều ngày 1 tháng 1 và giờ đóng cửa là 2 giờ sáng, thì nhà hàng sẽ được hiểu là đóng cửa lúc 2 giờ sáng ngày 2 tháng 1. opens
vàcloses
là khung giờ trong tương lai.closes
là dành riêng. Ví dụ: nếuopens
là 10 giờ sáng vàcloses
là 4 giờ chiều vớiserviceTimeInterval
là 15 phút, thì khung giờ đầu tiên sẽ bắt đầu lúc 10 giờ sáng và khung giờ cuối cùng sẽ bắt đầu lúc 3:45 chiều.
Bảng sau đây mô tả các thuộc tính của loại AdvanceServiceDeliveryHoursSpecification
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "AdvanceServiceServiceHoursSpecification". |
validFrom |
DateTime |
Câu lệnh có điều kiện |
Ngày bắt đầu mà từ đó đơn đặt hàng trước của người dùng có thể được thực hiện. Ví dụ: "2017-05-01T00:00:00-07:00". Nếu bạn không đặt thuộc tính này, thuộc tính này được giả định là hợp lệ mỗi ngày.
Thuộc tính Nếu loại này được chỉ định làm Để biết thêm thông tin, hãy xem nội dung Định dạng ngày giờ và thời gian. |
validThrough |
DateTime |
Không bắt buộc |
Ngày kết thúc mà sau đó đơn đặt hàng trước của người dùng sẽ không thực hiện được nữa. Ví dụ: "2018-12-01T00:00:00-07:00". Nếu bạn không đặt thuộc tính này, thuộc tính này được giả định là hợp lệ mỗi ngày.
Thuộc tính Nếu loại này được chỉ định làm Đây chỉ là thời gian dành riêng cho Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
opens |
Time |
Không bắt buộc |
Áp dụng cho khung giờ giao hàng hoặc mang đi. Thời gian cụ thể trong ngày bắt đầu từ thời điểm người dùng có thể thực hiện đơn đặt hàng trước của họ. Ví dụ: 6:30 SA được cung cấp là "T06:30:00". Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
closes |
Time |
Không bắt buộc |
Áp dụng cho khung giờ giao hàng hoặc mang đi. Thời gian cụ thể trong ngày mà vượt quá thời gian thực hiện đơn đặt hàng trước của người dùng. Ví dụ: 9:00 PM được cung cấp là "T21:00:00".
Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
dayOfWeek |
Mảng DayOfWeek |
Không bắt buộc |
Những ngày trong tuần có giờ giao hàng trước. Các giá trị hợp lệ là:
Nếu bạn không chỉ định ngày nào trong tuần, thì |
serviceTimeInterval |
Duration |
Bắt buộc |
Khoảng thời gian giữa hai lần dịch vụ liên tiếp. Ví dụ: Nếu Bạn phải chỉ định |
advanceBookingRequirement |
QuantitativeValue |
Bắt buộc |
Số phút tính từ thời điểm đặt hàng cho đến khi có thể thực hiện đơn đặt hàng trước. Các giá trị Ví dụ: nếu đơn đặt hàng trước cần ít nhất 60 phút để được thực hiện và bị hạn chế thực hiện sau hơn 2 ngày, thì giá trị |
Ví dụ sau đây cho thấy cách sử dụng loại AdvanceServiceDeliveryHoursSpecification
:
Ví dụ 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
Để sử dụng loại này, hãy thêm ngữ cảnh gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Sau đó, hãy thêm FoodBeverageTobaccoProduct
vào loại MenuItem
hoặc MenuItemOption
thích hợp.
Bảng sau đây mô tả các thuộc tính của loại AllergenDetails
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "AllergenDetails". |
allergenType |
Văn bản | Không bắt buộc | Loại chất gây dị ứng theo gs1:AllergenTypeCode
. Ví dụ: http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Văn bản | Không bắt buộc | Mã vùng chứa theo gs1:LevelOfcontainsmentCode.
Ví dụ: http://gs1.org/voc/LevelOfContainmentCode-CONTAINS , http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM hoặc http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .
|
Ví dụ sau đây cho thấy cách sử dụng loại 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
Bảng sau đây mô tả các thuộc tính của loại DeliveryChargeSpecification
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "deliveryChargeSpecification". |
@id |
URL | Không bắt buộc | Giá trị nhận dạng cho quy cách phí giao hàng. |
price |
Số | Bắt buộc | Tổng chi phí giao hàng dưới dạng giá trị số. Hãy sử dụng thuộc tính priceCurrency để biểu thị loại đơn vị tiền tệ thay vì ký hiệu tiền tệ. Ví dụ: "6.00" không có ký hiệu tiền tệ. |
priceCurrency |
Văn bản | Bắt buộc | Mã tiền tệ ISO 4217 gồm 3 chữ cái. Ví dụ: "USD". |
eligibleTransactionVolume |
PriceSpecification |
Không bắt buộc | Số lượng giao dịch (bằng đơn vị tiền tệ) mà quy cách phí giao hàng này hợp lệ. Ví dụ: để cho biết số lượng đơn đặt hàng tối thiểu hoặc để thể hiện rằng dịch vụ vận chuyển không tính thêm phí trên một số lượng đơn đặt hàng nhất định. |
eligibleQuantity |
QuantitativeValue |
Không bắt buộc | Khoảng thời gian và đơn vị đo lường số lượng đặt hàng mà phí giao hàng hợp lệ. Ví dụ: điều này cho phép bạn chỉ định rằng một mức phí vận chuyển nhất định chỉ hợp lệ đối với một số lượng nhất định. |
eligibleRegion |
Mảng GeoShape , Place hoặc GeoCircle |
Không bắt buộc | Địa điểm hoặc GeoShape/GeoCircle cho(các) khu vực địa chính trị mà ưu đãi hoặc quy cách phí giao hàng hợp lệ. Chỉ sử dụng thuộc tính này nếu phí giao hàng thay đổi theo khu vực. |
validFrom |
DateTime |
Không bắt buộc | Ngày và giờ (bao gồm cả múi giờ) khi phí giao hàng đã chỉ định có hiệu lực. Ví dụ: "2017-05-01T06:30:00-07:00". Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
validThrough |
DateTime |
Không bắt buộc | Ngày và giờ (bao gồm cả múi giờ) mà sau đó phí giao hàng được chỉ định là không hợp lệ. Ví dụ: "2017-05-01T06:30:00-07:00".
Thời gian cho validThrough là không dành riêng, ví dụ: nếu bạn đặt thời gian là 6 giờ chiều thì thời gian sẽ hợp lệ cho tới 5:59:59 chiều.
Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
Các ví dụ sau đây minh hoạ các phần tử DeliveryChargeSpecification
:
Ví dụ 1
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
Ví dụ 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 } } ]
Ví dụ 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" } } ]
Ngoài "@type": ["DeliveryChargeSpecification"]
, bạn có thể mở rộng đối tượng bằng UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Tiện ích này cung cấp thêm 2 thuộc tính bắt buộc đối với phí giao hàng được tính theo tỷ lệ phần trăm.
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Bắt buộc | Số lượng tham chiếu khi áp dụng một mức giá nhất định. Ví dụ: referenceQuantity của giá trị 10 tương ứng với unitCode là "P1" sẽ mang lại 10% giá trị đơn đặt hàng. Hiện tại, chỉ unitCode "P1" được hỗ trợ. |
basePrice |
Số | Không bắt buộc | Phí cơ bản ngoài referenceQuantity . Ví dụ: referenceQuantity /10 có unitCode là "P1" và basePrice là 5 bằng USD sẽ mang lại 5 USD + 10% giá trị đơn đặt hàng. Giá trị mặc định là "0". |
Ví dụ về phí giao hàng
Google cho phép bạn chỉ định trước nhiều loại phí cho người dùng bằng cách sử dụng Offer.PriceSpecification
của thực thể Dịch vụ.
Xin lưu ý rằng tính năng Đặt hàng hai đầu hiện chỉ hỗ trợ một DeliveryChargeSpecification
. Kết hợp tất cả các loại phí vào một DeliveryChargeSpecification
duy nhất.
Hãy tham khảo Ví dụ về nguồn cấp dữ liệu dịch vụ để biết cách chỉ định phí giao hàng dựa trên diện tích, khoảng cách và giá trị đơn đặt hàng.
Nếu không có phí, Offer.PriceSpecification
sẽ bị bỏ qua.
- Ví dụ 1: Phí giao hàng là 5% tổng phụ của giỏ hàng
- Ví dụ 2: Phí giao hàng là 50.000 VND
- Ví dụ 3: Phí giao hàng là 5 $+ 10% tổng phụ của giỏ hàng
- Ví dụ 4: Phí giao hàng là 50.000 VND và phí hành lý là 0,1$
- Ví dụ 5: Phí giao hàng là 5% và phí tiện lợi là 2% của tổng phụ của giỏ hàng
- Ví dụ 6: Phí giao hàng là 5 $và 1 $cho mỗi khoảng cách thêm 1km
Ví dụ 1
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Ví dụ 2
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Ví dụ 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% } ]
Ví dụ 4
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
Ví dụ 5:
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
Ví dụ 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
Bảng sau đây mô tả các thuộc tính của loại GeoCircle
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Tên này luôn là "GeoCircle". |
geoMidpoint |
GeoCoordinates |
Bắt buộc | Cho biết GeoCoordinates ở giữa GeoCircle . |
geoRadius |
Số | Bắt buộc | Cho biết bán kính gần đúng (tính bằng mét) của GeoCircle . |
Ví dụ sau đây cho thấy một phần tử GeoCircle
:
Ví dụ:
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
Bảng sau đây mô tả các thuộc tính của loại GeoCoordinates
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "Geocoordinates". |
latitude |
Số | Bắt buộc |
Vĩ độ tính theo độ. Các giá trị được giới hạn trong phạm vi từ -90 đến 90. Nếu giá trị được chỉ định nhỏ hơn -90 thì giá trị này sẽ được đặt thành -90; nếu giá trị lớn hơn 90 thì sẽ được đặt thành 90. Giá trị này phải có ít nhất 5 chữ số thập phân. |
longitude |
Số | Bắt buộc |
Kinh độ tính theo độ. Các giá trị nằm ngoài phạm vi từ -180 đến 180 sẽ được gói để nằm trong phạm vi đó. Ví dụ: giá trị -190 sẽ được chuyển đổi thành 170. Giá trị 190 được chuyển đổi thành -170. Điều này phản ánh thực tế là kinh độ bao quanh hình ảnh địa cầu. Giá trị này phải có ít nhất 5 chữ số thập phân. |
Ví dụ sau đây cho thấy một phần tử GeoCoordinates
:
Ví dụ:
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
Bảng sau đây mô tả các thuộc tính của loại GeoShape
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "GeoShape". |
polygon |
Mảng văn bản | Bắt buộc |
Một đa giác hoặc nhiều đa giác được biểu thị dưới dạng một chuỗi gồm ba điểm trở lên và được phân tách bằng khoảng trắng. Điểm đầu tiên và điểm cuối cùng nên giống nhau, nhưng điều này là không bắt buộc. Mỗi điểm trong một đa giác hoặc nhiều đa giác được xác định bằng một điểm vĩ độ, theo sau là một điểm kinh độ. Bạn cũng phải chỉ định các điểm theo chiều ngược kim đồng hồ. Trong hầu hết các trường hợp, bạn sẽ có một đa giác duy nhất. Đối với các trường hợp sử dụng phức tạp hơn, hãy xem tài liệu về khu vực kinh doanh phân phối. |
Các ví dụ sau đây minh hoạ các phần tử GeoShape
:
Ví dụ 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" },
Ví dụ 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”] },
Ví dụ 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" } ], ... },
Trình đơn
Bảng sau đây liệt kê các thuộc tính của loại Menu
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Mục này luôn là "Trình đơn". |
@id |
URL | Bắt buộc | Mã nhận dạng duy nhất của thực đơn. |
name |
Văn bản | Không bắt buộc | Văn bản có thể xác định Menu khi người dùng đang duyệt qua trình đơn. |
description |
Văn bản | Không bắt buộc | Nội dung mô tả thực đơn. |
disclaimer |
MenuDisclaimer |
Không bắt buộc | Tuyên bố từ chối trách nhiệm đối với thực đơn. Ví dụ: công bố thông tin về dinh dưỡng và công bố về chất gây dị ứng. |
hasMenuSection |
Một đối tượng hoặc mảng MenuSection |
Không bắt buộc | Phân nhóm logic theo thực đơn (như Bữa tối, Món khai vị hoặc Món cá). |
hasMenuItem |
Một đối tượng hoặc mảng MenuItem |
Không bắt buộc | Các đối tượng MenuItem chứa trong Menu , thường là khi Menu không được chia nhỏ theo MenuSections . |
inLanguage |
Văn bản | Không bắt buộc | Ngôn ngữ của nội dung trình đơn, dưới dạng mã ngôn ngữ theo tiêu chuẩn IEEETF BCP 47. Ví dụ: "vi-VN". |
Các ví dụ sau đây minh hoạ cách sử dụng loại Menu
:
Ví dụ 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" }
Ví dụ 2
Ví dụ này cho thấy hasMenuItem
dưới dạng một mảng.
{ "@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" } } ] }
Ví dụ 3
Ví dụ này cho thấy hasMenuSection
dưới dạng một mảng.
{ "@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" } } } ] }
Để biết thêm ví dụ về các thực thể Menu
, hãy xem bài viết Ví dụ về nhà hàng và nguồn cấp dữ liệu thực đơn.
MenuDisclaimer
Bảng sau đây liệt kê các thuộc tính của loại MenuDisclaimer
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Lựa chọn này luôn là "MenuTrình bày từ chối trách nhiệm". |
@id |
URL | Bắt buộc | Giá trị nhận dạng duy nhất của tuyên bố từ chối trách nhiệm trong thực đơn. |
text |
Văn bản | Bắt buộc | Văn bản của tuyên bố từ chối trách nhiệm. Ví dụ: "Lượng năng lượng trung bình hằng ngày của người lớn là 8700 kJ". |
url |
URL | Không bắt buộc | URL trỏ đến một trang cung cấp thêm thông tin chi tiết về tuyên bố từ chối trách nhiệm. |
Ví dụ sau đây cho thấy cách sử dụng loại MenuDisclaimer
:
Ví dụ:
{ "@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
Mục trong trình đơn để biểu thị mục đó trong trình đơn. Bảng sau đây liệt kê các thuộc tính cho loại MenuItem
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Mục này luôn là "MenuItem". |
@id |
URL | Bắt buộc | Giá trị nhận dạng duy nhất của món trong thực đơn. |
name |
Văn bản | Bắt buộc | Văn bản có thể xác định MenuItem khi người dùng đang duyệt xem trình đơn. |
description |
Văn bản | Không bắt buộc | Nội dung mô tả về mục trong trình đơn. |
image |
URL | Không bắt buộc |
Hình ảnh của mục trong thực đơn. Hãy làm theo các nguyên tắc sau về hình ảnh:
|
menuAddOn |
Mảng AddOnMenuSection |
Không bắt buộc | Các mục trong một phần trong trình đơn có thể được thêm dưới dạng tiện ích bổ sung vào mục trong trình đơn. |
offers |
Mảng Offer |
Bắt buộc* |
Một hoặc nhiều ưu đãi để cung cấp Danh sách dưới đây cho thấy những thuộc tính
|
hasMenuItemOptions |
Mảng MenuItemOption |
Bắt buộc | Danh sách các tuỳ chọn/biến thể cơ sở cho mục trong trình đơn này. Bạn nên sử dụng các tuỳ chọn để chỉ định các biến thể cơ sở có sẵn cho mục, ví dụ: nhỏ, trung bình và lớn. |
suitableForDiet |
Mảng RestrictedDiet |
Không bắt buộc | Món ăn tuân thủ quy định hạn chế về chế độ ăn đã mô tả (chẳng hạn như "http://schema.org/GlutenFreeDiet" hoặc "http://schema.org/VeganDiet". Đây là danh sách liệt kê các giá trị có thể có. |
nutrition |
NutritionInformation |
Không bắt buộc | Thông tin dinh dưỡng của món ăn, đáng chú ý nhất là lượng calo. |
hasAllergen |
AllergenDetails |
Không bắt buộc | Chất gây dị ứng của món ăn trong mỗi gs1:AllergenDetails .
Thêm ngữ cảnh gs1 để sử dụng thuộc tính này: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Và thêm FoodBeverageTobaccoProduct vào loại của MenuItem . |
additive |
Mảng AdditiveDetails |
Không bắt buộc | Chất phụ gia cho món ăn mỗi gs1:AdditiveDetails .
Đây là danh sách liệt kê các giá trị có thể có. Thêm ngữ cảnh gs1 để sử dụng thuộc tính này: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Và thêm FoodBeverageTobaccoProduct vào loại của MenuItem . |
packaging |
PackagingDetails |
Không bắt buộc | Thông tin đóng gói và tái chế của Mục trình đơn này theo gs1:PackagingDetails .
Thêm ngữ cảnh gs1 để sử dụng thuộc tính này: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Và thêm FoodBeverageTobaccoProduct vào loại của MenuItem .
|
Các ví dụ sau đây minh hoạ các phần tử MenuItem
:
Ví dụ 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" }
Ví dụ 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" } } ]
Ví dụ 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 -- ] } ] } ] }
Ví dụ 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" } } ] }
Ví dụ 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" } } } }
Để biết thêm ví dụ về các thực thể MenuItem
, hãy xem bài viết Ví dụ về nguồn cấp dữ liệu của nhà hàng và thực đơn.
MenuItemOption
Một tuỳ chọn để thể hiện các lựa chọn mà người dùng sẽ phải đưa ra khi chọn một món ăn hoặc kết hợp. Người dùng phải chọn một tuỳ chọn, nếu không đơn đặt hàng sẽ bị coi là không hợp lệ. Ví dụ: chọn nhỏ, trung bình hoặc lớn để chọn pizza.
Để biết các trường hợp sử dụng mẫu của MenuItemOption
, hãy xem hướng dẫn của chúng tôi về cách tuỳ chỉnh bằng MenuItemOption
.
Bảng sau đây liệt kê các thuộc tính của loại MenuItemOption
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Mục này luôn là "MenuItemOption". |
value |
PropertyValue |
Bắt buộc | PropertyValue chứa một cặp tên/giá trị đại diện cho tuỳ chọn. |
offers |
Mảng Offer |
Bắt buộc |
Một hoặc nhiều ưu đãi để cung cấp
Danh sách dưới đây cho thấy những thuộc tính
|
menuAddOn |
Array of |
Không bắt buộc | Mục trình đơn của những mục được phép có thể thêm dưới dạng tiện ích bổ sung. Chỉ sử dụng thuộc tính này nếu các tiện ích bổ sung dành riêng cho một lựa chọn mục cụ thể trong trình đơn. Nếu không, hãy cung cấp các tiện ích bổ sung bằng thuộc tính MenuItem .menuAddOn.
|
suitableForDiet |
Mảng RestrictedDiet |
Không bắt buộc | Danh sách liệt kê cho biết những chế độ ăn mà món này tuân thủ quy định hạn chế về chế độ ăn đã mô tả (chẳng hạn như "http://schema.org/GlutenFreeDiet" hoặc "http://schema.org/VeganDiet"). |
nutrition |
NutritionInformation |
Không bắt buộc | Thông tin dinh dưỡng của món ăn, đáng chú ý nhất là lượng calo. |
hasAllergen |
AllergenDetails |
Không bắt buộc | Chất gây dị ứng của món ăn trong mỗi gs1:AllergenDetails .
Thêm ngữ cảnh gs1 để sử dụng thuộc tính này: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Và thêm FoodBeverageTobaccoProduct vào loại của MenuItemOption .
|
additive |
Mảng AdditiveDetails |
Không bắt buộc | Phụ gia cho món ăn mỗi gs1:AdditiveDetails .
Đây là danh sách liệt kê các giá trị có thể có. Thêm ngữ cảnh gs1 để sử dụng thuộc tính này: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Và thêm FoodBeverageTobaccoProduct vào loại của MenuItemOption .
|
packaging |
PackagingDetails |
Không bắt buộc | Thông tin đóng gói và tái chế của Mục trình đơn này cho mỗi
gs1:PackagingDetails
Thêm ngữ cảnh gs1 để sử dụng thuộc tính này: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Và thêm FoodBeverageTobaccoProduct vào loại của MenuItemOption .
|
Ví dụ sau đây cho thấy các phần tử MenuItemOption
:
Ví dụ 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" } } ] }
Ví dụ 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
Mục trong trình đơn để đại diện cho một mục cụ thể trong trình đơn. Bảng sau đây liệt kê các thuộc tính của loại MenuSection
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Mục này luôn là "MenuSection" (Mục trình đơn). |
@id |
URL | Bắt buộc | Mã nhận dạng duy nhất của mục trong thực đơn. |
name |
Văn bản | Bắt buộc | Văn bản có thể xác định MenuSection khi người dùng duyệt qua trình đơn. |
description |
Văn bản | Không bắt buộc | Nội dung mô tả phần thực đơn. |
hasMenuSection |
Mảng MenuSection |
Không bắt buộc | Nhóm con logic của MenuSection . Ví dụ: phần thực đơn Bữa tối có thể có nhiều phần thực đơn phụ như "Món ăn gia cầm" hoặc "Đồ ăn chay". |
hasMenuItem |
Mảng MenuItem |
Không bắt buộc | Các mục trong trình đơn nằm trong MenuSection . |
offers |
Mảng Offer |
Không bắt buộc |
Sử dụng Danh sách sau đây cho biết những thuộc tính
|
image |
URL | Không bắt buộc | Hình ảnh mục trong thực đơn. |
Các ví dụ sau đây minh hoạ các thực thể MenuSection
:
Ví dụ 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" } }
Ví dụ 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" } } ] } ]
Để biết thêm ví dụ về các thực thể MenuSection
, hãy xem bài viết Ví dụ về nhà hàng và nguồn cấp dữ liệu thực đơn.
NutritionInformation
Bảng sau đây mô tả các thuộc tính của loại NutritionInformation
. Đơn vị đo lường có phân biệt chữ hoa chữ thường. Ví dụ: "Cal" được chấp nhận, nhưng "cal" thì không.
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "Dinh dưỡng thông tin". |
description |
Văn bản | Không bắt buộc | Thông tin dinh dưỡng dưới dạng văn bản tự do. Ví dụ: "Chứa chất bảo quản". |
calories |
Văn bản | Không bắt buộc |
Lượng calo tính theo Cal, kcal hoặc kJ, sử dụng định dạng sau: number Cal_kcal_OR_kJ Ví dụ: "240 Cal". |
carbohydrateContent |
Văn bản | Không bắt buộc |
Lượng carbohydrate, thường tính bằng g, theo định dạng sau: number g_OR_mg Ví dụ: "7 g". |
cholesterolContent |
Văn bản | Không bắt buộc |
Hàm lượng Cholesterol, thường tính bằng mg, theo định dạng sau: number g_OR_mg Ví dụ: "12 mg". |
fatContent |
Văn bản | Không bắt buộc |
Lượng chất béo, thường tính bằng g, theo định dạng sau: number g_OR_mg Ví dụ: "42 g". |
fiberContent |
Văn bản | Không bắt buộc |
Số g hoặc mg chất xơ, theo định dạng sau: number g_OR_mg |
proteinContent |
Văn bản | Không bắt buộc |
Số g hoặc mg protein, sử dụng định dạng sau: number g_OR_mg |
saturatedFatContent |
Văn bản | Không bắt buộc |
Số g hoặc mg chất béo bão hoà, sử dụng định dạng sau: number g_OR_mg |
servingSize |
Văn bản | Không bắt buộc | Kích cỡ khẩu phần tính bằng mL, L, g hoặc kg, theo thể tích hoặc khối lượng. |
sodiumContent |
Văn bản | Không bắt buộc |
Số mg hoặc g natri, theo định dạng sau: number g_OR_mg |
sugarContent |
Văn bản | Không bắt buộc |
Số g hoặc mg đường, sử dụng định dạng sau: number g_OR_mg |
transFatContent |
Văn bản | Không bắt buộc |
Số g hoặc mg chất béo chuyển hoá, theo định dạng sau: number g_OR_mg |
unsaturatedFatContent |
Văn bản | Không bắt buộc |
Lượng chất béo không bão hoà, thường tính bằng g, theo định dạng sau: number g_OR_mg |
Các ví dụ sau đây minh hoạ phần tử NutritionInformation
:
Ví dụ 1
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
Ví dụ 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" } },
Lời đề nghị
Ưu đãi cho một món trong thực đơn. Bảng sau đây mô tả các thuộc tính của loại Offer
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Mục này luôn là "Ưu đãi". |
sku |
Văn bản | Câu lệnh có điều kiện |
Giá trị nhận dạng duy nhất của mặt hàng. Có thể là giá trị văn bản bất kỳ duy nhất trong Thuộc tính này chỉ được dùng trong các loại ưu đãi sau:
|
price |
Văn bản | Câu lệnh có điều kiện |
Giá của mặt hàng được cung cấp. Ví dụ: "6.00" không có ký hiệu tiền tệ. Bạn chỉ phải cung cấp thuộc tính này trong các loại ưu đãi sau:
Mã này không được dùng trong các loại ưu đãi sau đây:
|
priceCurrency |
Văn bản | Câu lệnh có điều kiện |
Đơn vị tiền tệ (ở định dạng gồm 3 chữ cái theo ISO 4217) của giá hoặc thành phần giá, khi được đính kèm vào priceSpecification và các loại phụ của giá. Bạn chỉ phải cung cấp thuộc tính này trong các loại ưu đãi sau:
Mã này không được dùng trong các loại ưu đãi sau đây:
|
availabilityStarts |
DateTime hoặc Time |
Không bắt buộc | Ngày và giờ hoặc chỉ thời gian áp dụng ưu đãi. Ví dụ: nếu bánh kếp được phục vụ lúc 7:00 sáng, thì giá trị của trường này có thể có dạng như sau: "2017-05-01T07:00:00-07:00". Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
availabilityEnds |
DateTime hoặc Time |
Không bắt buộc | Ngày và giờ hoặc chỉ thời gian khi ưu đãi không có hiệu lực. Đây là phiên bản độc quyền. Ví dụ: nếu hết hạn bán bánh kếp lúc 10 giờ sáng, thì giờ bánh kếp cuối cùng có thể được phân phát lúc 9:59:59 sáng. Giá trị của trường này có thể có dạng như sau: "2017-05-01T10:00:00-07:00". Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
availableDay |
Mảng DayOfWeek | Không bắt buộc |
Ngày trong tuần có mặt hàng này. Các giá trị hợp lệ là:
Nếu bạn có nhiều thời gian rảnh cho nhiều ngày trong tuần, hãy sử dụng nhiều đối tượng |
validFrom |
DateTime |
Không bắt buộc |
Ngày và giờ (bao gồm cả múi giờ) mà giá được chỉ định có hiệu lực. Ví dụ: mì ống có giá 8 đô la cho bữa trưa và 10 đô la vào bữa tối. Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. Thuộc tính này có thể được dùng trong các loại ưu đãi sau:
Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:
|
validThrough |
DateTime |
Không bắt buộc | Ngày và giờ (bao gồm cả múi giờ) mà sau đó giá được chỉ định sẽ hết hiệu lực. Ví dụ: mì ống là 8 đô la cho bữa trưa và 10 đô la vào bữa tối. Thời gian cho Thuộc tính này có thể được dùng trong các loại ưu đãi sau:
Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây.
|
eligibleQuantity |
QuantitativeValue | Không bắt buộc |
Số lượng đặt hàng mà mặt hàng này được phép. Ví dụ: một nhà hàng có thể yêu cầu đặt hàng ít nhất 10 bánh pizza để có thể giao hàng. Giá trị này là không bắt buộc. Theo mặc định, không có giới hạn tối đa, nhưng nhà hàng có thể chỉ định một giới hạn. Giới hạn tối thiểu chỉ áp dụng khi người dùng chọn mục đó. Thuộc tính này có thể được dùng trong các loại ưu đãi sau:
Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây.
|
aggregateRating |
AggregateRating | Không bắt buộc |
Điểm xếp hạng chung, dựa trên tập hợp các bài đánh giá hoặc điểm xếp hạng về mặt hàng. Thuộc tính này có thể được dùng trong các loại ưu đãi sau:
Thuộc tính này không được sử dụng trong các loại sau.
|
inventoryLevel |
QuantitativeValue | Không bắt buộc |
Cấp khoảng không quảng cáo gần đúng hiện tại cho một hoặc nhiều mặt hàng. Thuộc tính này có thể được dùng trong các loại ưu đãi sau:
Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:
|
priceSpecification |
Mảng DeliveryChargeSpecification hoặc mảng PaymentChargeSpecification | Không bắt buộc |
Khi được sử dụng trong Thuộc tính này có thể được dùng trong các loại ưu đãi sau:
Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:
|
offeredBy |
Mảng mã nhận dạng Restaurant |
Không bắt buộc | Đại diện cho các nhà hàng đang phục vụ Nếu bạn không chỉ định, Thuộc tính này có thể được dùng trong các loại ưu đãi sau:
Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:
|
applicableFulfillmentMethod |
Mảng văn bản | Không bắt buộc | Đại diện cho loại dịch vụ mà Nếu bạn không chỉ định, thì Thuộc tính này có thể được dùng trong các loại ưu đãi sau:
Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:
|
@id |
URL | Không được dùng nữa | Giá trị nhận dạng duy nhất của mặt hàng. Ngừng sử dụng kể từ ngày 25/4/19, thay thế bằng sku như mô tả ở trên.
|
Các ví dụ sau đây minh hoạ các phần tử Offer
:
Ví dụ 1
Ví dụ sau đây minh hoạ một ưu đãi đơn giản:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Ví dụ 2
Ưu đãi mẫu sau đây cho biết tình trạng còn hàng từ 8 đến 10 giờ sáng vào cuối tuần:
{ "@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. }
Ví dụ 3
Ví dụ sau đây cho biết thời gian rảnh từ 9-10:59:59 sáng vào các ngày thứ Hai, thứ Tư và thứ Sáu, nhưng từ 8-11:59:59 sáng vào các ngày thứ Ba và thứ Năm:
{ "@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"] }
Ví dụ 4
Ví dụ sau đây cho thấy tập hợp số lượng đủ điều kiện của một mục trong trình đơn bổ sung để người dùng có thể đặt hàng tối đa 2 phần của mặt hàng đó.:
{ "@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 } } }
Ví dụ 5:
Ví dụ sau đây cho thấy một ưu đãi giao hàng tại một địa điểm cụ thể:
{ "@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
Xác định thời điểm cung cấp dịch vụ đặt hàng. Thông thường, giá trị của opens
nhỏ hơn giá trị closes
. Việc sử dụng thuộc tính opens
và closes
phải tuân theo các nguyên tắc sau:
- Bạn không bắt buộc phải sử dụng thuộc tính
opens
vàcloses
, nhưng bạn nên ghi chú thích khi có thể đặt hàng. Phương pháp hay nhất để xác định giờ hỗ trợ là thêm một mảngdeliveryHours
chứaServiceDeliveryHoursSpecification
với các thuộc tínhopens
vàcloses
. Sau đó, bạn có thể đưa một đối tượngAdvanceServiceDeliveryHoursSpecification
vàodeliveryHours
với các thuộc tínhopens
vàcloses
riêng nếu muốn cung cấp khoảng thời gian hạn chế hơn cho việc đặt hàng trước. - Nếu
opens
vàcloses
không được chỉ định rõ ràng, chúng tôi sẽ giả định rằng bạn có thể đặt dịch vụ hằng ngày vào mọi thời điểm trong ngày. - Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị
opens
hoặccloses
. Nếu bạn chỉ định múi giờ, Google sẽ bỏ qua thông tin này. - Nếu
opens
vàcloses
giống nhau, chúng tôi sẽ giả định rằng nhà hàng mở cửa trong 0 phút. - Nếu
opens
lớn hơncloses
, thì giờ đóng cửa sẽ được diễn giải là vào ngày tiếp theo. Ví dụ: nếu giờ mở cửa được đặt thành 5 giờ chiều ngày 1 tháng 1 và giờ đóng cửa là 2 giờ sáng, thì nhà hàng sẽ được hiểu là đóng cửa lúc 2 giờ sáng ngày 2 tháng 1. - Đây chỉ là thời gian dành riêng cho
closes
. Do đó, nếu thời gian mở và đóng của cửa sổ đặt hàng này lần lượt được đặt là 10 giờ sáng và 4 giờ chiều, thì đơn đặt hàng sau cùng sẽ là 3:59:59 chiều.
Bảng sau đây mô tả các thuộc tính của loại OpeningHoursSpecification
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "openingHoursSpecification". |
@id |
URL | Không bắt buộc | Giá trị nhận dạng của OpeningHoursSpecification . |
dayOfWeek |
Mảng DayOfWeek |
Không bắt buộc |
Ngày trong tuần mà những giờ mở cửa này hợp lệ. Các giá trị được chấp nhận là "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy" và "Chủ Nhật". Ví dụ: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Nếu bạn không chỉ định ngày nào trong tuần, thì |
opens |
Time |
Không bắt buộc |
Khi được sử dụng trong thông số kỹ thuật Khi được dùng trong quy cách Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
closes |
Time |
Không bắt buộc |
Khi được dùng trong quy cách Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
validFrom |
DateTime |
Không bắt buộc |
Khi được sử dụng trong thông số kỹ thuật Ví dụ: nếu giờ được cung cấp áp dụng cho cả năm 2017, bạn sẽ đặt Khi dùng trong quy cách Nếu thuộc tính này không được chỉ định trong nguồn cấp dữ liệu của bạn, Google sẽ giả định rằng Nhà hàng hoặc Dịch vụ hoạt động hằng ngày. Ngoài ngày, bạn cũng phải nhập phần giờ và múi giờ của giá trị này. Đối với múi giờ, hãy sử dụng múi giờ của Nhà hàng hoặc Dịch vụ. Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
validThrough |
DateTime |
Không bắt buộc |
Khi được sử dụng trong Ví dụ: nếu giờ được cung cấp áp dụng cho cả năm 2017, bạn sẽ đặt Khi dùng trong quy cách Nếu thuộc tính này không được chỉ định trong nguồn cấp dữ liệu của bạn, Google sẽ giả định rằng Nhà hàng hoặc Dịch vụ hoạt động hằng ngày. Ngoài ngày, bạn cũng phải cung cấp phần giờ và múi giờ của thuộc tính DateTime. Đối với múi giờ, hãy sử dụng múi giờ của Nhà hàng hoặc Dịch vụ. Đây chỉ là thời gian dành riêng cho Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
deliveryHours |
Mảng ServiceDeliveryHoursSpecification hoặc mảng AdvanceServiceDeliveryHoursSpecification |
Câu lệnh có điều kiện |
Quy cách về thời gian giao hàng hoặc lấy hàng. Bạn bắt buộc phải sử dụng tham số này trừ phi nhà hàng đóng cửa (có nghĩa là
|
Các ví dụ sau đây minh hoạ các phần tử OpeningHoursSpecification
:
Ví dụ 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" } ] },
Ví dụ 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" } ] }
Ví dụ 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" } } },
Ví dụ 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
Thêm ngữ cảnh gs1 để sử dụng loại này: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Và thêm FoodBeverageTobaccoProduct
vào loại của MenuItem
hoặc MenuItemOption
.
Bảng sau đây mô tả các thuộc tính của loại PackagingDetails
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Thuộc tính này luôn là "PackagingDetails". |
packagingRecyclingProcessType |
Văn bản | Không bắt buộc | Loại quy trình tái chế đóng gói theo
gs1:PackagingRecyclingProcessTypeCode. Ví dụ: http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE hoặc http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Không bắt buộc | Thông tin chi tiết về khoản tiền gửi theo gói có thể trả lại theo gs1:ReturnablePackagegóiDetails. Ví dụ: chai và lon có tiền đặt cọc gói có thể hoàn trả. |
Ví dụ sau đây cho thấy cách sử dụng loại 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
Bảng sau đây mô tả các thuộc tính của loại PaymentChargeSpecification
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "PaymentChargeSpecification". |
@id |
URL | Không bắt buộc | Giá trị nhận dạng của PaymentChargeSpecification . |
price |
Số | Bắt buộc | Tổng số tiền của khoản phí. Ví dụ: "6.00" không có ký hiệu tiền tệ. |
priceCurrency |
Văn bản | Bắt buộc | Mã đơn vị tiền tệ gồm 3 chữ cái theo tiêu chuẩn ISO 4217 của giá. Ví dụ: "USD". |
eligibleTransactionVolume |
PriceSpecification |
Không bắt buộc | Số lượng giao dịch, bằng một đơn vị tiền tệ mà quy cách khoản phí thanh toán này hợp lệ, chẳng hạn như để cho biết số lượng giao dịch mua tối thiểu. |
eligibleQuantity |
QuantitativeValue |
Không bắt buộc | Số lượng đặt hàng mà phí thanh toán hợp lệ. Ví dụ: bạn có thể sử dụng thuộc tính này để yêu cầu số lượng mặt hàng tối thiểu trong một đơn đặt hàng. |
validFrom |
DateTime |
Không bắt buộc | Ngày và giờ (bao gồm cả múi giờ) khi khoản phí thanh toán được chỉ định có hiệu lực. Ví dụ: "2017-05-01T07:00:00-07:00". Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
validThrough |
DateTime |
Không bắt buộc | Ngày và giờ (bao gồm cả múi giờ) khi khoản phí thanh toán được chỉ định không hợp lệ. Ví dụ: "2017-05-01T07:30:00-07:00".
Thời gian cho validThrough là không dành riêng, ví dụ: nếu bạn đặt thời gian đó là 6 giờ chiều thì thời gian sẽ hợp lệ cho tới 5:59:59 chiều.
Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
Ví dụ sau đây minh hoạ phần tử PaymentChargeSpecification:
Ví dụ:
"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 } }]
Ngoài "@type": ["PaymentChargeSpecification"]
, đối tượng có thể được mở rộng bằng UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
). Tiện ích này cung cấp thêm hai thuộc tính cần thiết cho phí dịch vụ được tính theo tỷ lệ phần trăm.
thuộc tính | Loại | Sự cần thiết | Nội dung mô tả |
referenceQuantity |
QuantitativeValue |
Bắt buộc | Số lượng tham chiếu khi áp dụng một mức giá nhất định. Ví dụ: referenceQuantity của giá trị 10 tương ứng với unitCode là "P1" sẽ mang lại 10% giá trị đơn đặt hàng. Hiện chỉ hỗ trợ unitCode "P1". |
basePrice |
Số | Không bắt buộc | Phí cơ bản ngoài referenceQuantity . Ví dụ: referenceQuantity /10 có unitCode là "P1" và basePrice là 5 bằng USD sẽ mang lại 5 USD + 10% giá trị đơn đặt hàng. Giá trị mặc định là "0". |
Ví dụ về phí mang đi
Google cho phép bạn chỉ định trước nhiều loại phí cho người dùng bằng cách sử dụng Offer.PriceSpecification
của thực thể Dịch vụ.
Xin lưu ý rằng chúng tôi hiện chỉ hỗ trợ một PaymentChargeSpecification
. Kết hợp tất cả các loại phí vào một PaymentChargeSpecification
duy nhất
Nếu không có phí, Offer.PriceSpecification
sẽ bị bỏ qua.
- Ví dụ 1: Phí dịch vụ là 5% tổng phụ của giỏ hàng
- Ví dụ 2: Phí dịch vụ là 5 USD
- Ví dụ 3: Phí hành lý là 0,1 đô la và phí dịch vụ là 5% tổng phụ của giỏ hàng
- Ví dụ 4: Phí hành lý là 0,1 USD và phí dịch vụ là 1 USD
- Ví dụ 5: Phí dịch vụ là 5% và tiền boa bắt buộc là 10% của tổng phụ của giỏ hàng
Ví dụ 1
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Ví dụ 2
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Ví dụ 3
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
Ví dụ 4
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
Ví dụ 5:
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Địa điểm
Bảng sau đây mô tả các thuộc tính của loại Place
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Địa điểm này luôn là "Địa điểm". |
address |
PostalAddress |
Bắt buộc | Địa chỉ của địa điểm. |
Ví dụ sau đây cho thấy một phần tử Địa điểm:
Ví dụ:
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
Bảng sau đây mô tả các thuộc tính của loại PostalAddress
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Địa chỉ này luôn là "PostalAddress". |
addressLocality |
Văn bản | Bắt buộc* | Địa phương hoặc thành phố. Ví dụ: "San Francisco". |
addressRegion |
Văn bản | Bắt buộc* | Khu vực hoặc tiểu bang. Ví dụ: "CA". |
postalCode |
Văn bản | Bắt buộc* | Mã bưu chính. Ví dụ: "94102". |
streetAddress |
Văn bản | Không bắt buộc | Địa chỉ đường phố. Ví dụ: "1600 Amphitheatre Pkwy". |
addressCountry |
Văn bản | Bắt buộc | Mã quốc gia gồm hai chữ cái theo ISO 3166-1 alpha-2 . Ví dụ: "US". |
Nhà cung cấp dịch vụ phân phối có thể liệt kê các thuộc tính này để chỉ định Service.areaServed
nơi cung cấp dịch vụ.
Khi được sử dụng trong Restaurant.address
, bạn phải cung cấp mọi thuộc tính được liệt kê trong PostalAddress
.
Ví dụ sau đây cho thấy một phần tử PostalAddress
:
Ví dụ:
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
Bảng sau đây mô tả các thuộc tính của loại PriceSpecification
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Thuộc tính này luôn là "PriceSpecification". |
@id |
URL | Không bắt buộc | Giá trị nhận dạng của PriceSpecification . |
minPrice |
Số | Không bắt buộc | Giá thấp nhất nếu giá là một khoảng giá. |
maxPrice |
Số | Không bắt buộc | Giá cao nhất nếu là một khoảng giá. |
priceCurrency |
Văn bản | Bắt buộc | Mã đơn vị tiền tệ gồm 3 chữ cái theo tiêu chuẩn ISO 4217 của giá. Ví dụ: "USD". |
eligibleQuantity |
QuantitativeValue |
Không bắt buộc | Số lượng đặt hàng mà quy cách giá hợp lệ. Ví dụ: giá có thể là 2 đô la cho mỗi pound hoặc 2 mặt hàng tính với một đô la. |
Ví dụ sau đây cho thấy một phần tử PriceSpecification
:
Ví dụ 1
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Cặp giá trị thuộc tính được dùng để mô tả các lựa chọn trong MenuItemOption
.
Bảng sau đây liệt kê các thuộc tính của loại PropertyValue
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "PropertyValue". |
name |
Văn bản | Bắt buộc |
Tên hoặc loại lựa chọn. Sau đây là các tên hợp lệ khi dùng trong
Tên hợp lệ khi dùng trong
|
value |
Văn bản | Bắt buộc |
Giá trị của lựa chọn. Các giá trị có thể là chuỗi bất kỳ và được hiển thị dưới dạng. Sau đây là các giá trị hợp lệ:
|
QuantitativeValue
Bảng sau đây mô tả các thuộc tính của loại QuantitativeValue
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "QuantitativeValue". |
value |
Số | Không bắt buộc | Giá trị của nút giá trị định lượng hoặc nút giá trị thuộc tính. |
unitCode |
Văn bản hoặc URL | Không bắt buộc |
Đơn vị đo lường dưới dạng Mã chung UN/CEINFORMATION hoặc một URL. Đối với những mã không phải là Mã chung UN/CExuất, bạn có thể dùng một tiền tố theo sau là dấu hai chấm. |
maxValue |
Số | Không bắt buộc | Giá trị trên của một số đặc điểm hoặc đặc tính. |
minValue |
Số | Không bắt buộc | Giá trị thấp hơn của một số đặc điểm hoặc đặc tính. |
Các ví dụ sau đây minh hoạ cách sử dụng loại QuantitativeValue
:
Ví dụ 1
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
Ví dụ 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 } }
Ví dụ 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 } } ]
Nhà hàng
Bảng sau đây liệt kê các thuộc tính của loại Restaurant
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Địa chỉ này luôn là "Nhà hàng". |
@id |
URL | Bắt buộc | Giá trị nhận dạng duy nhất của nhà hàng hoặc nhà cung cấp dịch vụ giao hàng. Ví dụ: "http://www.provider.com/326", trong đó "326" là giá trị nhận dạng duy nhất của nhà hàng. |
name |
Văn bản | Bắt buộc | Văn bản có thể xác định Restaurant trong quá trình đặt hàng. |
url |
URL | Bắt buộc | URL trên miền đại diện cho nhà hàng. Ví dụ: "http://www.provider.com/someanswer". |
sameAs |
URL | Không bắt buộc | Trang web chính thức của nhà hàng. Ví dụ: "http://www.someNH.com". |
email |
Văn bản | Không bắt buộc | Địa chỉ email liên hệ của nhà hàng. |
description |
Văn bản | Không bắt buộc | Nội dung mô tả nhà hàng. |
telephone |
Văn bản | Bắt buộc |
Số điện thoại ở định dạng sau: "[+][country_code][phone_#_with_area_code]" Ví dụ: "+16501234567". |
priceRange |
Văn bản | Không bắt buộc | Nhiều mức giá. Ví dụ: "$$" ($-Inexpensive, $$-Medium, $$$-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", // Bắt buộc phải có Mã quốc gia (+1) "servesCuisine": [ "Ấn Độ-Mexican Fusion" ] },Ví dụ 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"} ] }Để biết thêm ví dụ về các thực thể
Restaurant
, hãy xem bài viết Ví dụ về nhà hàng và nguồn cấp dữ liệu thực đơn.
ReturnablePackageDepositDetails
Để sử dụng loại này, hãy thêm ngữ cảnh gs1: "@context":
["http://gs1.org/voc/", "http://schema.org"]
Sau đó, hãy thêm
FoodBeverageTobaccoProduct
vào loạiMenuItem
hoặcMenuItemOption
thích hợp.Bảng sau đây mô tả các thuộc tính của loại
ReturnablePackageDepositDetails
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "ReturnablePackageBufferDetails". |
returnablePackageDepositAmount |
gs1:PriceSpecification |
Không bắt buộc | Số tiền đặt cọc cho mặt hàng này theo gs1:PriceSpecification. Ví dụ: Đặt cọc 0, 25 USD cho mỗi lon. |
Ví dụ sau đây cho thấy cách sử dụng loại 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" } } } },
Dịch vụ
Mô tả việc phân phối một Hành động đặt hàng hai đầu từ một nhà hàng đến một vị trí địa lý của một tổ chức giao hàng.
Bảng sau đây mô tả các thuộc tính của loại Service
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc |
Loại nguồn cấp dữ liệu.
|
@id |
URL | Bắt buộc | Giá trị nhận dạng cho dịch vụ thực hiện đơn hàng. Ví dụ: "http://www.provider.com/service/1". |
description |
Văn bản | Không bắt buộc | Nội dung mô tả về mặt hàng. |
serviceType |
Văn bản | Bắt buộc | Loại dịch vụ được cung cấp. Giá trị có thể là "delivery" hoặc "TakeOUT". |
provider |
Restaurant |
Bắt buộc | Tham chiếu đến giá trị nhận dạng duy nhất của nhà hàng. Ví dụ: "http://www.provider.com/someanswer". |
areaServed |
Mảng GeoShape , Place hoặc GeoCircle |
Câu lệnh có điều kiện | Khu vực địa lý nơi cung cấp dịch vụ. Trường này là trường không bắt buộc theo mặc định nhưng bắt buộc nếu giá trị serviceType là "PHÂN PHỐI". |
hoursAvailable |
Mảng OpeningHoursSpecification |
Bắt buộc | Giờ cung cấp dịch vụ này. |
specialOpeningHoursSpecification |
Mảng OpeningHoursSpecification , ServiceDeliveryHoursSpecification hoặc AdvanceServiceDeliveryHoursSpecification |
Không bắt buộc |
Thời gian ghi đè Xác định phạm vi ngày đặc biệt bằng cách sử dụng các thuộc tính |
offers |
Mảng Offer |
Câu lệnh có điều kiện |
Thông tin chi tiết về dịch vụ giao hàng của một nhà hàng cụ thể. Theo mặc định, trường này là trường không bắt buộc nhưng bắt buộc nếu Bạn không bắt buộc phải sử dụng thuộc tính |
hasOfferCatalog |
[Menu , Danh mục ưu đãi] |
Bắt buộc |
Chỉ định một trình đơn cho dịch vụ này. Bạn có thể tạo một thực đơn riêng cho từng dịch vụ (như mua mang đi, giao hàng và đặt ăn). Bạn phải chỉ định cả "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
Mảng {name, value} | Không bắt buộc |
Thông tin cấu hình dịch vụ không bắt buộc. Các mục dự kiến phải là một đối tượng có khoá
Hãy xem tài liệu tham khảo về "additionalProperty": [{ "name": "disableOrderInstructions", "value": false }, { "name": "disableMenuItemSpecialInstructions", "value": false }, { "name": "disableTipWidget", "value": false }, { "name": "disablePromoWidget", "value": false }, { "name": "menuItemSpecialInstructionsMaxLength", "value": 256 }, { "name": "orderInstructionsMaxLength", "value": 256 }] |
potentialAction |
URL | Không bắt buộc |
Chứa URL của dịch vụ giao hàng/lấy đồ ăn mang về. Dịch vụ này sẽ được sử dụng trong khi chuyển từ trải nghiệm đặt đồ ăn hai đầu sang dịch vụ chuyển hướng. Ví dụ: "potentialAction": { "url": "https://fopatestagent.com/ordering/advertisers-1/delivery" } |
Ví dụ sau đây minh hoạ cách sử dụng Loại dịch vụ:
Ví dụ:
{ "@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" } } ] } },
Để xem thêm ví dụ về thực thể Dịch vụ, hãy xem bài viết Ví dụ về nguồn cấp dữ liệu dịch vụ.
ServiceDeliveryHoursSpecification
Biểu thị giờ thực hiện đơn hàng để người dùng lên lịch giao hàng và lấy hàng sớm nhất có thể.
Thông thường, giá trị của opens
nhỏ hơn giá trị của closes
. Các nguyên tắc sau đây áp dụng cho việc sử dụng các thuộc tính opens
và closes
:
- Bạn không bắt buộc phải sử dụng thuộc tính
opens
vàcloses
choServiceDeliveryHoursSpecification
, nhưng bạn nên thêm các thuộc tính đó. - Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị
opens
hoặccloses
. Nếu bạn chỉ định múi giờ, Google sẽ bỏ qua thông tin múi giờ. - Nếu
opens
vàcloses
không được chỉ định rõ ràng, chúng tôi sẽ giả định rằng tính năng đặt hàng sớm nhất có thể vào mọi lúc. - Nếu
opens
vàcloses
giống nhau, thì chúng tôi sẽ giả định rằng không có thứ tự sớm nhất có thể. - Nếu
opens
lớn hơncloses
, thì giờ đóng cửa sẽ được diễn giải là vào ngày tiếp theo. Ví dụ: nếu giờ mở cửa được đặt thành 5 giờ chiều ngày 1 tháng 1 và giờ đóng cửa là 2 giờ sáng, thì nhà hàng sẽ được hiểu là đóng cửa lúc 2 giờ sáng ngày 2 tháng 1.
Bảng sau đây mô tả các thuộc tính của loại ServiceDeliveryHoursSpecification
:
Tài sản | Loại | Sự cần thiết | Nội dung mô tả |
---|---|---|---|
@type |
Văn bản | Bắt buộc | Giá trị này luôn là "ServicedeliveryHoursSpecification". |
validFrom |
DateTime |
Không bắt buộc |
Ngày và giờ (bao gồm cả múi giờ) mà người dùng có thể thực hiện đơn đặt hàng sớm nhất có thể. Ví dụ: "2017-05-01T07:00:00-07:00". Nếu bạn không đặt thuộc tính này, thuộc tính này được giả định là hợp lệ mỗi ngày. Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
validThrough |
DateTime |
Không bắt buộc |
Ngày và giờ (bao gồm cả múi giờ) mà sau đó không thể thực hiện đơn đặt hàng sớm nhất có thể của người dùng. Ví dụ: "2017-05-01T07:00:00-07:00". Nếu bạn không đặt thuộc tính này, thì thuộc tính sẽ được giả định là hợp lệ mỗi ngày. Đây chỉ là thời gian dành riêng cho Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
opens |
Time |
Không bắt buộc |
Thời gian bắt đầu dịch vụ giao hàng để thực hiện đơn đặt hàng sớm nhất có thể của người dùng. Ví dụ: "T10:30:00". Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
closes |
Time |
Không bắt buộc |
Thời gian không còn cung cấp dịch vụ giao hàng cho đơn đặt hàng sớm nhất có thể của người dùng. Ví dụ: "T23:59:59". Đây chỉ là thời gian dành riêng cho Thời gian phải được chỉ định theo giờ địa phương cho dịch vụ. Không đưa múi giờ vào giá trị Để biết thêm thông tin, hãy xem bài viết Định dạng ngày giờ và thời gian. |
dayOfWeek |
Mảng DayOfWeek |
Không bắt buộc |
Ngày trong tuần mà dịch vụ này khả dụng cho đơn đặt hàng sớm nhất có thể của người dùng. Sau đây là các giá trị hợp lệ:
Nếu bạn không chỉ định ngày nào trong tuần, thì |
deliveryLeadTime |
QuantitativeValue |
Không bắt buộc | Thời gian giao hàng dự kiến (tính theo phút) sau khi đặt hàng. Bạn nên đặt thuộc tính này. Đặt trường value của QuantitativeValue thành số phút và unitCode thành "MIN". |
Ví dụ sau đây cho thấy một phần tử ServiceDeliveryHoursSpecification
:
Ví dụ 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" } },
Ví dụ 2
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }
Enum
RestrictedDiet
Loại RestrictedDiet
có thể có các giá trị sau:
- 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
Trừ khi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2024-02-16 UTC.