สคีมาพื้นที่โฆษณา v1

ฟีดแคตตาล็อกอาหารจะอิงตามเอนทิตี DataFeed ของ schema.org ฟีดแคตตาล็อกอาหารประกอบด้วยรายละเอียดสถานที่ของร้านอาหาร เช่น ที่อยู่ร้านอาหาร เมนู และสถานที่ รวมถึงรายละเอียดบริการของร้านอาหาร เช่น ค่าจัดส่ง พื้นที่จัดส่ง และรายการอื่นๆ ตามที่ระบุไว้ด้านล่าง

DataFeed ประกอบด้วยคอลเล็กชันขององค์ประกอบ โดยแต่ละรายการจะแทนรายการเดียวที่แสดงในคำศัพท์ของ schema.org คุณสามารถใช้ประเภท DataFeed เพื่อเผยแพร่ข้อมูลที่มีโครงสร้างทั้งหมดในรูปแบบ JSON-LD

ดูข้อมูลเกี่ยวกับการใช้ข้อกำหนดนี้เพื่อสร้างฟีดได้ที่ภาพรวมการผสานรวมพื้นที่โฆษณา

รูปแบบวันที่และเวลา

DateTime อิงตามประเภท schema.org และต้องเป็นไปตามรูปแบบ ISO 8601 รวมถึงวันที่ เวลา และเขตเวลา เว้นแต่จะระบุไว้เป็นอย่างอื่น ใช้ไวยากรณ์ต่อไปนี้สำหรับ DateTime

// DateTime format:
YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]

เช่น

2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z  // UTC time zone. The optional "Z" suffix represents the UTC time zone.

Time เป็นเวลาท้องถิ่นของเขตเวลาของร้านอาหารหรือสถานที่ให้บริการ ก็ขึ้นอยู่กับประเภทของ schema.org และต้องเป็นไปตามรูปแบบ ISO 8601 ด้วย เวลาใช้ไวยากรณ์ต่อไปนี้

// Time format:
THH:MM:SS

เช่น

T08:08:00 // 8:08 AM

สิ่งที่ควรทราบเมื่อใดก็ตามที่ระบุ DateTime หรือ Time

  • ต้องใส่คำนำหน้า "T" ก่อนเวลา
  • ต้องระบุเขตเวลาสำหรับ DATETIME ซึ่งไม่จำเป็นสำหรับ TIME
  • ต้องระบุเวลาเป็นเวลาท้องถิ่นของร้านอาหารหรือบริการ

ซองจดหมาย

รหัสเริ่มต้นสำหรับฟีดแคตตาล็อกอาหารควรมีส่วน "ซองจดหมาย"

"envelope" เป็นโครงสร้างระดับบนสุดของแต่ละฟีด และต้องเป็น DataFeed ที่มีพร็อพเพอร์ตี้ต่อไปนี้

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@context URL ต้องระบุ บริบทที่ใช้งานอยู่ โดยทั่วไปคือ "http://schema.googleapis.com"
@type ข้อความ ต้องระบุ ค่าจะเป็น "DataFeed" เสมอ
dateModified DateTime ต้องระบุ

DateTime ที่แก้ไขล่าสุดของฟีดข้อมูลในรูปแบบ ISO 8601

วันที่และเวลาในรูปแบบ ISO_OFFSET_DATE_TIME ที่มีการแก้ไขรายการในฟีดนี้ หากไม่มีช่องนี้ ระบบจะถือว่าเวลาที่อัปเดตคือเวลาที่ได้รับข้อความพุช (หรือทำการ Crawl) ที่เซิร์ฟเวอร์ของ Google

เราขอแนะนําให้คุณใช้ทั้งพุชและ Crawl ร่วมกัน คุณควรระบุการประทับเวลานี้ด้วยเขตเวลาและรายละเอียดมิลลิวินาที เช่น "2016-12-28T06:30:00:123-07:00"

ในฟีดแบบกลุ่ม ระบบจะกำหนดการกำหนดเวอร์ชันเอนทิตีผ่านทางช่อง dateModified ในเอนเวโลปของฟีด

dataFeedElement อาร์เรย์ของ Menu หรือ Restaurant หรือ Service ต้องระบุ มีสินค้าอย่างน้อย 1 รายการที่เป็นส่วนหนึ่งของฟีดนี้ โปรดดูรายละเอียดด้านล่าง

ตัวอย่างต่อไปนี้จะแสดงเอนเวโลป

ตัวอย่าง

{
  "@context": "http://schema.googleapis.com",
  "dateModified": "2016-12-28T06:30:00:123-07:00",
  "@type": "DataFeed",
  "dataFeedElement": [
    /* All items that are part of this feed go here */
  ]
}

AdditiveDetails

หากต้องการใช้ประเภทนี้ ให้เพิ่มบริบท gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]

จากนั้นเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItem หรือ MenuItemOption ที่เหมาะสม

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท AdditiveDetails

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะเป็น "AdditiveDetails" เสมอ
additiveName ข้อความ ไม่บังคับ ชื่อของส่วนเสริม
additiveLevelOfContainment ข้อความ ไม่บังคับ รหัสการควบคุมตาม gs1:LevelOfContainmentCode เช่น http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM หรือ http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภท AdditiveDetails

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/8",
  "name": "Energy Drink",
  "description": "A 0.25l can of energy drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-energy-drink",
    "price": "3.49",
    "priceCurrency": "USD"
  },
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AdditiveDetails",
      "additiveName": "phosphate",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

AddOnMenuItem

อาหารหรือเครื่องดื่มที่อยู่ในรายการเมนูส่วนเสริมของ MenuItem

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้สำหรับประเภท AddOnMenuItem

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งอาจเป็น "AddOnMenuItem" เสมอ
@id URL ต้องระบุ ตัวระบุที่ไม่ซ้ำของรายการในเมนูส่วนเสริม
name ข้อความ ต้องระบุ ข้อความที่ระบุ AddOnMenuItem เมื่อผู้ใช้เรียกดูเมนู
description ข้อความ ไม่บังคับ คำอธิบายของรายการในเมนูส่วนเสริม
image URL ไม่บังคับ

รูปภาพของรายการในเมนูส่วนเสริมที่ตรงกับหลักเกณฑ์ต่อไปนี้

  • สัดส่วนภาพ 3:2
  • >
  • ความละเอียดขั้นต่ำ 600x400 พิกเซล 72 dpi
  • >
  • ความละเอียดที่แนะนำ 1400x960 พิกเซล 72 dpi
offers อาร์เรย์ของ Offer ต้องระบุ*

มีข้อเสนออย่างน้อย 1 รายการที่จะให้ AddOnMenuItem นี้

อธิบายว่า AddOnMenuItem นี้พร้อมใช้งานเมื่อใดและในราคาเท่าใด ข้อเสนอใช้ได้เพียงครั้งเดียวเท่านั้น คุณมีข้อเสนอที่ถูกต้องหลายรายการได้หากราคาหรือความพร้อมจำหน่ายสินค้าเปลี่ยนแปลงตามช่วงเวลาของวัน เมื่อส่วนเสริมหรือสินค้าแตกต่างกันผ่านแอตทริบิวต์พื้นฐานหรือรูปแบบในตัวของส่วนเสริม (เช่น เฟรนช์ฟรายส์ขนาดเล็ก ขนาดกลาง และขนาดใหญ่เป็นส่วนเสริม) ให้ใช้พร็อพเพอร์ตี้ hasMenuItemOption

ค่าเริ่มต้นสำหรับ Offer.eligibleQuantity คือค่าต่ำสุดที่ 0 และสูงสุดคือ 1

พร็อพเพอร์ตี้ Offer ต่อไปนี้ใช้ใน AddOnMenuItem

  • ต้องมี Offer.sku
  • ต้องมี Offer.price
  • ต้องมี Offer.priceCurrency
  • Offer.availabilityStarts (ไม่บังคับ)
  • Offer.availabilityEnds (ไม่บังคับ)
  • Offer.availableDay (ไม่บังคับ)
  • Offer.validFrom (ไม่บังคับ)
  • Offer.validThrough (ไม่บังคับ)
  • Offer.eligibleQuantity (ไม่บังคับ)
  • Offer.inventoryLevel (ไม่บังคับ)
hasMenuItemOptions อาร์เรย์ของ MenuItemOption ต้องระบุ*

อาร์เรย์ของแอตทริบิวต์พื้นฐานที่อธิบายรูปแบบต่างๆ ของรายการส่วนเสริม (เช่น เฟรนช์ฟรายส์ขนาดเล็ก ขนาดกลาง และขนาดใหญ่เป็นส่วนเสริม) สำหรับรายการในเมนูส่วนเสริมนี้ ใช้ตัวเลือกเพื่อระบุรูปแบบต่างๆ ที่มีให้ใช้งานสำหรับรายการในเมนูส่วนเสริมนี้ มี 2 สถานการณ์ที่อาจเกิดขึ้นได้ดังนี้

  • รูปแบบพื้นฐานจะขึ้นอยู่กับตัวสินค้าส่วนเสริมเอง (เช่น เฟรนช์ฟรายส์ขนาดเล็ก ขนาดกลาง และขนาดใหญ่เป็นส่วนเสริม)
  • รูปแบบพื้นฐานของรายการในเมนูที่ส่วนเสริมนี้เชื่อมโยงอยู่ (เช่น เพิ่มชีสเป็นส่วนเสริมสำหรับพิซซ่าถาดใหญ่)
suitableForDiet อาร์เรย์ของ RestrictedDiet ไม่บังคับ อาหารต้องเป็นไปตามข้อจำกัดด้านอาหารที่อธิบายไว้ (เช่น "GlutenFreeDiet" หรือ "VeganDiet") นี่คือรายการค่าที่เป็นไปได้แบบแจกแจง
nutrition NutritionInformation ไม่บังคับ ข้อมูลโภชนาการของอาหารจานนี้ ที่สำคัญคือแคลอรี่
menuAddOn อาร์เรย์ของ AddOnMenuSection ไม่บังคับ AddOnMenuItem อาจมีส่วนเมนูที่ประกอบด้วยรายการที่อนุญาตซึ่งเพิ่มเป็นส่วนเสริมได้

ตัวอย่างต่อไปนี้แสดง AddOnMenuItem

ตัวอย่างที่ 1

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

ตัวอย่างที่ 2

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small-pepperoni-pizza",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large-pepperoni-pizza",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ],
  "menuAddOn": [
    {
      "@type": "AddOnMenuSection",
      "name": "Choice of toppings",
      "@id": "https://www.example.com/1089/addon/1",
      "hasMenuItem": [
        {
          "@type": "AddOnMenuItem",
          "@id": "https://www.example.com/1089/addon/1/a",
          "name": "Shrimp",
          "hasMenuItemOptions": [
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],
              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-small",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-large",
                "price": "2.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-small",
                "price": "1.50",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-large",
                "price": "2.50",
                "priceCurrency": "USD"
              }
            }
          ]
        }
      ]
    }
  ]
}

AddOnMenuSection

กลุ่มย่อยของรายการอาหารหรือเครื่องดื่มเป็นส่วนเมนูเสริมสำหรับรายการในเมนู

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้สำหรับประเภท AddOnMenuSection

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งเป็น "AddOnMenuSection" เสมอ
@id URL ต้องระบุ ตัวระบุที่ไม่ซ้ำกันของส่วนเมนู
name ข้อความ ต้องระบุ ข้อความที่ระบุ AddOnMenuSection เมื่อผู้ใช้เรียกดูเมนู
description ข้อความ ไม่บังคับ คำอธิบายของส่วนเมนู
eligibleQuantity QuantitativeValue ไม่บังคับ ระบุจำนวนรายการที่อนุญาตให้ใช้เป็นส่วนเสริมสำหรับส่วนเมนูนี้ คุณใช้ช่องนี้เพื่อจำกัดจำนวนส่วนเสริมได้ เช่น จำนวนท็อปปิ้งต่ำสุดและสูงสุดที่เลือกได้สำหรับพิซซ่า
image URL ไม่บังคับ รูปภาพของส่วนเมนู
hasMenuItem อาร์เรย์ของ AddOnMenuItem ต้องระบุ* รายการในเมนูส่วนเสริมที่อยู่ใน AddOnMenuSection
offers อาร์เรย์ของ Offer ไม่บังคับ

ใช้ Offer.availabilityStarts และ Offer.availabilityEnds เพื่อระบุระยะเวลาที่ AddOnMenuSection นี้พร้อมให้บริการ

รายการด้านล่างแสดงให้เห็นว่าพร็อพเพอร์ตี้ Offer ใดที่ใช้ใน AddOnMenuSection

  • Offer.availabilityStarts (ไม่บังคับ)
  • Offer.availabilityEnds (ไม่บังคับ)
  • Offer.availableDay (ไม่บังคับ)
  • Offer.validFrom (ไม่บังคับ)
  • Offer.validThrough (ไม่บังคับ)
hasMenuSection อาร์เรย์ของ AddOnMenuSection ต้องระบุ* การจัดกลุ่มย่อยที่สมเหตุสมผลของเมนูส่วนเสริม (เช่น อาหารค่ำ อาหารเรียกน้ำย่อย หรืออาหารเมนูปลา)
defaultOption อาร์เรย์ของ AddOnMenuItem ไม่บังคับ

