Skema inventaris v1

Feed katalog makanan didasarkan pada entity DataFeed schema.org. Feed katalog makanan terdiri dari detail lokalitas restoran seperti alamat, menu, dan lokasi restoran, serta detail layanan restoran seperti biaya pengiriman, area pengiriman, dan item lainnya seperti yang ditentukan di bawah.

DataFeed berisi kumpulan elemen, yang masing-masing mewakili satu item yang dinyatakan dalam kosakata schema.org. Anda dapat menggunakan jenis DataFeed untuk memublikasikan semua data terstruktur dalam format JSON-LD.

Untuk mengetahui informasi tentang cara menggunakan spesifikasi ini untuk membuat feed, lihat Ringkasan integrasi inventaris.

Format DateTime dan Waktu

DateTime didasarkan pada jenis schema.org, dan, kecuali jika dinyatakan lain, harus mengikuti format ISO 8601 dan menyertakan tanggal, waktu, dan zona waktu. Gunakan sintaksis berikut untuk DateTime:

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

Contoh:

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 adalah waktu lokal untuk restoran atau zona waktu lokasi layanan tertentu, juga didasarkan pada jenis schema.org, dan juga harus mengikuti format ISO 8601. Waktu menggunakan sintaksis berikut:

// Time format:
THH:MM:SS

Contoh:

T08:08:00 // 8:08 AM

Perhatikan hal-hal berikut setiap kali Anda menentukan DateTime atau Time:

  • Awalan "T" sebelum waktu merupakan bagian dari format dan wajib diisi.
  • Zona waktu harus ditentukan untuk DATETIME. Ini tidak diperlukan untuk TIME.
  • Waktu harus ditentukan dalam waktu lokal untuk restoran atau layanan.

Amplop

Kode awal untuk feed katalog makanan harus berisi bagian "envelope".

"Envelop" adalah struktur tingkat teratas dari setiap feed, dan harus berupa DataFeed dengan properti berikut:

Properti Jenis Kebutuhan Deskripsi
@context URL Wajib Konteks yang digunakan; biasanya "http://schema.googleapis.com".
@type Teks Wajib Nama ini selalu "DataFeed".
dateModified DateTime Wajib

DateTime feed data yang terakhir diubah, dalam format ISO 8601.

Tanggal dan waktu dalam format ISO_OFFSET_DATE_TIME saat item dalam feed ini diubah. Jika kolom ini tidak ada, waktu update akan diasumsikan sebagai waktu saat pesan push diterima (atau crawling terjadi) di server Google.

Sebaiknya terapkan hal ini jika Anda menggunakan push dan crawl secara bersamaan. Stempel waktu ini harus ditentukan dengan zona waktu dan tingkat perincian milidetik; misalnya, "2016-12-28T06:30:00:123-07:00".

Dalam feed batch, pembuatan versi entity ditentukan melalui kolom dateModified dalam amplop feed.

dataFeedElement Array Menu atau Restaurant atau Service Wajib Satu atau beberapa item yang merupakan bagian dari feed ini. Lihat detailnya di bawah.

Contoh berikut menunjukkan amplop:

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

Untuk menggunakan jenis ini, tambahkan konteks gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Kemudian, tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem atau MenuItemOption yang sesuai.

Tabel berikut menjelaskan properti jenis AdditiveDetails:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "AdditiveDetails".
additiveName Teks Opsional Nama aditif.
additiveLevelOfContainment Teks Opsional Kode pembatasan per gs1:LevelOfContainmentCode. Misalnya http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM, atau http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN.

Contoh berikut menunjukkan penggunaan jenis 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

Item makanan atau minuman yang tercantum dalam item menu add-on MenuItem.

Tabel berikut mencantumkan properti untuk jenis AddOnMenuItem:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "AddOnMenuItem".
@id URL Wajib ID unik item menu add-on.
name Teks Wajib Teks yang mengidentifikasi AddOnMenuItem saat pengguna menjelajahi menu.
description Teks Opsional Deskripsi item menu add-on.
image URL Opsional

Gambar item menu add-on yang cocok dengan panduan berikut:

  • Rasio aspek 3:2
  • >
  • Resolusi minimum 600x400 piksel, 72 dpi
  • >
  • Resolusi yang direkomendasikan 1400x960 piksel, 72 dpi
offers Array Offer Wajib diisi*

Satu atau beberapa penawaran untuk menyediakan AddOnMenuItem ini.

Menjelaskan kapan dan dengan harga berapa AddOnMenuItem ini tersedia. Hanya satu penawaran yang valid pada waktu tertentu. Anda dapat memiliki banyak penawaran yang valid jika harga atau ketersediaan dapat berubah berdasarkan waktu. Jika add-on atau item berbeda melalui atribut dasar atau variasi pada item add-on itu sendiri (seperti kentang goreng kecil, sedang, dan besar sebagai add-on), gunakan properti hasMenuItemOption.

Default untuk Offer.eligibleQuantity adalah minimum 0, maksimum 1.

Properti Offer berikut digunakan di AddOnMenuItem:

  • Perlu Offer.sku
  • Perlu Offer.price
  • Perlu Offer.priceCurrency
  • Offer.availabilityStarts opsional
  • Offer.availabilityEnds opsional
  • Offer.availableDay opsional
  • Offer.validFrom opsional
  • Offer.validThrough opsional
  • Offer.eligibleQuantity opsional
  • Offer.inventoryLevel opsional
hasMenuItemOptions Array MenuItemOption Wajib diisi*

Array atribut dasar yang menjelaskan variasi pada item add-on itu sendiri (seperti kentang goreng kecil, sedang, dan besar sebagai add-on), untuk item menu add-on ini. Gunakan opsi untuk menentukan berbagai variasi yang tersedia untuk item menu add-on ini. Ada dua skenario yang dapat menyebabkan hal ini:

  • Variasi dasar ada pada item add-on itu sendiri (seperti kentang goreng kecil, sedang, dan besar sebagai add-on)
  • Variasi dasar untuk item menu yang terkait dengan add-on ini (seperti keju tambahan sebagai add-on untuk pizza besar)
suitableForDiet Array RestrictedDiet Opsional Hidangan mematuhi batasan diet yang dijelaskan (seperti "GlutenFreeDiet" atau "VeganDiet"). Ini adalah daftar nilai yang mungkin dihitung.
nutrition NutritionInformation Opsional Informasi nutrisi untuk hidangan, terutama kalori.
menuAddOn Array AddOnMenuSection Opsional AddOnMenuItem dapat memiliki bagian menu yang terdiri dari item yang diizinkan yang dapat ditambahkan sebagai add-on.

Contoh berikut menunjukkan 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

Sub-pengelompokan item makanan atau minuman sebagai bagian menu add-on untuk item menu.

Tabel berikut mencantumkan properti untuk jenis AddOnMenuSection:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "AddOnMenuSection".
@id URL Wajib ID unik bagian menu.
name Teks Wajib Teks yang dapat mengidentifikasi AddOnMenuSection saat pengguna menjelajahi menu.
description Teks Opsional Deskripsi bagian menu.
eligibleQuantity QuantitativeValue Opsional Menunjukkan jumlah item yang diizinkan sebagai add-on untuk bagian menu ini. Anda dapat menggunakan kolom ini untuk membatasi jumlah add-on, seperti jumlah minimum dan maksimum topping yang dapat Anda pilih pada pizza.
image URL Opsional Gambar bagian menu.
hasMenuItem Array AddOnMenuItem Wajib diisi* Item menu add-on yang terdapat dalam AddOnMenuSection.
offers Array Offer Opsional

Gunakan Offer.availabilityStarts dan Offer.availabilityEnds untuk menunjukkan jangka waktu selama AddOnMenuSection ini tersedia.

