Giản đồ khoảng không quảng cáo phiên bản 1

Nguồn cấp dữ liệu danh mục thực phẩm dựa trên schema.org DataFeed thực thể. 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ỉ, thực đơn và vị trí của nhà hàng, cũng như dịch vụ của nhà hàng thông tin chi tiết như phí giao hàng, khu vực giao hàng và các mục khác như được chỉ định bên dưới.

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 phần tử duy nhất được thể hiện bằng từ vựng trên schema.org. Bạn có thể dùng DataFeed để xuất bản 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 nhằm xây dựng nguồn cấp dữ liệu của bạn, hãy xem Tổng quan về việc 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, và trừ khi có quy định khác, phải tuân theo định dạng ISO 8601 và bao gồm ngày, giờ và múi giờ. Hãy 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 của một nhà hàng cụ thể hoặc múi giờ của vị trí dịch vụ, 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:

  • Chữ "T" bắt buộc phải có tiền tố trước thời gian.
  • Bạn phải chỉ định múi giờ cho DATETIME. Đây không phải là trường bắt buộc đối với TIME.
  • Bạn phải chỉ định thời gian theo giờ địa phương cho nhà hàng hoặc dịch vụ.

Phong bì

Mã khởi đầu của mọi nguồn cấp dữ liệu danh mục thực phẩm đều phải chứa "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:

Thuộc tính Loại Sự cần thiết Mô tả
@context URL Bắt buộc Bối cảnh sử dụng; thường là "http://schema.googleapis.com".
@type Văn bản Bắt buộc Đó luôn là "DataFeed".
dateModified DateTime Bắt buộc

DateTime được sửa đổi gần đây nhất của nguồn cấp dữ liệu, theo tiêu chuẩn ISO 8601 .

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. Khi không có trường này, trường này được giả định 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.

Chúng tôi đặc biệt khuyên bạn nên triển khai phương thức này nếu bạn đang sử dụng cả và thu thập thông tin cùng nhau. Bạn phải chỉ định dấu thời gian này bằng một múi giờ và độ chi tiết (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ủa bạn, thực thể phiên bản được xác định thông qua dateModified trong phong bì của nguồn cấp dữ liệu.

dataFeedElement Mảng Menu hoặc 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. Xem 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 thích hợp hoặc MenuItemOption.

Bảng sau đây mô tả các thuộc tính của loại AdditiveDetails:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Mục này luôn là "AdditiveDetails".
additiveName Văn bản Không bắt buộc Tên chất phụ gia.
additiveLevelOfContainment Văn bản Không bắt buộc Mã vùng chứa mỗi gs1:levelOfContainermentCode. 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 minh hoạ 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

Một món ăn hoặc đồ uống được liệt kê trong mục trong trình đơn bổ sung của MenuItem.

Bảng sau đây liệt kê các thuộc tính của loại AddOnMenuItem:

Thuộc tính Loại Sự cần thiết 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 trong 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 .
description Văn bản Không bắt buộc Nội dung mô tả mục trong trình đơn tiện ích bổ sung.
image URL Không bắt buộc

Hình ảnh mục trong trình đơn tiện ích bổ sung tuân thủ các nguyên tắc sau:

  • Tỷ lệ khung hình 3:2
  • >
  • Độ phân giải tối thiểu 600 x 400 pixel, 72 dpi
  • >
  • Độ phân giải đề xuất: 1400 x 960 pixel, 72 dpi
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á bán AddOnMenuItem này. 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 dựa trên thời gian trong ngày. Khi tiện ích bổ sung hoặc mặt hàng khác nhau thông qua thuộc tính cơ sở hoặc biến thể của chính tiện ích bổ sung (như nhỏ, trung bình và lớn) khoai tây chiên làm tiện ích bổ sung), hãy sử dụng hasMenuItemOption thuộc tính này.

Giá trị mặc định cho Offer.eligibleQuantity là giá trị tối thiểu là 0, tối đa là 1.

Các thuộc tính Offer sau được dùng trong AddOnMenuItem:

  • Cần có Offer.sku
  • Cần có Offer.price
  • Cần có Offer.priceCurrency
  • Offer.availabilityStarts (không bắt buộc)
  • Offer.availabilityEnds (không bắt buộc)
  • Offer.availableDay (không bắt buộc)
  • Offer.validFrom (không bắt buộc)
  • Offer.validThrough (không bắt buộc)
  • Offer.eligibleQuantity (không bắt buộc)
  • Offer.inventoryLevel (không bắt buộc)
hasMenuItemOptions Mảng MenuItemOption Bắt buộc*