ระบบจะเลือกรายการในเมนูส่วนเสริมไว้ล่วงหน้าโดยค่าเริ่มต้นสําหรับผู้ใช้ใน AddOnMenuSection ผู้ใช้เปลี่ยนแปลงการเลือกสุดท้ายได้ หากไม่ได้ระบุ defaultOption จะไม่มีการเลือก AddOnMenuItem ไว้ล่วงหน้า

ออบเจ็กต์ AddOnMenuItem ต้องมีอยู่ใน hasMenuItem ของ AddOnMenuSection

จำนวนของ defaultOption ต้องไม่เกิน eligibleQuantity สูงสุดของ AddOnMenuSection

numberOfFreeAddOns ตัวเลข ไม่บังคับ ระบุจำนวนส่วนเสริมที่ผู้ใช้เลือกได้โดยไม่มีค่าใช้จ่าย

ตัวอย่างต่อไปนี้มีออบเจ็กต์ AddOnMenuSection รายการ

ตัวอย่างที่ 1

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

ตัวอย่างที่ 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

ตัวอย่าง 3

รายการในเมนู "ชีสแซนด์วิช" มี "ตัวเลือกชีส" AddOnMenuSection ที่มี "สวิส" และ "มอซซาเรลลา" เลือกไว้เป็นค่าเริ่มต้นอยู่แล้ว

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "defaultOption": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a"
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b"
    }
  ],
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozzarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

AdvanceServiceDeliveryHoursSpecification

แสดงเวลาทำการที่ดำเนินการตามคำสั่งซื้อเพื่อให้ผู้ใช้กำหนดเวลาการสั่งจองล่วงหน้าสำหรับจัดส่งและสั่งกลับบ้าน

โดยปกติแล้ว ค่าของ opens จะน้อยกว่าค่าของ closes การใช้พร็อพเพอร์ตี้ opens และ closes ต้องเป็นไปตามหลักเกณฑ์ต่อไปนี้

  • พร็อพเพอร์ตี้ opens และ closes เป็นพร็อพเพอร์ตี้ที่ไม่บังคับสำหรับ AdvanceServiceDeliveryHoursSpecification แต่ขอแนะนำอย่างยิ่งให้คุณใส่ด้วย
  • ต้องระบุเวลาให้บริการตามเวลาท้องถิ่น อย่าใส่เขตเวลาในค่า opens หรือ closes ระบบจะไม่สนใจเขตเวลาที่ระบุ
  • หากไม่ได้ระบุ opens และ closes ไว้อย่างชัดแจ้ง เราจะถือว่าการสั่งจองล่วงหน้ามีพร้อมใช้งานตลอดเวลา
  • หาก opens และ closes เท่ากัน เราจะถือว่าการสั่งล่วงหน้าไม่พร้อมให้บริการ
  • หาก opens มากกว่า closes ระบบจะตีความเวลาปิดทำการเป็นวันถัดไป ตัวอย่างเช่น หากตั้งเวลาทำการเป็นวันที่ 1 มกราคม เวลา 17.00 น. และปิดทำการเป็น 2.00 น. ระบบจะตีความว่าร้านปิดทำการในวันที่ 2 มกราคม เวลา 02:00 น.
  • opens และ closes หมายถึงช่วงเวลาในอนาคต closes เป็นเอกสิทธิ์พิเศษ ตัวอย่างเช่น หาก opens คือ 10.00 น. และ closes เป็นเวลา 16.00 น. โดยมี serviceTimeInterval เป็นเวลา 15 นาที ช่วงเวลาแรกจะเริ่มเวลา 10.00 น. และช่วงเวลาสุดท้ายจะเริ่มเวลา 15.45 น.

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท AdvanceServiceDeliveryHoursSpecification

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะแสดงเป็น "AdvanceServicedeliveryHoursSpecification" เสมอ
validFrom DateTime มีเงื่อนไข

วันที่เริ่มต้นที่ดำเนินการตามคำสั่งซื้อล่วงหน้าของผู้ใช้ได้ เช่น "2017-05-01T00:00:00-07:00"

หากไม่ได้ตั้งค่าพร็อพเพอร์ตี้นี้ ระบบจะถือว่ามีการใช้งานได้ทุกวัน พร็อพเพอร์ตี้ validFrom และ validThrough ต้องไม่มีอยู่หรือขาดหายไป

หากระบุประเภทนี้เป็น specialOpeningHoursSpecification ที่ระดับ Service คุณต้องใช้พร็อพเพอร์ตี้ validFrom นี้ใน AdvanceServiceDeliveryHoursSpecification

ดูข้อมูลเพิ่มเติมได้ที่ รูปแบบวันที่และเวลา

validThrough DateTime ไม่บังคับ

ระบบไม่สามารถดำเนินการตามวันที่สิ้นสุดคำสั่งซื้อล่วงหน้าของผู้ใช้ได้อีกต่อไป เช่น "2018-12-01T00:00:00-07:00"

หากไม่ได้ตั้งค่าพร็อพเพอร์ตี้นี้ ระบบจะถือว่ามีการใช้งานได้ทุกวัน พร็อพเพอร์ตี้ validFrom และ validThrough ต้องไม่มีอยู่หรือขาดหายไป

หากระบุประเภทนี้เป็น specialOpeningHoursSpecification ที่ระดับ Service คุณต้องใช้พร็อพเพอร์ตี้ validThrough ใน AdvanceServiceDeliveryHoursSpecification

เวลาสำหรับ validThrough เป็นช่วงเวลาพิเศษ ตัวอย่างเช่น หากตั้งค่าเวลานั้นเป็น 18:00 น. จะใช้เวลาได้ถึง 17:59:59 น.

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

opens Time ไม่บังคับ

ใช้กับช่วงเวลานำส่งหรือสั่งกลับบ้าน

เวลาที่เจาะจงของวันนับตั้งแต่วันที่ผู้ใช้ดำเนินการตามคำสั่งซื้อล่วงหน้าได้ เช่น 6:30 AM จะแสดงเป็น "T06:30:00"

ต้องระบุเวลาท้องถิ่นสำหรับการให้บริการ อย่ารวมเขตเวลาไว้ในค่า opens หากระบุเขตเวลาแล้ว Google จะไม่สนใจข้อมูลนี้

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

closes Time ไม่บังคับ

ใช้กับช่วงเวลานำส่งหรือสั่งกลับบ้าน

เวลาที่เจาะจงของวันที่ไม่สามารถดำเนินการตามคำสั่งซื้อล่วงหน้าของผู้ใช้ได้ เช่น 21:00 น. จะแสดงเป็น "T21:00:00" closes> เป็นช่วงเวลาพิเศษ ดังนั้นการตั้งค่าเป็น 21:00 น. เป็นเวลา serviceTimeInterval 15 นาทีหมายความว่าช่วงเวลาสุดท้ายที่ว่างอยู่จะเริ่มต้นเวลา 20:45 น.

ต้องระบุเวลาตามเวลาท้องถิ่นในการให้บริการ อย่ารวมเขตเวลาไว้ในค่า closes หากระบุเขตเวลาแล้ว Google จะไม่สนใจข้อมูลนี้

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

dayOfWeek อาร์เรย์ของ DayOfWeek ไม่บังคับ

วันของสัปดาห์ที่มีเวลานำส่งล่วงหน้า ค่าที่ใช้ได้มีดังนี้

  • "วันจันทร์"
  • "วันอังคาร"
  • "วันพุธ"
  • "วันพฤหัสบดี"
  • "วันศุกร์"
  • "วันเสาร์"
  • "วันอาทิตย์"

หากไม่ระบุวันใดของสัปดาห์ AdvanceServiceDeliveryHoursSpecification จะมีผลกับทุกวัน

serviceTimeInterval Duration ต้องระบุ

ช่วงเวลาระหว่างการให้บริการต่อเนื่อง 2 ครั้ง

เช่น หาก opens และ closes คือ 08:00 น. และ 20:45 น. และ serviceTimeInterval คือ 15 นาที ผู้ใช้จะเลือกเวลาดำเนินการตามคำสั่งซื้อเป็น 8:00 น., 8:15 น., 8:30 น., 8:45 น. และอื่นๆ ได้จนถึง 20:45 น.

ต้องระบุ Duration เป็นระยะเวลา ISO 8601 เช่น "P15M" หมายถึงช่วงเวลา 15 นาที

advanceBookingRequirement QuantitativeValue ต้องระบุ

จำนวนนาทีนับจากเวลาสั่งอาหารที่สามารถดำเนินการตามคำสั่งซื้อล่วงหน้าได้

ค่า min และ max ของ QuantitativeValue ต้องตั้งค่าเป็นจำนวนนาทีและ unitCode เป็น "MIN"

เช่น หากคำสั่งซื้อล่วงหน้าต้องใช้เวลาดำเนินการอย่างน้อย 60 นาที และถูกจำกัดไม่ให้ดำเนินการเกิน 2 วันหลังจากนั้น ค่า min จะเป็น 60 และค่า max จะเป็น 2880

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภท AdvanceServiceDeliveryHoursSpecification

ตัวอย่างที่ 1

{
  "@type": "AdvanceServiceDeliveryHoursSpecification",
  "opens": "T10:00:00",  // Delivery between 10AM and 7:59:59PM
  "closes": "T20:00:00",
  "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601)
  "advanceBookingRequirement": {
    "minValue": 60,   // The slot should be at least 60 mins away
    "maxValue": 8640, // but not more than 6 days away
    "unitCode": "MIN"
  }
}

AllergenDetails

หากต้องการใช้ประเภทนี้ ให้เพิ่มบริบท gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]

จากนั้นเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItem หรือ MenuItemOption ที่เหมาะสม

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท AllergenDetails

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะเป็น "AllergenDetails" เสมอ
allergenType ข้อความ ไม่บังคับ ประเภทของสารก่อภูมิแพ้ตาม gs1:AllergenTypeCode เช่น http://gs1.org/voc/AllergenTypeCode-PEANUTS
allergenLevelOfContainmentCode ข้อความ ไม่บังคับ รหัสการควบคุมตาม gs1:LevelOfContainmentCode เช่น http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM หรือ http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภท AllergenDetails

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/6",
  "name": "Strawberry joghurt drink",
  "description": "A 0.5l bottle of strawberry joghurt drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-joghurt-drink",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

DeliveryChargeSpecification

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท DeliveryChargeSpecification

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ จะเป็น " DeliveryChargeSpecification" เสมอ
@id URL ไม่บังคับ ตัวระบุข้อกำหนดสำหรับค่าจัดส่ง
price ตัวเลข ต้องระบุ ค่าจัดส่งทั้งหมดที่ระบุเป็นค่าแบบตัวเลขเท่านั้น ใช้พร็อพเพอร์ตี้ priceCurrency เพื่อแสดงถึงประเภทสกุลเงินแทนสัญลักษณ์สกุลเงิน เช่น "6.00" โดยไม่มีสัญลักษณ์สกุลเงิน
priceCurrency ข้อความ ต้องระบุ รหัสสกุลเงินแบบ ISO 4217 ที่เป็นตัวอักษร 3 ตัว เช่น "USD"
eligibleTransactionVolume PriceSpecification ไม่บังคับ ปริมาณธุรกรรมเป็นหน่วยเงินซึ่งระบุถึงข้อกำหนดของค่านำส่งนี้ เช่น เพื่อระบุปริมาณการซื้อขั้นต่ำหรือเพื่อระบุว่ามีการจัดส่งโดยไม่มีค่าใช้จ่ายเพิ่มเติมเมื่อสั่งซื้อเกินปริมาณคำสั่งซื้อที่กำหนด
eligibleQuantity QuantitativeValue ไม่บังคับ ช่วงเวลาและหน่วยวัดของปริมาณการสั่งซื้อที่ใช้ค่าจัดส่งจริง การดำเนินการนี้จะช่วยให้คุณระบุได้ว่าค่าขนส่งสินค้าบางรายการจะใช้ได้กับจำนวนที่กำหนดเท่านั้น
eligibleRegion อาร์เรย์ของ GeoShape หรือ Place หรือ GeoCircle ไม่บังคับ สถานที่หรือ GeoShape/GeoCircle สำหรับภูมิภาคทางภูมิศาสตร์ทางการเมืองที่มีข้อมูลกำหนดของข้อเสนอหรือค่าจัดส่งที่ถูกต้อง ใช้พร็อพเพอร์ตี้นี้เมื่อค่าธรรมเนียมการนำส่งแตกต่างกันไปตามภูมิภาคเท่านั้น
validFrom DateTime ไม่บังคับ วันที่และเวลา (รวมถึงเขตเวลา) ที่จะใช้ค่าจัดส่งที่ระบุได้ เช่น "2017-05-01T06:30:00-07:00" ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา
validThrough DateTime ไม่บังคับ วันที่และเวลา (รวมถึงเขตเวลา) ที่หลังจากค่าบริการนำส่งที่ระบุไว้ไม่ถูกต้อง เช่น "2017-05-01T06:30:00-07:00" เวลาสำหรับ validThrough จะเป็นสุดพิเศษ ตัวอย่างเช่น หากตั้งเวลาไว้ที่ 18: 00 น. เวลานั้นจะเป็น 17:59:59 น. เท่านั้น ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ DeliveryChargeSpecification

ตัวอย่างที่ 1

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}

ตัวอย่างที่ 2

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

ตัวอย่าง 3