Listingan di bawah menunjukkan properti Offer yang digunakan di AddOnMenuSection.

  • Offer.availabilityStarts opsional
  • Offer.availabilityEnds opsional
  • Offer.availableDay opsional
  • Offer.validFrom opsional
  • Offer.validThrough opsional
hasMenuSection Array AddOnMenuSection Wajib diisi* Sub-pengelompokan logis menu add-on (seperti Makan Malam, Hidangan Pembuka, atau Hidangan ikan).
defaultOption Array AddOnMenuItem Opsional

Item menu add-on yang akan dipilih secara default untuk pengguna di AddOnMenuSection. Pengguna dapat mengubah pilihan akhir. Jika defaultOption tidak ditentukan, tidak ada AddOnMenuItem yang dipilih sebelumnya.

Objek AddOnMenuItem harus ada di hasMenuItem AddOnMenuSection.

Jumlah defaultOption tidak boleh melebihi eligibleQuantity maksimum dari AddOnMenuSection.

numberOfFreeAddOns Angka Opsional Menunjukkan jumlah add-on yang dapat dipilih pengguna tanpa biaya.

Contoh berikut menyertakan objek 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
  }
}

Item menu "Cheese Sandwich" memiliki "Choice of Cheese" AddOnMenuSection dengan "Swiss" dan "Mozzarella" yang telah dipilih secara default.

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

Merepresentasikan jam pemenuhan pesanan bagi pengguna untuk menjadwalkan pesanan awal untuk pengiriman dan pesan bawa pulang.

Biasanya, nilai opens lebih kecil dari nilai closes. Pedoman berikut berlaku untuk penggunaan properti opens dan closes:

  • Properti opens dan closes bersifat opsional untuk AdvanceServiceDeliveryHoursSpecification, tetapi sebaiknya Anda menyertakannya.
  • Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai opens atau closes. Zona waktu yang ditentukan akan diabaikan.
  • Jika opens dan closes tidak ditentukan secara eksplisit, kami mengasumsikan bahwa pemesanan prabayar tersedia setiap hari dan setiap saat.
  • Jika opens dan closes sama, kami mengasumsikan bahwa pemesanan awal tidak tersedia.
  • Jika opens lebih besar dari closes, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutup adalah 02.00, restoran akan ditafsirkan sebagai tutup pada 2 Januari pukul 02.00.
  • opens dan closes merujuk ke slot waktu mendatang. closes bersifat eksklusif. Misalnya, jika opens adalah pukul 10.00 dan closes adalah pukul 16.00 dengan serviceTimeInterval 15 menit, slot waktu pertama dimulai pukul 10.00 dan slot waktu terakhir dimulai pukul 15.45.

Tabel berikut menjelaskan properti jenis AdvanceServiceDeliveryHoursSpecification:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "AdvanceServiceDeliveryHoursSpecification".
validFrom DateTime Kondisional

Tanggal awal saat pesanan awal pengguna dapat dipenuhi. Misalnya, "2017-05-01T00:00:00-07:00".

Jika tidak ditetapkan, properti ini akan dianggap valid setiap hari. Properti validFrom dan validThrough harus tidak ada atau ada bersama-sama.

Jika jenis ini ditentukan sebagai specialOpeningHoursSpecification di tingkat Service, properti validFrom ini di AdvanceServiceDeliveryHoursSpecification diperlukan.

Untuk informasi selengkapnya, lihat Format DateTime dan Waktu.

validThrough DateTime Opsional

Tanggal akhir setelahnya pesanan awal pengguna tidak dapat lagi dipenuhi. Misalnya, "2018-12-01T00:00:00-07:00".

Jika tidak ditetapkan, properti ini akan dianggap valid setiap hari. Properti validFrom dan validThrough harus tidak ada atau ada bersama-sama.

Jika jenis ini ditentukan sebagai specialOpeningHoursSpecification di tingkat Service, properti validThrough di AdvanceServiceDeliveryHoursSpecification diperlukan.

Waktu untuk validThrough bersifat eksklusif. Misalnya, jika waktu tersebut ditetapkan ke 18.00, waktu tersebut valid hingga 17.59.59.

Untuk informasi selengkapnya, lihat Format DateTime dan Waktu.

opens Time Opsional

Berlaku untuk slot pesan antar atau bawa pulang.

Waktu spesifik pada hari tertentu saat pesanan awal pengguna dapat dipenuhi. Misalnya, 06.30 diberikan sebagai "T06:30:00".

Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai opens. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.

Untuk informasi selengkapnya, lihat Format DateTime dan Waktu.

closes Time Opsional

Berlaku untuk slot pesan antar atau bawa pulang.

Waktu spesifik yang melampaui pemesanan awal pengguna yang tidak dapat dipenuhi. Misalnya, pukul 21.00 diberikan sebagai "T21:00:00". closes> bersifat eksklusif, sehingga menetapkannya ke pukul 21.00 untuk serviceTimeInterval 15 menit berarti slot waktu terakhir yang tersedia dimulai pukul 20.45.

Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai closes. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

dayOfWeek Array DayOfWeek Opsional

Hari dalam seminggu yang menyediakan jam pengiriman lebih awal. Nilai yang valid adalah:

  • "Senin"
  • "Selasa"
  • "Wednesday"
  • "Thursday"
  • "Friday"
  • "Saturday"
  • "Sunday"

Jika Anda tidak menentukan hari apa pun dalam seminggu, AdvanceServiceDeliveryHoursSpecification akan berlaku untuk semua hari.

serviceTimeInterval Duration Wajib

Interval antara dua waktu layanan berturut-turut.

Misalnya: Jika opens dan closes adalah pukul 08.00 dan 20.00 dan serviceTimeInterval adalah 15 menit, maka pengguna dapat memilih waktu pemenuhan pesanan pukul 08.00, 08.15, 08.30, 08.45, dan seterusnya hingga pukul 20.00.

Duration harus ditentukan sebagai durasi ISO 8601. Misalnya: "P15M" berarti interval 15 menit.

advanceBookingRequirement QuantitativeValue Wajib

Jumlah menit dari waktu pemesanan saat pesanan awal dapat dipenuhi.

Nilai min dan max QuantitativeValue harus ditetapkan ke jumlah menit dan unitCode ke "MIN".

Misalnya, jika pemesanan awal memerlukan waktu minimal 60 menit untuk dipenuhi, dan dibatasi agar tidak dipenuhi lebih dari 2 hari kemudian, nilai min adalah 60 dan nilai max adalah 2880.

Contoh berikut menunjukkan penggunaan jenis AdvanceServiceDeliveryHoursSpecification:

Contoh 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

Untuk menggunakan jenis ini, tambahkan konteks gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]

Kemudian, tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem atau MenuItemOption yang sesuai.

Tabel berikut menjelaskan properti jenis AllergenDetails:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "AllergenDetails".
allergenType Teks Opsional Jenis alergen per gs1:AllergenTypeCode . Misalnya, http://gs1.org/voc/AllergenTypeCode-PEANUTS.
allergenLevelOfContainmentCode Teks Opsional Kode pembatasan per gs1:LevelOfContainmentCode. Misalnya http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM, atau http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN.

Contoh berikut menunjukkan penggunaan jenis 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