Mảng gồm các thuộc tính cơ sở mô tả một biến thể của mục tiện ích bổ sung (chẳng hạn như các món khoai tây chiên nhỏ, vừa và lớn làm món ăn kèm) mục trong trình đơn tiện ích bổ sung. Sử dụng các tuỳ chọn để chỉ định các biến thể khác nhau có sẵn cho mục trong trình đơn tiện ích bổ sung này. Có hai tình huống trong đó việc này có thể xảy ra:

  • Biến thể cơ sở là trên chính mục tiện ích bổ sung (chẳng hạn như khoai tây chiên cỡ vừa và lớn làm món ăn kèm)
  • Biến thể cơ sở cho mục trong trình đơn với tiện ích bổ sung này được liên kết có (như phô mai bổ sung làm phụ kiện cho một chiếc bánh pizza 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 được mô tả (chẳng hạn như "Không có gluten" hoặc "VeganDiet"). Đây là danh sách liệt kê có thể giá trị.
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 gồm các mục được phép có thể thêm vào dưới dạng tiện ích bổ sung.

Ví dụ sau đây minh hoạ 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 đồ ăn hoặc đồ uống dưới dạng mục 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:

Thuộc tính Loại Sự cần thiết 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 Giá trị 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 .
description Văn bản Không bắt buộc Nội dung mô tả về danh mục món ăn trong 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 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 lớp phủ tối thiểu và tối đa bạn có thể chọn trên một chiếc bánh pizza.
image URL Không bắt buộc Hình ảnh thực đơn.
hasMenuItem Mảng AddOnMenuItem Bắt buộc* Các mục trong trình đơn của tiện ích bổ sung có trong AddOnMenuSection.
offers Mảng Offer Không bắt buộc

Sử dụng Offer.availabilityStartsOffer.availabilityEnds để cho biết khoảng thời gian trong đó AddOnMenuSection này khả dụng.

Trang thông tin bên dưới cho biết Offer cơ sở lưu trú nào được sử dụng trong AddOnMenuSection.

  • Offer.availabilityStarts (không bắt buộc)
  • Offer.availabilityEnds (không bắt buộc)
  • Offer.availableDay (không bắt buộc)
  • Offer.validFrom (không bắt buộc)
  • Offer.validThrough (không bắt buộc)
hasMenuSection Mảng AddOnMenuSection Bắt buộc* Phân nhóm con hợp lý của 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 trong trình đơn tiện ích bổ sung sẽ được chọn sẵn theo mặc định cho người dùng trong AddOnMenuSection. Người dùng có thể thay đổi lựa chọn cuối cùng. Nếu không có defaultOption nào được chỉ định, không AddOnMenuItem được chọn sẵn.

Các đối tượng AddOnMenuItem phải tồn tại trong hasMenuItem/AddOnMenuSection.

Không được vượt quá số lượng defaultOption tối đa eligibleQuantity/AddOnMenuSection.

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 miễn phí.

Ví dụ về 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

"Cheese Sandwich" mục trong thực đơn có mục "Lựa chọn phô mai" AddOnMenuSection có sự góp mặt của "Thuỵ Sĩ" và "Mozzarella" chọn sẵn làm 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

Thể hiện giờ thực hiện đơn hàng để người dùng lên lịch đặt hàng trước cho giao hàng và mua mang đi.

Thông thường, giá trị của opens nhỏ hơn giá trị của closes. Chiến lược phát hành đĩa đơn những nguyên tắc sau đây sẽ áp dụng khi bạn sử dụng thuộc tính openscloses:

  • Các thuộc tính openscloses là không bắt buộc đối với AdvanceServiceDeliveryHoursSpecification, nhưng chúng tôi đặc biệt khuyên bạn hãy thêm chúng.
  • Bạn phải chỉ định thời gian bằng giờ địa phương cho dịch vụ. Không bao gồm múi giờ bằng giá trị opens hoặc closes. Các múi giờ đã chỉ định sẽ bị bỏ qua.
  • Nếu openscloses không được chỉ định rõ ràng, chúng tôi sẽ giả định rằng hoạt động đặt hàng mọi lúc, mọi nơi.
  • Nếu openscloses giống nhau thì chúng tôi giả định rằng thứ tự trước là không có sẵn.
  • Nếu opens lớn hơn closes, giờ đóng cửa được hiểu là ngày hôm sau. Ví dụ: nếu giờ mở cửa được đặt là ngày 1 tháng 1 lúc 5 giờ chiều và giờ đóng cửa là 2 giờ sáng, vì vậy nhà hàng được hiểu là đóng cửa vào lúc 2 giờ sáng ngày 2 tháng 1.
  • openscloses là khung thời gian trong tương lai. closes là giá trị độc quyền. Cho ví dụ: nếu opens là 10 giờ sáng và closes là 4 giờ chiều với serviceTimeInterval 15 phút, sau đó khoảng thời gian đầu tiên bắt đầu từ 10 giờ sáng và lần cuối cùng khung giờ 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:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Giá trị này luôn là "AdvanceServicedeliveryHoursSpecification".
validFrom DateTime Câu lệnh có điều kiện

Ngày bắt đầu mà người dùng đơn đặt hàng trước có thể đã 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, thì thuộc tính này được coi là hợp lệ hằng ngày. Các thuộc tính validFromvalidThrough phải không có mặt hoặc xuất hiện cùng nhau.

Nếu loại này được chỉ định là specialOpeningHoursSpecification tại Service thì thuộc tính validFrom này trong Bạn phải nhập AdvanceServiceDeliveryHoursSpecification.

Để biết thêm thông tin, hãy xem Định dạng DateTime và Time.

validThrough DateTime Không bắt buộc

Ngày kết thúc mà sau đó người dùng đơn đặt hàng trước không thể được nữa đã thực hiện. Ví dụ: "2018-12-01T00:00:00-07:00".

Nếu bạn không đặt thuộc tính này, thì thuộc tính này được coi là hợp lệ hằng ngày. Các thuộc tính validFromvalidThrough phải không có mặt hoặc xuất hiện cùng nhau.

Nếu loại này được chỉ định là specialOpeningHoursSpecification tại Service thì thuộc tính validThrough trong Bạn phải nhập AdvanceServiceDeliveryHoursSpecification.

validThrough là thời gian độc quyền. Ví dụ: nếu thời gian đó được đặt thành 6 giờ chiều, thời gian có hiệu lực đến 5:59:59 chiều.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

opens Time Không bắt buộc

Áp dụng cho khung giờ giao hàng hoặc mua mang đi.

Thời gian cụ thể trong ngày bắt đầu từ thời điểm người dùng bắt đầu đơn đặt hàng trước có thể sẽ được thực hiện. Ví dụ: 6:30 SA được thay bằng "T06:30:00".

Bạn phải chỉ định thời gian bằng giờ địa phương cho dịch vụ bảo dưỡng. Không bao gồm múi giờ trong giá trị opens. Nếu múi giờ được chỉ định, Google sẽ bỏ qua thông tin này.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

closes Time Không bắt buộc

Áp dụng cho khung giờ giao hàng hoặc mua mang đi.

Thời gian cụ thể trong ngày mà sau đó người dùng đơn đặt hàng trước không thể sẽ được thực hiện. Ví dụ: 9:00 PM được gán là "T21:00:00". closes> là giá trị độc quyền, vì vậy, hãy đặt thời gian này là 9 giờ tối để serviceTimeInterval/15 phút có nghĩa là khung giờ có thể sử dụng bắt đầu lúc 8:45 tối.

Bạn phải chỉ định thời gian bảo dưỡng theo giờ địa phương. Không nên hãy đưa múi giờ vào giá trị closes. Nếu múi giờ là đã chỉ định, Google sẽ bỏ qua thông tin này.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

dayOfWeek Mảng DayOfWeek Không bắt buộc

Những ngày trong tuần có cung cấp giờ giao hàng trước. Hợp lệ là:

  • "Thứ Hai"
  • "Thứ Ba"
  • "Thứ Tư"
  • "Thứ Năm"
  • "Thứ Sáu"
  • "Thứ Bảy"
  • "Chủ nhật"

Nếu bạn không chỉ định bất kỳ ngày nào trong tuần, thì AdvanceServiceDeliveryHoursSpecification áp dụng cho tất cả ngày.

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 openscloses là 8 giờ sáng và 8 giờ tối và serviceTimeInterval là 15 phút, sau đó là người dùng có thể chọn thời gian thực hiện là 8:00, 8:15, 8:30, 8:45, và cứ tiếp tục như vậy cho đến 8 giờ tối.

Bạn phải chỉ định Duration theo thời lượng ISO 8601. Cho ví dụ: "P15M" có nghĩa là các khoảng thời gian 15 phút.

advanceBookingRequirement QuantitativeValue Bắt buộc

Số phút kể từ thời điểm đặt hàng khi có thể đặt hàng trước đã thực hiện.

min của QuantitativeValue và Các giá trị của max phải được đặt thành số phút và unitCode thành "MIN".

Ví dụ: nếu một đơn đặt hàng trước cần ít nhất 60 phút để đã thực hiện đơn hàng, đồng thời bị hạn chế thực hiện đơn hàng quá 2 ngày sau đó, giá trị min là 60 và max giá trị là 2880.

Ví dụ sau đây minh hoạ việc 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 thích hợp hoặc MenuItemOption.

Bảng sau đây mô tả các thuộc tính của loại AllergenDetails:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Tên luôn là "AllergenDetails".
allergenType Văn bản Không bắt buộc Loại chất gây dị ứng trên 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 mỗi gs1:levelOfContainermentCode. 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 minh hoạ 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"
    }
  ]
},