"priceSpecification": [{
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
    "price": "8.00", // Charges $8 for area5
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00",
      "priceCurrency": "USD"
    },
    "eligibleRegion": [ // area5
      {
        "@type": "GeoCircle",
        "geoMidpoint": {
          "@type": "GeoCoordinates",
          "latitude": "37.7392607",
          "longitude": "-122.3895522"
        },
        "geoRadius": "4505"
      }
    ]
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
    "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00", // Minimum order price for delivery is $20
      "priceCurrency": "USD"
    }
  }
]

นอกจาก "@type": ["DeliveryChargeSpecification"] แล้ว คุณขยายออบเจ็กต์ได้ด้วย UnitPriceSpecification ดังนี้

"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]

ส่วนขยายนี้จะให้ที่พักเพิ่มอีก 2 ตัวสำหรับค่าธรรมเนียมการนำส่งซึ่งคำนวณเป็นเปอร์เซ็นต์

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
referenceQuantity QuantitativeValue ต้องระบุ จำนวนการอ้างอิงที่ใช้ราคาที่กำหนด เช่น referenceQuantity ของค่า 10 ที่มี unitCode เป็น "P1" จะเท่ากับ 10% ของมูลค่าการสั่งซื้อ ตอนนี้รองรับเฉพาะ unitCode "P1"
basePrice ตัวเลข ไม่บังคับ ค่าใช้จ่ายพื้นฐานเพิ่มเติมจาก referenceQuantity เช่น referenceQuantity ของ 10 ที่มี unitCode เป็น "P1" และ basePrice เป็น 5 ในสกุลเงิน USD จะเท่ากับ $5 + 10% ของมูลค่าการสั่งซื้อ ค่าเริ่มต้นคือ 0

ตัวอย่างค่าจัดส่ง

Google อนุญาตให้คุณระบุค่าธรรมเนียมต่างๆ แก่ผู้ใช้ล่วงหน้าได้โดยใช้ Offer.PriceSpecification ของเอนทิตีบริการ

โปรดทราบว่าขณะนี้การสั่งซื้อจากต้นทางถึงปลายทางรองรับ DeliveryChargeSpecification เพียง 1 รายการเท่านั้น รวมค่าธรรมเนียมทุกประเภทไว้ใน DeliveryChargeSpecification เดียว

ดูวิธีระบุค่าธรรมเนียมการนำส่งตามพื้นที่ ระยะทาง และมูลค่าการสั่งซื้อได้ในตัวอย่างฟีดบริการ

หากไม่มีค่าธรรมเนียม ระบบจะไม่แสดง Offer.PriceSpecification

  • ตัวอย่างที่ 1: ค่าจัดส่งคือ 5% ของยอดรวมย่อยของรถเข็น
  • ตัวอย่างที่ 2: ค่าจัดส่งเท่ากับ 150 บาท
  • ตัวอย่างที่ 3: ค่าจัดส่งเท่ากับ 150 บาท + 10% ของยอดรวมย่อยของรถเข็น
  • ตัวอย่างที่ 4: ค่าจัดส่งเท่ากับ 150 บาทและค่าธรรมเนียมสัมภาระอยู่ที่ 3.3 บาท
  • ตัวอย่างที่ 5: ค่าจัดส่งคือ 5% และค่าธรรมเนียมการอำนวยความสะดวกคือ 2% ของยอดรวมย่อยของรถเข็น
  • ตัวอย่างที่ 6: ค่าจัดส่งเท่ากับ $5 และ $1 ต่อระยะทางเพิ่มเติม 1 กม.

ตัวอย่างที่ 1

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

ตัวอย่างที่ 2

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

ตัวอย่าง 3

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "10.00", // 10%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "5.00" // User always pays $5 in addition to 10%
  }
]

ตัวอย่าง 4

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }

ตัวอย่างที่ 5

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]

ตัวอย่างที่ 6

priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "basePrice": 5.00, // User always pays $5
    "price": 1.00, // An additional $1.00 is added per 1km
    "priceCurrency": "USD",
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "unitCode": "MTR", // MTR == meter
      "value": "1000.0" // 1km
    }
  }
]

GeoCircle

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท GeoCircle

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ นี่คือ "GeoCircle" เสมอ
geoMidpoint GeoCoordinates ต้องระบุ บ่งบอก GeoCoordinates ที่อยู่ตรงกลางของ GeoCircle
geoRadius ตัวเลข ต้องระบุ ระบุรัศมีโดยประมาณ (หน่วยเป็นเมตร) ของ GeoCircle

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ GeoCircle

ตัวอย่าง

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

GeoCoordinates

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท GeoCoordinates

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะเป็น "GeoCoordinates" เสมอ
latitude ตัวเลข ต้องระบุ

ละติจูดเป็นองศา ค่าจะถูกจำกัดอยู่ในช่วงตั้งแต่ -90 ถึง 90 เท่านั้น หากค่าที่ระบุน้อยกว่า -90 ระบบจะตั้งค่าเป็น -90 หากค่ามากกว่า 90 ระบบจะตั้งค่าเป็น 90

ควรใช้ทศนิยมอย่างน้อย 5 ตำแหน่งเพื่อความแม่นยำ

longitude ตัวเลข ต้องระบุ

ลองจิจูดเป็นองศา ระบบจะรวมค่าที่อยู่นอกช่วง -180 ถึง 180 เพื่อให้อยู่ในช่วง เช่น ค่า -190 จะแปลงเป็น 170 ค่า 190 จะแปลงเป็น -170 และสะท้อนให้เห็นถึงข้อเท็จจริงที่ว่าลองจิจูดล้อมอยู่ทั่วโลก

ควรใช้ทศนิยมอย่างน้อย 5 ตำแหน่งเพื่อความแม่นยำ

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ GeoCoordinates

ตัวอย่าง

"geo": {
  "@type": "GeoCoordinates",
  "latitude": "35.7392607",
  "longitude": "-120.3895522"
}

GeoShape

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท GeoShape

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะเป็น "GeoShape" เสมอ
polygon อาร์เรย์ข้อความ ต้องระบุ

รูปหลายเหลี่ยมหรือรูปหลายเหลี่ยมหลายรูปซึ่งแสดงชุดจุดที่มีช่องว่างตั้งแต่ 3 จุดขึ้นไป ขอแนะนำให้จุดแรกและประเด็นสุดท้ายเหมือนกัน แต่ไม่บังคับ

แต่ละจุดในรูปหลายเหลี่ยมหรือรูปหลายเหลี่ยมหลายรูปจะกำหนดด้วยจุดละติจูดตามด้วยจุดลองจิจูด และต้องระบุจุดในทิศทางทวนเข็มนาฬิกาด้วย

ในกรณีส่วนใหญ่ คุณจะมีรูปหลายเหลี่ยมรูปเดียว ดูกรณีการใช้งานที่ซับซ้อนยิ่งขึ้นได้จากเอกสารเกี่ยวกับพื้นที่ให้บริการ

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ GeoShape

ตัวอย่างที่ 1

{
  "@type": "GeoShape", // area4
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
},

ตัวอย่างที่ 2

{
  "@type": "GeoShape", // A service area with a hole.
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”,
               “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”]
},

ตัวอย่าง 3

{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "areaServed": [
    {
      "@type": "GeoShape",  // Richmond District delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474"
    },
    {
      "@type": "GeoShape",  // Haight-Ashbury delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417"
    }  ],
...
},

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้สำหรับประเภท Menu

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งมักจะเป็น "เมนู" เสมอ
@id URL ต้องระบุ ตัวระบุที่ไม่ซ้ำกันสำหรับเมนู
name ข้อความ ไม่บังคับ ข้อความที่ระบุ Menu เมื่อผู้ใช้เรียกดูเมนู
description ข้อความ ไม่บังคับ คำอธิบายของเมนู
disclaimer MenuDisclaimer ไม่บังคับ ข้อจำกัดความรับผิดสำหรับเมนู เช่น การเปิดเผยข้อมูลโภชนาการและการเปิดเผยข้อมูลเกี่ยวกับสารก่อภูมิแพ้
hasMenuSection ออบเจ็กต์หรืออาร์เรย์เดียวของ MenuSection ไม่บังคับ การจัดกลุ่มย่อยตามตรรกะของเมนู (เช่น อาหารค่ำ อาหารเรียกน้ำย่อย หรืออาหารประเภทปลา)
hasMenuItem ออบเจ็กต์หรืออาร์เรย์เดียวของ MenuItem ไม่บังคับ ออบเจ็กต์ MenuItem ที่อยู่ใน Menu โดยทั่วไปเมื่อ Menu ไม่ได้แยกย่อยด้วย MenuSections
inLanguage ข้อความ ไม่บังคับ ภาษาของเนื้อหาเมนูเป็นรหัสภาษาจากมาตรฐาน IETF BCP 47 เช่น "en-US"

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภท Menu

ตัวอย่างที่ 1

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "hasMenuSection": {
    "@type": "MenuSection",
    "@id": "http://www.provider.com/somerestaurant/menusection/1",
    "name": "Tacos",
    "description": "Tacos inspired by India cuisine.",
    "offers": {
      "@type": "Offer",
      "availabilityStarts": "T08:00:00", // Starts at 8:00AM
      "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM
    },
    "hasMenuItem": {
      "@type": "MenuItem",
      "@id": "http://www.provider.com/somerestaurant/menuitem/1",
      "name": "Aloo Gobi Taco",
      "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.",
      "offers": {
        "@type": "Offer",
        "sku": "offer-aloo-gobi-taco",
        "price": "3.50",
        "priceCurrency": "USD"
      },
      "nutrition": {
        "@type": "NutritionInformation",
        "calories": "170 Cal",
        "fatContent": "3 g",
        "fiberContent": "2 g",
        "proteinContent": "4 g"
      },
      "suitableForDiet": "http://schema.org/GlutenFreeDiet"
    }
  },
  "inLanguage": "English"
}

ตัวอย่างที่ 2

ตัวอย่างนี้แสดง hasMenuItem เป็นอาร์เรย์

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Main",
      "description": "Main course",
      "image": "http://www.provider.com/somerestaurant/main_dishes.jpg",
      "hasMenuItem": [
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/1",
          "name": "Pizza",
          "description": "Pizza",
          "offers": {
            "@type": "Offer",
            "sku": "offer-pizza",
            "price": "7.49",
            "priceCurrency": "USD",
            "availabilityStarts": "T08:00:00", // Starts at 8:00AM
            "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
          }
        },
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/2",
          "name": "Pasta",
          "description": "Pasta",
          "offers": [
            {
              "@type": "Offer",
              "sku": "offer-pasta-lunch",
              "price": "7.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T08:00:00", // Starts at 8:00AM
              "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
            },
            {
              "@type": "Offer",
              "sku": "offer-pasta-dinner",
              "price": "10.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T18:00:00", // Starts at 6:00PM
              "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM
            }
          ]
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/2",
      "name": "Soups & Salads",
      "description": "Salads and a few choices of soup",
      "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/3",
        "name": "Pea Soup",
        "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-pea-soup",
          "price": "3.49",
          "priceCurrency": "USD"
        },
        "suitableForDiet": "http://schema.org/GlutenFreeDiet"
      }
    }
  ]
}

ตัวอย่าง 3

ตัวอย่างนี้แสดง hasMenuSection เป็นอาร์เรย์

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Dinner",
      "description": "Dinner dishes",
      "hasMenuSection": [
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/2",
          "name": "Starters",
          "description": "Appetizers and such",
          "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/1",
            "name": "Potato Skins",
            "description": "Small serving of stuffed potato skins.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-potato-skins",
              "price": "7.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/3",
          "name": "Soups & Salads",
          "description": "Salads and a few choices of soup",
          "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/2",
            "name": "Pea Soup",
            "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-pea-soup",
              "price": "3.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/4",
          "name": "Steak",
          "description": "Steak Dishes",
          "image": "https://steak.com/steak_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/3",
            "name": "Sirloin",
            "description": "Sirloin steak dish.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-sirloin-steak",
              "price": "15.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/5",
      "name": "Desserts",
      "description": "Dessert dishes.",
      "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/4",
        "name": "Chocolate Pie",
        "description": "A slice of chocolate pie.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chocolate-pie",
          "price": "3.49",
          "priceCurrency": "USD"
        }
      }
    }
  ]
}

ดูตัวอย่างเพิ่มเติมของเอนทิตี Menu ได้ที่ตัวอย่างฟีดร้านอาหารและเมนู

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้สำหรับประเภท MenuDisclaimer

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งถือเป็น "ข้อจำกัดความรับผิดเมนู" เสมอ
@id URL ต้องระบุ ตัวระบุที่ไม่ซ้ำกันสำหรับข้อจำกัดความรับผิดของเมนู
text ข้อความ ต้องระบุ ข้อความของข้อจำกัดความรับผิด เช่น "ปริมาณพลังงานรายวันโดยเฉลี่ยของผู้ใหญ่คือ 8,700 กิโลจูล"
url URL ไม่บังคับ URL ที่ชี้ไปยังหน้าที่ให้รายละเอียดเพิ่มเติมเกี่ยวกับข้อจำกัดความรับผิด

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภท MenuDisclaimer

ตัวอย่าง

{
    "@type": "Menu",
    "@id": "menu_1",
    "disclaimer": {
        "@type": "MenuDisclaimer",
        "@id": "menu_1_disclaimer_1",
        "text": "The average adult daily energy intake is 8700 kJ",
        "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html"
    }
}

