Feed katalog makanan didasarkan pada entity DataFeed
schema.org. Feed katalog makanan terdiri dari detail lokalitas restoran seperti
alamat, menu, dan lokasi restoran, serta detail layanan
restoran seperti biaya pengiriman, area pengiriman, dan item lainnya seperti yang ditentukan
di bawah.
DataFeed
berisi kumpulan elemen, yang masing-masing mewakili satu item
yang dinyatakan dalam kosakata schema.org. Anda dapat menggunakan jenis DataFeed
untuk memublikasikan semua data terstruktur dalam format JSON-LD.
Untuk mengetahui informasi tentang cara menggunakan spesifikasi ini untuk membuat feed, lihat Ringkasan integrasi inventaris.
Format DateTime dan Waktu
DateTime
didasarkan pada jenis schema.org,
dan, kecuali jika dinyatakan lain, harus mengikuti format ISO 8601 dan menyertakan
tanggal, waktu, dan zona waktu. Gunakan sintaksis berikut untuk DateTime
:
// DateTime format:YYYY-MM-DD THH:MM:SS [∓HH:MM |Z]
Contoh:
2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z // UTC time zone. The optional "Z" suffix represents the UTC time zone.
Time
adalah waktu lokal untuk restoran atau
zona waktu lokasi layanan tertentu, juga didasarkan pada jenis schema.org, dan juga harus
mengikuti format ISO 8601. Waktu menggunakan sintaksis berikut:
// Time format: THH:MM:SS
Contoh:
T08:08:00 // 8:08 AM
Perhatikan hal-hal berikut setiap kali Anda menentukan DateTime
atau Time
:
- Awalan "T" sebelum waktu merupakan bagian dari format dan wajib diisi.
- Zona waktu harus ditentukan untuk
DATETIME
. Ini tidak diperlukan untukTIME
. - Waktu harus ditentukan dalam waktu lokal untuk restoran atau layanan.
Amplop
Kode awal untuk feed katalog makanan harus berisi bagian "envelope".
"Envelop" adalah struktur tingkat teratas dari setiap feed, dan harus berupa
DataFeed
dengan properti berikut:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@context |
URL | Wajib | Konteks yang digunakan; biasanya "http://schema.googleapis.com". |
@type |
Teks | Wajib | Nama ini selalu "DataFeed". |
dateModified |
DateTime |
Wajib |
Tanggal dan waktu dalam format ISO_OFFSET_DATE_TIME saat item dalam feed ini diubah. Jika kolom ini tidak ada, waktu update akan diasumsikan sebagai waktu saat pesan push diterima (atau crawling terjadi) di server Google. Sebaiknya terapkan hal ini jika Anda menggunakan push dan crawl secara bersamaan. Stempel waktu ini harus ditentukan dengan zona waktu dan tingkat perincian milidetik; misalnya, "2016-12-28T06:30:00:123-07:00". Dalam feed batch, pembuatan versi
entity ditentukan melalui kolom |
dataFeedElement |
Array Menu atau
Restaurant
atau Service |
Wajib | Satu atau beberapa item yang merupakan bagian dari feed ini. Lihat detailnya di bawah. |
Contoh berikut menunjukkan amplop:
{ "@context": "http://schema.googleapis.com", "dateModified": "2016-12-28T06:30:00:123-07:00", "@type": "DataFeed", "dataFeedElement": [ /* All items that are part of this feed go here */ ] }
AdditiveDetails
Untuk menggunakan jenis ini, tambahkan konteks gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Kemudian, tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
atau MenuItemOption
yang sesuai.
Tabel berikut menjelaskan properti jenis AdditiveDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "AdditiveDetails". |
additiveName |
Teks | Opsional | Nama aditif. |
additiveLevelOfContainment |
Teks | Opsional | Kode pembatasan per
gs1:LevelOfContainmentCode.
Misalnya http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ,
http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM , atau
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN . |
Contoh berikut menunjukkan penggunaan jenis AdditiveDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/8", "name": "Energy Drink", "description": "A 0.25l can of energy drink.", "offers": { "@type": "Offer", "sku": "offer-energy-drink", "price": "3.49", "priceCurrency": "USD" }, "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AdditiveDetails", "additiveName": "phosphate", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
AddOnMenuItem
Item makanan atau minuman yang tercantum dalam item menu add-on MenuItem
.
Tabel berikut mencantumkan properti untuk jenis AddOnMenuItem
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "AddOnMenuItem". |
@id |
URL | Wajib | ID unik item menu add-on. |
name |
Teks | Wajib | Teks yang mengidentifikasi AddOnMenuItem saat pengguna menjelajahi menu. |
description |
Teks | Opsional | Deskripsi item menu add-on. |
image |
URL | Opsional |
Gambar item menu add-on yang cocok dengan panduan berikut:
|
offers |
Array Offer |
Wajib diisi* |
Satu atau beberapa penawaran untuk menyediakan AddOnMenuItem ini. Menjelaskan kapan dan dengan harga berapa AddOnMenuItem ini tersedia.
Hanya satu penawaran yang valid pada waktu tertentu. Anda dapat memiliki
banyak penawaran yang valid jika harga atau ketersediaan dapat berubah berdasarkan
waktu. Jika add-on atau item berbeda melalui atribut dasar
atau variasi pada item add-on itu sendiri (seperti kentang goreng
kecil, sedang, dan besar sebagai add-on), gunakan properti
Default untuk Properti
|
hasMenuItemOptions |
Array MenuItemOption |
Wajib diisi* |
Array atribut dasar yang menjelaskan variasi pada item add-on itu sendiri (seperti kentang goreng kecil, sedang, dan besar sebagai add-on), untuk item menu add-on ini. Gunakan opsi untuk menentukan berbagai variasi yang tersedia untuk item menu add-on ini. Ada dua skenario yang dapat menyebabkan hal ini:
|
suitableForDiet |
Array RestrictedDiet |
Opsional | Hidangan mematuhi batasan diet yang dijelaskan (seperti "GlutenFreeDiet" atau "VeganDiet"). Ini adalah daftar nilai yang mungkin dihitung. |
nutrition |
NutritionInformation |
Opsional | Informasi nutrisi untuk hidangan, terutama kalori. |
menuAddOn |
Array AddOnMenuSection |
Opsional | AddOnMenuItem dapat memiliki bagian menu yang terdiri dari item yang diizinkan yang dapat ditambahkan sebagai add-on. |
Contoh berikut menunjukkan AddOnMenuItem
:
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small-pepperoni-pizza", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large-pepperoni-pizza", "price": "20.00", "priceCurrency": "USD" } } ], "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Choice of toppings", "@id": "https://www.example.com/1089/addon/1", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Shrimp", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-small", "price": "1.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-large", "price": "2.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-small", "price": "1.50", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-large", "price": "2.50", "priceCurrency": "USD" } } ] } ] } ] }
AddOnMenuSection
Sub-pengelompokan item makanan atau minuman sebagai bagian menu add-on untuk item menu.
Tabel berikut mencantumkan properti untuk jenis AddOnMenuSection
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "AddOnMenuSection". |
@id |
URL | Wajib | ID unik bagian menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi AddOnMenuSection saat pengguna menjelajahi menu. |
description |
Teks | Opsional | Deskripsi bagian menu. |
eligibleQuantity |
QuantitativeValue |
Opsional | Menunjukkan jumlah item yang diizinkan sebagai add-on untuk bagian menu ini. Anda dapat menggunakan kolom ini untuk membatasi jumlah add-on, seperti jumlah minimum dan maksimum topping yang dapat Anda pilih pada pizza. |
image |
URL | Opsional | Gambar bagian menu. |
hasMenuItem |
Array AddOnMenuItem |
Wajib diisi* | Item menu add-on yang terdapat dalam AddOnMenuSection. |
offers |
Array Offer |
Opsional |
Gunakan Listingan di bawah menunjukkan properti
|
hasMenuSection |
Array AddOnMenuSection |
Wajib diisi* | Sub-pengelompokan logis menu add-on (seperti Makan Malam, Hidangan Pembuka, atau Hidangan ikan). |
defaultOption |
Array AddOnMenuItem |
Opsional |
Item menu add-on yang akan dipilih secara default untuk pengguna di
Objek Jumlah |
numberOfFreeAddOns |
Angka | Opsional | Menunjukkan jumlah add-on yang dapat dipilih pengguna tanpa biaya. |
Contoh berikut menyertakan objek AddOnMenuSection
:
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Item menu "Cheese Sandwich" memiliki "Choice of Cheese"
AddOnMenuSection
dengan "Swiss" dan "Mozzarella" yang telah dipilih
secara default.
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "defaultOption": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a" }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b" } ], "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozzarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
AdvanceServiceDeliveryHoursSpecification
Merepresentasikan jam pemenuhan pesanan bagi pengguna untuk menjadwalkan pesanan awal untuk pengiriman dan pesan bawa pulang.
Biasanya, nilai opens
lebih kecil dari nilai closes
. Pedoman
berikut berlaku untuk penggunaan properti opens
dan closes
:
- Properti
opens
dancloses
bersifat opsional untukAdvanceServiceDeliveryHoursSpecification
, tetapi sebaiknya Anda menyertakannya. - Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai
opens
ataucloses
. Zona waktu yang ditentukan akan diabaikan. - Jika
opens
dancloses
tidak ditentukan secara eksplisit, kami mengasumsikan bahwa pemesanan prabayar tersedia setiap hari dan setiap saat. - Jika
opens
dancloses
sama, kami mengasumsikan bahwa pemesanan awal tidak tersedia. - Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutup adalah 02.00, restoran akan ditafsirkan sebagai tutup pada 2 Januari pukul 02.00. opens
dancloses
merujuk ke slot waktu mendatang.closes
bersifat eksklusif. Misalnya, jikaopens
adalah pukul 10.00 dancloses
adalah pukul 16.00 denganserviceTimeInterval
15 menit, slot waktu pertama dimulai pukul 10.00 dan slot waktu terakhir dimulai pukul 15.45.
Tabel berikut menjelaskan properti jenis
AdvanceServiceDeliveryHoursSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "AdvanceServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Kondisional |
Tanggal awal saat pesanan awal pengguna dapat dipenuhi. Misalnya, "2017-05-01T00:00:00-07:00". Jika tidak ditetapkan, properti ini akan dianggap valid setiap hari.
Properti Jika jenis ini ditentukan sebagai
Untuk informasi selengkapnya, lihat Format DateTime dan Waktu. |
validThrough |
DateTime |
Opsional |
Tanggal akhir setelahnya pesanan awal pengguna tidak dapat lagi dipenuhi. Misalnya, "2018-12-01T00:00:00-07:00". Jika tidak ditetapkan, properti ini akan dianggap valid setiap hari.
Properti Jika jenis ini ditentukan sebagai
Waktu untuk Untuk informasi selengkapnya, lihat Format DateTime dan Waktu. |
opens |
Time |
Opsional |
Berlaku untuk slot pesan antar atau bawa pulang. Waktu spesifik pada hari tertentu saat pesanan awal pengguna dapat dipenuhi. Misalnya, 06.30 diberikan sebagai "T06:30:00". Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai Untuk informasi selengkapnya, lihat Format DateTime dan Waktu. |
closes |
Time |
Opsional |
Berlaku untuk slot pesan antar atau bawa pulang. Waktu spesifik yang melampaui pemesanan awal pengguna yang tidak dapat
dipenuhi. Misalnya, pukul 21.00 diberikan sebagai "T21:00:00".
Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan
sertakan zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
dayOfWeek |
Array DayOfWeek |
Opsional |
Hari dalam seminggu yang menyediakan jam pengiriman lebih awal. Nilai yang valid adalah:
Jika Anda tidak menentukan hari apa pun dalam seminggu, |
serviceTimeInterval |
Duration |
Wajib |
Interval antara dua waktu layanan berturut-turut. Misalnya: Jika
|
advanceBookingRequirement |
QuantitativeValue |
Wajib |
Jumlah menit dari waktu pemesanan saat pesanan awal dapat dipenuhi. Nilai Misalnya, jika pemesanan awal memerlukan waktu minimal 60 menit untuk
dipenuhi, dan dibatasi agar tidak dipenuhi lebih dari 2 hari
kemudian, nilai |
Contoh berikut menunjukkan penggunaan
jenis AdvanceServiceDeliveryHoursSpecification
:
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
Untuk menggunakan jenis ini, tambahkan konteks gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Kemudian, tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
atau MenuItemOption
yang sesuai.
Tabel berikut menjelaskan properti jenis AllergenDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "AllergenDetails". |
allergenType |
Teks | Opsional | Jenis alergen per
gs1:AllergenTypeCode
. Misalnya, http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Teks | Opsional | Kode pembatasan per
gs1:LevelOfContainmentCode.
Misalnya http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ,
http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM , atau
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .
|
Contoh berikut menunjukkan penggunaan jenis AllergenDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/6", "name": "Strawberry joghurt drink", "description": "A 0.5l bottle of strawberry joghurt drink.", "offers": { "@type": "Offer", "sku": "offer-joghurt-drink", "price": "2.49", "priceCurrency": "USD" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
DeliveryChargeSpecification
Tabel berikut menjelaskan properti jenis
DeliveryChargeSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "DeliveryChargeSpecification". |
@id |
URL | Opsional | ID untuk spesifikasi biaya pengiriman. |
price |
Angka | Wajib | Total biaya pengiriman, dalam angka saja. Gunakan properti
priceCurrency untuk menunjukkan jenis mata uang,
bukan simbol mata uang. Misalnya, "6,00", tanpa simbol
mata uang. |
priceCurrency |
Teks | Wajib | 3 huruf kode mata uang ISO 4217. Misalnya, "USD". |
eligibleTransactionVolume |
PriceSpecification |
Opsional | Volume transaksi, dalam satuan mata uang, yang spesifikasi biaya pengirimannya valid. Misalnya, untuk menunjukkan volume pembelian minimum, atau untuk menyatakan bahwa pengiriman tersedia tanpa biaya tambahan di atas volume pesanan tertentu. |
eligibleQuantity |
QuantitativeValue |
Opsional | Interval dan satuan pengukuran jumlah pemesanan yang berlaku untuk biaya pengiriman. Hal ini memungkinkan Anda, misalnya, menentukan bahwa biaya pengiriman tertentu hanya berlaku untuk jumlah tertentu. |
eligibleRegion |
Array GeoShape atau
Place atau
GeoCircle |
Opsional | Tempat, atau GeoShape/GeoCircle untuk wilayah geo-politik tempat spesifikasi penawaran atau biaya pengiriman berlaku. Gunakan properti ini hanya jika biaya pengiriman bervariasi menurut wilayah. |
validFrom |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat biaya pengiriman yang ditentukan menjadi valid. Misalnya, "2017-05-01T06:30:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
validThrough |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) setelah biaya pengiriman yang ditentukan tidak valid. Misalnya, "2017-05-01T06:30:00-07:00".
Waktu untuk validThrough bersifat eksklusif: misalnya, jika waktu tersebut
disetel ke pukul 18.00, waktu tersebut valid hingga pukul 17.59.59.
Untuk mengetahui informasi selengkapnya, lihat
Format DateTime dan Waktu. |
Contoh berikut menunjukkan elemen DeliveryChargeSpecification
:
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
"priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ]
Selain "@type": ["DeliveryChargeSpecification"]
, objek dapat diperluas dengan
UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Ekstensi ini memberikan dua properti tambahan yang diperlukan untuk biaya pengiriman yang dihitung dalam persentase.
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Wajib | Jumlah referensi yang berlaku untuk harga tertentu. Misalnya,
referenceQuantity dengan nilai 10 dan unitCode
"P1" menghasilkan 10% dari nilai pesanan. Saat ini hanya unitCode "P1" yang
didukung. |
basePrice |
Angka | Opsional | Biaya dasar selain referenceQuantity . Misalnya, referenceQuantity sebesar 10 dengan unitCode "P1" dan basePrice sebesar 5 dalam USD menghasilkan $5 + 10% dari
nilai pesanan. Nilai defaultnya adalah 0. |
Contoh biaya pengiriman
Google memungkinkan Anda menentukan berbagai biaya kepada pengguna di awal menggunakan
Offer.PriceSpecification
dari entitas Layanan.
Perhatikan bahwa Pemesanan End-to-End saat ini hanya mendukung satu
DeliveryChargeSpecification
. Gabungkan semua jenis biaya ke dalam satu
DeliveryChargeSpecification
.
Lihat Contoh feed layanan untuk mengetahui cara menentukan biaya pengiriman berdasarkan area, jarak, dan nilai pesanan.
Jika tidak ada biaya, Offer.PriceSpecification
akan dihilangkan.
- Contoh 1: Biaya pengiriman adalah 5% dari subtotal keranjang
- Contoh 2: Biaya pengiriman adalah Rp50.000
- Contoh 3: Biaya pengiriman adalah $5 + 10% dari subtotal keranjang
- Contoh 4: Biaya pengiriman adalah $5 dan biaya tas adalah $0,1
- Contoh 5: Biaya pengiriman adalah 5% dan biaya layanan adalah 2% dari subtotal keranjang
- Contoh 6: Biaya pengiriman adalah Rp50.000 dan Rp10.000 per jarak tambahan 1 km
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "10.00", // 10% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "5.00" // User always pays $5 in addition to 10% } ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "basePrice": 5.00, // User always pays $5 "price": 1.00, // An additional $1.00 is added per 1km "priceCurrency": "USD", "referenceQuantity": { "@type": "QuantitativeValue", "unitCode": "MTR", // MTR == meter "value": "1000.0" // 1km } } ]
GeoCircle
Tabel berikut menjelaskan properti jenis GeoCircle
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "GeoCircle". |
geoMidpoint |
GeoCoordinates |
Wajib | Menunjukkan GeoCoordinates di tengah
GeoCircle . |
geoRadius |
Angka | Wajib | Menunjukkan perkiraan radius (dalam meter) dari
GeoCircle . |
Contoh berikut menunjukkan elemen GeoCircle
:
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
Tabel berikut menjelaskan properti jenis GeoCoordinates
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "GeoCoordinates". |
latitude |
Angka | Wajib |
Lintang dalam derajat. Nilai dibatasi pada rentang dari -90 hingga 90, inklusif. Jika nilai yang ditentukan kurang dari -90, nilai tersebut akan ditetapkan ke -90; jika nilainya lebih besar dari 90, nilai tersebut akan ditetapkan ke 90. Presisinya harus minimal 5 angka di belakang koma. |
longitude |
Angka | Wajib |
Bujur dalam derajat. Nilai di luar rentang -180 hingga 180 akan dibulatkan agar berada dalam rentang. Misalnya, nilai -190 dikonversi menjadi 170. Nilai 190 dikonversi menjadi -170. Hal ini mencerminkan fakta bahwa garis bujur mengelilingi bola dunia. Presisinya harus minimal 5 angka di belakang koma. |
Contoh berikut menunjukkan elemen GeoCoordinates
:
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
Tabel berikut menjelaskan properti jenis GeoShape
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "GeoShape". |
polygon |
Array Teks | Wajib |
Poligon atau multipoligon yang dinyatakan sebagai serangkaian tiga titik atau lebih yang dipisahkan ruang. Sebaiknya titik pertama dan terakhir sama, tetapi tidak wajib. Setiap titik dalam poligon atau multipoligon ditentukan oleh titik lintang diikuti dengan titik bujur. Anda juga harus menentukan titik-titik dalam arah berlawanan dengan arah jarum jam. Dalam sebagian besar kasus, Anda akan memiliki satu poligon. Untuk kasus penggunaan yang lebih kompleks, lihat dokumentasi area layanan pengiriman. |
Contoh berikut menunjukkan elemen GeoShape
:

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

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