DeliveryChargeSpecifying

Bảng sau đây mô tả các thuộc tính của Loại DeliveryChargeSpecification:

Thuộc tính Loại Sự cần thiết 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ố. 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ó đơn vị 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 Khối lượng giao dịch, theo đơn vị tiền tệ mà lượt phân phối này được thực hiện thông số tính phí là hợp lệ. Ví dụ: để cho biết mức mua tối thiểu số lượng tối đa hoặc để thể hiện rằng khách hàng có thể vận chuyển mà không mất thêm phí vượt quá 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 đại lượng đặt hàng mà phí giao hàng là hợp lệ. Ví dụ: điều này cho phép bạn chỉ định rằng phí vận chuyển nhất định chỉ hợp lệ cho một số lượng nhất định.
eligibleRegion Mảng GeoShape hoặc Place hoặc GeoCircle Không bắt buộc Địa điểm hoặc hình dạng địa lý/hình tròn địa lý cho(các) khu vực địa chính trị có ưu đãi hoặc quy cách phí giao hàng hợp lệ. Sử dụng bản thảo này chỉ khi 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 tính phí giao hàng được chỉ định sẽ có hiệu lực. Ví dụ: "2017-05-01T06:30:00-07:00". Cho thông tin khác, xem Định dạng ngày giờ và giờ.
validThrough DateTime Không bắt buộc Ngày và giờ (bao gồm cả múi giờ) mà sau đó hàng được giao khoản phí đã chỉ định không hợp lệ. Ví dụ: "2017-05-01T06:30:00-07:00". Thời gian cho validThrough là thời gian không bao gồm: ví dụ: nếu đó thời gian được đặt thành 6 giờ chiều, thời gian có hiệu lực đến 5:59:59 chiều. Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

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 hai thuộc tính bắt buộc cho phí giao hàng được tính theo tỷ lệ phần trăm.

Thuộc tính Loại Sự cần thiết Mô tả
referenceQuantity QuantitativeValue Bắt buộc Số lượng tham chiếu áp dụng một mức giá nhất định. Ví dụ: referenceQuantity giá trị 10 với unitCode là "P1" mang lại 10% giá trị đơn đặt hàng. Chỉ unitCode "P1" là được hỗ trợ tại thời điểm này.
basePrice Số Không bắt buộc Phí cơ bản ngoài referenceQuantity. Cho ví dụ: referenceQuantity/10 với unitCode trong "P1" và basePrice/5 đô la Mỹ mang lại 5 đô la Mỹ + 10% của 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 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 tài khoản duy nhất DeliveryChargeSpecification.

Hãy tham khảo Ví dụ về nguồn cấp dữ liệu dịch vụ để biết cách chỉ định dịch vụ giao hàng dựa trên diện tích, quãng đường và giá trị đặt hàng.

Nếu không có phí, Offer.PriceSpecification sẽ được 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à 5 đô la
  • Ví dụ 3: Phí giao hàng là 50.000 VND + 10% tổng phụ của giỏ hàng
  • Ví dụ 4: Phí giao hàng là 5 USD và phí hành lý là 0,1 USD
  • Ví dụ 5: Phí giao hàng là 5% và phí tiện lợi là 2% tổng phụ của giỏ hàng
  • Ví dụ 6: Phí giao hàng là 5 USD và 1 USD cho mỗi quãng đường dài 1 km bổ sung

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:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Tên này luôn là "GeoArc".
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 phần tử GeoCircle:

Ví dụ:

{
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": "37.7392607",
    "longitude": "-122.3895522"
  },
  "geoRadius": "4505"
}

GeoCoordins

Bảng sau đây mô tả các thuộc tính của loại GeoCoordinates:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Cơ chế này luôn là "GeoFunnels".
latitude Số Bắt buộc

Vĩ độ tính bằng độ. Các giá trị được giới hạn trong phạm vi từ -90 đến 90, dành cho tất cả mọi người. Nếu giá trị được chỉ định nhỏ hơn -90, thì giá trị được đặt thành -90; nếu giá trị lớn hơn 90, đượ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 bằng độ. Các giá trị nằm ngoài phạm vi từ -180 đến 180 là được gói để chúng nằm trong phạm vi. Ví dụ: giá trị là -190 được chuyển đổi thành 170. Giá trị 190 được chuyển đổi thành -170. Chiến dịch 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 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:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Thuộc tính 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 diễn dưới dạng một chuỗi gồm ba không gian trở lên các điểm được phân cách. Điểm đầu tiên và điểm cuối cùng nên tương tự, nhưng không bắt buộc.

Mỗi điểm trong một đa giác hoặc đa đa giác được xác định bằng một điểm có vĩ độ theo sau là một điểm kinh độ. Bạn cũng phải chỉ định các điểm trong ngược chiều kim đồng hồ.

Trong hầu hết các trường hợp, bạn sẽ có một đa giác đơn. Để sử dụng phức tạp hơn trường hợp, hãy xem Tài liệu về khu vực kinh doanh giao hàng.

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"
    }  ],
...
},

Bảng sau đây liệt kê các thuộc tính của loại Menu:

Thuộc tính Loại Sự cần thiết 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 Giá trị 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 .
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 cho trình đơn. Ví dụ: thông tin công bố về thông tin dinh dưỡng và tiết lộ 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 hợp lý thực đơn (như Bữa tối, Món khai vị hoặc Cá) món ăn).
hasMenuItem Một đối tượng hoặc mảng MenuItem Không bắt buộc MenuItem đối tượng có trong Menu, thường 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ữ từ Tiêu chuẩn BCP 47 của IETF. Ví dụ: "en-US".

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 Ví dụ về nguồn cấp dữ liệu nhà hàng và thực đơn.

Bảng sau đây liệt kê các thuộc tính của loại MenuDisclaimer:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Thông tin này luôn là "Menudisclaimer".
@id URL Bắt buộc Giá trị nhận dạng duy nhất cho tuyên bố từ chối trách nhiệm trên thực đơn.
text Văn bản Bắt buộc Văn bản tuyên bố từ chối trách nhiệm. Ví dụ: "Năng lượng trung bình hằng ngày của người lớn lượng tiêu thụ 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 minh hoạ 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"
    }
}

Mục trong trình đơn thể hiện mục trong trình đơn. Bảng sau đây liệt kê thuộc tính của loại MenuItem:

Thuộc tính Loại Sự cần thiết 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 web trình đơn.
description Văn bản Không bắt buộc Nội dung mô tả về món trong trình đơn.
image URL Không bắt buộc

Hình ảnh của món trong thực đơn. Hãy áp dụng các nguyên tắc về hình ảnh sau đây:

  • Tỷ lệ khung hình 3:2
  • Độ phân giải tối thiểu 600 x 400 pixel, 72 dpi
  • Độ phân giải đề xuất 1400x960 pixel 72 dpi
menuAddOn Mảng AddOnMenuSection Không bắt buộc Các mục trong một mục trong trình đơn mà bạn có thể thêm vào dưới dạng tiện ích bổ sung mục trong trình đơn.
offers Mảng Offer Bắt buộc*