รายการเมนูที่ใช้แสดงแทนรายการในเมนู ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้สำหรับประเภท MenuItem

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งเป็น "MenuItem" เสมอ
@id URL ต้องระบุ ตัวระบุที่ไม่ซ้ำกันของรายการในเมนู
name ข้อความ ต้องระบุ ข้อความที่ระบุ MenuItem เมื่อผู้ใช้เรียกดูเมนู
description ข้อความ ไม่บังคับ คำอธิบายของรายการในเมนู
image URL ไม่บังคับ

รูปภาพรายการในเมนู ใช้หลักเกณฑ์เกี่ยวกับรูปภาพต่อไปนี้

  • สัดส่วนภาพ 3:2
  • ความละเอียดขั้นต่ำ 600x400 พิกเซล 72 dpi
  • ความละเอียดที่แนะนำ 1400x960 พิกเซล 72 dpi
menuAddOn อาร์เรย์ของ AddOnMenuSection ไม่บังคับ รายการในส่วนเมนูที่เพิ่มเป็นส่วนเสริมในรายการในเมนูได้
offers อาร์เรย์ของ Offer ต้องระบุ*

มีข้อเสนออย่างน้อย 1 รายการที่จะให้ MenuItem นี้ อธิบายว่า MenuItem นี้จะพร้อมจำหน่ายเมื่อใดและในราคาเท่าใด ข้อเสนอใช้ได้ 1 รายการเท่านั้นในช่วงเวลาหนึ่งๆ คุณระบุข้อเสนอได้หลายรายการหากราคา/ความพร้อมจำหน่ายสินค้าแตกต่างกันไปตามช่วงเวลาของวัน หากรายการอาหารแตกต่างกันผ่านแอตทริบิวต์พื้นฐาน (เช่น ขนาดสำหรับพิซซ่า) ให้ใช้ menuItemOption ค่าเริ่มต้นของ Offer.eligibleQuantity คืออย่างน้อย 0 โดยไม่มีขีดจำกัดสูงสุด

ข้อมูลด้านล่างแสดงพร็อพเพอร์ตี้ Offer ที่ใช้ใน MenuItem

  • ต้องมี Offer.sku
  • ต้องมี Offer.price
  • ต้องมี Offer.priceCurrency
  • Offer.availabilityStarts (ไม่บังคับ)
  • Offer.availabilityEnds (ไม่บังคับ)
  • Offer.availableDay (ไม่บังคับ)
  • Offer.validFrom (ไม่บังคับ)
  • Offer.validThrough (ไม่บังคับ)
  • Offer.eligibleQuantity (ไม่บังคับ)
  • Offer.inventoryLevel (ไม่บังคับ)
hasMenuItemOptions อาร์เรย์ของ MenuItemOption ต้องระบุ รายการตัวเลือก/รูปแบบพื้นฐานสำหรับรายการในเมนูนี้ ควรใช้ตัวเลือกเพื่อระบุรูปแบบพื้นฐานต่างๆ ที่มีสำหรับสินค้า เช่น เล็ก กลาง และใหญ่
suitableForDiet อาร์เรย์ของ RestrictedDiet ไม่บังคับ อาหารต้องเป็นไปตามข้อจำกัดด้านอาหารที่อธิบายไว้ (เช่น "http://schema.org/GlutenFreeDiet" หรือ "http://schema.org/VeganDiet" นี่คือรายการค่าที่เป็นไปได้แบบแจกแจง
nutrition NutritionInformation ไม่บังคับ ข้อมูลโภชนาการของอาหารจานนี้ ที่สำคัญคือแคลอรี่
hasAllergen AllergenDetails ไม่บังคับ สารก่อภูมิแพ้ต่อ gs1:AllergenDetails จานนี้ เพิ่มบริบท gs1 เพื่อใช้พร็อพเพอร์ตี้นี้: "@context": ["http://gs1.org/voc/", "http://schema.org"] และเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItem
additive อาร์เรย์ของ AdditiveDetails ไม่บังคับ ส่วนผสมของอาหารต่อ gs1:AdditiveDetails นี่คือรายการค่าที่เป็นไปได้แบบแจกแจง เพิ่มบริบท gs1 เพื่อใช้พร็อพเพอร์ตี้นี้ "@context": ["http://gs1.org/voc/", "http://schema.org"] และเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItem
packaging PackagingDetails ไม่บังคับ ข้อมูลบรรจุภัณฑ์และการรีไซเคิลของ MenuItem นี้ตาม gs1:PackagingDetails เพิ่มบริบท gs1 เพื่อใช้พร็อพเพอร์ตี้นี้: "@context": ["http://gs1.org/voc/", "http://schema.org"] และเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItem

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ MenuItem

ตัวอย่างที่ 1

"hasMenuItem": {
  "@type": "MenuItem",
  "@id": "http://www.provider.com/bar/menuitem/1",
  "name": "Potato Skins",
  "description": "Small serving of stuffed potato skins.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-potato-skins",
    "price": "7.49",
    "priceCurrency": "USD"
  },
  "suitableForDiet": "http://schema.org/GlutenFreeDiet"
}

ตัวอย่างที่ 2

"hasMenuItem": [
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170067",
    "name": "Veg Grill Burrito",
    "offers": {
      "@type": "Offer",
      "sku": "offer-veg-grill-burrito",
      "price": "12.99",
      "priceCurrency": "USD"
    },
    "menuAddOn": {
      "@type": "AddOnMenuSection",
      "name": "Cheese",
      "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
      "eligibleQuantity":
        "@type": "QuantitativeValue",
        "minValue": 0,
        "maxValue": 2 // Maximum of 2 cheeses are allowed
      }
    }
  },
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170018",
    "name": "Chicken Taco",
    "offers": {
      "@type": "Offer",
      "sku": "offer-chicken-taco",
      "price": "6.99",
      "priceCurrency": "USD"
    }
  }
]

ตัวอย่าง 3

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

ตัวอย่าง 4

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

ตัวอย่างที่ 5

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/9",
  "name": "Ice Coffee",
  "offers": {
    "@type": "Offer",
    "sku": "offer-ice-coffee",
    "price": "3.99",
    "priceCurrency": "USD"
  },
  "nutrition": {
    "@type": "NutritionInformation",
    "description": "Contains preservatives and artificial flavor"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN"
    }
  ],
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ],
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.10",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
}

ดูตัวอย่างเพิ่มเติมของเอนทิตี MenuItem ได้ที่ตัวอย่างฟีดร้านอาหารและเมนู

ตัวเลือกสำหรับแสดงตัวเลือกที่ผู้ใช้จะต้องเลือกเมื่อเลือกอาหารหรือชุดเมนูแบบรวม ผู้ใช้ต้องเลือกตัวเลือก มิเช่นนั้นจะถือว่าคำสั่งซื้อไม่ถูกต้อง เช่น การเลือกขนาดเล็ก กลาง หรือใหญ่ในกรณีที่เป็นพิซซ่า

สำหรับตัวอย่างกรณีการใช้งานของ MenuItemOption โปรดดูคู่มือของเราเกี่ยวกับการปรับแต่งโดยใช้ MenuItemOption

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้สำหรับประเภท MenuItemOption

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งอาจเป็น "MenuItemOption" เสมอ
value PropertyValue ต้องระบุ PropertyValue มีคู่ชื่อ/ค่าที่แสดงถึงตัวเลือก
offers อาร์เรย์ของ Offer ต้องระบุ

ข้อเสนออย่างน้อย 1 รายการในการมอบ MenuItemOption นี้ อธิบายว่าตัวเลือกรายการในเมนูนี้พร้อมใช้งานเมื่อใดและในราคาเท่าใด ข้อเสนอใช้ได้เพียงครั้งเดียวเท่านั้น คุณมีข้อเสนอที่ใช้ได้หลายรายการหากราคา/ความพร้อมจำหน่ายสินค้าเปลี่ยนแปลงตามช่วงเวลาของวันได้ อย่าใช้ Offer.eligibleQuantity MenuItemOption แยกต่างหากโดยสิ้นเชิง ดังนั้น จะละเว้น Offer.eligibleQuantity หากมี

ข้อมูลด้านล่างแสดงพร็อพเพอร์ตี้ Offer ที่ใช้ใน MenuItemOption

  • ต้องมี Offer.sku
  • ต้องมี Offer.price
  • ต้องมี Offer.priceCurrency
  • Offer.availabilityStarts (ไม่บังคับ)
  • Offer.availabilityEnds (ไม่บังคับ)
  • Offer.availableDay (ไม่บังคับ)
  • Offer.validFrom (ไม่บังคับ)
  • Offer.validThrough (ไม่บังคับ)
  • Offer.eligibleQuantity (ไม่บังคับ)
  • Offer.inventoryLevel (ไม่บังคับ)
menuAddOn Array of AddOnMenuSection ไม่บังคับ ส่วนเมนูของรายการที่อนุญาตซึ่งเพิ่มเป็นส่วนเสริมได้ ใช้ตัวเลือกนี้เฉพาะเมื่อส่วนเสริมใช้ได้กับตัวเลือกรายการในเมนูหนึ่งๆ เท่านั้น หรือไม่ก็ให้ระบุส่วนเสริมโดยใช้พร็อพเพอร์ตี้ MenuItem .menuAddOn
suitableForDiet อาร์เรย์ของ RestrictedDiet ไม่บังคับ รายการแบบแจกแจงซึ่งบ่งชี้ว่ามีอาหารที่เป็นไปตามข้อจำกัดด้านอาหารที่อธิบายไว้ (เช่น "http://schema.org/GlutenFreeDiet" หรือ "http://schema.org/VeganDiet")
nutrition NutritionInformation ไม่บังคับ ข้อมูลโภชนาการของอาหารจานนี้ ที่สำคัญคือแคลอรี่
hasAllergen AllergenDetails ไม่บังคับ สารก่อภูมิแพ้ต่อ gs1:AllergenDetails จานนี้ เพิ่มบริบท gs1 เพื่อใช้พร็อพเพอร์ตี้นี้: "@context": ["http://gs1.org/voc/", "http://schema.org"] และเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItemOption
additive อาร์เรย์ของ AdditiveDetails ไม่บังคับ ส่วนผสมของอาหารต่อ gs1:AdditiveDetails นี่คือรายการค่าที่เป็นไปได้แบบแจกแจง เพิ่มบริบท gs1 เพื่อใช้พร็อพเพอร์ตี้นี้ "@context": ["http://gs1.org/voc/", "http://schema.org"] และเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItemOption
packaging PackagingDetails ไม่บังคับ ข้อมูลบรรจุภัณฑ์และการรีไซเคิลของ MenuItem นี้ตามgs1:PackagingDetails เพิ่มบริบท gs1 เพื่อใช้พร็อพเพอร์ตี้นี้ "@context": ["http://gs1.org/voc/", "http://schema.org"] และเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItemOption

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ MenuItemOption

ตัวอย่างที่ 1

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}

ตัวอย่างที่ 2

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

ส่วนเมนูเพื่อแสดงส่วนที่ต้องการในเมนู ตารางต่อไปนี้แสดงรายการพร็อพเพอร์ตี้สำหรับประเภท MenuSection

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งมักจะเป็น "MenuSection" เสมอ
@id URL ต้องระบุ ตัวระบุที่ไม่ซ้ำกันของส่วนเมนู
name ข้อความ ต้องระบุ ข้อความที่ระบุ MenuSection เมื่อผู้ใช้เรียกดูเมนู
description ข้อความ ไม่บังคับ คำอธิบายของส่วนเมนู
hasMenuSection อาร์เรย์ของ MenuSection ไม่บังคับ การจัดกลุ่มย่อยเชิงตรรกะของ MenuSection ตัวอย่างเช่น ส่วนเมนูอาหารค่ำอาจมีส่วนเมนูย่อยได้หลายส่วน เช่น "เมนูสัตว์ปีก" หรือ "มังสวิรัติ"
hasMenuItem อาร์เรย์ของ MenuItem ไม่บังคับ รายการในเมนูที่อยู่ใน MenuSection
offers อาร์เรย์ของ Offer ไม่บังคับ

ใช้ Offer.availabilityStarts และ Offer.availabilityEnds เพื่อระบุระยะเวลาที่ MenuSection นี้แสดง อย่าใช้ Offer.eligibleQuantity

รายการต่อไปนี้แสดงพร็อพเพอร์ตี้ Offer ที่ใช้ใน MenuSection

  • Offer.availabilityStarts (ไม่บังคับ)
  • Offer.availabilityEnds (ไม่บังคับ)
  • Offer.availableDay (ไม่บังคับ)
  • Offer.validFrom (ไม่บังคับ)
  • Offer.validThrough (ไม่บังคับ)
image URL ไม่บังคับ รูปภาพของส่วนเมนู

ตัวอย่างต่อไปนี้แสดงเอนทิตี MenuSection รายการ

ตัวอย่างที่ 1

{
  "@type": "MenuSection",
  "@id": "http://www.provider.com/bar/menusection/4",
  "name": "Steak",
  "description": "Steak Dishes",
  "image": "https://steak.com/steak_dishes.jpg",
  "hasMenuItem": {
    "@type": "MenuItem",
    "@id": "http://www.provider.com/bar/menuitem/3",
    "name": "Sirloin",
    "description": "Sirloin steak dish.",
    "offers": {
      "@type": "Offer",
      "sku": "offer-sirloin-steak",
      "price": "15.49",
      "priceCurrency": "USD"
    },
    "suitableForDiet": "http://schema.org/GlutenFreeDiet"
  }
}