Tabel berikut menjelaskan properti jenis DeliveryChargeSpecification:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "DeliveryChargeSpecification".
@id URL Opsional ID untuk spesifikasi biaya pengiriman.
price Angka Wajib Total biaya pengiriman, dalam angka saja. Gunakan properti priceCurrency untuk menunjukkan jenis mata uang, bukan simbol mata uang. Misalnya, "6,00", tanpa simbol mata uang.
priceCurrency Teks Wajib 3 huruf kode mata uang ISO 4217. Misalnya, "USD".
eligibleTransactionVolume PriceSpecification Opsional Volume transaksi, dalam satuan mata uang, yang spesifikasi biaya pengirimannya valid. Misalnya, untuk menunjukkan volume pembelian minimum, atau untuk menyatakan bahwa pengiriman tersedia tanpa biaya tambahan di atas volume pesanan tertentu.
eligibleQuantity QuantitativeValue Opsional Interval dan satuan pengukuran jumlah pemesanan yang berlaku untuk biaya pengiriman. Hal ini memungkinkan Anda, misalnya, menentukan bahwa biaya pengiriman tertentu hanya berlaku untuk jumlah tertentu.
eligibleRegion Array GeoShape atau Place atau GeoCircle Opsional Tempat, atau GeoShape/GeoCircle untuk wilayah geo-politik tempat spesifikasi penawaran atau biaya pengiriman berlaku. Gunakan properti ini hanya jika biaya pengiriman bervariasi menurut wilayah.
validFrom DateTime Opsional Tanggal dan waktu (termasuk zona waktu) saat biaya pengiriman yang ditentukan menjadi valid. Misalnya, "2017-05-01T06:30:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.
validThrough DateTime Opsional Tanggal dan waktu (termasuk zona waktu) setelah biaya pengiriman yang ditentukan tidak valid. Misalnya, "2017-05-01T06:30:00-07:00". Waktu untuk validThrough bersifat eksklusif: misalnya, jika waktu tersebut disetel ke pukul 18.00, waktu tersebut valid hingga pukul 17.59.59. Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

Contoh berikut menunjukkan elemen 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"
    }
  }
]

Selain "@type": ["DeliveryChargeSpecification"], objek dapat diperluas dengan UnitPriceSpecification:

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

Ekstensi ini memberikan dua properti tambahan yang diperlukan untuk biaya pengiriman yang dihitung dalam persentase.

Properti Jenis Kebutuhan Deskripsi
referenceQuantity QuantitativeValue Wajib Jumlah referensi yang berlaku untuk harga tertentu. Misalnya, referenceQuantity dengan nilai 10 dan unitCode "P1" menghasilkan 10% dari nilai pesanan. Saat ini hanya unitCode "P1" yang didukung.
basePrice Angka Opsional Biaya dasar selain referenceQuantity. Misalnya, referenceQuantity sebesar 10 dengan unitCode "P1" dan basePrice sebesar 5 dalam USD menghasilkan $5 + 10% dari nilai pesanan. Nilai defaultnya adalah 0.

Contoh biaya pengiriman

Google memungkinkan Anda menentukan berbagai biaya kepada pengguna di awal menggunakan Offer.PriceSpecification dari entitas Layanan.

Perhatikan bahwa Pemesanan End-to-End saat ini hanya mendukung satu DeliveryChargeSpecification. Gabungkan semua jenis biaya ke dalam satu DeliveryChargeSpecification.

Lihat Contoh feed layanan untuk mengetahui cara menentukan biaya pengiriman berdasarkan area, jarak, dan nilai pesanan.

Jika tidak ada biaya, Offer.PriceSpecification akan dihilangkan.

  • Contoh 1: Biaya pengiriman adalah 5% dari subtotal keranjang
  • Contoh 2: Biaya pengiriman adalah Rp50.000
  • Contoh 3: Biaya pengiriman adalah $5 + 10% dari subtotal keranjang
  • Contoh 4: Biaya pengiriman adalah $5 dan biaya tas adalah $0,1
  • Contoh 5: Biaya pengiriman adalah 5% dan biaya layanan adalah 2% dari subtotal keranjang
  • Contoh 6: Biaya pengiriman adalah Rp50.000 dan Rp10.000 per jarak tambahan 1 km
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

Tabel berikut menjelaskan properti jenis GeoCircle:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "GeoCircle".
geoMidpoint GeoCoordinates Wajib Menunjukkan GeoCoordinates di tengah GeoCircle.
geoRadius Angka Wajib Menunjukkan perkiraan radius (dalam meter) dari GeoCircle.

Contoh berikut menunjukkan elemen GeoCircle:

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

GeoCoordinates

Tabel berikut menjelaskan properti jenis GeoCoordinates:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "GeoCoordinates".
latitude Angka Wajib

Lintang dalam derajat. Nilai dibatasi pada rentang dari -90 hingga 90, inklusif. Jika nilai yang ditentukan kurang dari -90, nilai tersebut akan ditetapkan ke -90; jika nilainya lebih besar dari 90, nilai tersebut akan ditetapkan ke 90.

Presisinya harus minimal 5 angka di belakang koma.

longitude Angka Wajib

Bujur dalam derajat. Nilai di luar rentang -180 hingga 180 akan dibulatkan agar berada dalam rentang. Misalnya, nilai -190 dikonversi menjadi 170. Nilai 190 dikonversi menjadi -170. Hal ini mencerminkan fakta bahwa garis bujur mengelilingi bola dunia.

Presisinya harus minimal 5 angka di belakang koma.

Contoh berikut menunjukkan elemen GeoCoordinates:

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

GeoShape

Tabel berikut menjelaskan properti jenis GeoShape:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "GeoShape".
polygon Array Teks Wajib

Poligon atau multipoligon yang dinyatakan sebagai serangkaian tiga titik atau lebih yang dipisahkan ruang. Sebaiknya titik pertama dan terakhir sama, tetapi tidak wajib.

Setiap titik dalam poligon atau multipoligon ditentukan oleh titik lintang diikuti dengan titik bujur. Anda juga harus menentukan titik-titik dalam arah berlawanan dengan arah jarum jam.

Dalam sebagian besar kasus, Anda akan memiliki satu poligon. Untuk kasus penggunaan yang lebih kompleks, lihat dokumentasi area layanan pengiriman.

Contoh berikut menunjukkan elemen 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"
    }  ],
...
},

Tabel berikut mencantumkan properti untuk jenis Menu:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "Menu".
@id URL Wajib ID unik untuk menu.
name Teks Opsional Teks yang dapat mengidentifikasi Menu saat pengguna menjelajahi menu.
description Teks Opsional Deskripsi menu.
disclaimer MenuDisclaimer Opsional Pernyataan penyangkalan untuk menu. Misalnya, pengungkapan informasi nutrisi dan pengungkapan alergen.
hasMenuSection Satu objek atau array MenuSection Opsional Sub-pengelompokan menu yang logis (seperti Makan Malam, Hidangan Pembuka, atau Hidangan Ikan).
hasMenuItem Satu objek atau array MenuItem Opsional Objek MenuItem yang terdapat dalam Menu, biasanya saat Menu tidak dibagi lagi oleh MenuSections.
inLanguage Teks Opsional Bahasa konten menu, sebagai kode bahasa dari standar IETF BCP 47. Misalnya, "en-US".

Contoh berikut menunjukkan penggunaan jenis 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"
}

Contoh ini menunjukkan hasMenuItem sebagai array.

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

Contoh ini menunjukkan hasMenuSection sebagai array.

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

Untuk contoh entitas Menu lainnya, lihat Contoh Feed Restoran dan Menu.

Tabel berikut mencantumkan properti untuk jenis MenuDisclaimer:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "MenuDisclaimer".
@id URL Wajib ID unik untuk pernyataan penyangkalan menu.
text Teks Wajib Teks pernyataan penyangkalan. Misalnya, "Rata-rata asupan energi harian dewasa adalah 8.700 kJ".
url URL Opsional URL yang mengarah ke halaman yang memberikan detail selengkapnya tentang pernyataan penyangkalan.