Một hoặc nhiều lời đề nghị cung cấp MenuItem này. Mô tả thời điểm và giá bán của MenuItem này. Chỉ nên cung cấp một ưu đãi có hiệu lực tại một thời điểm cụ thể. Bạn có thể cung cấp nhiều ưu đãi nếu giá/tình trạng còn hàng có thể thay đổi dựa trên thời gian trong ngày. Nếu mặt hàng thực phẩm khác nhau thông qua thuộc tính cơ sở (ví dụ: kích thước của pizza), hãy sử dụng menuItemOption. Mặc định cho Offer.eligibleQuantity là giá trị tối thiểu là 0 và không có phần trên tối đa.

Trang thông tin bên dưới cho biết Offer cơ sở lưu trú nào được dùng trong MenuItem.

  • Cần có Offer.sku
  • Cần có Offer.price
  • Cần có Offer.priceCurrency
  • Offer.availabilityStarts (không bắt buộc)
  • Offer.availabilityEnds (không bắt buộc)
  • Offer.availableDay (không bắt buộc)
  • Offer.validFrom (không bắt buộc)
  • Offer.validThrough (không bắt buộc)
  • Offer.eligibleQuantity (không bắt buộc)
  • Offer.inventoryLevel (không bắt buộc)
hasMenuItemOptions Mảng MenuItemOption Bắt buộc Danh sách các lựa chọn/biến thể cơ sở cho mục trong trình đơn này. Các tuỳ chọn phải là dùng để chỉ định các biến thể cơ sở khác nhau có sẵn cho mặt hàng, cho như 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 được mô tả (chẳng hạn như "http://schema.org/GlutenFreeDiet" hoặc "http://schema.org/VeganDiet". Chiến dịch này là một 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 Số chất gây dị ứng của món ăn trên 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 Các chất bổ sung của món ăn theo 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ề thực thể MenuItem, hãy xem Ví dụ về nguồn cấp dữ liệu nhà hàng và thực đơn.

Một lựa chọn để thể hiện các lựa chọn mà người dùng sẽ cần đưa ra khi chọn một món ăn hoặc món kết hợp. Người dùng phải chọn một tuỳ chọn, nếu không thứ tự bị coi là không hợp lệ. Ví dụ: chọn nhỏ, trung bình hoặc lớn trong trường hợp của một chiếc bánh 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ề tuỳ chỉnh bằng MenuItemOption.

Bảng sau đây liệt kê các thuộc tính của loại MenuItemOption:

Thuộc tính Loại Sự cần thiết 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 cặp tên/giá trị đại diện cho .
offers Mảng Offer Bắt buộc

Một hoặc nhiều ưu đãi có thể cung cấp MenuItemOption này. Mô tả thời điểm và mức giá của lựa chọn món này trong trình đơ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 mặt hàng hợp lệ nếu giá/tình trạng còn hàng có thể thay đổi dựa trên thời gian trong ngày. Đừng sử dụng Offer.eligibleQuantity. MenuItemOption loại trừ lẫn nhau, do đó Offer.eligibleQuantity sẽ bị bỏ qua nếu được cung cấp.

Trang thông tin bên dưới cho biết Offer cơ sở lưu trú nào được dùng trong MenuItemOption.

  • Cần có Offer.sku
  • Cần có Offer.price
  • Cần có Offer.priceCurrency
  • Offer.availabilityStarts (không bắt buộc)
  • Offer.availabilityEnds (không bắt buộc)
  • Offer.availableDay (không bắt buộc)
  • Offer.validFrom (không bắt buộc)
  • Offer.validThrough (không bắt buộc)
  • Offer.eligibleQuantity (không bắt buộc)
  • Offer.inventoryLevel (không bắt buộc)
menuAddOn Array of AddOnMenuSection Không bắt buộc Bạn có thể thêm mục trong trình đơn dưới dạng tiện ích bổ sung được phép. Chỉ sử dụng điều này nếu tiện ích bổ sung dành riêng cho một tuỳ chọn mục cụ thể trong trình đơn. Nếu không cung cấp tiện ích bổ sung bằng cách sử dụ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 chế độ ăn mà món ăn này tuân thủ hạn chế về chế độ ăn uống được mô tả (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 Số chất gây dị ứng của món ăn trên 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 món ăn tính theo 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 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 MenuItemOption

Ví dụ sau đây minh hoạ 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 --
          ]
        }
      ]
    }
  ]
}

Mục trình đơn để biểu thị 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:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Mục này luôn là "MenuSection".
@id URL Bắt buộc Giá trị 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 xem trình đơn.
description Văn bản Không bắt buộc Nội dung mô tả về danh mục món ăn trong thực đơn.
hasMenuSection Mảng MenuSection Không bắt buộc Nhóm con logic của MenuSection. Ví dụ: Mục thực đơn bữa tối có thể có nhiều mục phụ trên thực đơn như "Gia cầm Món ăn" hoặc "Ăn chay".
hasMenuItem Mảng MenuItem Không bắt buộc Các mục trong trình đơn có trong MenuSection.
offers Mảng Offer Không bắt buộc

Sử dụng Offer.availabilityStartsOffer.availabilityEnds để cho biết khoảng thời gian mà MenuSection này được phân phát. Không sử dụng Offer.eligibleQuantity.

Danh sách sau đây cho thấy những cơ sở lưu trú Offer được dùng trong MenuSection:

  • Offer.availabilityStarts (không bắt buộc)
  • Offer.availabilityEnds (không bắt buộc)
  • Offer.availableDay (không bắt buộc)
  • Offer.validFrom (không bắt buộc)
  • Offer.validThrough (không bắt buộc)
image URL Không bắt buộc Hình ảnh thực đơn.

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 Ví dụ về nguồn cấp dữ liệu nhà hàng và thực đơn.

NutritionInformation

Bảng sau đây mô tả các thuộc tính của NutritionInformation loại. Đơ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.

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Thuộc tính này luôn là "DinhThông tin".
description Văn bản Không bắt buộc Thông tin dinh dưỡng bằ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 Calo, kcal hoặc kJ, sử dụng những công thức sau định dạng:

number Cal_kcal_OR_kJ

Ví dụ: "240 Calo".

carbohydrateContent Văn bản Không bắt buộc

Lượng cacbohydrat, thường tính bằng g, theo công thức sau định dạng:

number g_OR_mg

Ví dụ: "7 g".

cholesterolContent Văn bản Không bắt buộc

Lượng cholesterol, thường tính bằng mg, sử dụng đị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 sợi, sử dụng đị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 hòa, sử dụng định dạng sau:

number g_OR_mg
servingSize Văn bản Không bắt buộc Khẩu phần ăn tính bằng mL, L, g hoặc kg, tuỳ theo số lượng hoặc khối lượng.
sodiumContent Văn bản Không bắt buộc

Số mg hoặc g natri, sử dụng đị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á, sử dụng đị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 công thức sau định dạng:

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ị