ตัวอย่างที่ 2

"hasMenuSection": [
  {
    "@type": "MenuSection",
    "@id": "https://www.example.com/1089/categorization/25114480",
    "name": "Main Items",
    "hasMenuItem": [
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170067",
        "name": "Veg Grill Burrito",
        "offers": {
          "@type": "Offer",
          "sku": "offer-veg-grill-burrito",
          "price": "12.99",
          "priceCurrency": "USD"
        },
        "menuAddOn": {
          "@type": "AddOnMenuSection",
          "name": "Cheese",
          "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
          "eligibleQuantity":
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2 // Maximum of 2 cheeses are allowed
          }
        }
      },
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170018",
        "name": "Chicken Taco",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chicken-taco",
          "price": "6.99",
          "priceCurrency": "USD"
        }
      }
    ]
  },
  {
    "@type": "AddOnMenuSection",
    "@id": "https://www.example.com/1089/addon/1",
    "name": "AddOnCheese",
    "hasMenuItem": [
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/a",
        "name": "Swiss",
        "offers": {
          "@type": "Offer",
          "sku": "offer-swiss",
          "price": "2.99",
          "priceCurrency": "USD"
        }
      },
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/b",
        "name": "Mozarella",
        "offers": {
          "@type": "Offer",
          "sku": "offer-mozzarella",
          "price": "1.99",
          "priceCurrency": "USD"
        }
      }
    ]
  }
]

ดูตัวอย่างเพิ่มเติมของเอนทิตี MenuSection ได้ที่ตัวอย่างฟีดร้านอาหารและเมนู

NutritionInformation

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท NutritionInformation เนื่องจากหน่วยวัดจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตัวอย่างเช่น ระบบยอมรับ "แคลอรี" แต่ไม่สามารถใช้ "แคลอรี"

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ต้องเป็น "NutritionInformation" เสมอ
description ข้อความ ไม่บังคับ ข้อมูลโภชนาการในข้อความอิสระ เช่น "มีสารกันบูด"
calories ข้อความ ไม่บังคับ

จำนวนแคลอรี่ในหน่วยแคลอรี กิโลแคลอรี หรือกิโลจูล โดยใช้รูปแบบต่อไปนี้

number Cal_kcal_OR_kJ

เช่น "240 Cal"

carbohydrateContent ข้อความ ไม่บังคับ

ปริมาณคาร์โบไฮเดรต โดยทั่วไปมีหน่วยเป็นกรัม โดยใช้รูปแบบต่อไปนี้

number g_OR_mg

เช่น "7 g"

cholesterolContent ข้อความ ไม่บังคับ

ปริมาณคอเลสเตอรอล โดยทั่วไปจะเป็นมิลลิกรัม โดยใช้รูปแบบต่อไปนี้

number g_OR_mg

เช่น "12 มก."

fatContent ข้อความ ไม่บังคับ

ปริมาณไขมัน โดยทั่วไปจะมีหน่วยเป็น ก. โดยใช้รูปแบบต่อไปนี้

number g_OR_mg

เช่น "42 g"

fiberContent ข้อความ ไม่บังคับ

จำนวนกรัมหรือมก. ของเส้นใย โดยใช้รูปแบบต่อไปนี้

number g_OR_mg
proteinContent ข้อความ ไม่บังคับ

จำนวนโปรตีน ก. หรือ มก. โดยใช้รูปแบบต่อไปนี้

number g_OR_mg
saturatedFatContent ข้อความ ไม่บังคับ

จำนวนกรัมหรือมก. ของไขมันอิ่มตัว โดยใช้รูปแบบต่อไปนี้

number g_OR_mg
servingSize ข้อความ ไม่บังคับ ขนาดที่จะแสดงเป็นมิลลิลิตร, L, ก. หรือกก. ในแง่ของปริมาณหรือมวล
sodiumContent ข้อความ ไม่บังคับ

จำนวนโซเดียมหรือมก. โดยใช้รูปแบบต่อไปนี้

number g_OR_mg
sugarContent ข้อความ ไม่บังคับ

จำนวนน้ำตาลกรัมหรือมก. โดยใช้รูปแบบต่อไปนี้

number g_OR_mg
transFatContent ข้อความ ไม่บังคับ

จำนวนกรัมหรือมก. ของไขมันทรานส์ โดยใช้รูปแบบต่อไปนี้

number g_OR_mg
unsaturatedFatContent ข้อความ ไม่บังคับ

ปริมาณไขมันไม่อิ่มตัว โดยทั่วไปมีหน่วยเป็น ก. โดยใช้รูปแบบต่อไปนี้

number g_OR_mg

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ NutritionInformation

ตัวอย่างที่ 1

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},

ตัวอย่างที่ 2

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/7",
  "name": "Peach Ice Tea",
  "description": "A 0.5l bottle of peach ice tea.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-peach-ice-tea",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "nutrition": {
              "@type": "NutritionInformation",
              "description": "Contains preservatives and artificial flavor"
  }
},

ข้อเสนอ

ข้อเสนอสำหรับรายการในเมนู ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท Offer

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งมักจะเป็น "ข้อเสนอ" เสมอ
sku ข้อความ มีเงื่อนไข

ตัวระบุที่ไม่ซ้ำกันของข้อเสนอ อาจเป็นค่าข้อความใดก็ได้ที่ไม่ซ้ำกันภายใน Offer มีการอ้างอิงค่า sku ในการชำระเงินและส่งเป็น offerId ใน lineitem

พร็อพเพอร์ตี้นี้ใช้เฉพาะในข้อเสนอประเภทต่อไปนี้เท่านั้น

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
price ข้อความ มีเงื่อนไข

ราคาของรายการที่เสนอ เช่น "6.00" โดยไม่มีสัญลักษณ์สกุลเงิน

พร็อพเพอร์ตี้นี้จำเป็นเฉพาะในประเภทข้อเสนอต่อไปนี้

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

ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency ข้อความ มีเงื่อนไข

สกุลเงิน (ในรูปแบบ ISO 4217 แบบ 3 อักขระ) ของราคาหรือองค์ประกอบราคา เมื่อแนบกับ PriceSpecification และประเภทย่อย

พร็อพเพอร์ตี้นี้จำเป็นเฉพาะในประเภทข้อเสนอต่อไปนี้

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

ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime หรือ Time ไม่บังคับ วันที่และเวลา หรือเฉพาะเวลาที่ข้อเสนอพร้อมใช้งาน เช่น หากแพนเค้กเริ่มให้บริการตั้งแต่ 7:00 น. ค่าของช่องนี้อาจมีลักษณะดังนี้ "2017-05-01T07:00:00-07:00" ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา
availabilityEnds DateTime หรือ Time ไม่บังคับ วันที่และเวลาหรือเวลาที่ข้อเสนอไม่พร้อมใช้งาน ช่วงเวลานี้ไม่รวม เช่น หากแพนเค้กว่างให้บริการสิ้นสุดเวลา 10:00 น. ก็จะแสดงเวลา 9:59:59 น. ค่าของช่องนี้จะมีลักษณะดังนี้ "2017-05-01T10:00:00-07:00" ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา
availableDay อาร์เรย์ของ DayOfWeek ไม่บังคับ

วันของสัปดาห์ที่สินค้านี้พร้อมจำหน่าย ค่าที่ใช้ได้มีดังนี้

  • "วันจันทร์"
  • "วันอังคาร"
  • "วันพุธ"
  • "วันพฤหัสบดี"
  • "วันศุกร์"
  • "วันเสาร์"
  • "วันอาทิตย์"

หากคุณมีเวลาว่างต่างกันในวันต่างๆ ในสัปดาห์ ให้ใช้ออบเจ็กต์ Offer มากกว่า 1 รายการดังที่แสดงในตัวอย่างด้านล่าง

validFrom DateTime ไม่บังคับ

วันที่และเวลา (รวมถึงเขตเวลา) ที่ใช้ราคาที่ระบุได้ ตัวอย่างเช่น พาสต้าคือ 240 บาทในช่วงมื้อกลางวัน และ 300 บาทในช่วงมื้อเย็น ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

พร็อพเพอร์ตี้นี้ใช้ได้ในประเภทข้อเสนอต่อไปนี้

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

พร็อพเพอร์ตี้นี้ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • Service.Offer
validThrough DateTime ไม่บังคับ

วันที่และเวลา (รวมถึงเขตเวลา) ซึ่งหลังจากนั้นราคาที่ระบุจะใช้ไม่ได้อีกต่อไป ตัวอย่างเช่น พาสต้าคือ 240 บาทในระหว่างอาหารกลางวัน และ 300 บาทสำหรับมื้อเย็น เวลาสำหรับ validThrough จะเป็นสุดพิเศษ ตัวอย่างเช่น หากตั้งเวลานั้นเป็น 18:00 น. เวลานั้นจะเป็น 17:59:59 น. เท่านั้น ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

พร็อพเพอร์ตี้นี้ใช้ได้ในประเภทข้อเสนอต่อไปนี้

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

พร็อพเพอร์ตี้นี้ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • Service.Offer
eligibleQuantity QuantitativeValue ไม่บังคับ

จำนวนการสั่งซื้อที่อนุญาตรายการนี้ เช่น ร้านอาหารอาจกำหนดให้สั่งซื้อพิซซ่าอย่างน้อย 10 ถาดสำหรับจัดส่งถึงบ้าน

ค่านี้เป็นตัวเลือกที่ไม่บังคับ โดยค่าเริ่มต้น จะไม่มีการจำกัดสูงสุด แต่ร้านอาหารจะระบุได้ ขีดจำกัดขั้นต่ำจะมีผลเมื่อผู้ใช้เลือกรายการดังกล่าวเท่านั้น

พร็อพเพอร์ตี้นี้ใช้ได้ในประเภทข้อเสนอต่อไปนี้

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

พร็อพเพอร์ตี้นี้ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating ไม่บังคับ

คะแนนโดยรวมอิงตามชุดรีวิวหรือคะแนนของสินค้า

พร็อพเพอร์ตี้นี้ใช้ได้ในประเภทข้อเสนอต่อไปนี้

  • AddOnMenuItem.Offer
  • MenuItem.Offer

พร็อพเพอร์ตี้นี้ไม่ได้ใช้ในประเภทต่อไปนี้

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
inventoryLevel QuantitativeValue ไม่บังคับ

ระดับสินค้าคงคลังโดยประมาณในปัจจุบันสำหรับสินค้า

พร็อพเพอร์ตี้นี้ใช้ได้ในประเภทข้อเสนอต่อไปนี้

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

พร็อพเพอร์ตี้นี้ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification อาร์เรย์ของ DeliveryChargeSpecification หรืออาร์เรย์ของ PaymentChargeSpecification ไม่บังคับ

เมื่อใช้ในService.Offer จะมีการระบุรายละเอียดเกี่ยวกับราคาการจัดส่ง หากมีออบเจ็กต์ DeliveryChargeSpecification หลายรายการ ระบบจะใช้ออบเจ็กต์ที่เจาะจงที่สุด ใช้ออบเจ็กต์ DeliveryChargeSpecification ที่ใช้พร้อมกันไม่ได้เพื่อหลีกเลี่ยงความกำกวม

พร็อพเพอร์ตี้นี้ใช้ได้ในประเภทข้อเสนอต่อไปนี้

  • Service.Offer

พร็อพเพอร์ตี้นี้ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy อาร์เรย์ของรหัส Restaurant ไม่บังคับ

แสดงร้านอาหารที่ Offer ให้บริการ

หากไม่ได้ระบุไว้ ระบบจะเสนอ Offer นี้ให้กับร้านอาหารทุกแห่ง

พร็อพเพอร์ตี้นี้ใช้ได้ในประเภทข้อเสนอต่อไปนี้

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

พร็อพเพอร์ตี้นี้ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • Service.Offer
applicableFulfillmentMethod อาร์เรย์ข้อความ ไม่บังคับ

แสดงประเภทบริการที่ Offer นี้มีการดำเนินการ ค่าที่เป็นไปได้คือ "DELIVERY" หรือ "TAKEOUT"

หากไม่ระบุ ระบบจะดำเนินการตามคำสั่งซื้อ Offer นี้โดยการจัดส่งและสั่งกลับบ้าน

พร็อพเพอร์ตี้นี้ใช้ได้ในประเภทข้อเสนอต่อไปนี้

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

พร็อพเพอร์ตี้นี้ไม่ได้ใช้ในประเภทข้อเสนอต่อไปนี้

  • Service.Offer
@id URL เลิกใช้ ตัวระบุที่ไม่ซ้ำกันของข้อเสนอ เลิกใช้งานในวันที่ 25/4/19 ให้แทนที่ด้วย sku ตามที่อธิบายไว้ข้างต้น

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ Offer

ตัวอย่างที่ 1

ตัวอย่างต่อไปนี้แสดงข้อเสนอง่ายๆ

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD"
}

ตัวอย่างที่ 2

ข้อเสนอตัวอย่างต่อไปนี้แสดงเวลาว่างตั้งแต่ 8.00 - 10.00 น. ในวันหยุดสุดสัปดาห์

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",  // Only available from 8-9:59:59 AM
  "availabilityEnds": "T10:00:00-07:00",
  "availableDay": ["Saturday", "Sunday"]  // Only on weekends.
}