Contoh berikut menunjukkan penggunaan jenis MenuDisclaimer:

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

Item menu untuk merepresentasikan item dalam menu. Tabel berikut mencantumkan properti untuk jenis MenuItem:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "MenuItem".
@id URL Wajib ID unik item menu.
name Teks Wajib Teks yang dapat mengidentifikasi MenuItem saat pengguna menjelajahi menu.
description Teks Opsional Deskripsi item menu.
image URL Opsional

Gambar item menu. Gunakan panduan gambar berikut:

  • Rasio aspek 3:2
  • Resolusi minimum 600x400 piksel, 72 dpi
  • Resolusi yang direkomendasikan 1400x960 piksel 72 dpi
menuAddOn Array AddOnMenuSection Opsional Item di bagian menu yang dapat ditambahkan sebagai add-on ke item menu.
offers Array Offer Wajib diisi*

Satu atau beberapa penawaran untuk memberikan MenuItem ini. Menjelaskan kapan dan harga MenuItem ini tersedia. Hanya satu penawaran yang harus valid pada waktu tertentu. Beberapa penawaran dapat diberikan jika ada variasi harga/ketersediaan berdasarkan waktu. Jika item makanan berbeda melalui atribut dasar, (misalnya, ukuran untuk pizza), gunakan menuItemOption. Nilai default untuk Offer.eligibleQuantity adalah minimum 0 tanpa batas atas.

Listingan di bawah menunjukkan properti Offer yang digunakan di MenuItem.

  • Perlu Offer.sku
  • Perlu Offer.price
  • Perlu Offer.priceCurrency
  • Offer.availabilityStarts opsional
  • Offer.availabilityEnds opsional
  • Offer.availableDay opsional
  • Offer.validFrom opsional
  • Offer.validThrough opsional
  • Offer.eligibleQuantity opsional
  • Offer.inventoryLevel opsional
hasMenuItemOptions Array MenuItemOption Wajib Daftar opsi/variasi dasar untuk item menu ini. Opsi harus digunakan untuk menentukan berbagai variasi dasar yang tersedia untuk item, misalnya kecil, sedang, dan besar.
suitableForDiet Array RestrictedDiet Opsional Hidangan mematuhi batasan diet yang dijelaskan (seperti "http://schema.org/GlutenFreeDiet" atau "http://schema.org/VeganDiet". Ini adalah daftar nilai yang mungkin dihitung.
nutrition NutritionInformation Opsional Informasi gizi untuk hidangan, terutama kalori.
hasAllergen AllergenDetails Opsional Alergen hidangan per gs1:AllergenDetails. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem.
additive Array AdditiveDetails Opsional Aditif hidangan per gs1:AdditiveDetails. Ini adalah daftar nilai yang mungkin dihitung. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem.
packaging PackagingDetails Opsional Informasi pengemasan dan daur ulang MenuItem ini per gs1:PackagingDetails. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem.

Contoh berikut menunjukkan elemen 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"
      }
    }
  }
}

Untuk contoh entitas MenuItem lainnya, lihat Contoh Feed Restoran dan Menu.

Opsi untuk menampilkan pilihan yang harus dibuat pengguna saat memilih hidangan atau kombinasi. Pengguna harus memilih salah satu opsi. Jika tidak, pesanan akan dianggap tidak valid. Misalnya, memilih ukuran kecil, sedang, atau besar untuk pizza.

Untuk contoh kasus penggunaan MenuItemOption, lihat panduan kami tentang penyesuaian menggunakan MenuItemOption.

Tabel berikut mencantumkan properti untuk jenis MenuItemOption:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "MenuItemOption".
value PropertyValue Wajib PropertyValue yang berisi pasangan nama/nilai yang mewakili opsi.
offers Array Offer Wajib

Satu atau beberapa penawaran untuk memberikan MenuItemOption ini. Menjelaskan kapan dan dengan harga berapa opsi item menu ini tersedia. Hanya satu penawaran yang valid pada waktu tertentu. Anda dapat memiliki banyak penawaran yang valid jika harga/ketersediaan dapat berubah berdasarkan waktu. Jangan gunakan Offer.eligibleQuantity. MenuItemOption tidak dapat muncul bersamaan, sehingga Offer.eligibleQuantity akan diabaikan jika diberikan.

Listingan di bawah menunjukkan properti Offer yang digunakan di MenuItemOption.

  • Perlu Offer.sku
  • Perlu Offer.price
  • Perlu Offer.priceCurrency
  • Offer.availabilityStarts opsional
  • Offer.availabilityEnds opsional
  • Offer.availableDay opsional
  • Offer.validFrom opsional
  • Offer.validThrough opsional
  • Offer.eligibleQuantity opsional
  • Offer.inventoryLevel opsional
menuAddOn Array of AddOnMenuSection Opsional Bagian menu item yang diizinkan yang dapat ditambahkan sebagai add-on. Hanya gunakan ini jika add-on khusus untuk opsi item menu tertentu. Jika tidak, berikan add-on menggunakan properti MenuItem.menuAddOn.
suitableForDiet Array RestrictedDiet Opsional Daftar yang diuraikan yang menunjukkan diet yang sesuai dengan batasan diet yang dijelaskan (seperti "http://schema.org/GlutenFreeDiet" atau "http://schema.org/VeganDiet").
nutrition NutritionInformation Opsional Informasi gizi untuk hidangan, terutama kalori.
hasAllergen AllergenDetails Opsional Alergen hidangan per gs1:AllergenDetails. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItemOption.
additive Array AdditiveDetails Opsional Aditif hidangan per gs1:AdditiveDetails. Ini adalah daftar nilai yang mungkin dihitung. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItemOption.
packaging PackagingDetails Opsional Informasi pengemasan dan daur ulang MenuItem ini per gs1:PackagingDetails Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItemOption.

Contoh berikut menunjukkan elemen 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 --
          ]
        }
      ]
    }
  ]
}

Bagian menu untuk mewakili bagian tertentu dalam menu. Tabel berikut mencantumkan properti untuk jenis MenuSection:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "MenuSection".
@id URL Wajib ID unik bagian menu.
name Teks Wajib Teks yang dapat mengidentifikasi MenuSection saat pengguna menjelajahi menu.
description Teks Opsional Deskripsi bagian menu.
hasMenuSection Array MenuSection Opsional Sub-pengelompokan logis MenuSection. Misalnya, Bagian menu Makan Malam dapat memiliki beberapa sub-MenuSections seperti "Hidangan Unggas" atau "Vegetarian".
hasMenuItem Array MenuItem Opsional Item menu yang terdapat dalam MenuSection.
offers Array Offer Opsional

Gunakan Offer.availabilityStarts dan Offer.availabilityEnds untuk menunjukkan jangka waktu selama MenuSection ini ditayangkan. Jangan gunakan Offer.eligibleQuantity.

Daftar berikut menunjukkan properti Offer yang digunakan di MenuSection:

  • Offer.availabilityStarts opsional
  • Offer.availabilityEnds opsional
  • Offer.availableDay opsional
  • Offer.validFrom opsional
  • Offer.validThrough opsional
image URL Opsional Gambar bagian menu.

Contoh berikut menunjukkan entitas 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"
        }
      }
    ]
  }
]

Untuk contoh entitas MenuSection lainnya, lihat Contoh Feed Restoran dan Menu.

NutritionInformation

Tabel berikut menjelaskan properti jenis NutritionInformation. Satuan pengukuran peka huruf besar/kecil. Misalnya, "Cal" diterima, tetapi "cal" tidak.

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "NutritionInformation".
description Teks Opsional Informasi nutrisi dalam teks bebas. Misalnya "Berisi pengawet".
calories Teks Opsional