Đề xuất 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:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Thuộc tính 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 ưu đãi. Có thể là giá trị văn bản bất kỳ duy nhất trong Offer. Các giá trị sku được tham chiếu trong Thanh toán và gửi dưới dạng offerId trong lineitem.

Thuộc tính này chỉ được dùng trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
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ó đơn vị tiền tệ .

Thuộc tính này chỉ bắt buộc trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Ưu đãi này không được sử dụng trong các loại ưu đãi sau đây:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency Văn bản Câu lệnh có điều kiện

Đơn vị tiền tệ (ở định dạng ISO 4217 gồm 3 chữ cái) của giá tiền hoặc đơn vị tiền tệ thành phần, khi được đính kèm vào PriceSpecification và các loại phụ của nó.

Thuộc tính này chỉ bắt buộc trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Ưu đãi này không được sử dụng trong các loại ưu đãi sau đây:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime hoặc Time Không bắt buộc Ngày và giờ hoặc chỉ từ khi ưu đãi có hiệu lực. Ví dụ:nếu bánh kếp được phục vụ từ 7 giờ 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 Định dạng ngày giờ và giờ.
availabilityEnds DateTime hoặc Time Không bắt buộc Ngày và giờ hoặc chỉ thời gian ưu đãi không có sẵn. Chiến dịch này thời gian là điều đặc biệt. Ví dụ: nếu tình trạng còn hàng cho bánh kếp kết thúc lúc 10 giờ sáng, sau đó chiếc bánh kếp cuối cùng có thể được phục vụ lúc 9:59:59 sáng. Giá trị của thì 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 Định dạng ngày giờ và giờ.
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à:

  • "Thứ Hai"
  • "Thứ Ba"
  • "Thứ Tư"
  • "Thứ Năm"
  • "Thứ Sáu"
  • "Thứ Bảy"
  • "Chủ nhật"

Nếu bạn có thời gian rảnh khác nhau cho các ngày khác nhau trong tuần, sử dụng nhiều đối tượng Offer, như minh hoạ trong xem các ví dụ bên dưới.

validFrom DateTime Không bắt buộc

Ngày và giờ (bao gồm cả múi giờ) mà hành động chuyển đổi được chỉ định giá hợp lệ. Ví dụ: mì ống có giá 8 đô la Mỹ vào bữa trưa và 10 đô la Mỹ cho bữa trưa. vào bữa tối. Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

Bạn có thể sử dụng thuộc tính này trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:

  • Service.Offer
validThrough DateTime Không bắt buộc

Ngày và giờ (bao gồm cả múi giờ) mà sau đó giá trị được chỉ định giá không còn hợp lệ. Ví dụ: mì ống là 8 đô la trong bữa trưa và 10 USD cho bữa tối. Thời gian dành riêng cho validThrough là: ví dụ: nếu thời gian đó được đặt là 6 giờ chiều thì thời gian có hiệu lực tới 5:59:59 CH. Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

Bạn có thể sử dụng thuộc tính này trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây.

  • Service.Offer
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 khách hàng đặt ít nhất 10 chiếc pizza cho một của bạn.

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 mà nhà hàng có thể chỉ định. Giới hạn tối thiểu chỉ áp dụng khi người dùng chọn mục đó.

Bạn có thể sử dụng thuộc tính này trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating Không bắt buộc

Xếp hạng chung, dựa trên tập hợp các bài đánh giá hoặc xếp hạng của mục.

Bạn có thể sử dụng thuộc tính này trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Thuộc tính này không được sử dụng trong các loại sau.

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
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 của một hoặc nhiều mặt hàng.

Bạn có thể sử dụng thuộc tính này trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer

Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Mảng DeliveryChargeSpecification hoặc mảng PaymentChargeSpecification Không bắt buộc

Khi được sử dụng trong Service.Offer, mã này cho biết thông tin chi tiết về giá giao hàng. Nếu có nhiều DeliveryChargeSpecification có thể áp dụng, thì đối tượng cụ thể nhất sẽ được áp dụng. Sử dụng cùng nhau đối tượng DeliveryChargeSpecification độc quyền cần tránh không rõ ràng.

Bạn có thể sử dụng thuộc tính này trong các loại ưu đãi sau đây:

  • Service.Offer

Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Mảng Restaurant mã nhận dạng Không bắt buộc

Đại diện cho các nhà hàng mà Offer này là được cung cấp tại.

Nếu bạn không chỉ định, Offer này sẽ được cung cấp cho tất cả các nhà hàng.

Bạn có thể sử dụng thuộc tính này trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:

  • Service.Offer
applicableFulfillmentMethod Mảng văn bản Không bắt buộc

Biểu thị loại dịch vụ mà Offer này là bên thực hiện. Giá trị có thể là "DELIVERY" hoặc " ra ngoài".

Nếu bạn không chỉ định, Offer này sẽ được thực hiện theo cả hình thức giao hàng và mua mang đi.

Bạn có thể sử dụng thuộc tính này trong các loại ưu đãi sau đây:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

Thuộc tính này không được sử dụng trong các loại ưu đãi sau đây:

  • Service.Offer
@id URL Không được dùng nữa Giá trị nhận dạng duy nhất của ưu đãi. Không dùng nữa kể từ ngày 25 tháng 4 năm 2019, 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 cho thấy 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 trong ví dụ 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 tình trạng rảnh/bận 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 đến 11:59:59 vào 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 một mục tiện ích bổ sung trong thực đơn đủ điều kiện số lượng được thiết lập để người dùng có thể đặt tối đa 2 phần mục đó.:

{
  "@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 vị trí 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ị của closes. Các nguyên tắc sau áp dụng cho việc sử dụng Thuộc tính openscloses:

  • Các thuộc tính openscloses là không bắt buộc nhưng bạn nên biểu thị khi nào có sẵn thứ tự. Phương pháp hay nhất để xác định giờ là để bao gồm một mảng deliveryHours chứa ServiceDeliveryHoursSpecification với các thuộc tính openscloses. Bạn sau đó có thể đưa đối tượng AdvanceServiceDeliveryHoursSpecification vào trong deliveryHours với các thuộc tính openscloses riêng, nếu bạn muốn cung cấp một khung thời gian hạn chế cho khách đặt hàng trước.
  • Nếu openscloses không được chỉ định rõ ràng, chúng tôi sẽ giả định rằng thứ tự dịch vụ luôn sẵn sàng hỗ trợ vào mọi thời điểm trong ngày.
  • Bạn phải chỉ định thời gian bằng giờ địa phương cho dịch vụ. Không bao gồm múi giờ bằng giá trị opens hoặc closes. Nếu múi giờ được chỉ định, Google sẽ bỏ qua thông tin này.
  • Nếu openscloses giống nhau, thì chúng tôi giả định rằng nhà hàng này mở trong 0 phút.
  • Nếu opens lớn hơn closes, giờ đóng cửa được hiểu là ngày hôm sau. Ví dụ: nếu giờ mở cửa được đặt là ngày 1 tháng 1 lúc 5 giờ chiều và giờ đóng cửa là 2 giờ sáng, thì nhà hàng được hiểu là đóng cửa lúc 2 giờ sáng ngày 2 tháng 1.
  • closes là thời gian độc quyền. Do đó, nếu thời gian mở và đóng cửa cho cửa sổ đặt hàng này được đặt lần lượt là 10 giờ sáng và 4 giờ chiều, sau đó đặt đơn đặt hàng là 3:59:59 CH.

Bảng sau đây mô tả các thuộc tính của OpeningHoursSpecification loại:

Thuộc tính Loại Sự cần thiết 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ó thể chấp nhận giá trị 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 bất kỳ ngày nào trong tuần, thì OpeningHoursSpecification áp dụng cho tất cả các ngày.

opens Time Không bắt buộc

Khi được dùng trong thông số kỹ thuật Restaurant, thuộc tính này cho biết thời gian mở cửa của nhà hàng vào(các) ngày cụ thể trong tuần. Cho ví dụ: 6:30 SA được gán là "T06:30:00".

Khi được dùng trong thông số kỹ thuật Service, thuộc tính này cho biết thời gian trong ngày bắt đầu từ thời điểm người dùng bắt đầu có thể đặt hàng. Nó chỉ định thời gian mở cửa khi hệ thống trực tuyến hoạt động và cho phép người dùng để đặt hàng. Trong giờ mở cửa/đóng cửa của hệ thống trực tuyến đó, bạn có thể sử dụng deliveryHours để chỉ định giờ mở cửa/đóng cửa khi người dùng có thể đặt các loại hình phân phối đặc biệt.

Bạn phải chỉ định thời gian bằng giờ địa phương cho dịch vụ. Không nên hãy đưa múi giờ vào giá trị opens. Nếu múi giờ là đã chỉ định, Google sẽ bỏ qua thông tin này.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

closes Time Không bắt buộc

Khi được sử dụng trong thông số kỹ thuật Service, thuộc tính này cho biết thời gian cụ thể trong ngày mà sau đó người dùng Không thể đặt hàng. Nó chỉ định thời gian đóng cửa khi hệ thống trực tuyến hoạt động và cho phép người dùng để đặt hàng. Trong giờ mở cửa/đóng cửa của hệ thống trực tuyến đó, bạn có thể sử dụng deliveryHours để chỉ định giờ mở cửa/đóng cửa khi người dùng có thể đặt các loại hình phân phối đặc biệt.

Bạn phải chỉ định thời gian bằng giờ địa phương cho dịch vụ. Không nên hãy đưa múi giờ vào giá trị closes. Nếu múi giờ là đã chỉ định, Google sẽ bỏ qua thông tin này.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

validFrom DateTime Không bắt buộc

Khi được dùng trong thông số kỹ thuật Restaurant, thuộc tính này cho biết ngày mà giờ mở cửa do opens chỉ định và closes cho nhà hàng là hợp lệ.

Ví dụ: nếu giờ làm việc áp dụng cho cả năm 2017, bạn đặt đặt validFrom thành "2017-01-01T00:00:00-07:00" và validThrough thành "2017-12-31T23:59:59-07:00".

Khi được dùng trong thông số kỹ thuật Service, validFrom cho biết ngày bắt đầu mà người dùng bắt đầu đơn đặt hàng có thể là .

Nếu bạn không chỉ định tài sản này trong nguồn cấp dữ liệu, Google sẽ giả định rằng Nhà hàng hoặc Dịch vụ phục vụ hằng ngày.

Ngoài ngày, giờ và các phần múi giờ của là giá trị bắt buộc.

Đố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 Định dạng ngày giờ và giờ.

validThrough DateTime Không bắt buộc

Khi được sử dụng trong Restaurant, ngày mà sau đó giờ mở cửa do openscloses chỉ định không phải là hợp lệ.

Ví dụ: nếu giờ làm việc áp dụng cho cả năm 2017, bạn đặt đặt validFrom thành "2017-01-01T00:00:00-07:00" và validThrough thành "2017-12-31T23:59:59-07:00".

Khi được dùng trong thông số kỹ thuật Service, validThrough cho biết ngày kết thúc mà sau đó người dùng đơn đặt hàng không thể .

Nếu bạn không chỉ định tài sản này trong nguồn cấp dữ liệu, Google sẽ giả định rằng Nhà hàng hoặc Dịch vụ phục vụ hằng ngày.

Ngoài ngày, giờ và các phần múi giờ của Bạn phải nhập ngày giờ.

Đối với múi giờ, hãy sử dụng múi giờ của Nhà hàng hoặc Dịch vụ.

validThrough là thời gian độc quyền. Ví dụ: nếu bạn đặt thời gian đó là 6 giờ chiều thì thời gian có hiệu lực là 5:59:59 chiều.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

deliveryHours Mảng ServiceDeliveryHoursSpecification hoặc mảng AdvanceServiceDeliveryHoursSpecification Câu lệnh có điều kiện

Thông số kỹ thuật về thời gian giao hàng hoặc nhận hàng.

Thông số này là bắt buộc trừ phi nhà hàng đóng cửa (nghĩa là openscloses được đặt và bằng nhau cho nhau.

  • ServiceDeliveryHoursSpecification: Trong giờ mở cửa/đóng cửa, bạn có thể đặt "mở cửa" và "đóng" giờ khi người dùng có thể đặt hàng càng sớm càng tốt.
  • AdvanceServiceDeliveryHoursSpecification: Trong giờ mở cửa/đóng cửa, bạn có thể đặt "mở cửa" và "đóng" giờ khi người dùng có thể đặt hàng trước.

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"]. Sau đó 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:

Thuộc tính Loại Sự cần thiết 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ế bao bì 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 Chi tiết về khoản tiền đặt cọc của gói có thể trả lại mỗi gs1:ReturnablePackageBidDetails. Ví dụ: chai và lon có ký quỹ trong gói có thể trả lại.

Ví dụ sau đây minh hoạ 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 PaymentChargeSpecification loại:

Thuộc tính Loại Sự cần thiết 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ó đơn vị tiền tệ .
priceCurrency Văn bản Bắt buộc Mã tiền tệ của giá, gồm 3 chữ cái theo tiêu chuẩn ISO 4217. Ví dụ: "USD".
eligibleTransactionVolume PriceSpecification Không bắt buộc Số lượng giao dịch, theo đơn vị tiền tệ, được tính cho khoản thanh toán này thông số kỹ thuật hợp lệ, chẳng hạn như để cho biết số lượng giao dịch mua tối thiểu âm lượng.
eligibleQuantity QuantitativeValue Không bắt buộc Số lượng đặt hàng mà khoản phí thanh toán hợp lệ. Cho 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ờ) xảy ra khoản phí thanh toán được chỉ định sẽ có hiệu lực. Ví dụ: "2017-05-01T07:00:00-07:00". Cho thông tin khác, xem Định dạng ngày giờ và giờ.
validThrough DateTime Không bắt buộc Ngày và giờ (bao gồm cả múi giờ) khi thanh toán khoản phí đã chỉ định không hợp lệ. Ví dụ: "2017-05-01T07:30:00-07:00". Thời gian cho validThrough là không bao gồm, ví dụ: nếu thời gian đó được đặt thành 6 giờ chiều, thời gian có hiệu lực đến 5:59:59 chiều. Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

Ví dụ sau đây cho thấy một 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 này có thể là được mở rộng bằng UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]). Tiện ích này cung cấp thêm 2 thuộc tính bắt buộc đối với phí dịch vụ được tính theo tỷ lệ phần trăm.