ตัวอย่าง 3

ตัวอย่างต่อไปนี้แสดงเวลาว่างตั้งแต่ 9-10:59:59 น. ในวันจันทร์ พุธ และศุกร์ แต่เวลา 8-11:59:59 น. วันอังคารและวันพฤหัสบดี

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T09:00:00-07:00",
  "availabilityEnds": "T11:00:00-07:00",
  "availableDay": ["Monday", "Wednesday", "Friday"]
}, {
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/141/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",
  "availabilityEnds": "T12:00:00-07:00",
  "availableDay": ["Tuesday", "Thursday"]
}

ตัวอย่าง 4

ตัวอย่างต่อไปนี้แสดงชุดจำนวนที่มีสิทธิ์ของรายการในเมนูส่วนเสริมเพื่อให้ผู้ใช้สั่งซื้อรายการนั้นได้สูงสุด 2 ส่วน

{
  "@type": "AddOnMenuItem",
  "@id": "https://www.example.com/1089/addon/a",
  "name": "Ranch",
  "offers": {
    "@type": "Offer",
    "@id": "https://www.example.com/1089/addon/a/offer",
    "price": "2.99",
    "priceCurrency": "USD"
    "eligibleQuantity": {
         "@type": "QuantitativeValue",
         "maxValue": 2
     }
  }
}

ตัวอย่างที่ 5

ตัวอย่างต่อไปนี้แสดงข้อเสนอการนำส่งในสถานที่ที่เจาะจง

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD",
  "applicableFulfillmentMethods": ["DELIVERY"],
  "offeredBy": [
    {
      "@type": "Restaurant",
      "@id": "https://www.provider.com/location/1",
    }
  ]
}

OpeningHoursSpecification

กำหนดเวลาพร้อมให้บริการสั่งซื้อ โดยปกติแล้ว ค่าของ opens จะน้อยกว่าค่าของ closes การใช้พร็อพเพอร์ตี้ opens และ closes ต้องเป็นไปตามหลักเกณฑ์ต่อไปนี้

  • พร็อพเพอร์ตี้ opens และ closes เป็นตัวเลือกที่ไม่บังคับ แต่ขอแนะนำอย่างยิ่งให้ระบุเมื่อสามารถสั่งซื้อได้ แนวทางปฏิบัติแนะนำในการกำหนดชั่วโมงที่ใช้ได้คือการรวมอาร์เรย์ deliveryHours ที่มี ServiceDeliveryHoursSpecification ที่มีพร็อพเพอร์ตี้ opens และ closes จากนั้นคุณจะรวมออบเจ็กต์ AdvanceServiceDeliveryHoursSpecification ใน deliveryHours ที่มีพร็อพเพอร์ตี้ opens และ closes ของตัวเองได้หากต้องการเสนอกรอบเวลาที่จำกัดมากขึ้นสำหรับการสั่งล่วงหน้า
  • หากไม่ได้ระบุ opens และ closes ไว้อย่างชัดเจน เราจะถือว่าบริการสั่งซื้อพร้อมให้บริการทุกวัน ตลอดทุกวัน
  • ต้องระบุเวลาให้บริการตามเวลาท้องถิ่น อย่าใส่เขตเวลาในค่า opens หรือ closes หากมีการระบุเขตเวลา Google จะไม่สนใจข้อมูลนี้
  • หาก opens และ closes เหมือนกัน เราจะถือว่าร้านอาหารนั้นเปิดเป็นเวลา 0 นาที
  • หาก opens มากกว่า closes ระบบจะตีความเวลาปิดทำการเป็นวันถัดไป ตัวอย่างเช่น หากตั้งเวลาทำการเป็นวันที่ 1 มกราคม เวลา 17:00 น. และปิดทำการเป็น 2:00 น. ระบบจะนับว่าร้านอาหารปิดในวันที่ 2 มกราคม เวลา 02:00 น.
  • เวลาสำหรับ closes เป็นช่วงเวลาพิเศษ ดังนั้น หากเวลาเปิดและปิดสำหรับช่วงเวลาสั่งซื้อนี้ตั้งไว้ที่ 10:00 น. และ 16:00 น. ตามลำดับ คำสั่งซื้อสุดท้ายจะเป็น 15:59:59 น.

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท OpeningHoursSpecification

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะแสดงเป็น "OpeningHoursSpecification" เสมอ
@id URL ไม่บังคับ ตัวระบุสำหรับ OpeningHoursSpecification
dayOfWeek อาร์เรย์ของ DayOfWeek ไม่บังคับ

วันของสัปดาห์ที่เวลาทำการเหล่านี้ถูกต้อง ค่าที่ยอมรับได้ ได้แก่ "วันจันทร์" "วันอังคาร" "วันพุธ" "วันพฤหัสบดี" "วันศุกร์" "วันเสาร์" และ "วันอาทิตย์" เช่น

"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]

หากไม่ระบุวันใดของสัปดาห์ OpeningHoursSpecification จะมีผลกับทุกวัน

opens Time ไม่บังคับ

เมื่อใช้ในข้อกำหนดของ Restaurant พร็อพเพอร์ตี้นี้จะระบุเวลาเปิดทำการของร้านอาหารในวันที่ระบุของสัปดาห์ เช่น 6:30 AM จะแสดงเป็น "T06:30:00"

เมื่อใช้ในข้อกำหนดของ Service จะเป็นการระบุเวลาที่เจาะจงของวันโดยเริ่มจากจุดที่ผู้ใช้ทำการสั่งซื้อได้ และระบุเวลาเปิดทำการเมื่อระบบออนไลน์เริ่มทำงานและอนุญาตให้ผู้ใช้สั่งซื้อได้ คุณสามารถใช้ deliveryHours เพื่อระบุเวลาเปิด/ปิดทำการที่ผู้ใช้สามารถสั่งซื้อประเภทพิเศษให้จัดส่งได้ ภายในช่วงเวลาเปิด/ปิดของระบบออนไลน์เหล่านั้น

ต้องระบุเวลาให้บริการตามเวลาท้องถิ่น อย่ารวมเขตเวลาไว้ในค่า opens หากระบุเขตเวลาแล้ว Google จะไม่สนใจข้อมูลนี้

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

closes Time ไม่บังคับ

เมื่อใช้ในข้อกำหนดของ Service พร็อพเพอร์ตี้นี้จะระบุเวลาที่เฉพาะเจาะจงของวันที่ผู้ใช้สั่งซื้อไม่ได้ และระบุเวลาปิดทำการของระบบออนไลน์และอนุญาตให้ผู้ใช้สั่งซื้อสินค้า คุณสามารถใช้ deliveryHours เพื่อระบุเวลาเปิด/ปิดทำการที่ผู้ใช้สามารถสั่งซื้อประเภทพิเศษให้จัดส่งได้ ภายในช่วงเวลาเปิด/ปิดของระบบออนไลน์เหล่านั้น

ต้องระบุเวลาให้บริการตามเวลาท้องถิ่น อย่ารวมเขตเวลาไว้ในค่า closes หากระบุเขตเวลาแล้ว Google จะไม่สนใจข้อมูลนี้

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

validFrom DateTime ไม่บังคับ

เมื่อใช้ในข้อกำหนดของ Restaurant พร็อพเพอร์ตี้นี้จะระบุวันที่ที่เวลาทำการที่ระบุโดย opens และ closes สำหรับร้านอาหารถูกต้อง

เช่น หากชั่วโมงที่ระบุมีผลกับทั้งปี 2017 คุณก็ตั้งค่า validFrom เป็น "2017-01-01T00:00:00-07:00" และ validThrough เป็น "2017-12-31T23:59:59-07:00"

เมื่อใช้ในข้อกำหนดของ Service แล้ว validFrom จะระบุวันที่เริ่มต้นซึ่งเริ่มต้นจากที่ผู้ใช้สามารถสั่งซื้อได้

หากไม่ได้ระบุที่พักนี้ในฟีด Google จะถือว่าร้านอาหารหรือบริการพร้อมให้บริการทุกวัน

นอกเหนือจากวันที่แล้ว คุณยังต้องระบุส่วนของเวลาและเขตเวลาของค่าด้วย

สำหรับเขตเวลา ให้ใช้เขตเวลาของร้านอาหารหรือบริการ

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

validThrough DateTime ไม่บังคับ

เมื่อใช้ใน Restaurant วันที่หลังจากเวลาทำการที่ระบุโดย opens และ closes จะไม่ถูกต้อง

เช่น หากชั่วโมงที่ระบุมีผลกับทั้งปี 2017 คุณก็ตั้งค่า validFrom เป็น "2017-01-01T00:00:00-07:00" และ validThrough เป็น "2017-12-31T23:59:59-07:00"

เมื่อใช้ในข้อกำหนดของ Service แล้ว validThrough จะระบุวันที่สิ้นสุดที่เกินคำสั่งซื้อของผู้ใช้ไม่ได้อีกต่อไป

หากไม่ได้ระบุที่พักนี้ในฟีด Google จะถือว่าร้านอาหารหรือบริการพร้อมให้บริการทุกวัน

นอกเหนือจากวันที่แล้ว คุณยังต้องระบุส่วนของเวลาและเขตเวลาของ DateTime ด้วย

สำหรับเขตเวลา ให้ใช้เขตเวลาของร้านอาหารหรือบริการ

เวลาสำหรับ validThrough เป็นช่วงเวลาพิเศษ ตัวอย่างเช่น หากตั้งค่าเวลานั้นเป็น 18:00 น. จะใช้เวลาได้ถึง 17:59:59 น.

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

deliveryHours อาร์เรย์ของ ServiceDeliveryHoursSpecification หรืออาร์เรย์ของ AdvanceServiceDeliveryHoursSpecification มีเงื่อนไข

ข้อกําหนดเวลาที่จัดส่งหรือสั่งกลับบ้าน

ต้องระบุพารามิเตอร์นี้เว้นแต่ร้านอาหารจะปิดกิจการ (หมายความว่ามีการตั้งค่า opens และ closes และเท่ากัน

  • ServiceDeliveryHoursSpecification: ใน เวลาเปิด/ปิด คุณสามารถกำหนดเวลา "เปิดทำการ" และ "ปิดทำการ" เมื่อผู้ใช้สามารถสั่งซื้อโดยเร็วที่สุดได้
  • AdvanceServiceDeliveryHoursSpecification: คุณสามารถตั้งค่าเวลา "เปิดทำการ" และ "ปิดทำการ" ซึ่งผู้ใช้เลือกที่จะสั่งล่วงหน้าได้ในช่วงเวลาทำการ

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ OpeningHoursSpecification

ตัวอย่างที่ 1

// Ordering times for Monday through Friday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      "@type": "AdvanceServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T12:00:00", // Advance ordering begins at noon
      "closes": "T23:59:59", // Advance ordering ends at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    },
    {
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T10:00:00", // ASAP ordering begins at 10AM
      "closes": "T14:00:00", // ASAP ordering ends at 2PM
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
},

ตัวอย่างที่ 2

// Ordering times for Saturday and Sunday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      // In this case advance orders are unavailable on Saturday and Sunday
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "T12:00:00", // ASAP orders start at noon
      "closes": "T23:59:59", // ASAP orders end at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
}

ตัวอย่าง 3

"hoursAvailable": {
  "@type": "OpeningHoursSpecification",
  "validFrom": "2016-02-01T00:00:00-07:00",
  "validThrough": "2016-03-01T00:00:00-07:00",
  "opens": "T08:00:00",  // Ordering begins at 8:00AM and ends at 6:00PM.
                         // ASAP and and advance orders are restricted to this
                         // time frame since the user won't be able to place
                         // orders outside of this window.
  "closes": "T18:00:00",
  "deliveryHours": {
    "@type": "ServiceDeliveryHoursSpecification",
    "deliveryLeadTime": {
      "@type": "QuantitativeValue",
      "value": "60",
      "unitCode": "MIN"
    }
  }
},

ตัวอย่าง 4

// List hours available for 2017 and 2018
"hoursAvailable": [
  {
    "@type": "OpeningHoursSpecification",
    // Array containing advance order hours for each day
    "deliveryHours": [
      {
        // Open 10:00AM to 9:29:59PM on Mondays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Monday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Tuesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Tuesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Wednesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Wednesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Thursdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "dayOfWeek": [
          "Thursday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Fridays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Friday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Saturdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Saturday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 11:00AM to 6:59:59PM on Sundays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Sunday"
        ],
        "opens": "T11:00:00",
        "closes": "T19:00:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      }
    ]
  }
],

PackagingDetails

เพิ่มบริบท gs1 เพื่อใช้ประเภทนี้: "@context": ["http://gs1.org/voc/", "http://schema.org"] และเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItem หรือ MenuItemOption

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท PackagingDetails

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะแสดงเป็น "PackagingDetails" เสมอ
packagingRecyclingProcessType ข้อความ ไม่บังคับ ประเภทกระบวนการรีไซเคิลบรรจุภัณฑ์ตาม gs1:PackagingRecyclingProcessTypeCode เช่น http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE หรือ http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails ไม่บังคับ รายละเอียดเงินฝากทดสอบที่ส่งคืนได้ตามที่ระบุไว้ใน gs1:ReturnablePackageDepositDetails เช่น ขวดและกระป๋องมีพัสดุที่ส่งคืนได้

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภท PackagingDetails

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

