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

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

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

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

รูปแบบ DateTime และเวลา

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

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

เช่น

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

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

// Time format:
THH:MM:SS

เช่น

T08:08:00 // 8:08 AM

โปรดคำนึงถึงสิ่งต่อไปนี้ทุกครั้งที่คุณระบุ DateTime หรือ Time

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

ซองจดหมาย

รหัสเริ่มต้นของฟีดแคตตาล็อกอาหารควรมีส่วน "Envelope"

"Envelope" คือโครงสร้างระดับบนสุดของฟีดแต่ละรายการ และต้องเป็นรูปแบบที่ขึ้นต้นด้วย DataFeed ที่มีพร็อพเพอร์ตี้ต่อไปนี้

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

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

วันที่และเวลาในรูปแบบ ISO_OFFSET_DATE_TIME ที่แก้ไขรายการในฟีดนี้ หากไม่มีช่องนี้ ระบบจะถือว่าเวลาอัปเดตคือเวลาที่ระบบได้รับข้อความ Push (หรือมีการ 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

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

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

รายการเมนู "แซนวิชชีส" มี "ชีสให้เลือก" 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 น. และเวลาปิดเป็น 02: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 ไม่บังคับ

ใช้กับช่วงเวลาที่สะดวกรับบริการจัดส่งหรือสั่งกลับบ้าน

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

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

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

closes Time ไม่บังคับ

ใช้กับช่วงเวลาที่สะดวกสำหรับการจัดส่งหรือรับอาหารกลับบ้าน

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

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

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

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

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

  • "วันจันทร์"
  • "วันอังคาร"
  • "Wednesday"
  • "วันพฤหัสบดี"
  • "Friday"
  • "วันเสาร์"
  • "Sunday"

หากคุณไม่ได้ระบุวันในสัปดาห์ AdvanceServiceDeliveryHoursSpecification จะมีผลกับทุกๆ วัน

serviceTimeInterval Duration ต้องระบุ

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

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

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

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}
"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
    }
  }
]
"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รายการเดียวเท่านั้น รวมค่าธรรมเนียมทุกประเภทไว้เป็นค่าธรรมเนียมเดียว DeliveryChargeSpecification

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

หากไม่มีค่าธรรมเนียม ให้เว้น Offer.PriceSpecification ไว้

  • ตัวอย่างที่ 1: ค่าธรรมเนียมการนำส่งคือ 5% ของยอดรวมย่อยในรถเข็น
  • ตัวอย่างที่ 2: ค่าธรรมเนียมการนำส่งคือ 50 บาท
  • ตัวอย่างที่ 3: ค่าธรรมเนียมการนำส่งคือ 50 บาท + 10% ของยอดรวมย่อยในรถเข็น
  • ตัวอย่างที่ 4: ค่าธรรมเนียมการนำส่งคือ 150 บาทและค่าธรรมเนียมถุงคือ 3 บาท
  • ตัวอย่างที่ 5: ค่าธรรมเนียมการนำส่งคือ 5% และค่าธรรมเนียมอำนวยความสะดวกคือ 2% ของยอดย่อยในรถเข็น
  • ตัวอย่าง 6: ค่าธรรมเนียมการนำส่งคือ 150 บาทและ 30 บาทต่อระยะทาง 1 กิโลเมตรเพิ่มเติม
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]
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%
  }
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]
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

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

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

ตัวอย่างนี้แสดง 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"
      }
    }
  ]
}

ตัวอย่างนี้แสดง 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 ข้อความ ต้องระบุ ซึ่งจะเป็น "MenuDisclaimer" เสมอ
@id URL ต้องระบุ ตัวระบุที่ไม่ซ้ำกันสำหรับข้อจำกัดความรับผิดของเมนู
text ข้อความ ต้องระบุ ข้อความจำกัดความรับผิด เช่น "ปริมาณพลังงานที่ผู้ใหญ่ควรได้รับต่อวันโดยเฉลี่ยคือ 8700 kJ"
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 พร้อมให้บริการเมื่อใดและในราคาเท่าไร แต่ละช่วงเวลาควรมีเพียงข้อเสนอเดียวเท่านั้น คุณระบุข้อเสนอได้หลายรายการหากราคา/ความพร้อมให้บริการแตกต่างกันไปตามช่วงเวลาของวัน หากอาหารแตกต่างกันผ่านแอตทริบิวต์พื้นฐาน (เช่น ขนาดสำหรับพิซซ่า) ให้ใช้ 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

