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 lain seperti yang ditentukan di bawah ini.

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 Time

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 zona waktu restoran atau 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 berikut setiap kali Anda menentukan DateTime atau Time:

  • Awalan "T" sebelum waktu adalah bagian dari format dan bersifat wajib.
  • Zona waktu harus ditentukan untuk DATETIME. Hal ini tidak diperlukan untuk TIME.
  • Waktunya harus ditentukan dalam waktu setempat untuk restoran atau layanan.

Amplop

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

"Amplop" adalah struktur tingkat atas 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 Namanya selalu "DataFeed".
dateModified DateTime Wajib

DateTime terakhir yang dimodifikasi dari feed data, dalam format ISO 8601.

Tanggal dan waktu dalam format ISO_OFFSET_DATE_TIME saat item dalam feed ini diubah. Jika kolom ini tidak tersedia, dianggap bahwa waktu update adalah waktu saat pesan push diterima (atau crawling terjadi) di server Google.

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

Dalam feed batch Anda, pembuatan versi entitas ditentukan melalui kolom dateModified di dalam amplop feed.

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

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 Namanya 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 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 sesuai dengan panduan berikut:

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

Satu atau beberapa penawaran untuk menyediakan AddOnMenuItem ini.

Menjelaskan kapan dan berapa harga AddOnMenuItem ini tersedia. Hanya satu penawaran yang boleh 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 berukuran kecil, sedang, dan besar sebagai add-on), gunakan properti hasMenuItemOption.