PaymentChargeSpecification

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท PaymentChargeSpecification

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ จะเป็น "PaymentChargeSpecification" เสมอ
@id URL ไม่บังคับ ตัวระบุสำหรับ PaymentChargeSpecification
price ตัวเลข ต้องระบุ จำนวนเงินที่เรียกเก็บทั้งหมด เช่น "6.00" โดยไม่มีสัญลักษณ์สกุลเงิน
priceCurrency ข้อความ ต้องระบุ รหัสสกุลเงินแบบ ISO 4217 ที่เป็นตัวอักษร 3 ตัวของราคา เช่น "USD"
eligibleTransactionVolume PriceSpecification ไม่บังคับ ปริมาณธุรกรรมเป็นหน่วยเงินซึ่งมีข้อกำหนดในการชำระเงินนี้ถูกต้อง เช่น การระบุปริมาณการซื้อขั้นต่ำ
eligibleQuantity QuantitativeValue ไม่บังคับ จำนวนการสั่งซื้อที่เรียกเก็บเงินการชำระเงินได้ เช่น คุณใช้พร็อพเพอร์ตี้นี้เพื่อกำหนดให้มีจำนวนสินค้าขั้นต่ำในคำสั่งซื้อได้
validFrom DateTime ไม่บังคับ วันที่และเวลา (รวมถึงเขตเวลา) ที่การเรียกเก็บค่าชำระเงินที่ระบุมีผล เช่น "2017-05-01T07:00:00-07:00" ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา
validThrough DateTime ไม่บังคับ วันที่และเวลา (รวมถึงเขตเวลา) ที่การเรียกเก็บค่าชำระเงินที่ระบุไม่ถูกต้อง เช่น "2017-05-01T07:30:00-07:00" เวลาสำหรับ validThrough จะเป็นสุดพิเศษ ตัวอย่างเช่น หากตั้งค่าเวลานั้นเป็น 18: 00 น. เวลานั้นจะเป็น 17:59:59 น. เท่านั้น ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ PaymentChargeSpecification

ตัวอย่าง

"priceSpecification": [{
  "@type": "PaymentChargeSpecification",
  "@id": "http://www.provider.com/paymentCharge/bar",
  "priceCurrency": "USD",
  "price": "6.00", // Charges $6 for processing fee
  "eligibleQuantity": {
    "@type": "QuantitativeValue",
    "minValue": 2 // Minimum of two items required
  }
}]

นอกเหนือจาก "@type": ["PaymentChargeSpecification"] คุณขยายออบเจ็กต์ได้ด้วย UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]) ส่วนขยายให้พร็อพเพอร์ตี้อีก 2 รายการที่จำเป็นสำหรับค่าบริการซึ่งคำนวณเป็นเปอร์เซ็นต์

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
referenceQuantity QuantitativeValue ต้องระบุ จำนวนการอ้างอิงที่ใช้ราคาที่กำหนด เช่น referenceQuantity ของค่า 10 ที่มี unitCode เป็น "P1" จะเท่ากับ 10% ของมูลค่าการสั่งซื้อ ปัจจุบันรองรับเฉพาะ unitCode "P1" เท่านั้น
basePrice ตัวเลข ไม่บังคับ ค่าใช้จ่ายพื้นฐานเพิ่มเติมจาก referenceQuantity เช่น referenceQuantity ของ 10 ที่มี unitCode เป็น "P1" และ basePrice เป็น 5 ในสกุลเงิน USD จะเท่ากับ $5 + 10% ของมูลค่าการสั่งซื้อ ค่าเริ่มต้นคือ 0

ตัวอย่างค่าธรรมเนียม Takeout

Google อนุญาตให้คุณระบุค่าธรรมเนียมต่างๆ แก่ผู้ใช้ล่วงหน้าได้โดยใช้ Offer.PriceSpecification ของเอนทิตีบริการ

โปรดทราบว่าขณะนี้เรารองรับ PaymentChargeSpecification เพียง 1 รายการเท่านั้น รวมค่าธรรมเนียมทุกประเภทไว้ใน PaymentChargeSpecification เดียว

หากไม่มีค่าธรรมเนียม ระบบจะไม่แสดง Offer.PriceSpecification

  • ตัวอย่างที่ 1: ค่าบริการคือ 5% ของยอดรวมย่อยของรถเข็น
  • ตัวอย่างที่ 2: ค่าบริการเท่ากับ 150 บาท
  • ตัวอย่างที่ 3: ค่าธรรมเนียมสัมภาระเป็น $0.1 และค่าบริการคือ 5% ของยอดรวมย่อยในรถเข็น
  • ตัวอย่างที่ 4: ค่าธรรมเนียมสัมภาระคือ $0.1 และค่าบริการ $1
  • ตัวอย่างที่ 5: ค่าบริการคือ 5% และเคล็ดลับที่จำเป็นคือ 10% ของยอดรวมย่อยในรถเข็น

ตัวอย่างที่ 1

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

ตัวอย่างที่ 2

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]

ตัวอย่าง 3

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]

ตัวอย่าง 4

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]

ตัวอย่างที่ 5

priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

สถานที่

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท Place

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ นี่คือ "Place" เสมอ
address PostalAddress ต้องระบุ ที่อยู่ของสถานที่

ตัวอย่างต่อไปนี้แสดงองค์ประกอบสถานที่

ตัวอย่าง

{
  "@type": "Place", // area2
  "address": {
    "@type": "PostalAddress",
    "postalCode": "94041",
    "addressCountry": "US"
  }
},

PostalAddress

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท PostalAddress

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะเป็น "PostalAddress" เสมอ
addressLocality ข้อความ ต้องระบุ* ย่านหรือเมือง เช่น "San Francisco"
addressRegion ข้อความ ต้องระบุ* ภูมิภาคหรือรัฐ เช่น "CA"
postalCode ข้อความ ต้องระบุ* รหัสไปรษณีย์ เช่น "94102"
streetAddress ข้อความ ไม่บังคับ ที่อยู่ เช่น "123 ถนนสุขุมวิท"
addressCountry ข้อความ ต้องระบุ รหัสประเทศ 2 ตัวอักษรตามมาตรฐาน ISO 3166-1 alpha-2 เช่น "US"

ผู้ให้บริการนำส่งจะแสดงรายการพร็อพเพอร์ตี้เหล่านี้เพื่อกำหนด Service.areaServed ที่ให้บริการได้

เมื่อใช้ใน Restaurant.address จะต้องมีพร็อพเพอร์ตี้ทั้งหมดที่แสดงใน PostalAddress

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ PostalAddress

ตัวอย่าง

"address": {
  "@type": "PostalAddress",
  "streetAddress": "12345 Bar Avenue",
  "addressLocality": "San Francisco",
  "addressRegion": "CA",
  "postalCode": "94124",
  "addressCountry": "US"
},

PriceSpecification

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท PriceSpecification

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ค่าจะเป็น "PriceSpecification" เสมอ
@id URL ไม่บังคับ ตัวระบุสำหรับ PriceSpecification
minPrice ตัวเลข ไม่บังคับ ราคาต่ำสุดหากราคาเป็นช่วง
maxPrice ตัวเลข ไม่บังคับ ราคาสูงสุดหากราคาเป็นช่วง
priceCurrency ข้อความ ต้องระบุ รหัสสกุลเงินแบบ ISO 4217 ที่เป็นตัวอักษร 3 ตัวของราคา เช่น "USD"
eligibleQuantity QuantitativeValue ไม่บังคับ จำนวนการสั่งซื้อที่ข้อมูลจำเพาะด้านราคาถูกต้อง เช่น ราคาอาจเป็น 60 บาทต่อปอนด์หรือ 2 ชิ้นต่อ 1 ดอลลาร์

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ PriceSpecification

ตัวอย่างที่ 1

"eligibleTransactionVolume": {
  "@type": "PriceSpecification",
  "minPrice": "20.00", // Minimum order price for delivery is $20
  "priceCurrency": "USD"
}

PropertyValue

ใช้คู่ค่าพร็อพเพอร์ตี้เพื่ออธิบายตัวเลือกใน MenuItemOption

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้สำหรับประเภท PropertyValue

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ จะเป็น "PropertyValue" เสมอ
name ข้อความ ต้องระบุ

ชื่อหรือประเภทตัวเลือก

ชื่อที่ถูกต้องเมื่อใช้ใน MenuItem มีดังนี้

  • "SIZE": ขนาดของ MenuItem เช่น เล็ก กลาง หรือใหญ่
  • "ตัวเลือก": รูปแบบอื่นๆ นอกเหนือจากขนาด (เช่น อาหารที่มาเป็นสลัดหรือแซนด์วิช) หากคุณแยกระหว่าง "SIZE" และ "OPTION" ไม่ได้ ให้ใช้ "OPTION"

ชื่อที่ถูกต้องเมื่อใช้ใน AddOnMenuItem:

  • "APPLICABLE_ITEM_OPTION": ตัวเลือกสำหรับส่วนเสริมที่ใช้ได้เฉพาะเมื่อใช้กับ MenuItem ที่มี "ขนาด/ตัวเลือก" ที่เกี่ยวข้องเท่านั้น
  • "PIZZA_SIDE": ใช้ได้กับพิซซ่าเท่านั้น ส่วนเสริมนี้ใช้ได้กับพิซซ่าทั้ง 2 ส่วน/ทั้งถาด (เช่น ท็อปปิ้งด้านซ้าย ด้านขวา หรือพิซซ่าทั้งหน้า)
  • "SIZE": ตัวเลือกเพื่อกำหนดขนาดของส่วนเสริม (เช่น เฟรนช์ฟรายขนาดใหญ่เป็นส่วนเสริมสำหรับชุดอาหาร)
  • "OPTION": รูปแบบอื่นนอกเหนือจากขนาด หากคุณแยกระหว่าง "SIZE" และ "OPTION" ไม่ได้ ให้ใช้ "OPTION"
value ข้อความ ต้องระบุ

ค่าสำหรับตัวเลือก ค่าอาจเป็นสตริงใดก็ได้และแสดงตามที่เป็น ค่าที่ถูกต้องต่อไปนี้

  • "PIZZA_SIDE": ค่าที่ตรงกันควรเป็น "PIZZA_SIDE_LEFT", "PIZZA_SIDE_RIGHT" หรือ "PIZZA_SIDE_WHOLE" สำหรับพิซซ่า
  • "APPLICABLE_ITEM_OPTION": ค่านี้ควรอยู่ในตัวเลือก "OPTION/SIZE" ที่เกี่ยวข้องสำหรับเมนูItemOptions ของ MenuItem ระดับบนสุด

QuantitativeValue

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท QuantitativeValue

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ โดยจะเป็น "QuantitativeValue" เสมอ
value ตัวเลข ไม่บังคับ ค่าของค่าเชิงปริมาณหรือโหนดค่าพร็อพเพอร์ตี้
unitCode ข้อความหรือ URL ไม่บังคับ

หน่วยวัดในแบบรหัสทั่วไป UN/CEFACT หรือ URL

สามารถใช้โค้ดอื่นนอกเหนือจาก UN/CEFACT Common Code โดยมีคำนำหน้าตามด้วยโคลอน

maxValue ตัวเลข ไม่บังคับ มูลค่าที่สูงกว่าของลักษณะหรือพร็อพเพอร์ตี้บางรายการ
minValue ตัวเลข ไม่บังคับ ค่าที่ต่ำกว่าของลักษณะหรือพร็อพเพอร์ตี้บางรายการ

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภท QuantitativeValue

ตัวอย่างที่ 1

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}

ตัวอย่างที่ 2

"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

ตัวอย่าง 3

"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

ร้านอาหาร

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้สำหรับประเภท Restaurant

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ นี่คือ "ร้านอาหาร" เสมอ
@id URL ต้องระบุ ตัวระบุที่ไม่ซ้ำกันของร้านอาหารหรือผู้ให้บริการจัดส่ง เช่น "http://www.provider.com/326" โดยที่ "326" เป็นตัวระบุที่ไม่ซ้ำของร้านอาหาร
name ข้อความ ต้องระบุ ข้อความที่ระบุ Restaurant ได้ในระหว่างขั้นตอนการสั่งซื้อ
url URL ต้องระบุ URL ในโดเมนของคุณที่แสดงถึงร้านอาหาร เช่น "http://www.provider.com/someRestaurant"
sameAs URL ไม่บังคับ เว็บไซต์อย่างเป็นทางการของร้านอาหาร เช่น "http://www.someRestaurant.com"
email ข้อความ ไม่บังคับ อีเมลติดต่อของร้านอาหาร
description ข้อความ ไม่บังคับ คำอธิบายของร้านอาหาร
telephone ข้อความ ต้องระบุ

หมายเลขโทรศัพท์ในรูปแบบต่อไปนี้

"[+][country_code][phone_#_with_area_code]"

เช่น "+16501234567"

priceRange ข้อความ ไม่บังคับ ราคาที่หลากหลาย เช่น "$$" ($-Inexpensive, $$-Moderate, $$$-Expensive, $$$$-Very Expensive).
logo URL Optional Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png".
image URL Optional Image of the restaurant.
servesCuisine Array of Text Optional Food types that are served at the restaurant. For example, ["sushi","Asian fusion"].
address PostalAddress Required* Address of the restaurant.
geo GeoCoordinates Optional* Geographic coordinates of the restaurant.
suitableForDiet Array of RestrictedDiet Optional Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list.
aggregateRating AggregateRating Optional Overall rating, based on a collection of reviews or ratings of the restaurant.
additionalProperty Array of name value string pairs Optional