Jumlah kalori dalam Cal, kcal, atau kJ, menggunakan format berikut:

number Cal_kcal_OR_kJ

Misalnya, "240 Kal".

carbohydrateContent Teks Opsional

Jumlah karbohidrat, biasanya dalam g, menggunakan format berikut:

number g_OR_mg

Misalnya, "7 g".

cholesterolContent Teks Opsional

Jumlah kolesterol, biasanya dalam mg, menggunakan format berikut:

number g_OR_mg

Misalnya, "12 mg".

fatContent Teks Opsional

Jumlah lemak, biasanya dalam g, menggunakan format berikut:

number g_OR_mg

Misalnya, "42 g".

fiberContent Teks Opsional

Jumlah g atau mg serat, menggunakan format berikut:

number g_OR_mg
proteinContent Teks Opsional

Jumlah g atau mg protein, menggunakan format berikut:

number g_OR_mg
saturatedFatContent Teks Opsional

Jumlah g atau mg lemak jenuh, menggunakan format berikut:

number g_OR_mg
servingSize Teks Opsional Ukuran porsi dalam mL, L, g, atau kg, dalam hal jumlah volume atau massa.
sodiumContent Teks Opsional

Jumlah mg atau g natrium, menggunakan format berikut:

number g_OR_mg
sugarContent Teks Opsional

Jumlah g atau mg gula, menggunakan format berikut:

number g_OR_mg
transFatContent Teks Opsional

Jumlah g atau mg lemak trans, menggunakan format berikut:

number g_OR_mg
unsaturatedFatContent Teks Opsional

Jumlah lemak tidak jenuh, biasanya dalam g, menggunakan format berikut:

number g_OR_mg

Contoh berikut menunjukkan elemen 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"
  }
},

Penawaran

Penawaran untuk item menu. Tabel berikut menjelaskan properti jenis Offer:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "Penawaran".
sku Teks Kondisional

ID unik penawaran. Dapat berupa nilai teks apa pun yang unik dalam Offer. Nilai sku direferensikan di Checkout dan Kirim sebagai offerId di lineitem.

Properti ini hanya digunakan dalam jenis penawaran berikut:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
price Teks Kondisional

Harga item yang ditawarkan. Misalnya, "6,00" tanpa simbol mata uang.

Properti ini hanya diperlukan dalam jenis penawaran berikut:

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

Jenis ini tidak digunakan dalam jenis penawaran berikut:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency Teks Kondisional

Mata uang (dalam format ISO 4217 3 huruf) harga atau komponen harga, saat dilampirkan ke PriceSpecification dan subjenisnya.

Properti ini hanya diperlukan dalam jenis penawaran berikut:

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

Jenis ini tidak digunakan dalam jenis penawaran berikut:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime atau Time Opsional Tanggal dan waktu atau hanya waktu saat penawaran tersedia. Misalnya, jika pancake disajikan mulai pukul 07.00, nilai kolom ini dapat terlihat seperti berikut: "2017-05-01T07:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.
availabilityEnds DateTime atau Time Opsional Tanggal dan waktu atau hanya waktu saat penawaran tidak tersedia. Waktu ini bersifat eksklusif. Misalnya, jika ketersediaan pancake berakhir pada pukul 10.00, pancake terakhir dapat disajikan pada pukul 09.59.59. Nilai kolom ini kemudian dapat terlihat seperti berikut: "2017-05-01T10:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.
availableDay Array DayOfWeek Opsional

Hari dalam seminggu saat item ini tersedia. Nilai yang valid adalah:

  • "Senin"
  • "Selasa"
  • "Wednesday"
  • "Thursday"
  • "Friday"
  • "Saturday"
  • "Sunday"

Jika Anda memiliki ketersediaan yang berbeda untuk hari yang berbeda dalam seminggu, gunakan lebih dari satu objek Offer, seperti yang ditunjukkan dalam contoh di bawah.

validFrom DateTime Opsional

Tanggal dan waktu (termasuk zona waktu) saat harga yang ditentukan berlaku. Misalnya, pasta seharga $8 saat makan siang dan $10 saat makan malam. Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

Properti ini dapat digunakan dalam jenis penawaran berikut:

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

Properti ini tidak digunakan dalam jenis penawaran berikut:

  • Service.Offer
validThrough DateTime Opsional

Tanggal dan waktu (termasuk zona waktu) setelah harga yang ditentukan tidak lagi valid. Misalnya, pasta seharga $8 saat makan siang dan $10 saat makan malam. Waktu untuk validThrough bersifat eksklusif: misalnya, jika waktu tersebut ditetapkan ke 18.00, waktunya valid hingga 17.59.59. Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

Properti ini dapat digunakan dalam jenis penawaran berikut:

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

Properti ini tidak digunakan dalam jenis penawaran berikut.

  • Service.Offer
eligibleQuantity QuantitativeValue Opsional

Jumlah pemesanan yang diizinkan untuk item ini. Misalnya, restoran mungkin mewajibkan minimal 10 pizza dipesan untuk pengiriman.

Nilai ini bersifat opsional. Secara default, tidak ada batas maksimum, tetapi restoran dapat menentukannya. Batas minimum hanya berlaku saat pengguna memilih item.

Properti ini dapat digunakan dalam jenis penawaran berikut:

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

Properti ini tidak digunakan dalam jenis penawaran berikut.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating Opsional

Rating keseluruhan, berdasarkan kumpulan ulasan atau rating item.

Properti ini dapat digunakan dalam jenis penawaran berikut:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Properti ini tidak digunakan dalam jenis berikut.

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
inventoryLevel QuantitativeValue Opsional

Perkiraan tingkat inventaris saat ini untuk item atau item.

Properti ini dapat digunakan dalam jenis penawaran berikut:

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

Properti ini tidak digunakan dalam jenis penawaran berikut:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Array DeliveryChargeSpecification atau array PaymentChargeSpecification Opsional

Jika digunakan di Service.Offer, atribut ini menunjukkan detail tentang harga pengiriman. Jika beberapa objek DeliveryChargeSpecification berlaku, objek yang paling spesifik akan diterapkan. Gunakan objek DeliveryChargeSpecification eksklusif bersama untuk menghindari ambiguitas.

Properti ini dapat digunakan dalam jenis penawaran berikut:

  • Service.Offer

Properti ini tidak digunakan dalam jenis penawaran berikut:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Array ID Restaurant Opsional

Mewakili restoran tempat Offer ini ditawarkan.

Jika tidak ditentukan, Offer ini akan ditawarkan ke semua restoran.

Properti ini dapat digunakan dalam jenis penawaran berikut:

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

Properti ini tidak digunakan dalam jenis penawaran berikut:

  • Service.Offer
applicableFulfillmentMethod Array Teks Opsional

Mewakili jenis layanan yang memenuhi Offer ini. Nilai yang mungkin adalah "DELIVERY" atau "TAKEOUT".

Jika tidak ditentukan, Offer ini akan dipenuhi oleh pesan antar dan pesan bawa pulang.

Properti ini dapat digunakan dalam jenis penawaran berikut:

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

Properti ini tidak digunakan dalam jenis penawaran berikut:

  • Service.Offer
@id URL Tidak digunakan lagi ID unik penawaran. Tidak digunakan lagi mulai 25/4/19, ganti dengan sku seperti yang dijelaskan di atas.

Contoh berikut menunjukkan elemen Offer:

Contoh berikut menunjukkan penawaran sederhana:

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

Contoh penawaran berikut menunjukkan ketersediaan dari pukul 08.00-10.00 pada akhir pekan:

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

Contoh berikut menunjukkan ketersediaan dari pukul 09.00-10.59.59 pada hari Senin, Rabu, dan Jumat, tetapi pukul 08.00-11.59.59 pada hari Selasa dan Kamis:

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