{ "@type": "Service", "@id": "http://www.provider.com/service/1", "areaServed": [ { "@type": "GeoShape", // Richmond District delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474" }, { "@type": "GeoShape", // Haight-Ashbury delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417" } ], ... },
Menu
Tabel berikut mencantumkan properti untuk jenis Menu
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "Menu". |
@id |
URL | Wajib | ID unik untuk menu. |
name |
Teks | Opsional | Teks yang dapat mengidentifikasi Menu saat pengguna menjelajahi
menu. |
description |
Teks | Opsional | Deskripsi menu. |
disclaimer |
MenuDisclaimer |
Opsional | Pernyataan penyangkalan untuk menu. Misalnya, pengungkapan informasi nutrisi dan pengungkapan alergen. |
hasMenuSection |
Satu objek atau array MenuSection |
Opsional | Sub-pengelompokan menu yang logis (seperti Makan Malam, Hidangan Pembuka, atau Hidangan Ikan). |
hasMenuItem |
Satu objek atau array MenuItem |
Opsional | Objek MenuItem yang terdapat dalam Menu ,
biasanya saat Menu tidak dibagi lagi oleh
MenuSections . |
inLanguage |
Teks | Opsional | Bahasa konten menu, sebagai kode bahasa dari standar IETF BCP 47. Misalnya, "en-US". |
Contoh berikut menunjukkan penggunaan jenis Menu
:
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "hasMenuSection": { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Tacos", "description": "Tacos inspired by India cuisine.", "offers": { "@type": "Offer", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM }, "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Aloo Gobi Taco", "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.", "offers": { "@type": "Offer", "sku": "offer-aloo-gobi-taco", "price": "3.50", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, "inLanguage": "English" }
Contoh ini menunjukkan hasMenuItem
sebagai array.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Main", "description": "Main course", "image": "http://www.provider.com/somerestaurant/main_dishes.jpg", "hasMenuItem": [ { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Pizza", "description": "Pizza", "offers": { "@type": "Offer", "sku": "offer-pizza", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM } }, { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pasta", "description": "Pasta", "offers": [ { "@type": "Offer", "sku": "offer-pasta-lunch", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM }, { "@type": "Offer", "sku": "offer-pasta-dinner", "price": "10.49", "priceCurrency": "USD", "availabilityStarts": "T18:00:00", // Starts at 6:00PM "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM } ] } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }
Contoh ini menunjukkan hasMenuSection
sebagai array.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Dinner", "description": "Dinner dishes", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Starters", "description": "Appetizers and such", "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/3", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/5", "name": "Desserts", "description": "Dessert dishes.", "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/4", "name": "Chocolate Pie", "description": "A slice of chocolate pie.", "offers": { "@type": "Offer", "sku": "offer-chocolate-pie", "price": "3.49", "priceCurrency": "USD" } } } ] }
Untuk contoh entitas Menu
lainnya, lihat
Contoh Feed Restoran dan Menu.
MenuDisclaimer
Tabel berikut mencantumkan properti untuk jenis MenuDisclaimer
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "MenuDisclaimer". |
@id |
URL | Wajib | ID unik untuk pernyataan penyangkalan menu. |
text |
Teks | Wajib | Teks pernyataan penyangkalan. Misalnya, "Rata-rata asupan energi harian dewasa adalah 8.700 kJ". |
url |
URL | Opsional | URL yang mengarah ke halaman yang memberikan detail selengkapnya tentang pernyataan penyangkalan. |
Contoh berikut menunjukkan penggunaan jenis MenuDisclaimer
:
{ "@type": "Menu", "@id": "menu_1", "disclaimer": { "@type": "MenuDisclaimer", "@id": "menu_1_disclaimer_1", "text": "The average adult daily energy intake is 8700 kJ", "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html" } }
MenuItem
Item menu untuk merepresentasikan item dalam menu. Tabel berikut mencantumkan properti untuk jenis MenuItem
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "MenuItem". |
@id |
URL | Wajib | ID unik item menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi MenuItem saat pengguna menjelajahi
menu. |
description |
Teks | Opsional | Deskripsi item menu. |
image |
URL | Opsional |
Gambar item menu. Gunakan panduan gambar berikut:
|
menuAddOn |
Array AddOnMenuSection |
Opsional | Item di bagian menu yang dapat ditambahkan sebagai add-on ke item menu. |
offers |
Array Offer |
Wajib diisi* |
Satu atau beberapa penawaran untuk memberikan Listingan di bawah menunjukkan properti
|
hasMenuItemOptions |
Array MenuItemOption |
Wajib | Daftar opsi/variasi dasar untuk item menu ini. Opsi harus digunakan untuk menentukan berbagai variasi dasar yang tersedia untuk item, misalnya kecil, sedang, dan besar. |
suitableForDiet |
Array RestrictedDiet |
Opsional | Hidangan mematuhi batasan diet yang dijelaskan (seperti "http://schema.org/GlutenFreeDiet" atau "http://schema.org/VeganDiet". Ini adalah daftar nilai yang mungkin dihitung. |
nutrition |
NutritionInformation |
Opsional | Informasi gizi untuk hidangan, terutama kalori. |
hasAllergen |
AllergenDetails |
Opsional | Alergen hidangan per gs1:AllergenDetails .
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItem . |
additive |
Array AdditiveDetails |
Opsional | Aditif hidangan per gs1:AdditiveDetails .
Ini adalah daftar nilai yang mungkin dihitung. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItem . |
packaging |
PackagingDetails |
Opsional | Informasi pengemasan dan daur ulang MenuItem ini per
gs1:PackagingDetails .
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItem .
|
Contoh berikut menunjukkan elemen MenuItem
:
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
Untuk contoh entitas MenuItem
lainnya, lihat Contoh Feed Restoran dan Menu.
MenuItemOption
Opsi untuk menampilkan pilihan yang harus dibuat pengguna saat memilih hidangan atau kombinasi. Pengguna harus memilih salah satu opsi. Jika tidak, pesanan akan dianggap tidak valid. Misalnya, memilih ukuran kecil, sedang, atau besar untuk pizza.
Untuk contoh kasus penggunaan MenuItemOption
, lihat panduan kami tentang penyesuaian menggunakan MenuItemOption
.
Tabel berikut mencantumkan properti untuk jenis MenuItemOption
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "MenuItemOption". |
value |
PropertyValue |
Wajib | PropertyValue yang berisi pasangan nama/nilai yang mewakili
opsi. |
offers |
Array Offer |
Wajib |
Satu atau beberapa penawaran untuk memberikan
Listingan di bawah menunjukkan properti
|
menuAddOn |
Array of |
Opsional | Bagian menu item yang diizinkan yang dapat ditambahkan sebagai add-on. Hanya gunakan
ini jika add-on khusus untuk opsi item menu tertentu. Jika tidak,
berikan add-on menggunakan properti MenuItem .menuAddOn.
|
suitableForDiet |
Array RestrictedDiet |
Opsional | Daftar yang diuraikan yang menunjukkan diet yang sesuai dengan batasan diet yang dijelaskan (seperti "http://schema.org/GlutenFreeDiet" atau "http://schema.org/VeganDiet"). |
nutrition |
NutritionInformation |
Opsional | Informasi gizi untuk hidangan, terutama kalori. |
hasAllergen |
AllergenDetails |
Opsional | Alergen hidangan per gs1:AllergenDetails .
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItemOption .
|
additive |
Array AdditiveDetails |
Opsional | Aditif hidangan per gs1:AdditiveDetails .
Ini adalah daftar nilai yang mungkin dihitung. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItemOption .
|
packaging |
PackagingDetails |
Opsional | Informasi pengemasan dan daur ulang MenuItem ini per
gs1:PackagingDetails
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItemOption .
|
Contoh berikut menunjukkan elemen MenuItemOption
:
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
MenuSection
Bagian menu untuk mewakili bagian tertentu dalam menu. Tabel berikut
mencantumkan properti untuk jenis MenuSection
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "MenuSection". |
@id |
URL | Wajib | ID unik bagian menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi MenuSection saat pengguna menjelajahi
menu. |
description |
Teks | Opsional | Deskripsi bagian menu. |
hasMenuSection |
Array MenuSection |
Opsional | Sub-pengelompokan logis MenuSection . Misalnya, Bagian menu Makan Malam dapat memiliki beberapa sub-MenuSections seperti "Hidangan
Unggas" atau "Vegetarian". |
hasMenuItem |
Array MenuItem |
Opsional | Item menu yang terdapat dalam MenuSection . |
offers |
Array Offer |
Opsional |
Gunakan Daftar berikut menunjukkan properti
|
image |
URL | Opsional | Gambar bagian menu. |
Contoh berikut menunjukkan entitas MenuSection
:
{ "@type": "MenuSection", "@id": "http://www.provider.com/bar/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }
"hasMenuSection": [ { "@type": "MenuSection", "@id": "https://www.example.com/1089/categorization/25114480", "name": "Main Items", "hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ] }, { "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] } ]
Untuk contoh entitas MenuSection
lainnya, lihat
Contoh Feed Restoran dan Menu.
NutritionInformation
Tabel berikut menjelaskan properti jenis NutritionInformation
. Satuan pengukuran peka huruf besar/kecil. Misalnya, "Cal" diterima,
tetapi "cal" tidak.
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "NutritionInformation". |
description |
Teks | Opsional | Informasi nutrisi dalam teks bebas. Misalnya "Berisi pengawet". |
calories |
Teks | Opsional |
Jumlah kalori dalam Cal, kcal, atau kJ, menggunakan format berikut:
Misalnya, "240 Kal". |
carbohydrateContent |
Teks | Opsional |
Jumlah karbohidrat, biasanya dalam g, menggunakan format berikut:
Misalnya, "7 g". |
cholesterolContent |
Teks | Opsional |
Jumlah kolesterol, biasanya dalam mg, menggunakan format berikut:
Misalnya, "12 mg". |
fatContent |
Teks | Opsional |
Jumlah lemak, biasanya dalam g, menggunakan format berikut:
Misalnya, "42 g". |
fiberContent |
Teks | Opsional |
Jumlah g atau mg serat, menggunakan format berikut:
|
proteinContent |
Teks | Opsional |
Jumlah g atau mg protein, menggunakan format berikut:
|
saturatedFatContent |
Teks | Opsional |
Jumlah g atau mg lemak jenuh, menggunakan format berikut:
|
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:
|
sugarContent |
Teks | Opsional |
Jumlah g atau mg gula, menggunakan format berikut:
|
transFatContent |
Teks | Opsional |
Jumlah g atau mg lemak trans, menggunakan format berikut:
|
unsaturatedFatContent |
Teks | Opsional |
Jumlah lemak tidak jenuh, biasanya dalam g, menggunakan format berikut:
|
Contoh berikut menunjukkan elemen NutritionInformation
:
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/7", "name": "Peach Ice Tea", "description": "A 0.5l bottle of peach ice tea.", "offers": { "@type": "Offer", "sku": "offer-peach-ice-tea", "price": "2.49", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" } },
Penawaran
Penawaran untuk item menu. Tabel berikut menjelaskan properti jenis
Offer
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "Penawaran". |
sku |
Teks | Kondisional |
ID unik penawaran. Dapat berupa nilai teks apa pun yang unik
dalam Properti ini hanya digunakan dalam jenis penawaran berikut:
|
price |
Teks | Kondisional |
Harga item yang ditawarkan. Misalnya, "6,00" tanpa simbol mata uang. Properti ini hanya diperlukan dalam jenis penawaran berikut:
Jenis ini tidak digunakan dalam jenis penawaran berikut:
|
priceCurrency |
Teks | Kondisional |
Mata uang (dalam format ISO 4217 3 huruf) harga atau komponen harga, saat dilampirkan ke PriceSpecification dan subjenisnya. Properti ini hanya diperlukan dalam jenis penawaran berikut:
Jenis ini tidak digunakan dalam jenis penawaran berikut:
|
availabilityStarts |
DateTime atau Time |
Opsional | Tanggal dan waktu atau hanya waktu saat penawaran tersedia. Misalnya, jika pancake disajikan mulai pukul 07.00, nilai kolom ini dapat terlihat seperti berikut: "2017-05-01T07:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
availabilityEnds |
DateTime atau Time |
Opsional | Tanggal dan waktu atau hanya waktu saat penawaran tidak tersedia. Waktu ini bersifat eksklusif. Misalnya, jika ketersediaan pancake berakhir pada pukul 10.00, pancake terakhir dapat disajikan pada pukul 09.59.59. Nilai kolom ini kemudian dapat terlihat seperti berikut: "2017-05-01T10:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
availableDay |
Array DayOfWeek | Opsional |
Hari dalam seminggu saat item ini tersedia. Nilai yang valid adalah:
Jika Anda memiliki ketersediaan yang berbeda untuk hari yang berbeda dalam seminggu,
gunakan lebih dari satu objek |
validFrom |
DateTime |
Opsional |
Tanggal dan waktu (termasuk zona waktu) saat harga yang ditentukan berlaku. Misalnya, pasta seharga $8 saat makan siang dan $10 saat makan malam. Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
validThrough |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) setelah harga yang ditentukan
tidak lagi valid. Misalnya, pasta seharga $8 saat makan siang
dan $10 saat makan malam. Waktu untuk Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut.
|
eligibleQuantity |
QuantitativeValue | Opsional |
Jumlah pemesanan yang diizinkan untuk item ini. Misalnya, restoran mungkin mewajibkan minimal 10 pizza dipesan untuk pengiriman. Nilai ini bersifat opsional. Secara default, tidak ada batas maksimum, tetapi restoran dapat menentukannya. Batas minimum hanya berlaku saat pengguna memilih item. Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut.
|
aggregateRating |
AggregateRating | Opsional |
Rating keseluruhan, berdasarkan kumpulan ulasan atau rating item. Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis berikut.
|
inventoryLevel |
QuantitativeValue | Opsional |
Perkiraan tingkat inventaris saat ini untuk item atau item. Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
priceSpecification |
Array DeliveryChargeSpecification atau array PaymentChargeSpecification | Opsional |
Jika digunakan di Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
offeredBy |
Array ID Restaurant |
Opsional | Mewakili restoran tempat Jika tidak ditentukan, Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
applicableFulfillmentMethod |
Array Teks | Opsional | Mewakili jenis layanan yang memenuhi
Jika tidak ditentukan, Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
@id |
URL | Tidak digunakan lagi | ID unik penawaran. Tidak digunakan lagi mulai 25/4/19, ganti dengan
sku seperti yang dijelaskan di atas.
|
Contoh berikut menunjukkan elemen Offer
:
Contoh berikut menunjukkan penawaran sederhana:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Contoh penawaran berikut menunjukkan ketersediaan dari pukul 08.00-10.00 pada akhir pekan:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", // Only available from 8-9:59:59 AM "availabilityEnds": "T10:00:00-07:00", "availableDay": ["Saturday", "Sunday"] // Only on weekends. }
Contoh berikut menunjukkan ketersediaan dari pukul 09.00-10.59.59 pada hari Senin, Rabu, dan Jumat, tetapi pukul 08.00-11.59.59 pada hari Selasa dan Kamis:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T09:00:00-07:00", "availabilityEnds": "T11:00:00-07:00", "availableDay": ["Monday", "Wednesday", "Friday"] }, { "@type": "Offer", "@id": "https://www.provider.com/menu/74962/141/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", "availabilityEnds": "T12:00:00-07:00", "availableDay": ["Tuesday", "Thursday"] }
Contoh berikut menunjukkan jumlah item menu add-on yang memenuhi syarat sehingga pengguna dapat memesan maksimal 2 porsi item tersebut.:
{ "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Ranch", "offers": { "@type": "Offer", "@id": "https://www.example.com/1089/addon/a/offer", "price": "2.99", "priceCurrency": "USD" "eligibleQuantity": { "@type": "QuantitativeValue", "maxValue": 2 } } }
Contoh berikut menunjukkan penawaran pengiriman di lokasi tertentu:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD", "applicableFulfillmentMethods": ["DELIVERY"], "offeredBy": [ { "@type": "Restaurant", "@id": "https://www.provider.com/location/1", } ] }
OpeningHoursSpecification
Menentukan kapan layanan pemesanan tersedia. Biasanya, nilai opens
lebih kecil dari nilai closes
. Panduan berikut berlaku untuk penggunaan properti opens
dan closes
:
- Properti
opens
dancloses
bersifat opsional, tetapi sangat direkomendasikan untuk menunjukkan kapan pengurutan tersedia. Praktik terbaik untuk menentukan jam yang tersedia adalah dengan menyertakan arraydeliveryHours
yang berisiServiceDeliveryHoursSpecification
dengan propertiopens
dancloses
. Kemudian, Anda dapat menyertakan objekAdvanceServiceDeliveryHoursSpecification
dideliveryHours
dengan propertiopens
dancloses
-nya sendiri, jika ingin menawarkan periode yang lebih terbatas untuk pemesanan awal. - Jika
opens
dancloses
tidak ditentukan secara eksplisit, kami mengasumsikan bahwa layanan pesanan tersedia setiap hari pada semua waktu. - Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai
opens
ataucloses
. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini. - Jika
opens
dancloses
sama, kita mengasumsikan bahwa restoran terbuka selama 0 menit. - Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutupnya adalah 02.00, restoran akan ditafsirkan sebagai tutup pada 2 Januari pukul 02.00. - Waktu untuk
closes
bersifat eksklusif. Oleh karena itu, jika waktu buka dan tutup untuk periode pemesanan ini ditetapkan masing-masing pada pukul 10.00 dan 16.00, maka pesanan terakhir adalah pukul 15.59.59.
Tabel berikut menjelaskan properti jenis OpeningHoursSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "OpeningHoursSpecification". |
@id |
URL | Opsional | ID untuk OpeningHoursSpecification . |
dayOfWeek |
Array DayOfWeek |
Opsional |
Hari dalam seminggu yang berlaku untuk jam buka ini. Nilai yang dapat diterima adalah "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", dan "Minggu". Contoh: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Jika Anda tidak menentukan hari apa pun dalam seminggu, |
opens |
Time |
Opsional |
Saat digunakan dalam spesifikasi Jika digunakan dalam spesifikasi Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan
sertakan zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
closes |
Time |
Opsional |
Saat digunakan dalam spesifikasi Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan
sertakan zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
validFrom |
DateTime |
Opsional |
Jika digunakan dalam spesifikasi Misalnya, jika jam yang diberikan berlaku untuk semua tahun 2017, Anda menetapkan
Saat digunakan dalam spesifikasi Jika properti ini tidak ditentukan di feed Anda, Google akan menganggap bahwa Restoran atau Layanan tersedia setiap hari. Selain tanggal, bagian waktu dan zona waktu dari nilai diperlukan. Untuk zona waktu, gunakan zona waktu Restoran atau Layanan. Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
validThrough |
DateTime |
Opsional |
Jika digunakan dalam Misalnya, jika jam yang diberikan berlaku untuk semua tahun 2017, Anda menetapkan
Jika digunakan dalam spesifikasi Jika properti ini tidak ditentukan di feed Anda, Google akan menganggap bahwa Restoran atau Layanan tersedia setiap hari. Selain tanggal, bagian waktu dan zona waktu dari DateTime wajib diisi. Untuk zona waktu, gunakan zona waktu Restoran atau Layanan. Waktu untuk Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
deliveryHours |
Array ServiceDeliveryHoursSpecification atau array
AdvanceServiceDeliveryHoursSpecification |
Kondisional |
Spesifikasi waktu pesan antar atau bawa pulang. Parameter ini diperlukan kecuali jika restoran ditutup (artinya
|
Contoh berikut menunjukkan elemen OpeningHoursSpecification
:
// Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] },
// Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }
"hoursAvailable": { "@type": "OpeningHoursSpecification", "validFrom": "2016-02-01T00:00:00-07:00", "validThrough": "2016-03-01T00:00:00-07:00", "opens": "T08:00:00", // Ordering begins at 8:00AM and ends at 6:00PM. // ASAP and and advance orders are restricted to this // time frame since the user won't be able to place // orders outside of this window. "closes": "T18:00:00", "deliveryHours": { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" } } },
// List hours available for 2017 and 2018 "hoursAvailable": [ { "@type": "OpeningHoursSpecification", // Array containing advance order hours for each day "deliveryHours": [ { // Open 10:00AM to 9:29:59PM on Mondays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Tuesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Tuesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Wednesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Wednesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Thursdays "@type": "AdvanceServiceDeliveryHoursSpecification", "dayOfWeek": [ "Thursday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Fridays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Friday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Saturdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 11:00AM to 6:59:59PM on Sundays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Sunday" ], "opens": "T11:00:00", "closes": "T19:00:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ],
PackagingDetails
Tambahkan konteks gs1 untuk menggunakan jenis ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Dan tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
atau MenuItemOption
.
Tabel berikut menjelaskan properti jenis PackagingDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "PackagingDetails". |
packagingRecyclingProcessType |
Teks | Opsional | Jenis proses daur ulang kemasan per
gs1:PackagingRecyclingProcessTypeCode. Misalnya
http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE
atau http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Opsional | Detail deposit paket yang dapat dikembalikan per gs1:ReturnablePackageDepositDetails. Misalnya, botol dan kaleng memiliki deposit paket yang dapat dikembalikan. |
Contoh berikut menunjukkan penggunaan jenis PackagingDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
PaymentChargeSpecification
Tabel berikut menjelaskan properti jenis PaymentChargeSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "PaymentChargeSpecification". |
@id |
URL | Opsional | ID untuk PaymentChargeSpecification . |
price |
Angka | Wajib | Jumlah total tagihan. Misalnya, "6,00", tanpa simbol mata uang. |
priceCurrency |
Teks | Wajib | Kode mata uang ISO 4217 3 huruf untuk harga. Misalnya, "USD". |
eligibleTransactionVolume |
PriceSpecification |
Opsional | Volume transaksi, dalam satuan mata uang, yang spesifikasi tagihan pembayarannya valid, seperti untuk menunjukkan volume pembelian minimum. |
eligibleQuantity |
QuantitativeValue |
Opsional | Jumlah pesanan yang valid untuk tagihan pembayaran. Misalnya, Anda dapat menggunakan properti ini untuk mewajibkan jumlah minimum item dalam pesanan. |
validFrom |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat tagihan pembayaran yang ditentukan menjadi valid. Misalnya, "2017-05-01T07:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu. |
validThrough |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat tagihan
pembayaran yang ditentukan tidak valid. Misalnya, "2017-05-01T07:30:00-07:00".
Waktu untuk validThrough bersifat eksklusif: misalnya, jika
waktu tersebut ditetapkan ke 18.00, waktunya valid hingga 17.59.59.
Untuk mengetahui informasi selengkapnya, lihat
Format DateTime dan Waktu. |
Contoh berikut menunjukkan elemen PaymentChargeSpecification:
"priceSpecification": [{ "@type": "PaymentChargeSpecification", "@id": "http://www.provider.com/paymentCharge/bar", "priceCurrency": "USD", "price": "6.00", // Charges $6 for processing fee "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 2 // Minimum of two items required } }]
Selain "@type": ["PaymentChargeSpecification"]
, objek dapat
diperluas dengan UnitPriceSpecification
("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
).
Ekstensi ini memberikan dua properti tambahan yang diperlukan untuk biaya layanan
yang dihitung dalam persentase.
properti | Jenis | Kebutuhan | Deskripsi |
referenceQuantity |
QuantitativeValue |
Wajib | Jumlah referensi yang berlaku untuk harga tertentu. Misalnya,
referenceQuantity dengan nilai 10 dan unitCode
"P1" menghasilkan 10% dari nilai pesanan. Saat ini hanya unitCode "P1" yang
didukung. |
basePrice |
Angka | Opsional | Biaya dasar selain referenceQuantity . Misalnya, referenceQuantity sebesar 10 dengan unitCode
sebesar "P1" dan basePrice sebesar 5 dalam USD menghasilkan $5 + 10% dari
nilai pesanan. Nilai defaultnya adalah 0. |
Contoh biaya Takeout
Google memungkinkan Anda menentukan berbagai biaya kepada pengguna di awal menggunakan
Offer.PriceSpecification
dari entitas Layanan.
Perhatikan bahwa saat ini kami hanya mendukung satu PaymentChargeSpecification
. Menggabungkan
semua jenis biaya ke dalam satu PaymentChargeSpecification
Jika tidak ada biaya, Offer.PriceSpecification
akan dihilangkan.
- Contoh 1: Tarif layanan adalah 5% dari subtotal keranjang
- Contoh 2: Biaya layanan adalah $5
- Contoh 3: Biaya tas adalah $0,1 dan biaya layanan adalah 5% dari subtotal keranjang
- Contoh 4: Biaya tas adalah $0,1 dan biaya layanan adalah $1
- Contoh 5: Biaya layanan adalah 5% dan tip yang diperlukan adalah 10% dari subtotal keranjang
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Tempat
Tabel berikut menjelaskan properti jenis Place
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "Place". |
address |
PostalAddress |
Wajib | Alamat tempat. |
Contoh berikut menunjukkan elemen Place:
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
Tabel berikut menjelaskan properti jenis PostalAddress
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "PostalAddress". |
addressLocality |
Teks | Wajib diisi* | Lokalitas atau kota. Misalnya, "Jakarta". |
addressRegion |
Teks | Wajib diisi* | Wilayah atau negara bagian. Misalnya, "CA". |
postalCode |
Teks | Wajib diisi* | Kode pos. Misalnya, "94102". |
streetAddress |
Teks | Opsional | Alamat. Misalnya, "1600 Amphitheatre Pkwy". |
addressCountry |
Teks | Wajib | Kode negara ISO 3166-1 alpha-2 dua huruf . Misalnya, "US". |
Penyedia pengiriman dapat mencantumkan properti ini untuk menetapkan Service.areaServed
tempat layanan diberikan.
Saat digunakan di Restaurant.address
, semua properti yang tercantum di
PostalAddress
wajib ada.
Contoh berikut menunjukkan elemen PostalAddress
:
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
Tabel berikut menjelaskan properti jenis PriceSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "PriceSpecification". |
@id |
URL | Opsional | ID untuk PriceSpecification . |
minPrice |
Angka | Opsional | Harga terendah jika harga berupa rentang. |
maxPrice |
Angka | Opsional | Harga tertinggi jika harga berupa rentang. |
priceCurrency |
Teks | Wajib | Kode mata uang ISO 4217 3 huruf untuk harga. Misalnya, "USD". |
eligibleQuantity |
QuantitativeValue |
Opsional | Jumlah pemesanan yang spesifikasi harganya valid. Misalnya, harganya mungkin $2 per pon atau 2 item seharga satu dolar. |
Contoh berikut menunjukkan elemen PriceSpecification
:
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Pasangan nilai properti yang digunakan untuk mendeskripsikan opsi di MenuItemOption
.
Tabel berikut mencantumkan properti untuk jenis PropertyValue
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "PropertyValue". |
name |
Teks | Wajib |
Nama atau jenis opsi. Berikut adalah nama yang valid saat digunakan di
Nama yang valid saat digunakan di
|
value |
Teks | Wajib |
Nilai untuk opsi. Nilainya dapat berupa string apa pun dan ditampilkan apa adanya. Berikut adalah nilai yang valid:
|
QuantitativeValue
Tabel berikut menjelaskan properti jenis QuantitativeValue
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "QuantitativeValue". |
value |
Angka | Opsional | Nilai node nilai kuantitatif atau nilai properti. |
unitCode |
Teks atau URL | Opsional |
Satuan pengukuran sebagai Kode Umum UN/CEFACT atau URL. Kode selain Kode Umum UN/CEFACT dapat digunakan dengan awalan diikuti titik dua. |
maxValue |
Angka | Opsional | Nilai atas dari beberapa karakteristik atau properti. |
minValue |
Angka | Opsional | Nilai yang lebih rendah dari beberapa karakteristik atau properti. |
Contoh berikut menunjukkan penggunaan jenis QuantitativeValue
:
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Restoran
Tabel berikut mencantumkan properti untuk jenis Restaurant
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilai ini selalu "Restoran". |
@id |
URL | Wajib | ID unik restoran atau penyedia pesan antar. Misalnya, "http://www.provider.com/326", dengan "326" adalah ID unik restoran. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi Restaurant selama proses
pengurutan. |
url |
URL | Wajib | URL di domain Anda yang mewakili restoran. Misalnya, "http://www.provider.com/somerestaurant". |
sameAs |
URL | Opsional | Situs resmi restoran. Misalnya, "http://www.somerestaurant.com". |
email |
Teks | Opsional | Email kontak restoran. |
description |
Teks | Opsional | Deskripsi restoran. |
telephone |
Teks | Wajib |
Nomor telepon dalam format berikut: "[+][ 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 |
The following examples show the usage of the Restaurant
type:
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": "+16501234567", // Country code (+1) is required "servesCuisine": [ "Indian-Mexican Fusion" ] },Contoh 2
{ "@type": "Restaurant", "@id": "http://www.example.com/threebrotherstacos", "name": "Three Brothers Tacos", "address": { "@type": "PostalAddress", "addressLocality": "Mountain View", "addressRegion": "CA", "postalCode": "94041", "streetAddress": "123 Foo St", "addressCountry": "US" }, "additionalProperty": [ {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"} ] }Untuk contoh entitas
Restaurant
lainnya, lihat Contoh Feed Restoran dan Menu.
ReturnablePackageDepositDetails
Untuk menggunakan jenis ini, tambahkan konteks gs1: "@context":
["http://gs1.org/voc/", "http://schema.org"]
Kemudian, tambahkan
FoodBeverageTobaccoProduct
ke jenisMenuItem
atauMenuItemOption
yang sesuai.Tabel berikut menjelaskan properti jenis
ReturnablePackageDepositDetails
:
Properti Jenis Kebutuhan Deskripsi @type
Teks Wajib Nilai ini selalu "ReturnablePackageDepositDetails". returnablePackageDepositAmount
gs1:PriceSpecification
Opsional Jumlah deposit untuk item ini per gs1:PriceSpecification. Misalnya, deposit $0,25 per kaleng. Contoh berikut menunjukkan penggunaan jenis
ReturnablePackageDepositDetails
: { "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },Layanan
Menjelaskan pengiriman Tindakan Pemesanan Menyeluruh dari restoran ke lokasi geografis oleh organisasi pengiriman.
Tabel berikut menjelaskan properti jenis
Service
:
Properti Jenis Kebutuhan Deskripsi @type
Teks Wajib Jenis feed.
Service
: Gunakan jenis ini untuk semua feed Layanan yang aktif.DisabledService
: Hanya gunakan jenis ini jika Anda harus menonaktifkan entity Layanan karena peristiwa yang tidak terduga, dan Anda tidak tahu kapan layanan akan diaktifkan kembali.@id
URL Wajib ID untuk layanan fulfillment. Misalnya, "http://www.provider.com/service/1". description
Teks Opsional Deskripsi item. serviceType
Teks Wajib Jenis layanan yang ditawarkan. Nilai yang mungkin adalah "DELIVERY" atau "TAKEOUT". provider
Restaurant
Wajib Referensi ke ID unik untuk restoran. Misalnya, "http://www.provider.com/somerestaurant". areaServed
Array GeoShape
,Place
, atauGeoCircle
Kondisional Area geografis tempat layanan disediakan. Kolom ini bersifat opsional secara default, tetapi wajib diisi jika serviceType
adalah "DELIVERY".hoursAvailable
Array OpeningHoursSpecification
Wajib Jam layanan ini tersedia. specialOpeningHoursSpecification
Array OpeningHoursSpecification
,ServiceDeliveryHoursSpecification
, atauAdvanceServiceDeliveryHoursSpecification
Opsional Waktu yang mengganti
OpeningHoursSpecification
yang lebih umum atau waktu fulfillment. Anda biasanya menggunakan kolom ini untuk menentukan hari libur dan jenis penutupan sementara atau perubahan jam lainnya.Tentukan rentang tanggal khusus menggunakan properti
validFrom
danvalidThrough
. Waktu dan zona waktu diperlukan saat menentukan properti ini.offers
Array Offer
Kondisional Detail tentang penawaran pesan antar untuk restoran tertentu. Kolom ini bersifat opsional secara default, tetapi diperlukan jika
serviceType
adalah "DELIVERY".Properti
Offer.priceSpecification
bersifat opsional di Layanan. Tidak ada propertiOffer
lain yang digunakan di sini.hasOfferCatalog
[ Menu
, OfferCatalog]Wajib Menentukan menu untuk layanan ini. Anda dapat memiliki menu yang berbeda untuk setiap layanan (seperti bawa pulang, pesan antar, dan katering).
Anda harus menentukan
Menu
danOfferCatalog
untuk jenisnya. Contoh: "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" }additionalProperty
Array {name, value} Opsional Informasi konfigurasi layanan opsional. Item diharapkan berupa objek dengan kunci
name
yang sesuai dengan nama kolom opsional. Kuncivalue
adalah nilai yang relevan secara kontekstual untuk kolom.Lihat referensi
ServingConfig
untuk mengetahui informasi selengkapnya tentang nama dan nilai tertentu. "additionalProperty": [{ "name": "disableOrderInstructions", "value": false }, { "name": "disableMenuItemSpecialInstructions", "value": false }, { "name": "disableTipWidget", "value": false }, { "name": "disablePromoWidget", "value": false }, { "name": "menuItemSpecialInstructionsMaxLength", "value": 256 }, { "name": "orderInstructionsMaxLength", "value": 256 }]potentialAction
URL Opsional Berisi URL untuk layanan pesan antar/bawa pulang yang akan digunakan saat bermigrasi dari pengalaman pemesanan makanan menyeluruh ke pengalihan. Misalnya, "potentialAction": { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" }
Contoh berikut menunjukkan penggunaan jenis Layanan:
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "serviceType": "DELIVERY", "provider": { "@type": "Restaurant", "@id": "http://www.provider.com/threebrotherstacos" }, "potentialAction": { "url": "https://foprovider.com/ordering/restaurant-1/delivery" }, "hoursAvailable": [ // Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }, // Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ], "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/menu/1" }, "areaServed": [{ "@type": "GeoCircle", // area1 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "42.362757", "longitude": "-71.087109" }, "geoRadius": "10000" }, { "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } }, { "@type": "GeoShape", // area3 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.418128 -122.098167 37.382755 -122.118968 37.368551 -122.047978 37.400949 -122.048106 37.418128 -122.098167" }, { "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" }, { "@type": "GeoCircle", // area5 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ], "offers": { "@type": "Offer", "priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ] } },Untuk contoh entitas Layanan lainnya, lihat Contoh Feed Layanan.
ServiceDeliveryHoursSpecification
Merepresentasikan jam pemenuhan pesanan bagi pengguna untuk menjadwalkan pesanan ASAP untuk pengiriman dan pesan bawa pulang.
Biasanya, nilai
opens
lebih kecil dari nilaicloses
. Pedoman berikut berlaku untuk penggunaan propertiopens
dancloses
:
- Properti
opens
dancloses
bersifat opsional untukServiceDeliveryHoursSpecification
, tetapi sebaiknya Anda menyertakannya.- Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai
opens
ataucloses
. Jika zona waktu ditentukan, Google akan mengabaikan informasi zona waktu.- Jika
opens
dancloses
tidak ditentukan secara eksplisit, kami mengasumsikan bahwa pemesanan ASAP tersedia setiap hari sepanjang waktu.- Jika
opens
dancloses
sama, kami mengasumsikan bahwa pemesanan ASAP tidak tersedia.- Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutupnya adalah 02.00, restoran akan ditafsirkan sebagai tutup pada 2 Januari pukul 02.00.Tabel berikut menjelaskan properti jenis
ServiceDeliveryHoursSpecification
:
Properti Jenis Kebutuhan Deskripsi @type
Teks Wajib Nilai ini selalu "ServiceDeliveryHoursSpecification". validFrom
DateTime
Opsional Tanggal dan waktu (termasuk zona waktu) saat pesanan ASAP pengguna dapat dipenuhi. Misalnya, "2017-05-01T07:00:00-07:00". Jika properti ini tidak disetel, properti ini akan dianggap valid setiap hari.
Untuk informasi selengkapnya, lihat Format DateTime dan Waktu.
validThrough
DateTime
Opsional Tanggal dan waktu (termasuk zona waktu) setelah pesanan ASAP pengguna tidak dapat dipenuhi. Misalnya, "2017-05-01T07:00:00-07:00". Jika properti ini tidak ditetapkan, properti ini akan dianggap valid setiap hari.
Waktu untuk
validThrough
bersifat eksklusif. Misalnya, jika waktu tersebut ditetapkan ke 18.00, waktu tersebut valid hingga 17.59.59.Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Time.
opens
Time
Opsional Waktu layanan pesan antar dimulai untuk memenuhi pesanan ASAP pengguna. Misalnya, "T10:30:00".
Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai
opens
. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.
closes
Time
Opsional Waktu saat layanan pengiriman untuk pesanan SEGERA pengguna tidak lagi tersedia. Misalnya, "T23:59:59".
Waktu untuk
closes
bersifat eksklusif. Oleh karena itu, jika Anda menetapkan buka/tutup untukServiceDeliveryHoursSpecification
ini ke pukul 10.00 dan 16.00, maka pesanan terakhir adalah pukul 15.59.59.Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai
closes
. Jika zona waktu ditentukan, Google akan mengabaikan informasi ini.Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Waktu.
dayOfWeek
Array DayOfWeek
Opsional Hari dalam seminggu saat layanan ini tersedia untuk pesanan ASAP pengguna. Berikut adalah nilai yang valid:
- "Senin"
- "Selasa"
- "Wednesday"
- "Thursday"
- "Friday"
- "Saturday"
- "Sunday"
Jika Anda tidak menentukan hari apa pun dalam seminggu,
ServiceDeliveryHoursSpecification
akan berlaku untuk semua hari.deliveryLeadTime
QuantitativeValue
Opsional Perkiraan waktu pengiriman, dalam menit, setelah pesanan dilakukan. Sebaiknya Anda menetapkan properti ini. Tetapkan kolom value
dariQuantitativeValue
ke jumlah menit danunitCode
ke "MIN".Contoh berikut menunjukkan elemen
ServiceDeliveryHoursSpecification
: { "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", // If no exact deliveryLeadTime, put a maximum time "unitCode": "MIN" } }, { "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }Enum
RestrictedDiet
Jenis
RestrictedDiet
memiliki kemungkinan nilai berikut:
- http://schema.org/DiabeticDiet
- http://schema.org/GlutenFreeDiet
- http://schema.org/HalalDiet
- http://schema.org/HinduDiet
- http://schema.org/KosherDiet
- http://schema.org/LowCalorieDiet
- http://schema.org/LowFatDiet
- http://schema.org/LowLactoseDiet
- http://schema.org/LowSaltDiet
- http://schema.org/VeganDiet
- http://schema.org/VegetarianDiet