"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"
}
"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": "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 --
          ]
        }
      ]
    }
  ]
}
{
  "@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"
      }
    }
  ]
}
{
  "@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 เพิ่มเติมได้ในตัวอย่างฟีดร้านอาหารและเมนู

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

ดูตัวอย่าง Use Case ของ 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

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

{
  "@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"
  }
}
"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 หน่วยวัดจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ เช่น ระบบจะยอมรับ "Cal" แต่จะไม่ยอมรับ "cal"

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

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

number Cal_kcal_OR_kJ

เช่น "240 Cal"

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

ปริมาณคาร์โบไฮเดรต โดยปกติจะแสดงเป็น g โดยใช้รูปแบบต่อไปนี้

number g_OR_mg

เช่น "7 g"

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

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

number g_OR_mg

เช่น "12 mg"

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

ปริมาณไขมัน ซึ่งปกติจะแสดงเป็น g โดยใช้รูปแบบต่อไปนี้

number g_OR_mg

เช่น "42 กรัม"

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

จำนวน g หรือ mg ของไฟเบอร์โดยใช้รูปแบบต่อไปนี้

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

จำนวน g หรือ mg ของโปรตีนโดยใช้รูปแบบต่อไปนี้

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

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

number g_OR_mg
servingSize ข้อความ ไม่บังคับ ขนาดที่แนะนำต่อหน่วยบริโภคเป็น mL, L, g หรือ kg ในแง่ของปริมาณหรือมวล
sodiumContent ข้อความ ไม่บังคับ

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

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

จำนวน g หรือ mg ของน้ำตาล โดยใช้รูปแบบต่อไปนี้

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

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

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

ปริมาณไขมันไม่อิ่มตัว ซึ่งปกติจะแสดงเป็น g โดยใช้รูปแบบต่อไปนี้

number g_OR_mg

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

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},
{
  "@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 ไม่บังคับ วันที่และเวลา หรือเฉพาะเวลาที่ข้อเสนอพร้อมให้บริการ เช่น หากเสิร์ฟแพนเค้กตั้งแต่เวลา 07:00 น. ค่าของช่องนี้อาจมีลักษณะดังนี้ "2017-05-01T07:00:00-07:00" ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา
availabilityEnds DateTime หรือ Time ไม่บังคับ วันที่และเวลา หรือเฉพาะเวลาที่ข้อเสนอไม่พร้อมให้บริการ เวลานี้ไม่รวมเวลาอื่น เช่น หากความพร้อมให้บริการแพนเค้กสิ้นสุดลงเวลา 10:00 น. แพนเค้กสุดท้ายจะเสิร์ฟได้เวลา 09:59:59 น. ค่าของช่องนี้จึงอาจมีลักษณะดังนี้ "2017-05-01T10:00:00-07:00" ดูข้อมูลเพิ่มเติมได้ที่รูปแบบวันที่และเวลา
availableDay อาร์เรย์ของ DayOfWeek ไม่บังคับ

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

  • "วันจันทร์"
  • "วันอังคาร"
  • "Wednesday"
  • "วันพฤหัสบดี"
  • "Friday"
  • "วันเสาร์"
  • "Sunday"

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

validFrom DateTime ไม่บังคับ

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

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

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

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

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

วันที่และเวลา (รวมถึงเขตเวลา) ที่หลังจากนั้นจะไม่ได้ใช้ราคาที่ระบุอีกต่อไป เช่น พาสต้ามีราคา 320 บาทในช่วงกลางวัน และ 360 บาทในช่วงเย็น เวลาของ 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

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

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

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

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

ตัวอย่างต่อไปนี้แสดงความพร้อมให้บริการตั้งแต่เวลา 09:00-10:59:59 น. ในวันอังคาร พุธ และศุกร์ แต่เวลา 08:00-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"]
}

ตัวอย่างต่อไปนี้แสดงการตั้งค่าจำนวนที่มีสิทธิ์ของรายการเมนูเสริมเพื่อให้ผู้ใช้สั่งอาหารรายการนั้นได้สูงสุด 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
     }
  }
}

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

{
  "@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 น. และเวลาปิดเป็น 02: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 พร็อพเพอร์ตี้นี้จะระบุเวลาเปิดของร้านอาหารในวันในสัปดาห์ที่ระบุ เช่น 06:30 น. จะแสดงเป็น "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 จะถือว่าร้านอาหารหรือบริการพร้อมให้บริการทุกวัน

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

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

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

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

// 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"
    }
  ]
}
"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"
    }
  }
},
// 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 เพียงรายการเดียวเท่านั้น รวมค่าธรรมเนียมทุกประเภทไว้ในPaymentChargeSpecificationเดียว