A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n".

For example "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", // รหัสประเทศ (+1) ต้องระบุ
  "servesCuisine": [
    "Indian-Mexican Fusion"
  ]
},
  
  

ตัวอย่างที่ 2

{
  "@type": "Restaurant",
  "@id": "http://www.example.com/threebrotherstacos",
  "name": "Three Brothers Tacos",
  "address": {
        "@type": "PostalAddress",
        "addressLocality": "Mountain View",
        "addressRegion": "CA",
        "postalCode": "94041",
        "streetAddress": "123 Foo St",
        "addressCountry": "US"
  },
  "additionalProperty": [
    {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"}
  ]
}

ดูตัวอย่างเพิ่มเติมของเอนทิตี Restaurant ได้ที่ตัวอย่างฟีดร้านอาหารและเมนู

ReturnablePackageDepositDetails

หากต้องการใช้ประเภทนี้ ให้เพิ่มบริบท gs1: "@context":

["http://gs1.org/voc/", "http://schema.org"]

จากนั้นเพิ่ม FoodBeverageTobaccoProduct ลงในประเภทของ MenuItem หรือ MenuItemOption ที่เหมาะสม

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท ReturnablePackageDepositDetails

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ โดยค่าจะเป็น "ReturnablePackageDepositDetails" เสมอ
returnablePackageDepositAmount gs1:PriceSpecification ไม่บังคับ จำนวนเงินฝากสำหรับรายการนี้ต่อ gs1:PriceSpecification เช่น จำนวนเงินฝาก $0.25 ต่อกระป๋อง

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภท ReturnablePackageDepositDetails

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

บริการ

อธิบายการนำส่งการดำเนินการสั่งซื้อจากต้นทางถึงปลายทางจากร้านอาหารไปยังสถานที่ตั้งทางภูมิศาสตร์โดยองค์กรจัดส่ง

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท Service

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ

ประเภทฟีด

  • Service: ใช้ประเภทนี้สำหรับฟีดบริการที่ใช้งานอยู่ทั้งหมด
  • DisabledService: ใช้ประเภทนี้เฉพาะเมื่อคุณต้องปิดใช้เอนทิตีบริการเนื่องจากเกิดเหตุการณ์ที่ไม่คาดคิด และคุณไม่ทราบว่าระบบจะเริ่มต้นบริการอีกครั้งเมื่อใด
@id URL ต้องระบุ ตัวระบุสำหรับบริการดำเนินการตามคำสั่งซื้อ เช่น "http://www.provider.com/service/1"
description ข้อความ ไม่บังคับ คำอธิบายของรายการ
serviceType ข้อความ ต้องระบุ ประเภทบริการที่เสนอ ค่าที่เป็นไปได้คือ "DELIVERY" หรือ "TAKEOUT"
provider Restaurant ต้องระบุ การอ้างอิงถึงตัวระบุที่ไม่ซ้ำกันของร้านอาหาร เช่น "http://www.provider.com/someRestaurant"
areaServed อาร์เรย์ของ GeoShape, Place หรือ GeoCircle มีเงื่อนไข พื้นที่ทางภูมิศาสตร์ที่มีบริการ ช่องนี้เป็นช่องที่ไม่บังคับโดยค่าเริ่มต้น แต่ต้องระบุหาก serviceType เป็น "DELIVERY"
hoursAvailable อาร์เรย์ของ OpeningHoursSpecification ต้องระบุ ช่วงเวลาที่บริการนี้ให้บริการ
specialOpeningHoursSpecification อาร์เรย์ของ OpeningHoursSpecification, ServiceDeliveryHoursSpecification หรือ AdvanceServiceDeliveryHoursSpecification ไม่บังคับ

เวลาที่ลบล้าง OpeningHoursSpecification หรือเวลาที่ดำเนินการตามคำสั่งซื้อทั่วไปมากกว่า โดยทั่วไปแล้ว คุณจะใช้ช่องนี้เพื่อกำหนดวันหยุดและการปิดชั่วคราวหรือการเปลี่ยนแปลงประเภทอื่นๆ ในเวลาเป็นชั่วโมง

กำหนดช่วงวันที่พิเศษโดยใช้พร็อพเพอร์ตี้ validFrom และ validThrough คุณต้องระบุเวลาและเขตเวลาเมื่อระบุพร็อพเพอร์ตี้เหล่านี้

offers อาร์เรย์ของ Offer มีเงื่อนไข

รายละเอียดเกี่ยวกับข้อเสนอให้จัดส่งสำหรับร้านอาหารที่ระบุ ช่องนี้เป็นช่องที่ไม่บังคับโดยค่าเริ่มต้น แต่ต้องระบุหาก serviceType เป็น "DELIVERY"

คุณจะใส่พร็อพเพอร์ตี้ Offer.priceSpecification หรือไม่ก็ได้ในบริการ ไม่ได้ใช้พร็อพเพอร์ตี้ Offer อื่นๆ ที่นี่

hasOfferCatalog [Menu, OfferCatalog] ต้องระบุ

ระบุเมนูสำหรับบริการนี้ คุณใช้เมนูที่ต่างกันสำหรับแต่ละบริการได้ (เช่น สั่งกลับบ้าน จัดส่ง และจัดเลี้ยง)

คุณต้องระบุทั้ง Menu และ OfferCatalog สำหรับประเภท เช่น

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty อาร์เรย์ของ {name, value} ไม่บังคับ

ข้อมูลการกำหนดค่าบริการที่ไม่บังคับ รายการควรเป็นออบเจ็กต์ที่มีคีย์ name ซึ่งสอดคล้องกับชื่อช่องที่ไม่บังคับ คีย์ value คือค่าที่เกี่ยวข้องตามบริบทสำหรับช่องนี้

ดูข้อมูลเพิ่มเติมเกี่ยวกับชื่อและค่าที่เจาะจงได้ในข้อมูลอ้างอิง ServingConfig

"additionalProperty": [{
  "name": "disableOrderInstructions",
  "value": false
}, {
  "name": "disableMenuItemSpecialInstructions",
  "value": false
}, {
  "name": "disableTipWidget",
  "value": false
}, {
  "name": "disablePromoWidget",
  "value": false
}, {
  "name": "menuItemSpecialInstructionsMaxLength",
  "value": 256
}, {
  "name": "orderInstructionsMaxLength",
  "value": 256
}]
potentialAction URL ไม่บังคับ

มี URL สำหรับบริการส่ง/สั่งกลับบ้านที่จะใช้ขณะย้ายข้อมูลจากการสั่งอาหารตั้งแต่ต้นจนจบเพื่อเปลี่ยนเส้นทาง ตัวอย่างเช่น "potentialAction": { "url": "https://fopatestagent.com/ordering/merchant-1/delivery" }

ตัวอย่างต่อไปนี้แสดงการใช้งานประเภทบริการ

ตัวอย่าง

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

ดูตัวอย่างเพิ่มเติมของเอนทิตีบริการได้ที่ตัวอย่างฟีดบริการ

ServiceDeliveryHoursSpecification

แสดงเวลาที่ดำเนินการตามคำสั่งซื้อเพื่อให้ผู้ใช้กำหนดเวลาคำสั่งซื้อแบบ ASAP สำหรับจัดส่งและสั่งกลับบ้าน

โดยปกติแล้ว ค่าของ opens จะน้อยกว่าค่าของ closes การใช้พร็อพเพอร์ตี้ opens และ closes ต้องเป็นไปตามหลักเกณฑ์ต่อไปนี้

  • พร็อพเพอร์ตี้ opens และ closes เป็นพร็อพเพอร์ตี้ที่ไม่บังคับสำหรับ ServiceDeliveryHoursSpecification แต่ขอแนะนำอย่างยิ่งให้คุณระบุพร็อพเพอร์ตี้ดังกล่าวด้วย
  • ต้องระบุเวลาให้บริการตามเวลาท้องถิ่น อย่าใส่เขตเวลาในค่า opens หรือ closes หากมีการระบุเขตเวลา Google จะไม่สนใจข้อมูลเขตเวลา
  • หากไม่ได้ระบุ opens และ closes ไว้อย่างชัดแจ้ง เราจะถือว่าการสั่งซื้อ "โดยเร็วที่สุด" พร้อมใช้งานทุกวันตลอดเวลา
  • หาก opens และ closes เท่ากัน เราจะถือว่าคำสั่งซื้อ "โดยเร็วที่สุด" ไม่พร้อมใช้งาน
  • หาก opens มากกว่า closes ระบบจะตีความเวลาปิดทำการเป็นวันถัดไป ตัวอย่างเช่น หากตั้งเวลาทำการเป็นวันที่ 1 มกราคม เวลา 17:00 น. และปิดทำการเป็น 2:00 น. ระบบจะนับว่าร้านอาหารปิดในวันที่ 2 มกราคม เวลา 02:00 น.

ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ของประเภท ServiceDeliveryHoursSpecification

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะแสดงเป็น "ServicedeliveryHoursSpecification" เสมอ
validFrom DateTime ไม่บังคับ

วันที่และเวลา (รวมถึงเขตเวลา) ที่จะดำเนินการตามคำสั่งซื้อ ASAP ของผู้ใช้ให้สำเร็จได้ เช่น "2017-05-01T07:00:00-07:00" หากไม่ได้ตั้งค่าพร็อพเพอร์ตี้นี้ ระบบจะถือว่ามีการใช้งานได้ทุกวัน

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

validThrough DateTime ไม่บังคับ

วันที่และเวลา (รวมถึงเขตเวลา) ที่ดำเนินการตามคำสั่งซื้อ ASAP ของผู้ใช้ไม่สำเร็จหลังจากนั้น เช่น "2017-05-01T07:00:00-07:00" หากไม่ได้ตั้งค่าพร็อพเพอร์ตี้นี้ ระบบจะถือว่าเป็นค่าที่ถูกต้องทุกวัน

เวลาสำหรับ validThrough เป็นช่วงเวลาพิเศษ ตัวอย่างเช่น หากตั้งค่าเวลานั้นเป็น 18:00 น. จะใช้เวลาได้ถึง 17:59:59 น.

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

opens Time ไม่บังคับ

เวลาที่บริการนำส่งเริ่มต้นเพื่อให้ได้รับการดำเนินการตามคำสั่งซื้อ ASAP ของผู้ใช้โดยเร็วที่สุด เช่น "T10:30:00"

ต้องระบุเวลาให้บริการตามเวลาท้องถิ่น อย่ารวมเขตเวลาไว้ในค่า opens หากระบุเขตเวลาแล้ว Google จะไม่สนใจข้อมูลนี้

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

closes Time ไม่บังคับ

ช่วงเวลาที่บริการนำส่งสำหรับคำสั่งซื้อ ASAP ของผู้ใช้ไม่พร้อมให้บริการอีกต่อไป เช่น "T23:59:59"

เวลาสำหรับ closes เป็นช่วงเวลาพิเศษ ดังนั้นหากคุณตั้งค่าเวลาเปิด/ปิดสำหรับ ServiceDeliveryHoursSpecification นี้เป็น 10:00 และ 16:00 น. คำสั่งซื้อสุดท้ายคือ 15:59:59

ต้องระบุเวลาให้บริการตามเวลาท้องถิ่น อย่ารวมเขตเวลาไว้ในค่า closes หากระบุเขตเวลาแล้ว Google จะไม่สนใจข้อมูลนี้

ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา

dayOfWeek อาร์เรย์ของ DayOfWeek ไม่บังคับ

วันในสัปดาห์ที่บริการนี้พร้อมใช้งานสำหรับคำสั่งซื้อ ASAP ของผู้ใช้ ค่าที่ถูกต้องมีดังนี้

  • "วันจันทร์"
  • "วันอังคาร"
  • "วันพุธ"
  • "วันพฤหัสบดี"
  • "วันศุกร์"
  • "วันเสาร์"
  • "วันอาทิตย์"

หากไม่ระบุวันใดของสัปดาห์ ServiceDeliveryHoursSpecification จะมีผลกับทุกวัน

deliveryLeadTime QuantitativeValue ไม่บังคับ เวลานำส่งโดยประมาณในหน่วยนาทีหลังจากสั่งซื้อ เราแนะนําอย่างยิ่งให้คุณตั้งค่าพร็อพเพอร์ตี้นี้ ตั้งค่าช่อง value ของ QuantitativeValue เป็นจำนวนนาที และ unitCode เป็น "MIN"

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ ServiceDeliveryHoursSpecification

ตัวอย่างที่ 1

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "value": "60", // If no exact deliveryLeadTime, put a maximum time
    "unitCode": "MIN"
  }
},

ตัวอย่างที่ 2

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "minValue": "30",
    "maxValue": "50",
    "unitCode": "MIN"
  }
}
    

Enum

RestrictedDiet

ประเภท RestrictedDiet มีค่าที่เป็นไปได้ต่อไปนี้

  • http://schema.org/DiabeticDiet
  • http://schema.org/GlutenFreeDiet
  • http://schema.org/HalalDiet
  • http://schema.org/HinduDiet
  • http://schema.org/KosherDiet
  • http://schema.org/LowCalorieDiet
  • http://schema.org/LowFatDiet
  • http://schema.org/LowLactoseDiet
  • http://schema.org/LowSaltDiet
  • http://schema.org/VeganDiet
  • http://schema.org/VegetarianDiet