tài sản Loại Sự cần thiết Mô tả
referenceQuantity QuantitativeValue Bắt buộc Số lượng tham chiếu áp dụng một mức giá nhất định. Ví dụ: referenceQuantity giá trị 10 với unitCode là "P1" mang lại 10% giá trị đơn đặt hàng. Chỉ unitCode "P1" là hiện được hỗ trợ.
basePrice Số Không bắt buộc Phí cơ bản ngoài referenceQuantity. Cho ví dụ: referenceQuantity/10 với unitCode trong "P1" và basePrice/5 bằng USD, mang lại 5 đô la + 10% của giá trị đơn đặt hàng. Giá trị mặc định là "0".

Ví dụ về phí mua mang đi

Google cho phép bạn chỉ định trước nhiều loại phí cho người dùng bằ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

Nếu không có phí, Offer.PriceSpecification sẽ được 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 USD 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% 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:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Mục này luôn là "Địa điểm".
address PostalAddress Bắt buộc Địa chỉ của một đị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 (Địa chỉ bưu điện)

Bảng sau đây mô tả các thuộc tính của loại PostalAddress:

Thuộc tính Loại Sự cần thiết 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 một Service.areaServed nơi cung cấp dịch vụ.

Khi được dùng trong Restaurant.address, tất cả thuộc tính được liệt kê trong Bạn phải nhập PostalAddress.

Ví dụ sau đây cho thấy 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 PriceSpecification loại:

Thuộc tính Loại Sự cần thiết 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.
maxPrice Số Không bắt buộc Giá cao nhất nếu giá là một khoảng.
priceCurrency Văn bản Bắt buộc Mã tiền tệ của giá, gồm 3 chữ cái theo tiêu chuẩn ISO 4217. 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 cho 1 đô la.

Ví dụ sau đây cho thấy 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 dùng để mô tả các tuỳ chọn trong MenuItemOption.

Bảng sau đây liệt kê các thuộc tính của loại PropertyValue:

Thuộc tính Loại Sự cần thiết 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à những tên hợp lệ khi dùng trong MenuItem:

  • "SIZE": Kích thước của MenuItem. Ví dụ: nhỏ, trung bình hoặc lớn.
  • "OPTION": Bất kỳ biến thể nào khác ngoài kích thước (chẳng hạn như món ăn đi kèm làm rau trộn hoặc bánh sandwich). Nếu bạn không thể phân biệt giữa "KÍCH THƯỚC" và "OPTION", sau đó sử dụng "OPTION".

Tên hợp lệ khi sử dụng trong AddOnMenuItem:

  • "APPLICABLE_ITEM_OPTION": Một lựa chọn cho tiện ích bổ sung chỉ áp dụng khi được sử dụng cùng MenuItem với "KÍCH THƯỚC/LỰA CHỌN".
  • "PIZZA_SIDE": Dành riêng cho pizza, tiện ích bổ sung này chỉ hợp lệ cho phần/toàn bộ pizza (như lớp phủ nấm ở bên trái, bên phải hoặc để nguyên pizza).
  • "SIZE": Tùy chọn để chỉ định kích thước của tiện ích bổ sung (chẳng hạn như phần khoai tây chiên cỡ lớn được bổ sung cho thực phẩm kết hợp).
  • "OPTION": Bất kỳ biến thể nào khác ngoài kích thước. Nếu bạn không thể phân biệt giữa "SIZE" và "OPTION", sau đó sử dụng "OPTION".
value Văn bản Bắt buộc

Giá trị cho tuỳ chọn. Các giá trị có thể là chuỗi bất kỳ và được hiển thị dưới dạng của chúng tôi. Sau đây là các giá trị hợp lệ:

  • "PIZZA_SIDE": Giá trị tương ứng phải là "PIZZA_SIDE_LEFT", "PIZZA_SIDE_RIGHT" hoặc "PIZZA_SIDE_WHOLE" cho một chiếc bánh pizza.
  • "APPLICABLE_ITEM_OPTION": Giá trị này phải xuất hiện ở một trong "OPTION/SIZE" tương ứng lựa chọn dành cho nhà xuất bản mẹ MenuItem menuItemOptions.

QuantitativeValue

Bảng sau đây mô tả các thuộc tính của loại QuantitativeValue:

Thuộc tính Loại Sự cần thiết 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 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 Mã chung UN/CEfact hoặc một URL.

Bạn có thể sử dụng các mã không phải là Mã chung UN/CE thang kèm 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 thuộc tính.
minValue Số Không bắt buộc Giá trị thấp hơn của một đặc điểm hoặc thuộ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:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Mục 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 riêng biệ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 khi sắp xếp thứ tự của chúng tôi.
url URL Bắt buộc URL trên miền của bạn đại diện cho nhà hàng. Ví dụ: "http://www.provider.com/somerestaurant".
sameAs URL Không bắt buộc Trang web chính thức của nhà hàng. Ví dụ: "http://www.some Xoay.com".
email Văn bản Không bắt buộc 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ả về 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 Mức giá đa dạng. Ví dụ: "$$" ($-Inexpensive, $$– Kiểm duyệt, $$$-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 "additionalProperty": [{"name": "imprint", "value": "first row\nsecondrow\n"},]

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)
  "servesẨm thực": [
    "Hợp nhất Ấn Độ-Mêhicô"
  ]
},
  
  

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 Ví dụ về nguồn cấp dữ liệu nhà hàng và thực đơn.

ReturnablePackageDepositDetails

Để 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 thích hợp hoặc MenuItemOption.

Bảng sau đây mô tả các thuộc tính của Loại ReturnablePackageDepositDetails:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc Yêu cầu này luôn là "ReturnablePackageSenderDetails".
returnablePackageDepositAmount gs1:PriceSpecification Không bắt buộc Số tiền đặt cọc cho mặt hàng này mỗi gs1:PriceSpecification. Ví dụ: tiền đặt cọc 0, 25 USD/lon.

Ví dụ sau đây minh hoạ cách sử dụng ReturnablePackageDepositDetails loại:

{
  "@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 hoàn chỉnh từ nhà hàng đến vị trí địa lý của tổ chức phân phối.

Bảng sau đây mô tả các thuộc tính của loại Service:

Thuộc tính Loại Sự cần thiết Mô tả
@type Văn bản Bắt buộc

Loại nguồn cấp dữ liệu.

  • Service: Sử dụng loại này cho tất cả nguồn cấp dữ liệu Dịch vụ đang hoạt động.
  • DisabledService: Chỉ sử dụng loại này khi bạn phải tắt thực thể Dịch vụ do một sự kiện không mong muốn mà bạn không biết khi nào dịch vụ sẽ được thiết lập lại.
@id URL Bắt buộc Giá trị nhận dạng của dịch vụ thực hiện. Ví dụ: "http://www.provider.com/service/1".
description Văn bản Không bắt buộc Nội dung mô tả 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 "GHI CHÚ".
provider Restaurant Bắt buộc Thông tin tham chiếu đến mã nhận dạng duy nhất của nhà hàng. Ví dụ: "http://www.provider.com/somerestaurant".
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ụ. Đây là trường không bắt buộc bởi mặc định, nhưng là bắt buộc nếu serviceType là "PHÂN PHỐI".
hoursAvailable Mảng OpeningHoursSpecification Bắt buộc Số giờ mà dịch vụ này hoạt động.
specialOpeningHoursSpecification Mảng OpeningHoursSpecification, ServiceDeliveryHoursSpecification hoặc AdvanceServiceDeliveryHoursSpecification Không bắt buộc

Thời gian thay thế cho OpeningHoursSpecification chung chung hoặc thời gian thực hiện. Bạn thường sử dụng trường này để xác định ngày lễ và các loại trạng thái đóng cửa tạm thời hoặc thay đổi tính theo giờ.

Xác định phạm vi ngày đặc biệt bằng cách sử dụng validFrom và Thuộc tính validThrough. Giờ và múi giờ là bắt buộc khi chỉ định các thuộc tính này.

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ể. Chiến dịch này trường không bắt buộc theo mặc định, nhưng bắt buộc phải có nếu serviceType là "PHÂN PHỐI".

Thuộc tính Offer.priceSpecification là không bắt buộc trong Dịch vụ. Không có thuộc tính Offer nào khác được dùng ở đây.

hasOfferCatalog [Menu, Danh sách ưu đãi] Bắt buộc

Chỉ định một trình đơn cho dịch vụ này. Bạn có thể dùng một trình đơn khác cho từng dịch vụ của bạn (như mua mang đi, giao hàng và phục vụ ăn uống).

Bạn phải chỉ định cả MenuOfferCatalog cho loại thông báo này. Ví dụ:

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty Mảng {tên, giá trị} Không bắt buộc

Thông tin không bắt buộc về cấu hình dịch vụ. Các mục dự kiến sẽ một đối tượng có khoá name tương ứng với tuỳ chọn tên trường. Khoá value là giá trị có liên quan đến ngữ cảnh cho trường này.

Xem ServingConfig để biết thêm thông tin về các tên và giá trị cụ thể.

"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/mang đi. Dịch vụ này sẽ được dùng khi di chuyển từ trải nghiệm đặt món ăn từ đầu đến cuối để chuyển hướng. Ví dụ: "personAction": { "url": "https://fopatestagent.com/ordering/Internet-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ề các thực thể Dịch vụ, hãy xem 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 đơn đặt hàng càng sớm càng tốt và đồ ăn mang đi.

Thông thường, giá trị của opens nhỏ hơn giá trị của closes. Chiến lược phát hành đĩa đơn những nguyên tắc sau đây sẽ áp dụng khi bạn sử dụng thuộc tính openscloses:

  • Các thuộc tính openscloses là không bắt buộc đối với ServiceDeliveryHoursSpecification, nhưng chúng tôi đặc biệt khuyên bạn bạn bao gồm chúng.
  • Bạn phải chỉ định thời gian bằng giờ địa phương cho dịch vụ. Không bao gồm múi giờ bằng giá trị opens hoặc closes. Nếu múi giờ được chỉ định, Google bỏ qua thông tin múi giờ.
  • Nếu openscloses không được chỉ định rõ ràng, chúng tôi sẽ giả định rằng càng sớm càng tốt hoạt động trong mọi ngày và có thể đặt hàng.
  • Nếu openscloses giống nhau thì chúng tôi giả định rằng thứ tự càng sớm càng tốt không có sẵn.
  • Nếu opens lớn hơn closes, giờ đóng cửa được hiểu là ngày hôm sau. Ví dụ: nếu giờ mở cửa được đặt là ngày 1 tháng 1 lúc 5 giờ chiều và giờ đóng cửa là 2 giờ sáng, thì nhà hàng đượ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:

Thuộc tính Loại Sự cần thiết 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ờ) khi người dùng Đơn đặt hàng sớm nhất có thể đã thực hiện. Ví dụ: "2017-05-01T07:00:00-07:00". Nếu cơ sở lưu trú này là không được đặt, thì đường dẫn này được giả định là hợp lệ hằng ngày.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

validThrough DateTime Không bắt buộc

Ngày và giờ (bao gồm cả múi giờ) mà sau đó người dùng Đơn đặt hàng sớm nhất có thể Không thể thực hiện yêu cầu. Ví dụ: "2017-05-01T07:00:00-07:00". Nếu thuộc tính này không được đặt, sau đó thuộc tính được giả định là hợp lệ mỗi ngày.

validThrough là thời gian độc quyền. Ví dụ: nếu thời gian đó được đặt thành 6 giờ chiều, thời gian có hiệu lực đến 5:59:59 chiều.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

opens Time Không bắt buộc

Thời điểm bắt đầu dịch vụ giao hàng của người dùng Đơn đặt hàng càng sớm càng tốt đã thực hiện. Ví dụ: "T10:30:00".

Bạn phải chỉ định thời gian bằng giờ địa phương cho dịch vụ. Không nên hãy đưa múi giờ vào giá trị opens. Nếu múi giờ là đã chỉ định, Google sẽ bỏ qua thông tin này.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

closes Time Không bắt buộc

Thời điểm dịch vụ giao hàng cho người dùng Không còn đơn đặt hàng sớm nhất có thể sẵn có. Ví dụ: "T23:59:59".

closes là thời gian độc quyền. Do đó, nếu bạn đặt số giờ mở/đóng của ServiceDeliveryHoursSpecification này đến 10 giờ sáng và 4 giờ chiều, thì đơn hàng cuối cùng đó là 3:59:59 chiều.

Bạn phải chỉ định thời gian bằng giờ địa phương cho dịch vụ. Không nên hãy đưa múi giờ vào giá trị closes. Nếu múi giờ là đã chỉ định, Google sẽ bỏ qua thông tin này.

Để biết thêm thông tin, hãy xem Định dạng ngày giờ và giờ.

dayOfWeek Mảng DayOfWeek Không bắt buộc

Ngày trong tuần mà người dùng có thể sử dụng dịch vụ này Đơn đặt hàng càng sớm càng tốt. Sau đây là các giá trị hợp lệ:

  • "Thứ Hai"
  • "Thứ Ba"
  • "Thứ Tư"
  • "Thứ Năm"
  • "Thứ Sáu"
  • "Thứ Bảy"
  • "Chủ nhật"

Nếu bạn không chỉ định bất kỳ ngày nào trong tuần, thì ServiceDeliveryHoursSpecification áp dụng cho tất cả các ngày.

deliveryLeadTime QuantitativeValue Không bắt buộc Thời gian giao hàng dự kiến (tính bằng phút) sau khi đơn đặt hàng . Bạn nên đặt thuộc tính này. Thiết lập trường value của QuantitativeValue thành số phút và unitCode thành "MIN".

Ví dụ sau đây cho thấy 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