หากไม่มีค่าธรรมเนียม ให้เว้น Offer.PriceSpecification ไว้

  • ตัวอย่างที่ 1: ค่าบริการคือ 5% ของยอดรวมย่อยในรถเข็น
  • ตัวอย่างที่ 2: ค่าบริการคือ 150 บาท
  • ตัวอย่างที่ 3: ค่าถุงพลาสติก $0.1 และค่าบริการ 5% ของยอดรวมย่อยในรถเข็น
  • ตัวอย่างที่ 4: ค่าถุงพลาสติก $0.1 และค่าบริการ $1
  • ตัวอย่างที่ 5: ค่าบริการคือ 5% และทิปที่ต้องจ่ายคือ 10% ของยอดย่อยในรถเข็น
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

สถานที่

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

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

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

ตัวอย่าง
{
  "@type": "Place", // area2
  "address": {
    "@type": "PostalAddress",
    "postalCode": "94041",
    "addressCountry": "US"
  }
},

PostalAddress

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

พร็อพเพอร์ตี้ ประเภท ความจำเป็น คำอธิบาย
@type ข้อความ ต้องระบุ ซึ่งจะเป็น "PostalAddress" เสมอ
addressLocality ข้อความ ต้องระบุ* ย่านหรือเมือง เช่น "San Francisco"
addressRegion ข้อความ ต้องระบุ* ภูมิภาคหรือรัฐ เช่น "CA"
postalCode ข้อความ ต้องระบุ* รหัสไปรษณีย์ เช่น "94102"
streetAddress ข้อความ ไม่บังคับ ที่อยู่ เช่น "1600 Amphitheatre Pkwy"
addressCountry ข้อความ ต้องระบุ รหัสประเทศแบบ ISO 3166-1 alpha-2 ที่เป็นอักษร 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 รายการในราคา 30 บาท

ตัวอย่างต่อไปนี้แสดงองค์ประกอบ 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 ที่มี "SIZE/OPTION" ที่เกี่ยวข้องเท่านั้น
  • "PIZZA_SIDE": สำหรับพิซซ่าเท่านั้น เป็นส่วนเสริมที่ใช้ได้กับพิซซ่าทั้งถาด/บางส่วน (เช่น ใส่เห็ดไว้ด้านซ้าย ด้านขวา หรือทั้งถาด)
  • "SIZE": ตัวเลือกสำหรับกำหนดขนาดของส่วนเสริม (เช่น เฟรนช์ฟรายขนาดใหญ่เป็นส่วนเสริมของคอมโบอาหาร)
  • "OPTION": รูปแบบอื่นๆ นอกเหนือจากขนาด หากแยกความแตกต่างระหว่าง "SIZE" กับ "OPTION" ไม่ได้ ให้ใช้ "OPTION"
value ข้อความ ต้องระบุ

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

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

QuantitativeValue

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

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

หน่วยวัดเป็น UN/CEFACT Common Code หรือ URL

รหัสที่ไม่ใช่ UN/CEFACT Common Code อาจใช้ร่วมกับคำนำหน้าตามด้วยโคลอน

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

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

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}
"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
  }
}
"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", // Country code (+1) is required
  "servesCuisine": [
    "Indian-Mexican Fusion"
  ]
},
  
  

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

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

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

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/restaurant-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 น. และเวลาปิดเป็น 02:00 น. ระบบจะตีความว่าร้านอาหารปิดให้บริการในวันที่ 2 มกราคม เวลา 02:00 น.

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

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

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

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

validThrough DateTime ไม่บังคับ

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

เวลาของ validThrough จะไม่รวมเวลาของรายการอื่นๆ ตัวอย่างเช่น หากตั้งค่าเวลาเป็น 18:00 น. เวลาดังกล่าวจะใช้งานได้จนถึง 17:59:59 น.

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

opens Time ไม่บังคับ

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

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

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

closes Time ไม่บังคับ

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

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

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

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

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

วันของสัปดาห์ที่บริการนี้พร้อมให้บริการสำหรับคำสั่งซื้อ "โดยเร็วที่สุด" ของผู้ใช้ ค่าที่ใช้ได้มีดังนี้

  • "วันจันทร์"
  • "วันอังคาร"
  • "Wednesday"
  • "วันพฤหัสบดี"
  • "Friday"
  • "วันเสาร์"
  • "Sunday"

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

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

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

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