Contoh berikut menunjukkan jumlah item menu add-on yang memenuhi syarat sehingga pengguna dapat memesan maksimal 2 porsi item tersebut.:

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

Contoh berikut menunjukkan penawaran pengiriman di lokasi tertentu:

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

Menentukan kapan layanan pemesanan tersedia. Biasanya, nilai opens lebih kecil dari nilai closes. Panduan berikut berlaku untuk penggunaan properti opens dan closes:

  • Properti opens dan closes bersifat opsional, tetapi sangat direkomendasikan untuk menunjukkan kapan pengurutan tersedia. Praktik terbaik untuk menentukan jam yang tersedia adalah dengan menyertakan array deliveryHours yang berisi ServiceDeliveryHoursSpecification dengan properti opens dan closes. Kemudian, Anda dapat menyertakan objek AdvanceServiceDeliveryHoursSpecification di deliveryHours dengan properti opens dan closes-nya sendiri, jika ingin menawarkan periode yang lebih terbatas untuk pemesanan awal.
  • Jika opens dan closes tidak ditentukan secara eksplisit, kami mengasumsikan bahwa layanan pesanan tersedia setiap hari pada semua waktu.
  • Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai opens atau closes. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.
  • Jika opens dan closes sama, kita mengasumsikan bahwa restoran terbuka selama 0 menit.
  • Jika opens lebih besar dari closes, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutupnya adalah 02.00, restoran akan ditafsirkan sebagai tutup pada 2 Januari pukul 02.00.
  • Waktu untuk closes bersifat eksklusif. Oleh karena itu, jika waktu buka dan tutup untuk periode pemesanan ini ditetapkan masing-masing pada pukul 10.00 dan 16.00, maka pesanan terakhir adalah pukul 15.59.59.

Tabel berikut menjelaskan properti jenis OpeningHoursSpecification:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "OpeningHoursSpecification".
@id URL Opsional ID untuk OpeningHoursSpecification.
dayOfWeek Array DayOfWeek Opsional

Hari dalam seminggu yang berlaku untuk jam buka ini. Nilai yang dapat diterima adalah "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", dan "Minggu". Contoh:

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

Jika Anda tidak menentukan hari apa pun dalam seminggu, OpeningHoursSpecification akan berlaku untuk semua hari.

opens Time Opsional

Saat digunakan dalam spesifikasi Restaurant, properti ini menunjukkan waktu buka restoran pada hari tertentu dalam seminggu. Misalnya, 06.30 diberikan sebagai "T06:30:00".

Jika digunakan dalam spesifikasi Service, ini menunjukkan waktu tertentu pada hari yang dimulai dari pesanan pengguna dapat dilakukan. File ini menentukan waktu buka saat sistem online aktif dan memungkinkan pengguna melakukan pemesanan. Dalam jam buka/tutup sistem online tersebut, Anda dapat menggunakan deliveryHours untuk menentukan jam buka/tutup saat pengguna dapat memesan jenis pengiriman khusus.

Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai opens. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

closes Time Opsional

Saat digunakan dalam spesifikasi Service, properti ini menunjukkan waktu tertentu setelah itu pesanan pengguna tidak dapat dilakukan. Ini menentukan waktu penutupan saat sistem online aktif dan memungkinkan pengguna melakukan pemesanan. Dalam jam buka/tutup sistem online tersebut, Anda dapat menggunakan deliveryHours untuk menentukan jam buka/tutup saat pengguna dapat memesan jenis pengiriman khusus.

Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai closes. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

validFrom DateTime Opsional

Jika digunakan dalam spesifikasi Restaurant, properti ini menunjukkan tanggal saat jam buka yang ditentukan oleh opens dan closes untuk restoran berlaku.

Misalnya, jika jam yang diberikan berlaku untuk semua tahun 2017, Anda menetapkan validFrom ke "2017-01-01T00:00:00-07:00" dan validThrough ke "2017-12-31T23:59:59-07:00".

Saat digunakan dalam spesifikasi Service, validFrom menunjukkan tanggal awal mulai dari tanggal tersebut pesanan pengguna dapat dilakukan.

Jika properti ini tidak ditentukan di feed Anda, Google akan menganggap bahwa Restoran atau Layanan tersedia setiap hari.

Selain tanggal, bagian waktu dan zona waktu dari nilai diperlukan.

Untuk zona waktu, gunakan zona waktu Restoran atau Layanan.

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

validThrough DateTime Opsional

Jika digunakan dalam Restaurant, tanggal setelah jam buka yang ditentukan oleh opens dan closes tidak valid.

Misalnya, jika jam yang diberikan berlaku untuk semua tahun 2017, Anda menetapkan validFrom ke "2017-01-01T00:00:00-07:00" dan validThrough ke "2017-12-31T23:59:59-07:00".

Jika digunakan dalam spesifikasi Service, validThrough menunjukkan tanggal akhir setelah pesanan pengguna tidak dapat lagi dilakukan.

Jika properti ini tidak ditentukan di feed Anda, Google akan menganggap bahwa Restoran atau Layanan tersedia setiap hari.

Selain tanggal, bagian waktu dan zona waktu dari DateTime wajib diisi.

Untuk zona waktu, gunakan zona waktu Restoran atau Layanan.

Waktu untuk validThrough bersifat eksklusif. Misalnya, jika waktu tersebut ditetapkan ke 18.00, waktu tersebut valid hingga 17.59.59.

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

deliveryHours Array ServiceDeliveryHoursSpecification atau array AdvanceServiceDeliveryHoursSpecification Kondisional

Spesifikasi waktu pesan antar atau bawa pulang.

Parameter ini diperlukan kecuali jika restoran ditutup (artinya opens dan closes ditetapkan dan sama satu sama lain.

  • ServiceDeliveryHoursSpecification: Dalam jam buka/tutup, Anda dapat menetapkan jam "buka" dan "tutup" saat pengguna dapat melakukan pemesanan ASAP.
  • AdvanceServiceDeliveryHoursSpecification: Dalam jam buka/tutup, Anda dapat menetapkan jam "buka" dan "tutup" saat pengguna dapat melakukan pemesanan awal.

Contoh berikut menunjukkan elemen 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

Tambahkan konteks gs1 untuk menggunakan jenis ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem atau MenuItemOption.

Tabel berikut menjelaskan properti jenis PackagingDetails:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "PackagingDetails".
packagingRecyclingProcessType Teks Opsional Jenis proses daur ulang kemasan per gs1:PackagingRecyclingProcessTypeCode. Misalnya http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE atau http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails Opsional Detail deposit paket yang dapat dikembalikan per gs1:ReturnablePackageDepositDetails. Misalnya, botol dan kaleng memiliki deposit paket yang dapat dikembalikan.

Contoh berikut menunjukkan penggunaan jenis 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

Tabel berikut menjelaskan properti jenis PaymentChargeSpecification:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "PaymentChargeSpecification".
@id URL Opsional ID untuk PaymentChargeSpecification.
price Angka Wajib Jumlah total tagihan. Misalnya, "6,00", tanpa simbol mata uang.
priceCurrency Teks Wajib Kode mata uang ISO 4217 3 huruf untuk harga. Misalnya, "USD".
eligibleTransactionVolume PriceSpecification Opsional Volume transaksi, dalam satuan mata uang, yang spesifikasi tagihan pembayarannya valid, seperti untuk menunjukkan volume pembelian minimum.
eligibleQuantity QuantitativeValue Opsional Jumlah pesanan yang valid untuk tagihan pembayaran. Misalnya, Anda dapat menggunakan properti ini untuk mewajibkan jumlah minimum item dalam pesanan.
validFrom DateTime Opsional Tanggal dan waktu (termasuk zona waktu) saat tagihan pembayaran yang ditentukan menjadi valid. Misalnya, "2017-05-01T07:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.
validThrough DateTime Opsional Tanggal dan waktu (termasuk zona waktu) saat tagihan pembayaran yang ditentukan tidak valid. Misalnya, "2017-05-01T07:30:00-07:00". Waktu untuk validThrough bersifat eksklusif: misalnya, jika waktu tersebut ditetapkan ke 18.00, waktunya valid hingga 17.59.59. Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

Contoh berikut menunjukkan elemen PaymentChargeSpecification:

Contoh
"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
  }
}]