Nilai 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 mendeskripsikan variasi pada item add-on itu sendiri (seperti kentang goreng berukuran 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 terjadi:

  • Variasi dasar ada pada item add-on itu sendiri (seperti kentang goreng berukuran 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 pantangan makanan yang dijelaskan (seperti "GlutenFreeDiet" atau "VeganDiet"). Ini adalah daftar kemungkinan nilai yang dienumerasi.
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 menampilkan AddOnMenuItem:

Contoh 1

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

Contoh 2

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

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

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

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

AddOnMenuSection

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 Selalu ada "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 dipilih untuk pizza.
image URL Opsional Gambar bagian menu.
hasMenuItem Array AddOnMenuItem Wajib diisi* Item menu add-on yang terdapat di AddOnMenuSection.
offers Array Offer Opsional

Gunakan Offer.availabilityStarts dan Offer.availabilityEnds untuk menunjukkan periode waktu 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, Makanan Pembuka, atau Hidangan ikan).
defaultOption Array AddOnMenuItem Opsional

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

Objek AddOnMenuItem harus ada di hasMenuItem dari AddOnMenuSection.

Jumlah defaultOption tidak boleh melebihi jumlah maksimum eligibleQuantity dari AddOnMenuSection.

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

Contoh berikut menyertakan objek AddOnMenuSection:

Contoh 1

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

Contoh 2

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

Contoh 3

Item menu "Cheese Sandwich" memiliki AddOnMenuSection "Pilihan Keju" dengan "Swiss" dan "Mozzarella" dipilih sebagai 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

Menampilkan jam pemenuhan bagi pengguna guna menjadwalkan pesanan di awal untuk pengiriman dan bawa pulang.

Biasanya, nilai opens lebih kecil daripada nilai closes. Panduan 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 menganggap bahwa pemesanan di awal tersedia pada semua hari setiap saat.
  • Jika opens dan closes sama, kami menganggap bahwa pemesanan di 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 2 pagi, maka restoran tersebut akan ditafsirkan sebagai tutup pada 2 Januari pukul 02.00.
  • opens dan closes merujuk pada slot waktu yang akan datang. closes bersifat eksklusif. Misalnya, jika opens adalah pukul 10.00 dan closes adalah pukul 16.00 dengan serviceTimeInterval 15 menit, slot waktu pertama dimulai pada pukul 10.00 dan slot waktu terakhir dimulai pada pukul 15.45.

Tabel berikut menjelaskan properti jenis AdvanceServiceDeliveryHoursSpecification:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini akan selalu "AdvanceServiceDeliveryHoursSpecification".
validFrom DateTime Kondisional

Tanggal mulai saat pemesanan di muka dari pengguna dapat dipenuhi. Misalnya, "2017-05-01T00:00:00-07:00".

Jika tidak disetel, properti ini dianggap valid setiap hari. Properti validFrom dan validThrough tidak boleh atau ada secara bersamaan.

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

Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Time.

validThrough DateTime Opsional

Tanggal berakhir saat pesanan di muka dari pengguna tidak lagi dapat dipenuhi. Misalnya, "2018-12-01T00:00:00-07:00".

Jika tidak disetel, properti ini dianggap valid setiap hari. Properti validFrom dan validThrough tidak boleh atau ada secara bersamaan.

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

Waktu untuk validThrough bersifat eksklusif. Misalnya, jika waktu disetel ke pukul 18.00, waktu akan valid hingga pukul 17.59.59.

Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu.

opens Time Opsional

Berlaku untuk slot pesan antar atau bawa pulang.

Waktu tertentu sejak awal saat pesanan di muka dari pengguna dapat dipenuhi. Misalnya, 06.30 akan ditetapkan 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 mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu.

closes Time Opsional

Berlaku untuk slot pesan antar atau bawa pulang.

Waktu tertentu saat pesanan di muka dari pengguna tidak dapat dipenuhi. Misalnya, pukul 21.00 akan ditampilkan sebagai "T21.00.00". closes> bersifat eksklusif, jadi menyetelnya ke pukul 21.00 selama serviceTimeInterval selama 15 menit berarti slot waktu terakhir yang tersedia dimulai pada 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 Tanggal dan Waktu.

dayOfWeek Array DayOfWeek Opsional

Tersedia hari dalam seminggu saat jam pengiriman awal tersedia. Nilai yang valid adalah:

  • "Senin"
  • "Selasa"
  • "Rabu"
  • "Kamis"
  • "Jumat"
  • "Sabtu"
  • "Minggu"

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

serviceTimeInterval Duration Wajib

Interval antara dua waktu servis berturut-turut.

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

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

advanceBookingRequirement QuantitativeValue Wajib

Jumlah menit dari waktu pemesanan saat pesanan di awal dapat dipenuhi.

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

Misalnya, jika pesanan di 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 Namanya 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 Namanya 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 uang, yang memiliki spesifikasi biaya pengiriman ini yang valid. Misalnya, untuk menunjukkan volume pembelian minimal, atau untuk menyatakan bahwa pengiriman tersedia tanpa biaya tambahan di atas volume pesanan tertentu.
eligibleQuantity QuantitativeValue Opsional Interval dan satuan pengukuran kuantitas pemesanan yang biaya pengirimannya valid. Dengan demikian, Anda dapat, misalnya, menentukan bahwa biaya kargo tertentu hanya berlaku untuk jumlah tertentu.
eligibleRegion Array GeoShape atau Place atau GeoCircle Opsional Tempat, atau GeoShape/GeoCircle untuk wilayah geo-politik yang memiliki spesifikasi penawaran atau biaya pengiriman yang valid. Gunakan properti ini hanya jika biaya pengiriman bervariasi di setiap 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 Tanggal dan Waktu.
validThrough DateTime Opsional Tanggal dan waktu (termasuk zona waktu) saat biaya pengiriman yang ditentukan tidak valid. Misalnya, "2017-05-01T06:30:00-07:00". Waktu untuk validThrough bersifat eksklusif: misalnya, jika waktu disetel ke pukul 18.00, waktu akan valid hingga pukul 17.59.59. Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu.

Contoh berikut menunjukkan elemen DeliveryChargeSpecification:

Contoh 1

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

Contoh 2

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

Contoh 3

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

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 Kuantitas referensi yang menerapkan harga tertentu. Misalnya, referenceQuantity dari nilai 10 dengan unitCode "P1" menghasilkan 10% dari nilai pesanan. Saat ini hanya unitCode "P1" yang didukung.
basePrice Angka Opsional Biaya dasar selain referenceQuantity. Misalnya, referenceQuantity dari 10 dengan unitCode "P1" dan basePrice dari 5 dalam USD menghasilkan $5 + 10% dari nilai pesanan. Nilai defaultnya adalah 0.

Contoh biaya pengiriman

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

Perhatikan bahwa Pengurutan Menyeluruh 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 dihapus.

  • Contoh 1: Biaya pengiriman adalah 5% dari subtotal keranjang
  • Contoh 2: Biaya pengiriman adalah $5
  • Contoh 3: Biaya pengiriman adalah $5 + 10% dari subtotal keranjang
  • Contoh 4: Biaya pengiriman adalah $5 dan biaya bagasi $0,1
  • Contoh 5: Biaya pengiriman 5% dan biaya layanan 2% dari subtotal keranjang
  • Contoh 6: Biaya pengiriman adalah $5 dan $1 per jarak 1 km tambahan

Contoh 1

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

Contoh 2

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

Contoh 3

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

Contoh 4

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

Contoh 5

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

Contoh 6

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

GeoCircle

Tabel berikut menjelaskan properti jenis GeoCircle:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Namanya selalu "GeoCircle".
geoMidpoint GeoCoordinates Wajib Menunjukkan GeoCoordinates di tengah GeoCircle.
geoRadius Angka Wajib Menunjukkan perkiraan radius (dalam meter) 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 Namanya selalu "GeoCoordinates".
latitude Angka Wajib

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

Presisi harus minimal 5 angka di belakang koma.

longitude Angka Wajib

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

Presisi 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 Nama ini selalu "GeoShape".
polygon Array Teks Wajib

Poligon atau multipoligon yang dinyatakan sebagai rangkaian tiga atau beberapa titik yang dipisahkan spasi. Sebaiknya poin pertama dan terakhir sama, tetapi tidak wajib.

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

Pada umumnya, Anda akan memiliki satu poligon. Untuk kasus penggunaan yang lebih kompleks, lihat dokumentasi area layanan pengiriman.

Contoh berikut menunjukkan elemen GeoShape:

Contoh 1

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

Contoh 2

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

Contoh 3

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

Tabel berikut mencantumkan properti untuk jenis Menu:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Bagian ini selalu berupa "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 gizi dan pengungkapan alergen.
hasMenuSection Objek atau array tunggal MenuSection Opsional Sub-pengelompokan menu logis (seperti Makan Malam, Makanan Pembuka, atau Hidangan ikan).
hasMenuItem Objek atau array tunggal 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:

Contoh 1

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

Contoh 2

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 3

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 Menu dan Restoran.

Tabel berikut mencantumkan properti untuk jenis MenuDisclaimer:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nama ini selalu ditampilkan sebagai "Pernyataan Penyangkalan Menu".
@id URL Wajib ID unik untuk pernyataan penyangkalan menu.
text Teks Wajib Teks pernyataan penyangkalan. Misalnya, "Asupan energi harian rata-rata orang dewasa adalah 8700 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 mewakili item dalam menu. Tabel berikut mencantumkan properti untuk jenis MenuItem:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Ini selalu berupa "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 disarankan 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 menyediakan MenuItem ini. Menjelaskan kapan dan berapa harga MenuItem ini akan tersedia. Hanya satu penawaran yang boleh berlaku 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 pantangan makanan yang dijelaskan (seperti "http://schema.org/GlutenFreeDiet" atau "http://schema.org/VeganDiet". Ini adalah daftar kemungkinan nilai yang dienumerasi.
nutrition NutritionInformation Opsional Informasi nutrisi 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 kemungkinan nilai yang dienumerasi. 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:

Contoh 1

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

Contoh 2

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

Contoh 3

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

Contoh 4

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

Contoh 5

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

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

Opsi untuk merepresentasikan pilihan yang akan diperlukan pengguna saat memilih hidangan atau kombinasi. Pengguna harus memilih opsi. Jika tidak, pesanan tersebut 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 Nama ini selalu "MenuItemOption".
value PropertyValue Wajib PropertyValue yang berisi pasangan nama/nilai yang mewakili opsi.
offers Array Offer Wajib

Satu atau beberapa penawaran untuk menyediakan MenuItemOption ini. Menjelaskan kapan dan berapa harga opsi item menu ini tersedia. Hanya satu penawaran yang boleh valid pada waktu tertentu. Anda dapat memiliki banyak penawaran yang valid jika harga/ketersediaan dapat berubah berdasarkan waktu. Jangan gunakan Offer.eligibleQuantity. MenuItemOption bersifat eksklusif satu sama lain, sehingga Offer.eligibleQuantity akan diabaikan jika disediakan.

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 opsi ini jika add-on khusus untuk opsi item menu tertentu. Jika tidak, sediakan add-on menggunakan properti MenuItem.menuAddOn.
suitableForDiet Array RestrictedDiet Opsional Daftar enumerasi yang menunjukkan diet saat hidangan ini mematuhi pantangan makanan yang dijelaskan (seperti "http://schema.org/GlutenFreeDiet" atau "http://schema.org/VeganDiet").
nutrition NutritionInformation Opsional Informasi nutrisi 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 kemungkinan nilai yang dienumerasi. 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:

Contoh 1

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

Contoh 2

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

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

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Selalu ada "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-MenuBagian 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 periode waktu penayangan MenuSection ini. 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 MenuSection entity:

Contoh 1

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

Contoh 2

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

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

NutritionInformation

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

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

Jumlah kalori dalam Kal, kkal, 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 tak jenuh, biasanya dalam g, menggunakan format berikut:

number g_OR_mg

Contoh berikut menunjukkan elemen NutritionInformation:

Contoh 1

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

Contoh 2

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

Penawaran

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

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

ID unik penawaran. Dapat berupa nilai teks apa pun yang unik dalam Offer. Nilai sku dirujuk dalam 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 diwajibkan dalam jenis penawaran berikut:

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

Ini tidak digunakan dalam jenis penawaran berikut:

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

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

Properti ini hanya diwajibkan dalam jenis penawaran berikut:

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

Ini tidak digunakan dalam jenis penawaran berikut:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
availabilityStarts DateTime atau Time Opsional Tanggal dan waktu atau hanya waktu penawaran tersedia. Misalnya, jika panekuk 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 Tanggal dan Waktu.
availabilityEnds DateTime atau Time Opsional Tanggal dan waktu atau hanya waktu saat penawaran tidak tersedia. Kesempatan ini bersifat eksklusif. Misalnya, jika ketersediaan martabak berakhir pada pukul 10.00, panekuk terakhir dapat disajikan pada pukul 09.59.59. Nilai kolom ini dapat terlihat seperti berikut: "2017-05-01T10:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu.
availableDay Array DayOfWeek Opsional

Hari saat item ini tersedia. Nilai yang valid adalah:

  • "Senin"
  • "Selasa"
  • "Rabu"
  • "Kamis"
  • "Jumat"
  • "Sabtu"
  • "Minggu"

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

validFrom DateTime Opsional

Tanggal dan waktu (termasuk zona waktu) saat harga yang ditentukan berlaku. Misalnya, harga pastanya adalah $8 saat makan siang dan $10 untuk makan malam. Untuk mengetahui informasi selengkapnya, lihat Format Tanggal 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) saat harga yang ditentukan tidak lagi valid. Misalnya, harga pastanya adalah $8 saat makan siang dan $10 untuk makan malam. Waktu untuk validThrough bersifat eksklusif: misalnya, jika waktu tersebut disetel ke pukul 18.00, waktu akan valid hingga pukul 17.59.59. Untuk mengetahui informasi selengkapnya, lihat Format Tanggal 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 mengharuskan untuk memesan setidaknya 10 pizza untuk pengiriman.

Nilai ini bersifat opsional. Secara default, tidak ada batas maksimum, tetapi restoran dapat menentukan batas maksimum. Batas minimum berlaku hanya 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 pada 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

Saat digunakan dalam Service.Offer, parameter ini menunjukkan detail harga pengiriman. Jika beberapa objek DeliveryChargeSpecification dapat diterapkan, objek yang paling spesifik akan diterapkan. Gunakan objek DeliveryChargeSpecification yang saling eksklusif 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

Menampilkan restoran yang ditawarkan Offer ini.

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

Merepresentasikan jenis layanan yang dipenuhi Offer ini. Nilai yang mungkin adalah "Delivery" atau "TakeOUT".

Jika tidak ditentukan, Offer ini akan dipenuhi dengan layanan pesan antar dan 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 1

Contoh berikut menunjukkan penawaran sederhana:

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

Contoh 2

Contoh penawaran berikut menunjukkan ketersediaan dari pukul 08.00-10.00 di 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 3

Contoh berikut menunjukkan ketersediaan dari pukul 09.00-10.59.59 pada hari Senin, Rabu, dan Jumat, tetapi 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 4

Contoh berikut menunjukkan set kuantitas yang memenuhi syarat dari item menu add-on sehingga pengguna dapat memesan maksimal 2 porsi dari 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 5

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 kurang dari nilai closes. Panduan berikut berlaku untuk penggunaan properti opens dan closes:

  • Properti opens dan closes bersifat opsional, tetapi sangat direkomendasikan untuk menunjukkan saat pengurutan tersedia. Praktik terbaik untuk menentukan jam yang tersedia adalah dengan menyertakan array deliveryHours yang berisi ServiceDeliveryHoursSpecification dengan properti opens dan closes. Anda kemudian dapat menyertakan objek AdvanceServiceDeliveryHoursSpecification di deliveryHours dengan properti opens dan closes-nya sendiri, jika ingin menawarkan jendela yang lebih terbatas untuk pemesanan di awal.
  • Jika opens dan closes tidak ditentukan secara eksplisit, kami menganggap layanan pemesanan tersedia setiap hari dan sepanjang hari.
  • Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai opens atau closes. Jika zona waktu ditentukan, Google mengabaikan informasi ini.
  • Jika opens dan closes sama, kita menganggap bahwa restoran buka 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 tutup adalah 02.00, restoran akan dianggap tutup pada 2 Januari pukul 02.00.
  • Waktu untuk closes bersifat eksklusif. Oleh karena itu, jika waktu buka dan tutup untuk periode pemesanan ini masing-masing ditetapkan pada pukul 10.00 dan 16.00, urutan terakhir adalah pukul 15.59.59.

Tabel berikut menjelaskan properti jenis OpeningHoursSpecification:

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

Hari 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, OpeningHoursSpecification akan berlaku untuk semua hari.

opens Time Opsional

Jika digunakan dalam spesifikasi Restaurant, properti ini menunjukkan jam buka restoran pada hari tertentu dalam seminggu. Misalnya, 06.30 akan ditetapkan sebagai "T06:30:00".

Jika digunakan dalam spesifikasi Service, hal ini menunjukkan waktu spesifik mulai dari kapan pesanan pengguna dapat dilakukan. Waktu ini menentukan jam 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 Tanggal dan Waktu.

closes Time Opsional

Jika digunakan dalam spesifikasi Service, properti ini menunjukkan waktu tertentu saat pesanan pengguna tidak dapat dilakukan. Waktu ini menentukan waktu tutup 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 Tanggal dan Waktu.

validFrom DateTime Opsional

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

Misalnya, jika jam yang diberikan berlaku untuk seluruh 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 mulai dari kapan pesanan pengguna dapat dilakukan.

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

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

Untuk zona waktu, gunakan zona waktu Restoran atau Layanan.

Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu.

validThrough DateTime Opsional

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

Misalnya, jika jam yang diberikan berlaku untuk seluruh 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, validThrough menunjukkan tanggal berakhir saat pesanan pengguna tidak lagi dapat dilakukan.

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

Selain tanggal, bagian waktu dan zona waktu dari DateTime juga diperlukan.

Untuk zona waktu, gunakan zona waktu Restoran atau Layanan.

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

Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu.

deliveryHours Array ServiceDeliveryHoursSpecification atau array AdvanceServiceDeliveryHoursSpecification Kondisional

Spesifikasi waktu pengiriman atau pengeksporan.

Parameter ini wajib ada kecuali jika restoran tutup (artinya opens dan closes ditetapkan dan sama satu sama lain.

  • ServiceDeliveryHoursSpecification: Selama jam buka/tutup, Anda dapat menetapkan jam "buka" dan "tutup" saat pengguna dapat melakukan pemesanan sesegera mungkin.
  • AdvanceServiceDeliveryHoursSpecification: Selama jam buka/tutup, Anda dapat menetapkan jam "buka" dan "tutup" saat pengguna dapat melakukan pemesanan di awal.

Contoh berikut menunjukkan elemen OpeningHoursSpecification:

Contoh 1

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

Contoh 2

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

Contoh 3

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

Contoh 4

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

PackagingDetails

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 Namanya 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 setoran 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 Kolom ini selalu berupa "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 unit moneter, yang mana spesifikasi tagihan pembayaran ini valid, seperti untuk menunjukkan volume pembelian minimal.
eligibleQuantity QuantitativeValue Opsional Jumlah pemesanan yang valid dari biaya pembayaran. Misalnya, Anda dapat menggunakan properti ini untuk mewajibkan jumlah item minimum dalam suatu 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 Tanggal 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 ditetapkan ke pukul 18.00, waktu akan valid hingga pukul 17.59.59. Untuk mengetahui informasi selengkapnya, lihat Format Tanggal 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 Kuantitas referensi yang menerapkan harga tertentu. Misalnya, referenceQuantity dari nilai 10 dengan unitCode "P1" menghasilkan 10% dari nilai pesanan. Saat ini hanya unitCode "P1" yang didukung.
basePrice Angka Opsional Biaya dasar selain referenceQuantity. Misalnya, referenceQuantity dari 10 dengan unitCode "P1" dan basePrice dari 5 dalam USD menghasilkan $5 + 10% dari nilai pesanan. Nilai defaultnya adalah 0.

Contoh biaya Pengeksporan

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

Perlu diketahui bahwa saat ini kami hanya mendukung satu PaymentChargeSpecification. Gabungkan semua jenis biaya ke dalam satu PaymentChargeSpecification

Jika tidak ada biaya, Offer.PriceSpecification akan dihapus.

  • Contoh 1: Tarif layanan 5% dari subtotal keranjang
  • Contoh 2: Tarif layanan adalah $5
  • Contoh 3: Biaya bagasi adalah $0,1 dan biaya layanan adalah 5% dari subtotal keranjang
  • Contoh 4: Biaya bagasi adalah $0,1 dan biaya layanan adalah $1
  • Contoh 5: Biaya layanan adalah 5% dan tip yang diperlukan adalah 10% dari subtotal keranjang

Contoh 1

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

Contoh 2

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

Contoh 3

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

Contoh 4

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

Contoh 5

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 Lokasinya selalu "Place".
address PostalAddress Wajib Alamat tempat.

Contoh berikut menunjukkan elemen Tempat:

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 Alamatnya selalu berupa "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 dua huruf ISO 3166-1 alpha-2 . Misalnya, "US".

Penyedia pengiriman dapat mencantumkan properti ini untuk menentukan Service.areaServed tempat layanan disediakan.

Saat digunakan di Restaurant.address, semua properti yang tercantum dalam PostalAddress diperlukan.

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 Nilainya 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 valid untuk spesifikasi harga. Misalnya, harganya mungkin $2 per pon atau 2 barang untuk 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 Properti 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.
  • "OPSI": Variasi 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 saat digunakan dengan MenuItem dengan "SIZE/OPTION" terkait.
  • "PIZZA_SIDE": Khusus untuk pizza, add-on ini hanya berlaku untuk porsi/pizza utuh (seperti topping jamur di sisi kiri, sisi kanan, atau pizza utuh).
  • "SIZE": Opsi untuk menetapkan ukuran add-on (seperti kentang goreng besar sebagai add-on untuk kombinasi makanan).
  • "OPSI": Variasi apa pun selain ukuran. Jika Anda tidak dapat membedakan antara "SIZE" dan "OPTION", gunakan "OPTION".
value Teks Wajib

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

  • "PIZZA_SIDE": Nilai yang sesuai harus "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 induk MenuItem.

QuantitativeValue

Tabel berikut menjelaskan properti jenis QuantitativeValue:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilainya selalu "QuantitativeValue".
value Angka Opsional Nilai kuantitatif atau simpul 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 yang diikuti dengan 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:

Contoh 1

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

Contoh 2

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

Contoh 3

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

Restoran

Tabel berikut mencantumkan properti untuk jenis Restaurant:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Opsi ini selalu "Restoran".
@id URL Wajib ID unik restoran atau penyedia layanan 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", // Kode negara (+1) wajib diisi
  "servesCuisine": [
    "Indian-Meksiko 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 Menu dan Restoran.

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 Namanya selalu "ReturnablePackageDepositDetails".
returnablePackageDepositAmount gs1:PriceSpecification Opsional Jumlah setoran untuk item ini per gs1:PriceSpecification. Misalnya, setoran $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 Action Pemesanan End-to-End 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 ada jika serviceType adalah "PENGIRIMAN".
hoursAvailable Array OpeningHoursSpecification Wajib Jam saat layanan ini tersedia.
specialOpeningHoursSpecification Array OpeningHoursSpecification, ServiceDeliveryHoursSpecification, atau AdvanceServiceDeliveryHoursSpecification Opsional

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

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

offers Array Offer Kondisional

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

Properti Offer.priceSpecification bersifat opsional di Service. 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 layanan 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 menjadi objek dengan name kunci yang sesuai dengan nama kolom opsional. value kunci adalah nilai yang relevan secara kontekstual untuk kolom tersebut.

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 pengiriman/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 mengetahui contoh entitas Layanan lainnya, lihat Contoh Feed Layanan.

ServiceDeliveryHoursSpecification

Menampilkan jam pemenuhan bagi pengguna untuk menjadwalkan pesanan sesegera mungkin untuk diantar dan dibawa pulang.

Biasanya, nilai opens lebih kecil daripada nilai closes. Panduan 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 mengabaikan informasi zona waktu.
  • Jika opens dan closes tidak ditentukan secara eksplisit, kami berasumsi bahwa pemesanan SEGERA tersedia setiap hari setiap saat.
  • Jika opens dan closes sama, kami menganggap bahwa pengurutan 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 tutup adalah 02.00, restoran akan dianggap tutup pada 2 Januari pukul 02.00.

Tabel berikut menjelaskan properti jenis ServiceDeliveryHoursSpecification:

Properti Jenis Kebutuhan Deskripsi
@type Teks Wajib Nilainya akan 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 ditetapkan, properti ini dianggap valid setiap hari.

Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu.

validThrough DateTime Opsional

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

Waktu untuk validThrough bersifat eksklusif. Misalnya, jika waktu disetel ke pukul 18.00, waktu akan valid hingga pukul 17.59.59.

Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu.

opens Time Opsional

Waktu saat layanan pengiriman dimulai untuk pesanan ASAP pengguna harus dipenuhi. 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 Tanggal dan Waktu.

closes Time Opsional

Waktu saat layanan pengiriman untuk pesanan ASAP 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, urutan terakhirnya 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 Tanggal dan Waktu.

dayOfWeek Array DayOfWeek Opsional

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

  • "Senin"
  • "Selasa"
  • "Rabu"
  • "Kamis"
  • "Jumat"
  • "Sabtu"
  • "Minggu"

Jika Anda tidak menentukan hari apa pun, maka ServiceDeliveryHoursSpecification 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:

Contoh 1

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

Contoh 2

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