Feed katalog makanan didasarkan pada schema.org DataFeed
entitas. Feed katalog makanan berisi detail lokal restoran seperti
alamat restoran, menu, dan lokasi, serta layanan restoran
detail seperti biaya pengiriman, area pengiriman, dan item lain seperti yang ditentukan
di bawah ini.
DataFeed
berisi kumpulan elemen, yang masing-masing mewakili satu item
yang dinyatakan dalam kosakata schema.org. Anda dapat menggunakan DataFeed
untuk memublikasikan semua data terstruktur dalam format JSON-LD.
Untuk informasi tentang cara menggunakan spesifikasi ini guna membuat feed, lihat Ringkasan integrasi inventaris.
Format DateTime dan Time
DateTime
didasarkan pada jenis schema.org,
dan, kecuali jika dinyatakan lain, harus mengikuti format ISO 8601 dan menyertakan
tanggal, waktu, dan zona waktu. Gunakan sintaksis berikut untuk DateTime
:
// DateTime format: YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]
Contoh:
2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z // UTC time zone. The optional "Z" suffix represents the UTC time zone.
Time
adalah waktu lokal untuk restoran atau
zona waktu lokasi layanan, juga didasarkan pada jenis schema.org, dan juga harus
mengikuti format ISO 8601. Waktu menggunakan sintaks berikut:
// Time format: THH:MM:SS
Contoh:
T08:08:00 // 8:08 AM
Perhatikan hal berikut setiap kali Anda menentukan DateTime
atau Time
:
- Huruf "T" sebelum waktu merupakan bagian dari format dan wajib diisi.
- Zona waktu harus ditetapkan untuk
DATETIME
. Hal ini tidak diperlukan untukTIME
. - Waktu harus ditentukan dalam waktu lokal untuk restoran atau layanan.
Amplop
Kode awal untuk feed katalog makanan harus berisi "amplop" bagian.
"Ampelope" adalah struktur tingkat atas dari setiap feed, dan harus
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 untuk item dalam feed ini telah diubah. Jika kolom ini tidak ada, diasumsikan waktu pembaruan adalah waktu saat pesan {i>push<i} diterima (atau crawling) terjadi di server Google. Sebaiknya Anda menerapkan cara ini jika Anda menggunakan push dan melakukan crawling bersama-sama. Stempel waktu ini harus ditentukan dengan zona waktu dan perincian milidetik; misalnya "2016-12-28T06:30:00:123-07:00". Dalam feed batch Anda,
entitas
pembuatan versi ditentukan melalui |
dataFeedElement |
Array Menu atau
Restaurant
atau Service |
Wajib | Satu atau beberapa item yang merupakan bagian dari feed ini. Lihat di bawah untuk spesifikasi pendukung. |
Contoh berikut menunjukkan amplop:
Contoh
{ "@context": "http://schema.googleapis.com", "dateModified": "2016-12-28T06:30:00:123-07:00", "@type": "DataFeed", "dataFeedElement": [ /* All items that are part of this feed go here */ ] }
AdditiveDetails
Untuk menggunakan jenis ini, tambahkan konteks gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Lalu, tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
yang sesuai
atau MenuItemOption
.
Tabel berikut menjelaskan properti jenis AdditiveDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu berupa "AdditiveDetails". |
additiveName |
Teks | Opsional | Nama aditif. |
additiveLevelOfContainment |
Teks | Opsional | Kode pembatasan per
gs1:LevelOfContainmentCode di atas.
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 | Elemen ini selalu "AddOnMenuItem". |
@id |
URL | Wajib | ID unik item menu add-on. |
name |
Teks | Wajib | Teks yang mengidentifikasi AddOnMenuItem saat pengguna menjelajahi Google Spreadsheet. |
description |
Teks | Opsional | Deskripsi item menu add-on. |
image |
URL | Opsional |
Gambar item menu add-on yang sesuai dengan panduan berikut:
|
offers |
Array Offer |
Wajib diisi* |
Satu atau beberapa penawaran untuk menyediakan AddOnMenuItem ini. Menjelaskan kapan dan berapa harga AddOnMenuItem ini tersedia.
Hanya satu penawaran yang 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 kecil, sedang, dan besar
kentang goreng sebagai add-on), gunakan Nilai default untuk Properti
|
hasMenuItemOptions |
Array MenuItemOption |
Wajib diisi* |
Array atribut dasar yang mendeskripsikan variasi pada item add-on itu sendiri (seperti kentang goreng kecil, sedang, dan besar sebagai tambahan), item menu add-on. Menggunakan opsi untuk menentukan berbagai variasi yang tersedia untuk item menu add-on ini. Ada dua skenario di mana hal ini dapat terjadi:
|
suitableForDiet |
Array RestrictedDiet |
Opsional | Hidangan mematuhi batasan diet yang dijelaskan (seperti "Diet Bebas Gluten" atau "VeganDiet"). Ini adalah daftar enumerasi kemungkinan masing-masing. |
nutrition |
NutritionInformation |
Opsional | Informasi gizi 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
:
Contoh 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
Contoh 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small-pepperoni-pizza", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large-pepperoni-pizza", "price": "20.00", "priceCurrency": "USD" } } ], "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Choice of toppings", "@id": "https://www.example.com/1089/addon/1", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Shrimp", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-small", "price": "1.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-large", "price": "2.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-small", "price": "1.50", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-large", "price": "2.50", "priceCurrency": "USD" } } ] } ] } ] }
AddOnMenuSection
Sub-pengelompokan item makanan atau minuman sebagai bagian menu tambahan untuk item menu.
Tabel berikut mencantumkan properti untuk jenis AddOnMenuSection
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu berupa "AddOnMenuSection". |
@id |
URL | Wajib | ID unik bagian menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi AddOnMenuSection saat pengguna menjelajahi Google Spreadsheet. |
description |
Teks | Opsional | Deskripsi bagian menu. |
eligibleQuantity |
QuantitativeValue |
Opsional | Menunjukkan jumlah item yang diizinkan sebagai add-on untuk menu ini bagian. Anda dapat menggunakan kolom ini untuk membatasi jumlah add-on, seperti jumlah minimum dan maksimum {i>topping<i} yang dapat Anda pilih untuk sebuah pizza. |
image |
URL | Opsional | Gambar bagian menu. |
hasMenuItem |
Array AddOnMenuItem |
Wajib diisi* | Item menu add-on yang terdapat di AddOnMenuSection. |
offers |
Array Offer |
Opsional |
Gunakan Listingan di bawah ini menunjukkan properti
|
hasMenuSection |
Array AddOnMenuSection |
Wajib diisi* | Sub-pengelompokan logis dari menu tambahan (seperti Makan Malam, Makanan Pembuka, atau Hidangan ikan). |
defaultOption |
Array AddOnMenuItem |
Opsional |
Item menu add-on yang akan dipilih sebelumnya secara {i>default<i} untuk pengguna dalam
Objek Jumlah |
numberOfFreeAddOns |
Angka | Opsional | Menunjukkan jumlah add-on yang dapat dipilih pengguna tanpa biaya. |
Contoh berikut menyertakan objek AddOnMenuSection
:
Contoh 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
Contoh 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Contoh 3
"Sandwich Keju" item menu memiliki "Pilihan Keju"
AddOnMenuSection
dengan "Swiss" dan "Mozzarella" dipilih sebelumnya
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
Mewakili jam pemenuhan bagi pengguna untuk menjadwalkan pesanan di muka untuk pesan-antar dan bawa pulang.
Biasanya, nilai opens
kurang dari nilai closes
. Tujuan
panduan 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 bahwa pemesanan tersedia setiap hari. - Jika
opens
dancloses
sama, kita asumsikan bahwa pengurutan di awal adalah tidak tersedia. - Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan pada hari berikutnya. Misalnya, jika jam buka disetel ke 1 Januari pukul 17.00 dan jam tutup adalah 02.00, maka restoran diartikan sebagai tutup pada 2 Januari pukul 02.00 dini hari. opens
dancloses
merujuk ke slot waktu yang akan datang.closes
bersifat eksklusif. Sebagai misalnya, jikaopens
adalah 10.00 dancloses
adalah 16.00 denganserviceTimeInterval
selama 15 menit, slot waktu pertama dimulai pada pukul 10.00 dan terakhir kalinya slot dimulai pada pukul 15:45.
Tabel berikut menjelaskan properti
Jenis AdvanceServiceDeliveryHoursSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom ini selalu berupa "AdvanceServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Kondisional |
Tanggal mulai saat pengguna pesanan di muka dapat terpenuhi. Misalnya, "2017-05-01T00:00:00-07:00". Jika properti ini tidak ditetapkan, properti ini akan dianggap valid setiap hari.
Properti Jika jenis ini ditetapkan sebagai
Untuk informasi selengkapnya, lihat Format DateTime dan Time. |
validThrough |
DateTime |
Opsional |
Tanggal akhir ketika pengguna pesanan di muka tidak bisa lagi terpenuhi. Misalnya, "2018-12-01T00:00:00-07:00". Jika properti ini tidak ditetapkan, properti ini akan dianggap valid setiap hari.
Properti Jika jenis ini ditetapkan sebagai
Waktu untuk Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
opens |
Time |
Opsional |
Berlaku untuk slot pesan antar atau bawa pulang. Waktu spesifik mulai dari saat pengguna pesanan di muka dapat terpenuhi. Misalnya, 06.30 ditetapkan sebagai "T06:30:00". Waktu layanan harus ditentukan dalam waktu lokal. Jangan sertakan
zona waktu dalam nilai Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
closes |
Time |
Opsional |
Berlaku untuk slot pesan antar atau bawa pulang. Waktu spesifik saat pengguna pesanan di muka tidak dapat
terpenuhi. Misalnya, 21.00 ditetapkan sebagai "T21:00:00".
Waktu harus ditentukan dalam waktu lokal untuk layanan. Larangan
sertakan zona waktu dalam nilai Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
dayOfWeek |
Array DayOfWeek |
Opsional |
Hari yang tersedia saat jam pengiriman di muka tersedia. Berlaku nilainya adalah:
Jika Anda tidak menentukan hari apa pun dalam seminggu,
|
serviceTimeInterval |
Duration |
Wajib |
Interval antara dua waktu servis berturut-turut. Misalnya: Jika
|
advanceBookingRequirement |
QuantitativeValue |
Wajib |
Jumlah menit dari waktu pemesanan ketika pesanan di muka dapat terpenuhi.
Misalnya, jika pesanan di muka memerlukan
waktu setidaknya 60 menit untuk
terpenuhi, dan dibatasi sehingga tidak dapat dipenuhi lebih dari 2 hari
setelahnya, nilai |
Contoh berikut menunjukkan penggunaan
Jenis AdvanceServiceDeliveryHoursSpecification
:
Contoh 1
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
Untuk menggunakan jenis ini, tambahkan konteks gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Lalu, tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
yang sesuai
atau MenuItemOption
.
Tabel berikut menjelaskan properti jenis AllergenDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu berupa "AllergenDetails". |
allergenType |
Teks | Opsional | Jenis alergen per
gs1:AllergenTypeCode
. Misalnya, http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Teks | Opsional | Kode pembatasan per
gs1:LevelOfContainmentCode di atas.
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 | Kolom ini selalu menampilkan "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
alih-alih simbol mata uang. Misalnya, "6.00", tanpa mata uang
simbol. |
priceCurrency |
Teks | Wajib | 3 huruf kode mata uang ISO 4217. Misalnya, "USD". |
eligibleTransactionVolume |
PriceSpecification |
Opsional | Volume transaksi, dalam unit moneter, yang pengirimannya spesifikasi biaya valid. Misalnya, untuk menunjukkan jumlah pembelian minimal volume pengiriman, atau untuk menyatakan bahwa pengiriman tersedia tanpa biaya tambahan di atas volume pesanan tertentu. |
eligibleQuantity |
QuantitativeValue |
Opsional | Interval dan satuan pengukuran kuantitas pemesanan yang biaya pengiriman valid. Hal ini memungkinkan Anda, misalnya, menentukan bahwa biaya kargo tertentu hanya berlaku untuk jumlah tertentu. |
eligibleRegion |
Array GeoShape atau
Place atau
GeoCircle |
Opsional | Tempat, atau GeoShape/GeoCircle untuk wilayah geopolitik yang spesifikasi penawaran atau biaya pengirimannya valid. Gunakan ini hanya jika biaya pengiriman berbeda-beda di setiap wilayah. |
validFrom |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat biaya pengiriman yang ditentukan menjadi valid. Misalnya, "2017-05-01T06:30:00-07:00". Sebagai informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validThrough |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) setelah pengiriman
biaya yang ditetapkan tidak valid. Misalnya, "2017-05-01T06:30:00-07:00".
Waktu untuk validThrough bersifat eksklusif: misalnya, jika
waktu diatur ke 18.00, waktunya berlaku hingga 17:59:59.
Untuk informasi selengkapnya, lihat
Format Tanggal dan Waktu. |
Contoh berikut menunjukkan elemen DeliveryChargeSpecification
:
Contoh 1
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
Contoh 2
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Contoh 3
"priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ]
Selain "@type": ["DeliveryChargeSpecification"]
, objek ini dapat diperluas dengan
UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Ekstensi memberikan dua properti tambahan yang diperlukan untuk biaya pengiriman yang dihitung dalam persentase.
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Wajib | Jumlah referensi yang dikenai harga tertentu. Misalnya,
referenceQuantity dari nilai 10 dengan unitCode
"P1" menghasilkan 10% dari nilai pesanan. Hanya unitCode "P1" bernilai
didukung saat ini. |
basePrice |
Angka | Opsional | Biaya dasar selain referenceQuantity . Sebagai
contoh, referenceQuantity dari 10 dengan unitCode
dari "P1" dan basePrice dari 5 dalam USD menghasilkan $5 + 10% dari
nilai pesanan. Nilai defaultnya adalah 0. |
Contoh biaya pengiriman
Google mengizinkan Anda untuk menentukan berbagai biaya kepada pengguna di muka menggunakan
Offer.PriceSpecification
dari entity Service.
Perhatikan bahwa saat ini Pemesanan Menyeluruh hanya mendukung satu
DeliveryChargeSpecification
. Gabungkan semua jenis biaya menjadi satu
DeliveryChargeSpecification
.
Lihat Contoh feed layanan untuk mengetahui cara menentukan pengiriman biaya berdasarkan area, jarak, dan nilai pesanan.
Jika tidak ada biaya, Offer.PriceSpecification
akan dihapus.
- Contoh 1: Biaya pengiriman adalah 5% dari subtotal keranjang
- Contoh 2: Biaya pengiriman adalah $5
- Contoh 3: Biaya pengiriman adalah $5 + 10% dari subtotal keranjang
- Contoh 4: Biaya pengiriman adalah $5 dan biaya bagasi adalah $0,1
- Contoh 5: Biaya pengiriman adalah 5% dan biaya layanan adalah 2% dari subtotal keranjang
- Contoh 6: Biaya pengiriman adalah $5 dan $1 per jarak 1 km tambahan
Contoh 1
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Contoh 2
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Contoh 3
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "10.00", // 10% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "5.00" // User always pays $5 in addition to 10% } ]
Contoh 4
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
Contoh 5
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
Contoh 6
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "basePrice": 5.00, // User always pays $5 "price": 1.00, // An additional $1.00 is added per 1km "priceCurrency": "USD", "referenceQuantity": { "@type": "QuantitativeValue", "unitCode": "MTR", // MTR == meter "value": "1000.0" // 1km } } ]
GeoCircle
Tabel berikut menjelaskan properti jenis GeoCircle
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nama ini selalu "GeoCircle". |
geoMidpoint |
GeoCoordinates |
Wajib | Menunjukkan GeoCoordinates di tengah
GeoCircle . |
geoRadius |
Angka | Wajib | Menunjukkan perkiraan radius (dalam meter)
GeoCircle . |
Contoh berikut menunjukkan elemen GeoCircle
:
Contoh
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
Tabel berikut menjelaskan properti jenis GeoCoordinates
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "GeoCoordinates". |
latitude |
Angka | Wajib |
Lintang dalam derajat. Nilai dibatasi dalam rentang -90 hingga 90, inklusif. Jika nilai yang ditentukan kurang dari -90, nilai ini ditetapkan ke -90; jika nilainya lebih besar dari 90, nilainya ditetapkan ke 90. Presisinya minimal harus 5 angka di belakang koma. |
longitude |
Angka | Wajib |
Bujur dalam derajat. Nilai di luar rentang -180 hingga 180 adalah dibungkus sehingga mereka berada dalam jangkauan. Misalnya, nilai -190 dikonversi menjadi 170. Nilai 190 dikonversi menjadi -170. Ini mencerminkan fakta bahwa garis bujur mengelilingi dunia. Presisinya minimal harus 5 angka di belakang koma. |
Contoh berikut menunjukkan elemen GeoCoordinates
:
Contoh
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
Tabel berikut menjelaskan properti jenis GeoShape
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Elemen ini selalu berupa "GeoShape". |
polygon |
Array Teks | Wajib |
Poligon atau multipoligon yang dinyatakan sebagai serangkaian tiga ruang atau lebih {i>delimited point<i}. Sebaiknya titik pertama dan terakhir adalah hal yang sama, tetapi tidak wajib. Setiap titik dalam poligon atau multipoligon ditentukan oleh titik garis lintang diikuti dengan titik bujur. Anda juga harus menentukan poin-poin dalam berlawanan arah jarum jam. Biasanya, Anda akan memiliki satu poligon. Untuk penggunaan yang lebih kompleks kasus, lihat area layanan pengiriman. |
Contoh berikut menunjukkan elemen GeoShape
:
Contoh 1
![](https://developers.google.cn/static/actions-center/verticals/ordering/images/geoshape_ex1.png?authuser=5&hl=id)
{ "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" },
Contoh 2
![](https://developers.google.cn/static/actions-center/verticals/ordering/images/geoshape_ex2.png?authuser=5&hl=id)
{ "@type": "GeoShape", // A service area with a hole. // Specify latitude first (i.e., lat long lat long ...) "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”, “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”] },
Contoh 3
![](https://developers.google.cn/static/actions-center/verticals/ordering/images/geoshape_ex3.png?authuser=5&hl=id)
{ "@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
Google Spreadsheet. |
description |
Teks | Opsional | Deskripsi menu. |
disclaimer |
MenuDisclaimer |
Opsional | Pernyataan penyangkalan untuk menu. Misalnya, pengungkapan informasi gizi dan pengungkapan alergen. |
hasMenuSection |
Satu objek atau array MenuSection |
Opsional | Sub-pengelompokan logis dari menu (seperti Makan Malam, Makanan Pembuka, atau Ikan hidangan). |
hasMenuItem |
Satu objek atau array MenuItem |
Opsional | Objek MenuItem yang dimuat dalam Menu ,
biasanya jika Menu tidak dibagi oleh
MenuSections . |
inLanguage |
Teks | Opsional | Bahasa konten menu, sebagai kode bahasa dari Standar IETF BCP 47. Misalnya, "id-ID". |
Contoh berikut menunjukkan penggunaan jenis Menu
:
Contoh 1
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "hasMenuSection": { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Tacos", "description": "Tacos inspired by India cuisine.", "offers": { "@type": "Offer", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM }, "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Aloo Gobi Taco", "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.", "offers": { "@type": "Offer", "sku": "offer-aloo-gobi-taco", "price": "3.50", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, "inLanguage": "English" }
Contoh 2
Contoh ini menampilkan hasMenuItem
sebagai array.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Main", "description": "Main course", "image": "http://www.provider.com/somerestaurant/main_dishes.jpg", "hasMenuItem": [ { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Pizza", "description": "Pizza", "offers": { "@type": "Offer", "sku": "offer-pizza", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM } }, { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pasta", "description": "Pasta", "offers": [ { "@type": "Offer", "sku": "offer-pasta-lunch", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM }, { "@type": "Offer", "sku": "offer-pasta-dinner", "price": "10.49", "priceCurrency": "USD", "availabilityStarts": "T18:00:00", // Starts at 6:00PM "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM } ] } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }
Contoh 3
Contoh ini menampilkan 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 | Kolom ini selalu muncul sebagai "MenuPenafian". |
@id |
URL | Wajib | ID unik untuk pernyataan penyangkalan menu. |
text |
Teks | Wajib | Teks pernyataan penyangkalan. Misalnya, "Rata-rata energi harian orang dewasa asupan makanannya adalah 8.700 kJ." |
url |
URL | Opsional | URL yang mengarah ke halaman yang memberikan detail selengkapnya tentang pernyataan penyangkalan. |
Contoh berikut menunjukkan penggunaan jenis MenuDisclaimer
:
Contoh
{ "@type": "Menu", "@id": "menu_1", "disclaimer": { "@type": "MenuDisclaimer", "@id": "menu_1_disclaimer_1", "text": "The average adult daily energy intake is 8700 kJ", "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html" } }
MenuItem
Item menu untuk mewakili item di menu. Tabel berikut mencantumkan
properti untuk jenis MenuItem
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Elemen ini selalu "MenuItem". |
@id |
URL | Wajib | ID unik item menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi MenuItem saat pengguna menjelajah
menu. |
description |
Teks | Opsional | Deskripsi item menu. |
image |
URL | Opsional |
Gambar item menu. Gunakan panduan gambar berikut:
|
menuAddOn |
Array AddOnMenuSection |
Opsional | Item pada bagian menu yang dapat ditambahkan sebagai {i>add-on<i} ke item menu. |
offers |
Array Offer |
Wajib diisi* |
Satu atau beberapa penawaran untuk menyediakan Listingan di bawah ini menunjukkan properti
|
hasMenuItemOptions |
Array MenuItemOption |
Wajib | Daftar opsi/variasi dasar untuk item menu ini. Opsi seharusnya digunakan untuk menentukan berbagai variasi dasar yang tersedia untuk item, untuk 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 terenumerasi untuk nilai-nilai yang mungkin. |
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 | Tambahan hidangan per gs1:AdditiveDetails .
Ini adalah daftar enumerasi nilai yang mungkin. Menambahkan konteks gs1 yang akan digunakan
properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItem . |
packaging |
PackagingDetails |
Opsional | Informasi pengemasan dan daur ulang MenuItem ini per
gs1:PackagingDetails .
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItem .
|
Contoh berikut menunjukkan elemen MenuItem
:
Contoh 1
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
Contoh 2
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
Contoh 3
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
Contoh 4
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Contoh 5
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
Untuk contoh entitas MenuItem
lainnya, lihat Contoh Feed Restoran dan Menu.
MenuItemOption
Opsi untuk mewakili pilihan yang harus dibuat pengguna saat memilih hidangan atau kombo. Pengguna harus memilih opsi, atau pesanan dianggap tidak valid. Misalnya, memilih kecil, sedang, atau besar dalam kasus tersebut sepotong pizza.
Untuk contoh kasus penggunaan MenuItemOption
, lihat panduan kami tentang
menggunakan MenuItemOption
.
Tabel berikut mencantumkan properti untuk jenis MenuItemOption
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Elemen ini selalu "MenuItemOption". |
value |
PropertyValue |
Wajib | PropertyValue berisi pasangan nama/nilai yang mewakili
sebelumnya. |
offers |
Array Offer |
Wajib |
Satu atau beberapa penawaran untuk menyediakan
Listingan di bawah ini menunjukkan properti
|
menuAddOn |
Array of |
Opsional | Bagian menu item yang diizinkan yang dapat ditambahkan sebagai add-on. Gunakan hanya
ini jika {i>add-on<i} khusus untuk opsi item menu tertentu. Sebaliknya
menyediakan add-on menggunakan properti MenuItem .menuAddOn.
|
suitableForDiet |
Array RestrictedDiet |
Opsional | Daftar enumerasi yang menunjukkan diet yang sesuai dengan hidangan ini 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 | Tambahan hidangan per gs1:AdditiveDetails .
Ini adalah daftar enumerasi nilai yang mungkin. Menambahkan konteks gs1 yang akan digunakan
properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItemOption .
|
packaging |
PackagingDetails |
Opsional | Informasi pengemasan dan daur ulang MenuItem ini per
gs1:PackagingDetails
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis
MenuItemOption .
|
Contoh berikut menunjukkan elemen MenuItemOption
:
Contoh 1
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Contoh 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
MenuSection
Bagian menu untuk mewakili bagian tertentu dalam menu. Tabel berikut
mencantumkan properti untuk jenis MenuSection
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Elemen ini selalu "MenuSection". |
@id |
URL | Wajib | ID unik bagian menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi MenuSection saat pengguna menjelajah
menu. |
description |
Teks | Opsional | Deskripsi bagian menu. |
hasMenuSection |
Array MenuSection |
Opsional | Sub-pengelompokan logis MenuSection . Misalnya,
Bagian menu makan malam dapat memiliki beberapa sub-Bagian Menu seperti "Unggas
Piring" atau "Vegetarian". |
hasMenuItem |
Array MenuItem |
Opsional | Item menu yang terdapat di MenuSection . |
offers |
Array Offer |
Opsional |
Gunakan Daftar berikut menunjukkan properti
|
image |
URL | Opsional | Gambar bagian menu. |
Contoh berikut menunjukkan entitas MenuSection
:
Contoh 1
{ "@type": "MenuSection", "@id": "http://www.provider.com/bar/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }
Contoh 2
"hasMenuSection": [ { "@type": "MenuSection", "@id": "https://www.example.com/1089/categorization/25114480", "name": "Main Items", "hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ] }, { "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] } ]
Untuk contoh entitas MenuSection
lainnya, lihat
Contoh Feed Restoran dan Menu.
NutritionInformation
Tabel berikut menjelaskan properti NutritionInformation
. Satuan pengukuran peka huruf besar/kecil. Misalnya, "Cal" diterima,
tapi "cal" tidak.
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu disebut "Informasi Nutrisi". |
description |
Teks | Opsional | Informasi nutrisi dalam teks bebas. Misalnya "Berisi pengawet". |
calories |
Teks | Opsional |
Jumlah kalori dalam Kal, kkal, atau kJ, menggunakan hal berikut format: number Cal_kcal_OR_kJ Misalnya, "240 Kal". |
carbohydrateContent |
Teks | Opsional |
Jumlah karbohidrat, biasanya dalam g, menggunakan nilai format: number g_OR_mg Misalnya, "7 g". |
cholesterolContent |
Teks | Opsional |
Jumlah kolesterol, biasanya dalam mg, menggunakan format berikut: number g_OR_mg Misalnya, "12 mg". |
fatContent |
Teks | Opsional |
Jumlah lemak, biasanya dalam g, menggunakan format berikut: number g_OR_mg Misalnya, "42 g". |
fiberContent |
Teks | Opsional |
Jumlah g atau mg serat, menggunakan format berikut: number g_OR_mg |
proteinContent |
Teks | Opsional |
Jumlah g atau mg protein, menggunakan format berikut: number g_OR_mg |
saturatedFatContent |
Teks | Opsional |
Jumlah g atau mg lemak jenuh, menggunakan format berikut: number g_OR_mg |
servingSize |
Teks | Opsional | Ukuran porsi dalam mL, L, g, atau kg, dalam hal jumlah volume atau massanya. |
sodiumContent |
Teks | Opsional |
Jumlah mg atau g natrium, menggunakan format berikut: number g_OR_mg |
sugarContent |
Teks | Opsional |
Jumlah g atau mg gula, menggunakan format berikut: number g_OR_mg |
transFatContent |
Teks | Opsional |
Jumlah g atau mg lemak trans, menggunakan format berikut: number g_OR_mg |
unsaturatedFatContent |
Teks | Opsional |
Jumlah lemak tak jenuh, biasanya dalam g, menggunakan format: number g_OR_mg |
Contoh berikut menunjukkan elemen NutritionInformation
:
Contoh 1
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
Contoh 2
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/7", "name": "Peach Ice Tea", "description": "A 0.5l bottle of peach ice tea.", "offers": { "@type": "Offer", "sku": "offer-peach-ice-tea", "price": "2.49", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" } },
Penawaran
Penawaran untuk item menu. Tabel berikut menjelaskan properti
Jenis Offer
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Konten ini selalu berupa "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 mata uang simbol. Properti ini hanya diwajibkan dalam jenis penawaran berikut:
Nilai ini tidak digunakan dalam jenis penawaran berikut:
|
priceCurrency |
Teks | Kondisional |
Mata uang (dalam format 3 huruf ISO 4217) untuk harga atau harga tambahan, jika dilampirkan ke PriceSpecification dan subjenisnya. Properti ini hanya diwajibkan dalam jenis penawaran berikut:
Nilai ini tidak digunakan dalam jenis penawaran berikut:
|
availabilityStarts |
DateTime atau Time |
Opsional | Tanggal dan waktu atau hanya waktu penawaran tersedia. Misalnya, jika panekuk disajikan mulai pukul 7.00 pagi, maka nilainya kolom ini dapat terlihat seperti berikut: "2017-05-01T07:00:00-07:00". Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
availabilityEnds |
DateTime atau Time |
Opsional | Tanggal dan waktu atau hanya waktu penawaran tidak tersedia. Ini waktu bersifat eksklusif. Misalnya, jika ketersediaan panekuk berakhir pada 10.00, maka panekuk terakhir bisa disajikan pada pukul 09.59.59. Nilai dari kolom ini kemudian dapat terlihat seperti berikut: "2017-05-01T10:00:00-07:00". Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
availableDay |
Array DayOfWeek | Opsional |
Hari saat item ini tersedia. Nilai yang valid adalah:
Jika Anda memiliki ketersediaan yang berbeda
untuk hari yang berbeda,
gunakan lebih dari satu objek |
validFrom |
DateTime |
Opsional |
Tanggal dan waktu (termasuk zona waktu) saat properti yang ditentukan harga valid. Misalnya, harga pasta adalah $8 saat makan siang dan $10 saat makan malam. Untuk informasi selengkapnya, lihat Format Tanggal 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 tanggal yang ditentukan
harga sudah tidak valid. Misalnya, harga pasta adalah $8 saat makan siang
dan $10 untuk 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 untuk item ini yang diizinkan. Misalnya, sebuah restoran mungkin mengharuskan setidaknya 10 pizza dipesan untuk pengiriman. Nilai ini bersifat opsional. Secara default, tidak ada batas maksimum, tetapi restoran dapat menentukannya. Batas minimum hanya berlaku jika pengguna memilih item. Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut.
|
aggregateRating |
AggregateRating | Opsional |
Peringkat keseluruhan, berdasarkan kumpulan ulasan atau peringkat yang bermanfaat. 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 |
Saat 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 yang berada di Jika tidak ditentukan, Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
applicableFulfillmentMethod |
Array Teks | Opsional | Merepresentasikan jenis layanan 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 pada 25/4/19, ganti dengan
sku seperti yang dijelaskan di atas.
|
Contoh berikut menunjukkan elemen Offer
:
Contoh 1
Contoh berikut menampilkan penawaran sederhana:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Contoh 2
Contoh penawaran berikut menunjukkan ketersediaan dari pukul 08.00-10.00 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 3
Contoh berikut menampilkan ketersediaan dari pukul 09.00-10.59.59 pada hari Senin, Rabu, dan Jumat, tetapi pukul 08.00-11.59.59 di hari Selasa dan Kamis:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T09:00:00-07:00", "availabilityEnds": "T11:00:00-07:00", "availableDay": ["Monday", "Wednesday", "Friday"] }, { "@type": "Offer", "@id": "https://www.provider.com/menu/74962/141/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", "availabilityEnds": "T12:00:00-07:00", "availableDay": ["Tuesday", "Thursday"] }
Contoh 4
Contoh berikut menunjukkan bahwa item menu add-on yang memenuhi syarat ditetapkan sehingga pengguna dapat memesan maksimum 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 5
Contoh berikut menampilkan penawaran pesan antar di lokasi tertentu:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD", "applicableFulfillmentMethods": ["DELIVERY"], "offeredBy": [ { "@type": "Restaurant", "@id": "https://www.provider.com/location/1", } ] }
OpeningHoursSpecification
Menentukan kapan layanan pemesanan tersedia. Biasanya, nilai opens
kurang dari nilai closes
. Panduan berikut berlaku untuk penggunaan
Properti opens
dan closes
:
- Properti
opens
dancloses
bersifat opsional, tetapi sangat direkomendasikan untuk ditunjukkan saat pemesanan tersedia. Praktik terbaik untuk menentukan metrik akses jam akan menyertakan arraydeliveryHours
yang berisiServiceDeliveryHoursSpecification
dengan propertiopens
dancloses
. Anda dapat menyertakan objekAdvanceServiceDeliveryHoursSpecification
dideliveryHours
dengan propertiopens
dancloses
-nya sendiri, jika Anda ingin menawarkan periode yang lebih terbatas untuk pemesanan di awal. - Jika
opens
dancloses
tidak ditentukan secara eksplisit, kami menganggap bahwa pengurutan tersedia setiap hari, setiap saat sepanjang hari. - Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan
zona waktu dalam nilai
opens
ataucloses
. Jika zona waktu ditentukan, Google mengabaikan informasi ini. - Jika
opens
dancloses
sama, kita asumsikan bahwa restoran tersebut terbuka selama 0 menit. - Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan pada hari berikutnya. Misalnya, jika jam buka disetel ke 1 Januari pukul pukul 17.00 dan jam tutupnya adalah pukul 02.00, maka restoran diartikan sebagai tutup pada 2 Januari pukul 02.00. - Waktu untuk
closes
bersifat eksklusif. Oleh karena itu, jika jam buka dan tutup untuk periode pemesanan ini ditetapkan masing-masing pada pukul 10.00 dan 16.00, lalu pesanannya adalah 15:59:59.
Tabel berikut menjelaskan properti OpeningHoursSpecification
jenis:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu disebut "OpeningHoursSpecification". |
@id |
URL | Opsional | ID untuk OpeningHoursSpecification . |
dayOfWeek |
Array DayOfWeek |
Opsional |
Hari yang jam bukanya valid. Cukup baik nilainya 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 |
Jika digunakan dalam spesifikasi Jika digunakan dalam spesifikasi Waktu harus ditentukan dalam waktu lokal untuk layanan. Larangan
sertakan zona waktu dalam nilai Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
closes |
Time |
Opsional |
Jika digunakan dalam spesifikasi Waktu harus ditentukan dalam waktu lokal untuk layanan. Larangan
sertakan zona waktu dalam nilai Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validFrom |
DateTime |
Opsional |
Jika digunakan dalam spesifikasi Misalnya, jika jam yang diberikan berlaku untuk sepanjang tahun 2017, Anda menetapkan
tetapkan Jika digunakan dalam spesifikasi Jika properti ini tidak ditentukan dalam feed Anda, Google akan menganggap Restoran atau Layanan tersedia setiap hari. Selain tanggal, bagian waktu dan zona waktu nilai wajib diisi. Untuk zona waktu, gunakan zona waktu Restoran atau Layanan. Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validThrough |
DateTime |
Opsional |
Jika digunakan di Misalnya, jika jam yang diberikan berlaku untuk sepanjang tahun 2017, Anda menetapkan
tetapkan Jika digunakan dalam spesifikasi Jika properti ini tidak ditentukan dalam feed Anda, Google akan menganggap Restoran atau Layanan tersedia setiap hari. Selain tanggal, bagian waktu dan zona waktu DateTime wajib diisi. Untuk zona waktu, gunakan zona waktu Restoran atau Layanan. Waktu untuk Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
deliveryHours |
Array ServiceDeliveryHoursSpecification atau array
AdvanceServiceDeliveryHoursSpecification |
Kondisional |
Spesifikasi waktu pengiriman atau bawa pulang. Parameter ini wajib ada kecuali jika restoran sudah tutup (artinya
bahwa
|
Contoh berikut menunjukkan elemen OpeningHoursSpecification
:
Contoh 1
// Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] },
Contoh 2
// Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }
Contoh 3
"hoursAvailable": { "@type": "OpeningHoursSpecification", "validFrom": "2016-02-01T00:00:00-07:00", "validThrough": "2016-03-01T00:00:00-07:00", "opens": "T08:00:00", // Ordering begins at 8:00AM and ends at 6:00PM. // ASAP and and advance orders are restricted to this // time frame since the user won't be able to place // orders outside of this window. "closes": "T18:00:00", "deliveryHours": { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" } } },
Contoh 4
// List hours available for 2017 and 2018 "hoursAvailable": [ { "@type": "OpeningHoursSpecification", // Array containing advance order hours for each day "deliveryHours": [ { // Open 10:00AM to 9:29:59PM on Mondays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Tuesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Tuesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Wednesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Wednesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Thursdays "@type": "AdvanceServiceDeliveryHoursSpecification", "dayOfWeek": [ "Thursday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Fridays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Friday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Saturdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 11:00AM to 6:59:59PM on Sundays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Sunday" ], "opens": "T11:00:00", "closes": "T19:00:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ],
PackagingDetails
Tambahkan konteks gs1 untuk menggunakan jenis ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Dan tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
atau MenuItemOption
.
Tabel berikut menjelaskan properti jenis PackagingDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Daftar ini selalu menampilkan "PackagingDetails". |
packagingRecyclingProcessType |
Teks | Opsional | Jenis proses daur ulang kemasan sesuai
gs1:PackagingRecyclingProcessTypeCode. Misalnya
http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE
atau http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Opsional | Detail setoran paket yang dapat dikembalikan sesuai 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 PaymentChargeSpecification
jenis:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom ini selalu menampilkan "PaymentChargeSpecification". |
@id |
URL | Opsional | ID untuk PaymentChargeSpecification . |
price |
Angka | Wajib | Jumlah total tagihan. Misalnya, "6.00", tanpa mata uang simbol. |
priceCurrency |
Teks | Wajib | Kode mata uang ISO 4217 3 huruf untuk harga. Misalnya, "USD". |
eligibleTransactionVolume |
PriceSpecification |
Opsional | Volume transaksi, dalam unit moneter, yang dikenai biaya pembayaran ini valid, seperti untuk menunjukkan jumlah pembelian minimal volume. |
eligibleQuantity |
QuantitativeValue |
Opsional | Jumlah pemesanan yang valid untuk biaya pembayaran. Sebagai Misalnya, Anda dapat menggunakan properti ini untuk mewajibkan jumlah minimum item dalam urutan. |
validFrom |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat tagihan pembayaran yang ditentukan menjadi valid. Misalnya, "2017-05-01T07:00:00-07:00". Sebagai informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validThrough |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat pembayaran
biaya yang ditetapkan tidak valid. Misalnya, "2017-05-01T07:30:00-07:00".
Waktu untuk validThrough bersifat eksklusif: misalnya, jika
waktu itu diatur ke 18.00, waktunya berlaku hingga 17:59:59.
Untuk informasi selengkapnya, lihat
Format Tanggal dan Waktu. |
Contoh berikut menunjukkan elemen PaymentChargeSpecification:
Contoh
"priceSpecification": [{ "@type": "PaymentChargeSpecification", "@id": "http://www.provider.com/paymentCharge/bar", "priceCurrency": "USD", "price": "6.00", // Charges $6 for processing fee "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 2 // Minimum of two items required } }]
Selain "@type": ["PaymentChargeSpecification"]
, objek ini dapat
diperpanjang dengan UnitPriceSpecification
("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
).
Ekstensi memberikan dua properti tambahan yang diperlukan untuk biaya layanan
yang dihitung
dalam persentase.
properti | Jenis | Kebutuhan | Deskripsi |
referenceQuantity |
QuantitativeValue |
Wajib | Jumlah referensi yang dikenai harga tertentu. Misalnya,
referenceQuantity dari nilai 10 dengan unitCode
"P1" menghasilkan 10% dari nilai pesanan. Hanya unitCode "P1" bernilai
didukung saat ini. |
basePrice |
Angka | Opsional | Biaya dasar selain referenceQuantity . Sebagai
contoh, referenceQuantity dari 10 dengan unitCode
dari "P1" dan basePrice dari 5 dalam USD menghasilkan $5 + 10% dari
nilai pesanannya. Nilai defaultnya adalah 0. |
Contoh biaya Pengeksporan
Google mengizinkan Anda untuk menentukan berbagai biaya kepada pengguna di muka menggunakan
Offer.PriceSpecification
dari entity Service.
Perhatikan bahwa saat ini kami hanya mendukung satu PaymentChargeSpecification
. Gabungkan
semua jenis biaya ke dalam satu PaymentChargeSpecification
Jika tidak ada biaya, Offer.PriceSpecification
akan dihapus.
- Contoh 1: Biaya layanan adalah 5% dari subtotal keranjang
- Contoh 2: Biaya layanan adalah $5
- Contoh 3: Biaya bagasi adalah $0,1 dan biaya layanan adalah 5% dari subtotal keranjang
- Contoh 4: Biaya bagasi adalah $0,1 dan biaya layanan $1
- Contoh 5: Biaya layanan adalah 5% dan tip yang diperlukan adalah 10% dari subtotal keranjang
Contoh 1
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Contoh 2
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Contoh 3
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
Contoh 4
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
Contoh 5
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Tempat
Tabel berikut menjelaskan properti jenis Place
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom ini selalu menampilkan "Place". |
address |
PostalAddress |
Wajib | Alamat tempat. |
Contoh berikut menunjukkan elemen Tempat:
Contoh
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
Tabel berikut menjelaskan properti jenis PostalAddress
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom 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
di mana layanan disediakan.
Saat digunakan di Restaurant.address
, semua properti yang tercantum di
PostalAddress
diperlukan.
Contoh berikut menunjukkan elemen PostalAddress
:
Contoh
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
Tabel berikut menjelaskan properti PriceSpecification
jenis:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom ini selalu menampilkan "PriceSpecification". |
@id |
URL | Opsional | ID untuk PriceSpecification . |
minPrice |
Angka | Opsional | Harga terendah jika harganya berupa rentang. |
maxPrice |
Angka | Opsional | Harga tertinggi jika harganya 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 untuk satu dolar. |
Contoh berikut menunjukkan elemen PriceSpecification
:
Contoh 1
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Pasangan nilai properti yang digunakan untuk menjelaskan 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 jika digunakan di
Nama yang valid saat digunakan di
|
value |
Teks | Wajib |
Nilai untuk opsi. Nilainya dapat berupa string apa pun dan ditampilkan sebagai alamat IP internalnya. 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 nilai kuantitatif atau node nilai properti. |
unitCode |
Teks atau URL | Opsional |
Satuan ukur sebagai Kode Umum UN/CEFACT atau URL. Kode selain Kode Umum UN/CEFACT dapat digunakan dengan awalan diikuti dengan titik dua. |
maxValue |
Angka | Opsional | Nilai atas beberapa karakteristik atau properti. |
minValue |
Angka | Opsional | Nilai yang lebih rendah dari beberapa karakteristik atau properti. |
Contoh berikut menunjukkan penggunaan jenis QuantitativeValue
:
Contoh 1
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
Contoh 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Contoh 3
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Restoran
Tabel berikut mencantumkan properti untuk jenis Restaurant
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "Restoran". |
@id |
URL | Wajib | ID unik restoran atau penyedia layanan pesan-antar. Misalnya, "http://www.provider.com/326", dengan "326" adalah pengidentifikasi unik dari restoran. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi Restaurant selama pengurutan
{i>checkout<i}. |
url |
URL | Wajib | URL di domain Anda yang mewakili restoran. Misalnya, "http://www.provider.com/somerestaurant". |
sameAs |
URL | Opsional | Situs resmi untuk restoran. Misalnya, "http://www.somerestaurant.com". |
email |
Teks | Opsional | Email kontak restoran. |
description |
Teks | Opsional | Deskripsi restoran. |
telephone |
Teks | Wajib |
Nomor telepon dalam format berikut: "[+][country_code][phone_#_with_area_code]" Misalnya, "+16501234567". |
priceRange |
Teks | Opsional | Rentang harga. Misalnya, "$$" ($-Inexpensive, $$-Moderate, $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
Example 1
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": "+16501234567", // Kode negara (+1) wajib diisi "servesCuisine": [ "fusion India-Meksiko" ] },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"]
Lalu, tambahkan
FoodBeverageTobaccoProduct
ke jenisMenuItem
yang sesuai atauMenuItemOption
.Tabel berikut menjelaskan properti Jenis
ReturnablePackageDepositDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom ini selalu menampilkan "ReturnablePackageDepositDetails". |
returnablePackageDepositAmount |
gs1:PriceSpecification |
Opsional | Jumlah setoran untuk item ini per gs1:PriceSpecification. Misalnya, setoran $0,25 per kaleng. |
Contoh berikut menunjukkan penggunaan ReturnablePackageDepositDetails
jenis:
{ "@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 tertentu oleh organisasi pengiriman.
Tabel berikut menjelaskan properti jenis Service
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib |
Jenis feed.
|
@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 "PENGIRIMAN" atau "PENGIRIMAN". |
provider |
Restaurant |
Wajib | Referensi ke ID unik untuk restoran. Misalnya, "http://www.provider.com/somerestaurant". |
areaServed |
Array GeoShape ,
Place , atau
GeoCircle |
Kondisional | Area geografis tempat layanan disediakan. Bidang ini bersifat opsional menurut
default, tetapi wajib diisi jika serviceType adalah "PENGIRIMAN". |
hoursAvailable |
Array OpeningHoursSpecification |
Wajib | Jam ketersediaan layanan ini. |
specialOpeningHoursSpecification |
Array OpeningHoursSpecification ,
ServiceDeliveryHoursSpecification , atau
AdvanceServiceDeliveryHoursSpecification |
Opsional |
Waktu yang menggantikan Tentukan rentang tanggal khusus menggunakan |
offers |
Array Offer |
Kondisional |
Detail tentang penawaran pesan antar untuk restoran tertentu. Ini
Secara default, kolom bersifat opsional, tetapi wajib jika Properti |
hasOfferCatalog |
[Menu , OfferCatalog] |
Wajib |
Menentukan menu untuk layanan ini. Anda dapat memiliki menu yang berbeda untuk setiap layanan Anda (seperti layanan bawa pulang, pesan antar, dan katering). Anda harus menentukan "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
Array {name, value} | Opsional |
Informasi konfigurasi layanan opsional. Item diharapkan
objek dengan kunci
Lihat "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 Service:
Contoh
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "serviceType": "DELIVERY", "provider": { "@type": "Restaurant", "@id": "http://www.provider.com/threebrotherstacos" }, "potentialAction": { "url": "https://foprovider.com/ordering/restaurant-1/delivery" }, "hoursAvailable": [ // Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }, // Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ], "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/menu/1" }, "areaServed": [{ "@type": "GeoCircle", // area1 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "42.362757", "longitude": "-71.087109" }, "geoRadius": "10000" }, { "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } }, { "@type": "GeoShape", // area3 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.418128 -122.098167 37.382755 -122.118968 37.368551 -122.047978 37.400949 -122.048106 37.418128 -122.098167" }, { "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" }, { "@type": "GeoCircle", // area5 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ], "offers": { "@type": "Offer", "priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ] } },
Untuk contoh entitas Layanan lainnya, lihat Contoh Feed Layanan.
ServiceDeliveryHoursSpecification
Merepresentasikan jam pemenuhan bagi pengguna untuk menjadwalkan pesanan secepatnya untuk pengiriman dan bawa pulang.
Biasanya, nilai opens
kurang dari nilai closes
. Tujuan
panduan berikut berlaku untuk penggunaan properti opens
dan closes
:
- Properti
opens
dancloses
bersifat opsional untukServiceDeliveryHoursSpecification
, tetapi kami sangat menyarankan Anda menyertakannya. - Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan
zona waktu dalam nilai
opens
ataucloses
. Jika zona waktu ditentukan, Google mengabaikan informasi zona waktu. - Jika
opens
dancloses
tidak ditentukan secara eksplisit, kami berasumsi bahwa ASAP bahwa pemesanan tersedia setiap hari setiap saat. - Jika
opens
dancloses
sama, kita asumsikan bahwa pemesanan SEGERA adalah tidak tersedia. - Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan pada hari berikutnya. Misalnya, jika jam buka disetel ke 1 Januari pukul pukul 17.00 dan jam tutupnya adalah pukul 02.00, maka restoran diartikan sebagai tutup pada 2 Januari pukul 02.00.
Tabel berikut menjelaskan properti
Jenis ServiceDeliveryHoursSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom ini selalu "ServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Opsional |
Tanggal dan waktu (termasuk zona waktu) saat pengguna Pesanan SEGERA dapat terpenuhi. Misalnya, "2017-05-01T07:00:00-07:00". Jika properti ini tidak ditetapkan, maka dianggap valid setiap hari. Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validThrough |
DateTime |
Opsional |
Tanggal dan waktu (termasuk zona waktu) setelah pengguna Pesanan SEGERA tidak dapat dipenuhi. Misalnya, "2017-05-01T07:00:00-07:00". Jika properti ini tidak ditetapkan, maka dianggap valid setiap hari. Waktu untuk Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
opens |
Time |
Opsional |
Waktu saat layanan pengiriman dimulai untuk pengguna Pesanan secepatnya untuk terpenuhi. Misalnya, "T10:30:00". Waktu harus ditentukan dalam waktu lokal untuk layanan. Larangan
sertakan zona waktu dalam nilai Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
closes |
Time |
Opsional |
Waktu saat layanan pengiriman untuk Pesanan ASAP tidak lagi yang tersedia. Misalnya, "T23:59:59". Waktu untuk Waktu harus ditentukan dalam waktu lokal untuk layanan. Larangan
sertakan zona waktu dalam nilai Untuk informasi selengkapnya, lihat Format Tanggal dan Waktu. |
dayOfWeek |
Array DayOfWeek |
Opsional |
Hari saat layanan ini tersedia untuk pengguna Pesanan SEGERA. Berikut adalah nilai yang valid:
Jika Anda tidak menentukan hari apa pun dalam seminggu,
|
deliveryLeadTime |
QuantitativeValue |
Opsional | Perkiraan waktu pengiriman, dalam menit, setelah pesanan diproses
ditempatkan. Sebaiknya Anda menetapkan properti ini. Setel
Kolom value dari QuantitativeValue ke nomor
dan unitCode menjadi "MIN". |
Contoh berikut menunjukkan elemen ServiceDeliveryHoursSpecification
:
Contoh 1
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", // If no exact deliveryLeadTime, put a maximum time "unitCode": "MIN" } },
Contoh 2
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }
Enum
RestrictedDiet
Jenis RestrictedDiet
memiliki kemungkinan nilai berikut:
- http://schema.org/DiabeticDiet
- http://schema.org/GlutenFreeDiet
- http://schema.org/HalalDiet
- http://schema.org/HinduDiet
- http://schema.org/KosherDiet
- http://schema.org/LowCalorieDiet
- http://schema.org/LowFatDiet
- http://schema.org/LowLactoseDiet
- http://schema.org/LowSaltDiet
- http://schema.org/VeganDiet
- http://schema.org/VegetarianDiet
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-08-21 UTC.