Selain "@type": ["PaymentChargeSpecification"], objek dapat diperluas dengan UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]). Ekstensi ini memberikan dua properti tambahan yang diperlukan untuk biaya layanan yang dihitung dalam persentase.

properti Jenis Kebutuhan Deskripsi
referenceQuantity QuantitativeValue Wajib Jumlah referensi yang berlaku untuk harga tertentu. Misalnya, referenceQuantity dengan nilai 10 dan unitCode "P1" menghasilkan 10% dari nilai pesanan. Saat ini hanya unitCode "P1" yang didukung.
basePrice Angka Opsional Biaya dasar selain referenceQuantity. Misalnya, referenceQuantity sebesar 10 dengan unitCode sebesar "P1" dan basePrice sebesar 5 dalam USD menghasilkan $5 + 10% dari nilai pesanan. Nilai defaultnya adalah 0.

Contoh biaya Takeout

Google memungkinkan Anda menentukan berbagai biaya kepada pengguna di awal menggunakan Offer.PriceSpecification dari entitas Layanan.

Perhatikan bahwa saat ini kami hanya mendukung satu PaymentChargeSpecification. Menggabungkan semua jenis biaya ke dalam satu PaymentChargeSpecification

Jika tidak ada biaya, Offer.PriceSpecification akan dihilangkan.

  • Contoh 1: Tarif layanan adalah 5% dari subtotal keranjang
  • Contoh 2: Biaya layanan adalah $5
  • Contoh 3: Biaya tas adalah $0,1 dan biaya layanan adalah 5% dari subtotal keranjang
  • Contoh 4: Biaya tas adalah $0,1 dan biaya layanan adalah $1
  • Contoh 5: Biaya layanan adalah 5% dan tip yang diperlukan adalah 10% dari subtotal keranjang
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"
  }
]

Tempat

Tabel berikut menjelaskan properti jenis Place:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "Place".
address PostalAddress Wajib Alamat tempat.

Contoh berikut menunjukkan elemen Place:

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

PostalAddress

Tabel berikut menjelaskan properti jenis PostalAddress:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu "PostalAddress".
addressLocality Teks Wajib diisi* Lokalitas atau kota. Misalnya, "Jakarta".
addressRegion Teks Wajib diisi* Wilayah atau negara bagian. Misalnya, "CA".
postalCode Teks Wajib diisi* Kode pos. Misalnya, "94102".
streetAddress Teks Opsional Alamat. Misalnya, "1600 Amphitheatre Pkwy".
addressCountry Teks Wajib Kode negara ISO 3166-1 alpha-2 dua huruf . Misalnya, "US".

Penyedia pengiriman dapat mencantumkan properti ini untuk menetapkan Service.areaServed tempat layanan diberikan.

Saat digunakan di Restaurant.address, semua properti yang tercantum di PostalAddress wajib ada.

Contoh berikut menunjukkan elemen PostalAddress:

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

PriceSpecification

Tabel berikut menjelaskan properti jenis PriceSpecification:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "PriceSpecification".
@id URL Opsional ID untuk PriceSpecification.
minPrice Angka Opsional Harga terendah jika harga berupa rentang.
maxPrice Angka Opsional Harga tertinggi jika harga berupa rentang.
priceCurrency Teks Wajib Kode mata uang ISO 4217 3 huruf untuk harga. Misalnya, "USD".
eligibleQuantity QuantitativeValue Opsional Jumlah pemesanan yang spesifikasi harganya valid. Misalnya, harganya mungkin $2 per pon atau 2 item seharga satu dolar.

Contoh berikut menunjukkan elemen PriceSpecification:

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

PropertyValue

Pasangan nilai properti yang digunakan untuk mendeskripsikan opsi di MenuItemOption.

Tabel berikut mencantumkan properti untuk jenis PropertyValue:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "PropertyValue".
name Teks Wajib

Nama atau jenis opsi.

Berikut adalah nama yang valid saat digunakan di MenuItem:

  • "SIZE": Ukuran MenuItem. Misalnya, kecil, sedang, atau besar.
  • "OPTION": Variasi apa pun selain ukuran (seperti hidangan yang tersedia sebagai salad atau sandwich). Jika Anda tidak dapat membedakan antara "SIZE" dan "OPTION", gunakan "OPTION".

Nama yang valid saat digunakan di AddOnMenuItem:

  • "APPLICABLE_ITEM_OPTION": Opsi untuk addOn yang hanya berlaku jika digunakan dengan MenuItem dengan "SIZE/OPTION" masing-masing.
  • "PIZZA_SIDE": Khusus untuk pizza, add-on ini hanya valid untuk sebagian/seluruh pizza (seperti topping jamur di sisi kiri, sisi kanan, atau seluruh pizza).
  • "SIZE": Opsi untuk menentukan ukuran add-on (seperti kentang goreng besar sebagai add-on untuk menu kombinasi).
  • "OPTION": Variasi apa pun selain ukuran. Jika Anda tidak dapat membedakan antara "SIZE" dan "OPTION", gunakan "OPTION".
value Teks Wajib

Nilai untuk opsi. Nilainya dapat berupa string apa pun dan ditampilkan apa adanya. Berikut adalah nilai yang valid:

  • "PIZZA_SIDE": Nilai yang sesuai harus berupa "PIZZA_SIDE_LEFT", "PIZZA_SIDE_RIGHT", atau "PIZZA_SIDE_WHOLE" untuk pizza.
  • "APPLICABLE_ITEM_OPTION": Nilai ini harus ada di salah satu pilihan "OPTION/SIZE" yang sesuai untuk menuItemOptions MenuItem induk.

QuantitativeValue

Tabel berikut menjelaskan properti jenis QuantitativeValue:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "QuantitativeValue".
value Angka Opsional Nilai node nilai kuantitatif atau nilai properti.
unitCode Teks atau URL Opsional

Satuan pengukuran sebagai Kode Umum UN/CEFACT atau URL.

Kode selain Kode Umum UN/CEFACT dapat digunakan dengan awalan diikuti titik dua.

maxValue Angka Opsional Nilai atas dari beberapa karakteristik atau properti.
minValue Angka Opsional Nilai yang lebih rendah dari beberapa karakteristik atau properti.

Contoh berikut menunjukkan penggunaan jenis 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
    }
  }
]

Restoran

Tabel berikut mencantumkan properti untuk jenis Restaurant:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "Restoran".
@id URL Wajib ID unik restoran atau penyedia pesan antar. Misalnya, "http://www.provider.com/326", dengan "326" adalah ID unik restoran.
name Teks Wajib Teks yang dapat mengidentifikasi Restaurant selama proses pengurutan.
url URL Wajib URL di domain Anda yang mewakili restoran. Misalnya, "http://www.provider.com/somerestaurant".
sameAs URL Opsional Situs resmi restoran. Misalnya, "http://www.somerestaurant.com".
email Teks Opsional Email kontak restoran.
description Teks Opsional Deskripsi restoran.
telephone Teks Wajib

Nomor telepon dalam format berikut:

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

Misalnya, "+16501234567".

priceRange Teks Opsional Rentang harga. Misalnya, "$$" ($-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"
  ]
},
  
  

Contoh 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"}
  ]
}

Untuk contoh entitas Restaurant lainnya, lihat Contoh Feed Restoran dan Menu.

ReturnablePackageDepositDetails

Untuk menggunakan jenis ini, tambahkan konteks gs1: "@context":

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

Kemudian, tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem atau MenuItemOption yang sesuai.

Tabel berikut menjelaskan properti jenis ReturnablePackageDepositDetails:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "ReturnablePackageDepositDetails".
returnablePackageDepositAmount gs1:PriceSpecification Opsional Jumlah deposit untuk item ini per gs1:PriceSpecification. Misalnya, deposit $0,25 per kaleng.

Contoh berikut menunjukkan penggunaan jenis 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"
      }
    }
  }
},

Layanan

Menjelaskan pengiriman Tindakan Pemesanan Menyeluruh dari restoran ke lokasi geografis oleh organisasi pengiriman.

Tabel berikut menjelaskan properti jenis Service:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib

Jenis feed.

  • Service: Gunakan jenis ini untuk semua feed Layanan yang aktif.
  • DisabledService: Hanya gunakan jenis ini jika Anda harus menonaktifkan entity Layanan karena peristiwa yang tidak terduga, dan Anda tidak tahu kapan layanan akan diaktifkan kembali.
@id URL Wajib ID untuk layanan fulfillment. Misalnya, "http://www.provider.com/service/1".
description Teks Opsional Deskripsi item.
serviceType Teks Wajib Jenis layanan yang ditawarkan. Nilai yang mungkin adalah "DELIVERY" atau "TAKEOUT".
provider Restaurant Wajib Referensi ke ID unik untuk restoran. Misalnya, "http://www.provider.com/somerestaurant".
areaServed Array GeoShape, Place, atau GeoCircle Kondisional Area geografis tempat layanan disediakan. Kolom ini bersifat opsional secara default, tetapi wajib diisi jika serviceType adalah "DELIVERY".
hoursAvailable Array OpeningHoursSpecification Wajib Jam layanan ini tersedia.
specialOpeningHoursSpecification Array OpeningHoursSpecification, ServiceDeliveryHoursSpecification, atau AdvanceServiceDeliveryHoursSpecification Opsional

Waktu yang mengganti OpeningHoursSpecification yang lebih umum atau waktu fulfillment. Anda biasanya menggunakan kolom ini untuk menentukan hari libur dan jenis penutupan sementara atau perubahan jam lainnya.

Tentukan rentang tanggal khusus menggunakan properti validFrom dan validThrough. Waktu dan zona waktu diperlukan saat menentukan properti ini.

offers Array Offer Kondisional

Detail tentang penawaran pesan antar untuk restoran tertentu. Kolom ini bersifat opsional secara default, tetapi diperlukan jika serviceType adalah "DELIVERY".

Properti Offer.priceSpecification bersifat opsional di Layanan. Tidak ada properti Offer lain yang digunakan di sini.

hasOfferCatalog [Menu, OfferCatalog] Wajib

Menentukan menu untuk layanan ini. Anda dapat memiliki menu yang berbeda untuk setiap layanan (seperti bawa pulang, pesan antar, dan katering).

Anda harus menentukan Menu dan OfferCatalog untuk jenisnya. Contoh:

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty Array {name, value} Opsional

Informasi konfigurasi layanan opsional. Item diharapkan berupa objek dengan kunci name yang sesuai dengan nama kolom opsional. Kunci value adalah nilai yang relevan secara kontekstual untuk kolom.

Lihat referensi ServingConfig untuk mengetahui informasi selengkapnya tentang nama dan nilai tertentu.

"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 Opsional

Berisi URL untuk layanan pesan antar/bawa pulang yang akan digunakan saat bermigrasi dari pengalaman pemesanan makanan menyeluruh ke pengalihan. Misalnya, "potentialAction": { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" }

Contoh berikut menunjukkan penggunaan jenis Layanan:

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

Untuk contoh entitas Layanan lainnya, lihat Contoh Feed Layanan.

ServiceDeliveryHoursSpecification

Merepresentasikan jam pemenuhan pesanan bagi pengguna untuk menjadwalkan pesanan ASAP untuk pengiriman dan pesan bawa pulang.

Biasanya, nilai opens lebih kecil dari nilai closes. Pedoman berikut berlaku untuk penggunaan properti opens dan closes:

  • Properti opens dan closes bersifat opsional untuk ServiceDeliveryHoursSpecification, tetapi sebaiknya Anda menyertakannya.
  • Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai opens atau closes. Jika zona waktu ditentukan, Google akan mengabaikan informasi zona waktu.
  • Jika opens dan closes tidak ditentukan secara eksplisit, kami mengasumsikan bahwa pemesanan ASAP tersedia setiap hari sepanjang waktu.
  • Jika opens dan closes sama, kami mengasumsikan bahwa pemesanan ASAP tidak tersedia.
  • Jika opens lebih besar dari closes, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutupnya adalah 02.00, restoran akan ditafsirkan sebagai tutup pada 2 Januari pukul 02.00.

Tabel berikut menjelaskan properti jenis ServiceDeliveryHoursSpecification:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilai ini selalu "ServiceDeliveryHoursSpecification".
validFrom DateTime Opsional

Tanggal dan waktu (termasuk zona waktu) saat pesanan ASAP pengguna dapat dipenuhi. Misalnya, "2017-05-01T07:00:00-07:00". Jika properti ini tidak disetel, properti ini akan dianggap valid setiap hari.

Untuk informasi selengkapnya, lihat Format DateTime dan Waktu.

validThrough DateTime Opsional

Tanggal dan waktu (termasuk zona waktu) setelah pesanan ASAP pengguna tidak dapat dipenuhi. Misalnya, "2017-05-01T07:00:00-07:00". Jika properti ini tidak ditetapkan, properti ini akan dianggap valid setiap hari.

Waktu untuk validThrough bersifat eksklusif. Misalnya, jika waktu tersebut ditetapkan ke 18.00, waktu tersebut valid hingga 17.59.59.

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Time.

opens Time Opsional

Waktu layanan pesan antar dimulai untuk memenuhi pesanan ASAP pengguna. Misalnya, "T10:30:00".

Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai opens. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

closes Time Opsional

Waktu saat layanan pengiriman untuk pesanan SEGERA pengguna tidak lagi tersedia. Misalnya, "T23:59:59".

Waktu untuk closes bersifat eksklusif. Oleh karena itu, jika Anda menetapkan buka/tutup untuk ServiceDeliveryHoursSpecification ini ke pukul 10.00 dan 16.00, maka pesanan terakhir adalah pukul 15.59.59.

Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai closes. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.

dayOfWeek Array DayOfWeek Opsional

Hari dalam seminggu saat layanan ini tersedia untuk pesanan ASAP pengguna. Berikut adalah nilai yang valid:

  • "Senin"
  • "Selasa"
  • "Wednesday"
  • "Thursday"
  • "Friday"
  • "Saturday"
  • "Sunday"

Jika Anda tidak menentukan hari apa pun dalam seminggu, ServiceDeliveryHoursSpecification akan berlaku untuk semua hari.

deliveryLeadTime QuantitativeValue Opsional Perkiraan waktu pengiriman, dalam menit, setelah pesanan dilakukan. Sebaiknya Anda menetapkan properti ini. Tetapkan kolom value dari QuantitativeValue ke jumlah menit dan unitCode ke "MIN".

Contoh berikut menunjukkan elemen 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

Jenis RestrictedDiet memiliki kemungkinan nilai berikut:

  • 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