Feed katalog makanan didasarkan pada entity DataFeed
schema.org. Feed katalog makanan terdiri dari detail lokalitas restoran seperti alamat, menu, dan lokasi restoran, serta detail layanan restoran seperti biaya pengiriman, area pengiriman, dan item lain seperti yang ditentukan di bawah ini.
DataFeed
berisi kumpulan elemen, yang masing-masing mewakili satu item
yang dinyatakan dalam kosakata schema.org. Anda dapat menggunakan jenis DataFeed
untuk memublikasikan semua data terstruktur dalam format JSON-LD.
Untuk mengetahui informasi tentang cara menggunakan spesifikasi ini untuk membuat feed, lihat Ringkasan integrasi inventaris.
Format DateTime dan Time
DateTime
didasarkan pada jenis schema.org,
dan, kecuali jika dinyatakan lain, harus mengikuti format ISO 8601 dan menyertakan
tanggal, waktu, dan zona waktu. Gunakan sintaksis berikut untuk DateTime
:
// DateTime format: YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]
Contoh:
2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z // UTC time zone. The optional "Z" suffix represents the UTC time zone.
Time
adalah waktu lokal untuk zona waktu restoran atau
lokasi layanan tertentu, juga didasarkan pada jenis schema.org, dan juga harus
mengikuti format ISO 8601. Waktu menggunakan sintaksis berikut:
// Time format: THH:MM:SS
Contoh:
T08:08:00 // 8:08 AM
Perhatikan hal berikut setiap kali Anda menentukan DateTime
atau Time
:
- Awalan "T" sebelum waktu adalah bagian dari format dan bersifat wajib.
- Zona waktu harus ditentukan untuk
DATETIME
. Hal ini tidak diperlukan untukTIME
. - Waktunya harus ditentukan dalam waktu setempat untuk restoran atau layanan.
Amplop
Kode awal untuk feed katalog makanan harus berisi bagian "amplop".
"Amplop" adalah struktur tingkat atas setiap feed, dan harus berupa
DataFeed
dengan properti berikut:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@context |
URL | Wajib | Konteks yang digunakan; biasanya "http://schema.googleapis.com". |
@type |
Teks | Wajib | Namanya selalu "DataFeed". |
dateModified |
DateTime |
Wajib |
Tanggal dan waktu dalam format ISO_OFFSET_DATE_TIME saat item dalam feed ini diubah. Jika kolom ini tidak tersedia, dianggap bahwa waktu update adalah waktu saat pesan push diterima (atau crawling terjadi) di server Google. Sebaiknya Anda menerapkannya jika menggunakan push dan crawl secara bersamaan. Stempel waktu ini harus ditentukan dengan zona waktu dan perincian milidetik; misalnya "2016-12-28T06:30:00:123-07:00". Dalam feed batch Anda, pembuatan versi entitas ditentukan melalui kolom |
dataFeedElement |
Array Menu atau
Restaurant
atau Service |
Wajib | Satu atau beberapa item yang merupakan bagian dari feed ini. Lihat di bawah untuk detailnya. |
Contoh berikut menunjukkan amplop:
Contoh
{ "@context": "http://schema.googleapis.com", "dateModified": "2016-12-28T06:30:00:123-07:00", "@type": "DataFeed", "dataFeedElement": [ /* All items that are part of this feed go here */ ] }
AdditiveDetails
Untuk menggunakan jenis ini, tambahkan konteks gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Kemudian, tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
atau MenuItemOption
yang sesuai.
Tabel berikut menjelaskan properti jenis AdditiveDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "AdditiveDetails". |
additiveName |
Teks | Opsional | Nama aditif. |
additiveLevelOfContainment |
Teks | Opsional | Kode pembatasan per
gs1:LevelOfContainmentCode.
Misalnya http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ,
http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM , atau
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN . |
Contoh berikut menunjukkan penggunaan jenis AdditiveDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/8", "name": "Energy Drink", "description": "A 0.25l can of energy drink.", "offers": { "@type": "Offer", "sku": "offer-energy-drink", "price": "3.49", "priceCurrency": "USD" }, "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AdditiveDetails", "additiveName": "phosphate", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
AddOnMenuItem
Item makanan atau minuman tercantum dalam item menu add-on MenuItem
.
Tabel berikut mencantumkan properti untuk jenis AddOnMenuItem
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu "AddOnMenuItem". |
@id |
URL | Wajib | ID unik item menu add-on. |
name |
Teks | Wajib | Teks yang mengidentifikasi AddOnMenuItem saat pengguna menjelajahi menu. |
description |
Teks | Opsional | Deskripsi item menu add-on. |
image |
URL | Opsional |
Gambar item menu add-on yang sesuai dengan panduan berikut:
|
offers |
Array Offer |
Wajib diisi* |
Satu atau beberapa penawaran untuk menyediakan AddOnMenuItem ini. Menjelaskan kapan dan berapa harga AddOnMenuItem ini tersedia.
Hanya satu penawaran yang boleh valid pada waktu tertentu. Anda dapat memiliki banyak penawaran yang valid jika harga atau ketersediaan dapat berubah berdasarkan waktu. Jika add-on atau item berbeda melalui atribut dasar atau variasi pada item add-on itu sendiri (seperti kentang goreng berukuran kecil, sedang, dan besar sebagai add-on), gunakan properti Nilai default untuk Properti
|
hasMenuItemOptions |
Array MenuItemOption |
Wajib diisi* |
Array atribut dasar yang mendeskripsikan variasi pada item add-on itu sendiri (seperti kentang goreng berukuran kecil, sedang, dan besar sebagai add-on), untuk item menu add-on ini. Gunakan opsi untuk menentukan berbagai variasi yang tersedia untuk item menu add-on ini. Ada dua skenario yang dapat terjadi:
|
suitableForDiet |
Array RestrictedDiet |
Opsional | Hidangan mematuhi pantangan makanan yang dijelaskan (seperti "GlutenFreeDiet" atau "VeganDiet"). Ini adalah daftar kemungkinan nilai yang dienumerasi. |
nutrition |
NutritionInformation |
Opsional | Informasi nutrisi untuk hidangan, terutama kalori. |
menuAddOn |
Array AddOnMenuSection |
Opsional | AddOnMenuItem dapat memiliki bagian menu yang terdiri dari item yang diizinkan yang dapat ditambahkan sebagai add-on. |
Contoh berikut menampilkan AddOnMenuItem
:
Contoh 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
Contoh 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small-pepperoni-pizza", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large-pepperoni-pizza", "price": "20.00", "priceCurrency": "USD" } } ], "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Choice of toppings", "@id": "https://www.example.com/1089/addon/1", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Shrimp", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-small", "price": "1.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-large", "price": "2.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-small", "price": "1.50", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-large", "price": "2.50", "priceCurrency": "USD" } } ] } ] } ] }
AddOnMenuSection
Sub-pengelompokan item makanan atau minuman sebagai bagian menu add-on untuk item menu.
Tabel berikut mencantumkan properti untuk jenis AddOnMenuSection
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Selalu ada "AddOnMenuSection". |
@id |
URL | Wajib | ID unik bagian menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi AddOnMenuSection saat pengguna menjelajahi menu. |
description |
Teks | Opsional | Deskripsi bagian menu. |
eligibleQuantity |
QuantitativeValue |
Opsional | Menunjukkan jumlah item yang diizinkan sebagai add-on untuk bagian menu ini. Anda dapat menggunakan kolom ini untuk membatasi jumlah add-on, seperti jumlah minimum dan maksimum topping yang dapat dipilih untuk pizza. |
image |
URL | Opsional | Gambar bagian menu. |
hasMenuItem |
Array AddOnMenuItem |
Wajib diisi* | Item menu add-on yang terdapat di AddOnMenuSection. |
offers |
Array Offer |
Opsional |
Gunakan Listingan di bawah menunjukkan properti
|
hasMenuSection |
Array AddOnMenuSection |
Wajib diisi* | Sub-pengelompokan logis menu add-on (seperti Makan Malam, Makanan Pembuka, atau Hidangan ikan). |
defaultOption |
Array AddOnMenuItem |
Opsional |
Item menu add-on akan dipilih sebelumnya secara default untuk pengguna di
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
Item menu "Cheese Sandwich" memiliki AddOnMenuSection
"Pilihan Keju" dengan "Swiss" dan "Mozzarella" dipilih sebagai default.
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "defaultOption": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a" }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b" } ], "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozzarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
AdvanceServiceDeliveryHoursSpecification
Menampilkan jam pemenuhan bagi pengguna guna menjadwalkan pesanan di awal untuk pengiriman dan bawa pulang.
Biasanya, nilai opens
lebih kecil daripada nilai closes
. Panduan
berikut berlaku untuk penggunaan properti opens
dan closes
:
- Properti
opens
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 menganggap bahwa pemesanan di awal tersedia pada semua hari setiap saat. - Jika
opens
dancloses
sama, kami menganggap bahwa pemesanan di awal tidak tersedia. - Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutup adalah 2 pagi, maka restoran tersebut akan ditafsirkan sebagai tutup pada 2 Januari pukul 02.00. opens
dancloses
merujuk pada slot waktu yang akan datang.closes
bersifat eksklusif. Misalnya, jikaopens
adalah pukul 10.00 dancloses
adalah pukul 16.00 denganserviceTimeInterval
15 menit, slot waktu pertama dimulai pada pukul 10.00 dan slot waktu terakhir dimulai pada pukul 15.45.
Tabel berikut menjelaskan properti jenis
AdvanceServiceDeliveryHoursSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini akan selalu "AdvanceServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Kondisional |
Tanggal mulai saat pemesanan di muka dari pengguna dapat dipenuhi. Misalnya, "2017-05-01T00:00:00-07:00". Jika tidak disetel, properti ini dianggap valid setiap hari.
Properti Jika jenis ini ditentukan sebagai
Untuk mengetahui informasi selengkapnya, lihat Format DateTime dan Time. |
validThrough |
DateTime |
Opsional |
Tanggal berakhir saat pesanan di muka dari pengguna tidak lagi dapat dipenuhi. Misalnya, "2018-12-01T00:00:00-07:00". Jika tidak disetel, properti ini dianggap valid setiap hari.
Properti Jika jenis ini ditentukan sebagai
Waktu untuk Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
opens |
Time |
Opsional |
Berlaku untuk slot pesan antar atau bawa pulang. Waktu tertentu sejak awal saat pesanan di muka dari pengguna dapat dipenuhi. Misalnya, 06.30 akan ditetapkan sebagai "T06:30:00". Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan
zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
closes |
Time |
Opsional |
Berlaku untuk slot pesan antar atau bawa pulang. Waktu tertentu saat pesanan di muka dari pengguna tidak dapat dipenuhi. Misalnya, pukul 21.00 akan ditampilkan sebagai "T21.00.00".
Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
dayOfWeek |
Array DayOfWeek |
Opsional |
Tersedia hari dalam seminggu saat jam pengiriman awal tersedia. Nilai yang valid adalah:
Jika Anda tidak menentukan hari apa pun, maka
|
serviceTimeInterval |
Duration |
Wajib |
Interval antara dua waktu servis berturut-turut. Misalnya: Jika
|
advanceBookingRequirement |
QuantitativeValue |
Wajib |
Jumlah menit dari waktu pemesanan saat pesanan di awal dapat dipenuhi. Nilai Misalnya, jika pesanan di awal memerlukan waktu minimal 60 menit untuk
dipenuhi, dan dibatasi agar tidak dipenuhi lebih dari 2 hari
kemudian, nilai |
Contoh berikut menunjukkan penggunaan jenis
AdvanceServiceDeliveryHoursSpecification
:
Contoh 1
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
Untuk menggunakan jenis ini, tambahkan konteks gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Kemudian, tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
atau MenuItemOption
yang sesuai.
Tabel berikut menjelaskan properti jenis AllergenDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "AllergenDetails". |
allergenType |
Teks | Opsional | Jenis alergen per gs1:AllergenTypeCode
. Misalnya, http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Teks | Opsional | Kode pembatasan per
gs1:LevelOfContainmentCode.
Misalnya http://gs1.org/voc/LevelOfContainmentCode-CONTAINS ,
http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM , atau
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .
|
Contoh berikut menunjukkan penggunaan jenis AllergenDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/6", "name": "Strawberry joghurt drink", "description": "A 0.5l bottle of strawberry joghurt drink.", "offers": { "@type": "Offer", "sku": "offer-joghurt-drink", "price": "2.49", "priceCurrency": "USD" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
DeliveryChargeSpecification
Tabel berikut menjelaskan properti jenis
DeliveryChargeSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "DeliveryChargeSpecification". |
@id |
URL | Opsional | ID untuk spesifikasi biaya pengiriman. |
price |
Angka | Wajib | Total biaya pengiriman, dalam angka saja. Gunakan properti priceCurrency untuk menunjukkan jenis mata uang, bukan simbol mata uang. Misalnya, "6.00", tanpa simbol mata uang. |
priceCurrency |
Teks | Wajib | 3 huruf kode mata uang ISO 4217. Misalnya, "USD". |
eligibleTransactionVolume |
PriceSpecification |
Opsional | Volume transaksi, dalam satuan uang, yang memiliki spesifikasi biaya pengiriman ini yang valid. Misalnya, untuk menunjukkan volume pembelian minimal, atau untuk menyatakan bahwa pengiriman tersedia tanpa biaya tambahan di atas volume pesanan tertentu. |
eligibleQuantity |
QuantitativeValue |
Opsional | Interval dan satuan pengukuran kuantitas pemesanan yang biaya pengirimannya valid. Dengan demikian, Anda dapat, misalnya, menentukan bahwa biaya kargo tertentu hanya berlaku untuk jumlah tertentu. |
eligibleRegion |
Array GeoShape atau
Place atau
GeoCircle |
Opsional | Tempat, atau GeoShape/GeoCircle untuk wilayah geo-politik yang memiliki spesifikasi penawaran atau biaya pengiriman yang valid. Gunakan properti ini hanya jika biaya pengiriman bervariasi di setiap wilayah. |
validFrom |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat biaya pengiriman yang ditentukan menjadi valid. Misalnya, "2017-05-01T06:30:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validThrough |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat biaya pengiriman yang ditentukan tidak valid. Misalnya, "2017-05-01T06:30:00-07:00".
Waktu untuk validThrough bersifat eksklusif: misalnya, jika
waktu disetel ke pukul 18.00, waktu akan valid hingga pukul 17.59.59.
Untuk mengetahui informasi selengkapnya, lihat
Format Tanggal dan Waktu. |
Contoh berikut menunjukkan elemen DeliveryChargeSpecification
:
Contoh 1
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
Contoh 2
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Contoh 3
"priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ]
Selain "@type": ["DeliveryChargeSpecification"]
, objek dapat diperluas dengan UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Ekstensi ini memberikan dua properti tambahan yang diperlukan untuk biaya pengiriman yang dihitung dalam persentase.
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Wajib | Kuantitas referensi yang menerapkan harga tertentu. Misalnya,
referenceQuantity dari nilai 10 dengan unitCode
"P1" menghasilkan 10% dari nilai pesanan. Saat ini hanya unitCode "P1"
yang didukung. |
basePrice |
Angka | Opsional | Biaya dasar selain referenceQuantity . Misalnya, referenceQuantity dari 10 dengan unitCode "P1" dan basePrice dari 5 dalam USD menghasilkan $5 + 10% dari
nilai pesanan. Nilai defaultnya adalah 0. |
Contoh biaya pengiriman
Google mengizinkan Anda menentukan berbagai biaya kepada pengguna di awal menggunakan Offer.PriceSpecification
entitas Layanan.
Perhatikan bahwa Pengurutan Menyeluruh saat ini hanya mendukung satu
DeliveryChargeSpecification
. Gabungkan semua jenis biaya ke dalam satu
DeliveryChargeSpecification
.
Lihat Contoh feed layanan untuk mengetahui cara menentukan biaya pengiriman berdasarkan area, jarak, dan nilai pesanan.
Jika tidak ada biaya, Offer.PriceSpecification
akan dihapus.
- Contoh 1: Biaya pengiriman adalah 5% dari subtotal keranjang
- Contoh 2: Biaya pengiriman adalah $5
- Contoh 3: Biaya pengiriman adalah $5 + 10% dari subtotal keranjang
- Contoh 4: Biaya pengiriman adalah $5 dan biaya bagasi $0,1
- Contoh 5: Biaya pengiriman 5% dan biaya layanan 2% dari subtotal keranjang
- Contoh 6: Biaya pengiriman adalah $5 dan $1 per jarak 1 km tambahan
Contoh 1
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Contoh 2
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Contoh 3
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "10.00", // 10% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "5.00" // User always pays $5 in addition to 10% } ]
Contoh 4
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
Contoh 5
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
Contoh 6
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "basePrice": 5.00, // User always pays $5 "price": 1.00, // An additional $1.00 is added per 1km "priceCurrency": "USD", "referenceQuantity": { "@type": "QuantitativeValue", "unitCode": "MTR", // MTR == meter "value": "1000.0" // 1km } } ]
GeoCircle
Tabel berikut menjelaskan properti jenis GeoCircle
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "GeoCircle". |
geoMidpoint |
GeoCoordinates |
Wajib | Menunjukkan GeoCoordinates di tengah
GeoCircle . |
geoRadius |
Angka | Wajib | Menunjukkan perkiraan radius (dalam meter)
GeoCircle . |
Contoh berikut menunjukkan elemen GeoCircle
:
Contoh
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
Tabel berikut menjelaskan properti jenis GeoCoordinates
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "GeoCoordinates". |
latitude |
Angka | Wajib |
Lintang dalam derajat. Nilai dibatasi hingga rentang -90 hingga 90, inklusif. Jika nilai yang ditentukan kurang dari -90, nilai akan ditetapkan ke -90; jika lebih besar dari 90, nilai akan ditetapkan ke 90. Presisi harus minimal 5 angka di belakang koma. |
longitude |
Angka | Wajib |
Bujur dalam derajat. Nilai di luar rentang -180 hingga 180 dibulatkan agar berada dalam rentang tersebut. Misalnya, nilai -190 akan dikonversi menjadi 170. Nilai 190 dikonversi menjadi -170. Hal ini mencerminkan fakta bahwa garis bujur mengelilingi dunia. Presisi harus minimal 5 angka di belakang koma. |
Contoh berikut menunjukkan elemen GeoCoordinates
:
Contoh
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
Tabel berikut menjelaskan properti jenis GeoShape
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nama ini selalu "GeoShape". |
polygon |
Array Teks | Wajib |
Poligon atau multipoligon yang dinyatakan sebagai rangkaian tiga atau beberapa titik yang dipisahkan spasi. Sebaiknya poin pertama dan terakhir sama, tetapi tidak wajib. Setiap titik dalam poligon atau multipoligon ditentukan dengan titik garis lintang diikuti dengan titik bujur. Anda juga harus menentukan titik-titik dalam arah berlawanan. Pada umumnya, Anda akan memiliki satu poligon. Untuk kasus penggunaan yang lebih kompleks, lihat dokumentasi area layanan pengiriman. |
Contoh berikut menunjukkan elemen GeoShape
:
Contoh 1
{ "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" },
Contoh 2
{ "@type": "GeoShape", // A service area with a hole. // Specify latitude first (i.e., lat long lat long ...) "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”, “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”] },
Contoh 3
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "areaServed": [ { "@type": "GeoShape", // Richmond District delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474" }, { "@type": "GeoShape", // Haight-Ashbury delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417" } ], ... },
Menu
Tabel berikut mencantumkan properti untuk jenis Menu
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Bagian ini selalu berupa "Menu". |
@id |
URL | Wajib | ID unik untuk menu. |
name |
Teks | Opsional | Teks yang dapat mengidentifikasi Menu saat pengguna menjelajahi
menu. |
description |
Teks | Opsional | Deskripsi menu. |
disclaimer |
MenuDisclaimer |
Opsional | Pernyataan penyangkalan untuk menu. Misalnya, pengungkapan informasi gizi dan pengungkapan alergen. |
hasMenuSection |
Objek atau array tunggal MenuSection |
Opsional | Sub-pengelompokan menu logis (seperti Makan Malam, Makanan Pembuka, atau Hidangan ikan). |
hasMenuItem |
Objek atau array tunggal MenuItem |
Opsional | Objek MenuItem yang terdapat dalam Menu ,
biasanya saat Menu tidak dibagi lagi oleh
MenuSections . |
inLanguage |
Teks | Opsional | Bahasa konten menu, sebagai kode bahasa dari standar IETF BCP 47. Misalnya, "en-US". |
Contoh berikut menunjukkan penggunaan jenis Menu
:
Contoh 1
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "hasMenuSection": { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Tacos", "description": "Tacos inspired by India cuisine.", "offers": { "@type": "Offer", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM }, "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Aloo Gobi Taco", "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.", "offers": { "@type": "Offer", "sku": "offer-aloo-gobi-taco", "price": "3.50", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, "inLanguage": "English" }
Contoh 2
Contoh ini menunjukkan hasMenuItem
sebagai array.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Main", "description": "Main course", "image": "http://www.provider.com/somerestaurant/main_dishes.jpg", "hasMenuItem": [ { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Pizza", "description": "Pizza", "offers": { "@type": "Offer", "sku": "offer-pizza", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM } }, { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pasta", "description": "Pasta", "offers": [ { "@type": "Offer", "sku": "offer-pasta-lunch", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM }, { "@type": "Offer", "sku": "offer-pasta-dinner", "price": "10.49", "priceCurrency": "USD", "availabilityStarts": "T18:00:00", // Starts at 6:00PM "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM } ] } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }
Contoh 3
Contoh ini menunjukkan hasMenuSection
sebagai array.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Dinner", "description": "Dinner dishes", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Starters", "description": "Appetizers and such", "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/3", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/5", "name": "Desserts", "description": "Dessert dishes.", "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/4", "name": "Chocolate Pie", "description": "A slice of chocolate pie.", "offers": { "@type": "Offer", "sku": "offer-chocolate-pie", "price": "3.49", "priceCurrency": "USD" } } } ] }
Untuk contoh entitas Menu
lainnya, lihat Contoh Feed Menu dan Restoran.
MenuDisclaimer
Tabel berikut mencantumkan properti untuk jenis MenuDisclaimer
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nama ini selalu ditampilkan sebagai "Pernyataan Penyangkalan Menu". |
@id |
URL | Wajib | ID unik untuk pernyataan penyangkalan menu. |
text |
Teks | Wajib | Teks pernyataan penyangkalan. Misalnya, "Asupan energi harian rata-rata orang dewasa adalah 8700 kJ." |
url |
URL | Opsional | URL yang mengarah ke halaman yang memberikan detail selengkapnya tentang pernyataan penyangkalan. |
Contoh berikut menunjukkan penggunaan jenis MenuDisclaimer
:
Contoh
{ "@type": "Menu", "@id": "menu_1", "disclaimer": { "@type": "MenuDisclaimer", "@id": "menu_1_disclaimer_1", "text": "The average adult daily energy intake is 8700 kJ", "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html" } }
MenuItem
Item menu untuk mewakili item dalam menu. Tabel berikut mencantumkan
properti untuk jenis MenuItem
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Ini selalu berupa "MenuItem". |
@id |
URL | Wajib | ID unik item menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi MenuItem saat pengguna menjelajahi menu. |
description |
Teks | Opsional | Deskripsi item menu. |
image |
URL | Opsional |
Gambar item menu. Gunakan panduan gambar berikut:
|
menuAddOn |
Array AddOnMenuSection |
Opsional | Item di bagian menu yang dapat ditambahkan sebagai add-on ke item menu. |
offers |
Array Offer |
Wajib diisi* |
Satu atau beberapa penawaran untuk menyediakan Listingan di bawah menunjukkan properti
|
hasMenuItemOptions |
Array MenuItemOption |
Wajib | Daftar opsi/variasi dasar untuk item menu ini. Opsi harus digunakan untuk menentukan berbagai variasi dasar yang tersedia untuk item, misalnya kecil, sedang, dan besar. |
suitableForDiet |
Array RestrictedDiet |
Opsional | Hidangan mematuhi pantangan makanan yang dijelaskan (seperti "http://schema.org/GlutenFreeDiet" atau "http://schema.org/VeganDiet". Ini adalah daftar kemungkinan nilai yang dienumerasi. |
nutrition |
NutritionInformation |
Opsional | Informasi nutrisi untuk hidangan, terutama kalori. |
hasAllergen |
AllergenDetails |
Opsional | Alergen hidangan per gs1:AllergenDetails .
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem . |
additive |
Array AdditiveDetails |
Opsional | Aditif hidangan per gs1:AdditiveDetails .
Ini adalah daftar kemungkinan nilai yang dienumerasi. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem . |
packaging |
PackagingDetails |
Opsional | Informasi pengemasan dan daur ulang MenuItem ini per
gs1:PackagingDetails .
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItem .
|
Contoh berikut menunjukkan elemen MenuItem
:
Contoh 1
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
Contoh 2
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
Contoh 3
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
Contoh 4
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Contoh 5
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
Untuk contoh entitas MenuItem
lainnya, lihat Contoh Feed Menu dan Restoran.
MenuItemOption
Opsi untuk merepresentasikan pilihan yang akan diperlukan pengguna saat memilih hidangan atau kombinasi. Pengguna harus memilih opsi. Jika tidak, pesanan tersebut akan dianggap tidak valid. Misalnya, memilih ukuran kecil, sedang, atau besar untuk pizza.
Untuk contoh kasus penggunaan MenuItemOption
, lihat panduan kami tentang
penyesuaian menggunakan MenuItemOption
.
Tabel berikut mencantumkan properti untuk jenis MenuItemOption
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nama ini selalu "MenuItemOption". |
value |
PropertyValue |
Wajib | PropertyValue yang berisi pasangan nama/nilai yang mewakili
opsi. |
offers |
Array Offer |
Wajib |
Satu atau beberapa penawaran untuk menyediakan
Listingan di bawah menunjukkan properti
|
menuAddOn |
Array of |
Opsional | Bagian menu item yang diizinkan yang dapat ditambahkan sebagai add-on. Hanya gunakan
opsi ini jika add-on khusus untuk opsi item menu tertentu. Jika tidak,
sediakan add-on menggunakan properti MenuItem .menuAddOn.
|
suitableForDiet |
Array RestrictedDiet |
Opsional | Daftar enumerasi yang menunjukkan diet saat hidangan ini mematuhi pantangan makanan yang dijelaskan (seperti "http://schema.org/GlutenFreeDiet" atau "http://schema.org/VeganDiet"). |
nutrition |
NutritionInformation |
Opsional | Informasi nutrisi untuk hidangan, terutama kalori. |
hasAllergen |
AllergenDetails |
Opsional | Alergen hidangan per gs1:AllergenDetails .
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItemOption .
|
additive |
Array AdditiveDetails |
Opsional | Aditif hidangan per gs1:AdditiveDetails .
Ini adalah daftar kemungkinan nilai yang dienumerasi. Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItemOption .
|
packaging |
PackagingDetails |
Opsional | Informasi pengemasan dan daur ulang MenuItem ini per
gs1:PackagingDetails
Tambahkan konteks gs1 untuk menggunakan properti ini: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dan tambahkan FoodBeverageTobaccoProduct ke jenis MenuItemOption .
|
Contoh berikut menunjukkan elemen MenuItemOption
:
Contoh 1
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Contoh 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
MenuSection
Bagian menu untuk merepresentasikan bagian tertentu dalam menu. Tabel berikut
mencantumkan properti untuk jenis MenuSection
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Selalu ada "MenuSection". |
@id |
URL | Wajib | ID unik bagian menu. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi MenuSection saat pengguna menjelajahi menu. |
description |
Teks | Opsional | Deskripsi bagian menu. |
hasMenuSection |
Array MenuSection |
Opsional | Sub-pengelompokan logis MenuSection . Misalnya, bagian menu Makan Malam dapat memiliki beberapa sub-MenuBagian seperti "Hidangan Unggas" atau "Vegetarian". |
hasMenuItem |
Array MenuItem |
Opsional | Item menu yang terdapat dalam MenuSection . |
offers |
Array Offer |
Opsional |
Gunakan Daftar berikut menunjukkan properti
|
image |
URL | Opsional | Gambar bagian menu. |
Contoh berikut menunjukkan MenuSection
entity:
Contoh 1
{ "@type": "MenuSection", "@id": "http://www.provider.com/bar/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }
Contoh 2
"hasMenuSection": [ { "@type": "MenuSection", "@id": "https://www.example.com/1089/categorization/25114480", "name": "Main Items", "hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ] }, { "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] } ]
Untuk contoh entitas MenuSection
lainnya, lihat Contoh Feed Menu dan Restoran.
NutritionInformation
Tabel berikut menjelaskan properti jenis NutritionInformation
. Satuan pengukuran peka huruf besar/kecil. Misalnya, "Cal" diterima,
tetapi "kal" tidak.
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nama ini selalu berupa "NutritionInformation". |
description |
Teks | Opsional | Informasi nutrisi dalam teks bebas. Misalnya "Berisi pengawet". |
calories |
Teks | Opsional |
Jumlah kalori dalam Kal, kkal, atau kJ, menggunakan format berikut: number Cal_kcal_OR_kJ Misalnya, "240 Kal". |
carbohydrateContent |
Teks | Opsional |
Jumlah karbohidrat, biasanya dalam g, menggunakan format berikut: number g_OR_mg Misalnya, "7 g". |
cholesterolContent |
Teks | Opsional |
Jumlah kolesterol, biasanya dalam mg, menggunakan format berikut: number g_OR_mg Misalnya, "12 mg". |
fatContent |
Teks | Opsional |
Jumlah lemak, biasanya dalam g, menggunakan format berikut: number g_OR_mg Misalnya, "42 g". |
fiberContent |
Teks | Opsional |
Jumlah g atau mg serat, menggunakan format berikut: number g_OR_mg |
proteinContent |
Teks | Opsional |
Jumlah g atau mg protein, menggunakan format berikut: number g_OR_mg |
saturatedFatContent |
Teks | Opsional |
Jumlah g atau mg lemak jenuh, menggunakan format berikut: number g_OR_mg |
servingSize |
Teks | Opsional | Ukuran porsi dalam mL, L, g, atau kg, dalam hal jumlah volume atau massa. |
sodiumContent |
Teks | Opsional |
Jumlah mg atau g natrium, menggunakan format berikut: number g_OR_mg |
sugarContent |
Teks | Opsional |
Jumlah g atau mg gula, menggunakan format berikut: number g_OR_mg |
transFatContent |
Teks | Opsional |
Jumlah g atau mg lemak trans, menggunakan format berikut: number g_OR_mg |
unsaturatedFatContent |
Teks | Opsional |
Jumlah lemak tak jenuh, biasanya dalam g, menggunakan format berikut: number g_OR_mg |
Contoh berikut menunjukkan elemen NutritionInformation
:
Contoh 1
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
Contoh 2
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/7", "name": "Peach Ice Tea", "description": "A 0.5l bottle of peach ice tea.", "offers": { "@type": "Offer", "sku": "offer-peach-ice-tea", "price": "2.49", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" } },
Penawaran
Penawaran untuk item menu. Tabel berikut menjelaskan properti jenis
Offer
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom ini selalu berupa "Penawaran". |
sku |
Teks | Kondisional |
ID unik penawaran. Dapat berupa nilai teks apa pun yang unik dalam Properti ini hanya digunakan dalam jenis penawaran berikut:
|
price |
Teks | Kondisional |
Harga item yang ditawarkan. Misalnya, "6.00" tanpa simbol mata uang. Properti ini hanya diwajibkan dalam jenis penawaran berikut:
Ini tidak digunakan dalam jenis penawaran berikut:
|
priceCurrency |
Teks | Kondisional |
Mata uang (dalam format ISO 4217 3 huruf) dari harga atau komponen harga, saat dilampirkan ke PriceSpecification dan subjenisnya. Properti ini hanya diwajibkan dalam jenis penawaran berikut:
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 07.00, nilai kolom ini dapat terlihat seperti berikut: "2017-05-01T07:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
availabilityEnds |
DateTime atau Time |
Opsional | Tanggal dan waktu atau hanya waktu saat penawaran tidak tersedia. Kesempatan ini bersifat eksklusif. Misalnya, jika ketersediaan martabak berakhir pada pukul 10.00, panekuk terakhir dapat disajikan pada pukul 09.59.59. Nilai kolom ini dapat terlihat seperti berikut: "2017-05-01T10:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
availableDay |
Array DayOfWeek | Opsional |
Hari saat item ini tersedia. Nilai yang valid adalah:
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 harga yang ditentukan berlaku. Misalnya, harga pastanya adalah $8 saat makan siang dan $10 untuk makan malam. Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
validThrough |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat harga yang ditentukan tidak lagi valid. Misalnya, harga pastanya adalah $8 saat makan siang dan $10 untuk makan malam. Waktu untuk Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut.
|
eligibleQuantity |
QuantitativeValue | Opsional |
Jumlah pemesanan yang diizinkan untuk item ini. Misalnya, restoran mungkin mengharuskan untuk memesan setidaknya 10 pizza untuk pengiriman. Nilai ini bersifat opsional. Secara default, tidak ada batas maksimum, tetapi restoran dapat menentukan batas maksimum. Batas minimum berlaku hanya saat pengguna memilih item. Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut.
|
aggregateRating |
AggregateRating | Opsional |
Rating keseluruhan, berdasarkan kumpulan ulasan atau rating item. Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan pada 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 dalam Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
offeredBy |
Array ID Restaurant |
Opsional | Menampilkan restoran yang ditawarkan 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 yang dipenuhi Jika tidak ditentukan, Properti ini dapat digunakan dalam jenis penawaran berikut:
Properti ini tidak digunakan dalam jenis penawaran berikut:
|
@id |
URL | Tidak digunakan lagi | ID unik penawaran. Tidak digunakan lagi mulai 25/4/19, ganti dengan
sku seperti yang dijelaskan di atas.
|
Contoh berikut menunjukkan elemen Offer
:
Contoh 1
Contoh berikut menunjukkan penawaran sederhana:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Contoh 2
Contoh penawaran berikut menunjukkan ketersediaan dari pukul 08.00-10.00 di akhir pekan:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", // Only available from 8-9:59:59 AM "availabilityEnds": "T10:00:00-07:00", "availableDay": ["Saturday", "Sunday"] // Only on weekends. }
Contoh 3
Contoh berikut menunjukkan ketersediaan dari pukul 09.00-10.59.59 pada hari Senin, Rabu, dan Jumat, tetapi 08.00-11.59.59 pada hari Selasa dan Kamis:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T09:00:00-07:00", "availabilityEnds": "T11:00:00-07:00", "availableDay": ["Monday", "Wednesday", "Friday"] }, { "@type": "Offer", "@id": "https://www.provider.com/menu/74962/141/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", "availabilityEnds": "T12:00:00-07:00", "availableDay": ["Tuesday", "Thursday"] }
Contoh 4
Contoh berikut menunjukkan set kuantitas yang memenuhi syarat dari item menu add-on sehingga pengguna dapat memesan maksimal 2 porsi dari item tersebut.:
{ "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Ranch", "offers": { "@type": "Offer", "@id": "https://www.example.com/1089/addon/a/offer", "price": "2.99", "priceCurrency": "USD" "eligibleQuantity": { "@type": "QuantitativeValue", "maxValue": 2 } } }
Contoh 5
Contoh berikut menunjukkan penawaran pengiriman di lokasi tertentu:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD", "applicableFulfillmentMethods": ["DELIVERY"], "offeredBy": [ { "@type": "Restaurant", "@id": "https://www.provider.com/location/1", } ] }
OpeningHoursSpecification
Menentukan kapan layanan pemesanan tersedia. Biasanya, nilai opens
kurang dari nilai closes
. Panduan berikut berlaku untuk penggunaan properti
opens
dan closes
:
- Properti
opens
dancloses
bersifat opsional, tetapi sangat direkomendasikan untuk menunjukkan saat pengurutan tersedia. Praktik terbaik untuk menentukan jam yang tersedia adalah dengan menyertakan arraydeliveryHours
yang berisiServiceDeliveryHoursSpecification
dengan propertiopens
dancloses
. Anda kemudian dapat menyertakan objekAdvanceServiceDeliveryHoursSpecification
dideliveryHours
dengan propertiopens
dancloses
-nya sendiri, jika ingin menawarkan jendela yang lebih terbatas untuk pemesanan di awal. - Jika
opens
dancloses
tidak ditentukan secara eksplisit, kami menganggap layanan pemesanan tersedia setiap hari dan sepanjang hari. - Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan
zona waktu dalam nilai
opens
ataucloses
. Jika zona waktu ditentukan, Google mengabaikan informasi ini. - Jika
opens
dancloses
sama, kita menganggap bahwa restoran buka selama 0 menit. - Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutup adalah 02.00, restoran akan dianggap tutup pada 2 Januari pukul 02.00. - Waktu untuk
closes
bersifat eksklusif. Oleh karena itu, jika waktu buka dan tutup untuk periode pemesanan ini masing-masing ditetapkan pada pukul 10.00 dan 16.00, urutan terakhir adalah pukul 15.59.59.
Tabel berikut menjelaskan properti jenis OpeningHoursSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "OpeningHoursSpecification". |
@id |
URL | Opsional | ID untuk OpeningHoursSpecification . |
dayOfWeek |
Array DayOfWeek |
Opsional |
Hari yang berlaku untuk jam buka ini. Nilai yang dapat diterima adalah "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", dan "Minggu". Contoh: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Jika Anda tidak menentukan hari apa pun, |
opens |
Time |
Opsional |
Jika digunakan dalam spesifikasi Jika digunakan dalam spesifikasi Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
closes |
Time |
Opsional |
Jika digunakan dalam spesifikasi Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validFrom |
DateTime |
Opsional |
Saat digunakan dalam spesifikasi Misalnya, jika jam yang diberikan berlaku untuk seluruh tahun 2017, Anda menetapkan
Saat digunakan dalam spesifikasi Jika properti ini tidak ditentukan dalam feed Anda, Google menganggap bahwa Restoran atau Layanan tersedia setiap hari. Selain tanggal, bagian waktu dan zona waktu dari nilai wajib diisi. Untuk zona waktu, gunakan zona waktu Restoran atau Layanan. Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validThrough |
DateTime |
Opsional |
Jika digunakan di Misalnya, jika jam yang diberikan berlaku untuk seluruh tahun 2017, Anda menetapkan
Saat digunakan dalam spesifikasi Jika properti ini tidak ditentukan dalam feed Anda, Google menganggap bahwa Restoran atau Layanan tersedia setiap hari. Selain tanggal, bagian waktu dan zona waktu dari DateTime juga diperlukan. Untuk zona waktu, gunakan zona waktu Restoran atau Layanan. Waktu untuk Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
deliveryHours |
Array ServiceDeliveryHoursSpecification atau array AdvanceServiceDeliveryHoursSpecification |
Kondisional |
Spesifikasi waktu pengiriman atau pengeksporan. Parameter ini wajib ada kecuali jika restoran tutup (artinya
|
Contoh berikut menunjukkan elemen OpeningHoursSpecification
:
Contoh 1
// Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] },
Contoh 2
// Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }
Contoh 3
"hoursAvailable": { "@type": "OpeningHoursSpecification", "validFrom": "2016-02-01T00:00:00-07:00", "validThrough": "2016-03-01T00:00:00-07:00", "opens": "T08:00:00", // Ordering begins at 8:00AM and ends at 6:00PM. // ASAP and and advance orders are restricted to this // time frame since the user won't be able to place // orders outside of this window. "closes": "T18:00:00", "deliveryHours": { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" } } },
Contoh 4
// List hours available for 2017 and 2018 "hoursAvailable": [ { "@type": "OpeningHoursSpecification", // Array containing advance order hours for each day "deliveryHours": [ { // Open 10:00AM to 9:29:59PM on Mondays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Tuesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Tuesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Wednesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Wednesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Thursdays "@type": "AdvanceServiceDeliveryHoursSpecification", "dayOfWeek": [ "Thursday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Fridays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Friday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Saturdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 11:00AM to 6:59:59PM on Sundays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Sunday" ], "opens": "T11:00:00", "closes": "T19:00:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ],
PackagingDetails
Tambahkan konteks gs1 untuk menggunakan jenis ini: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Dan tambahkan FoodBeverageTobaccoProduct
ke jenis MenuItem
atau MenuItemOption
.
Tabel berikut menjelaskan properti jenis PackagingDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "PackagingDetails". |
packagingRecyclingProcessType |
Teks | Opsional | Jenis proses daur ulang kemasan per
gs1:PackagingRecyclingProcessTypeCode. Misalnya
http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE
atau http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Opsional | Detail setoran paket yang dapat dikembalikan per gs1:ReturnablePackageDepositDetails. Misalnya, botol dan kaleng memiliki deposit paket yang dapat dikembalikan. |
Contoh berikut menunjukkan penggunaan jenis PackagingDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
PaymentChargeSpecification
Tabel berikut menjelaskan properti jenis PaymentChargeSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Kolom ini selalu berupa "PaymentChargeSpecification". |
@id |
URL | Opsional | ID untuk PaymentChargeSpecification . |
price |
Angka | Wajib | Jumlah total tagihan. Misalnya, "6.00", tanpa simbol mata uang. |
priceCurrency |
Teks | Wajib | Kode mata uang ISO 4217 3 huruf untuk harga. Misalnya, "USD". |
eligibleTransactionVolume |
PriceSpecification |
Opsional | Volume transaksi, dalam unit moneter, yang mana spesifikasi tagihan pembayaran ini valid, seperti untuk menunjukkan volume pembelian minimal. |
eligibleQuantity |
QuantitativeValue |
Opsional | Jumlah pemesanan yang valid dari biaya pembayaran. Misalnya, Anda dapat menggunakan properti ini untuk mewajibkan jumlah item minimum dalam suatu pesanan. |
validFrom |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat tagihan pembayaran yang ditentukan menjadi valid. Misalnya, "2017-05-01T07:00:00-07:00". Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validThrough |
DateTime |
Opsional | Tanggal dan waktu (termasuk zona waktu) saat tagihan
pembayaran yang ditentukan tidak valid. Misalnya, "2017-05-01T07:30:00-07:00".
Waktu untuk validThrough bersifat eksklusif: misalnya, jika
waktu ditetapkan ke pukul 18.00, waktu akan valid hingga pukul 17.59.59.
Untuk mengetahui informasi selengkapnya, lihat
Format Tanggal dan Waktu. |
Contoh berikut menunjukkan elemen PaymentChargeSpecification:
Contoh
"priceSpecification": [{ "@type": "PaymentChargeSpecification", "@id": "http://www.provider.com/paymentCharge/bar", "priceCurrency": "USD", "price": "6.00", // Charges $6 for processing fee "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 2 // Minimum of two items required } }]
Selain "@type": ["PaymentChargeSpecification"]
, objek dapat
diperluas dengan UnitPriceSpecification
("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
).
Ekstensi ini memberikan dua properti tambahan yang diperlukan untuk biaya layanan
yang dihitung dalam persentase.
properti | Jenis | Kebutuhan | Deskripsi |
referenceQuantity |
QuantitativeValue |
Wajib | Kuantitas referensi yang menerapkan harga tertentu. Misalnya,
referenceQuantity dari nilai 10 dengan unitCode
"P1" menghasilkan 10% dari nilai pesanan. Saat ini hanya unitCode "P1" yang didukung. |
basePrice |
Angka | Opsional | Biaya dasar selain referenceQuantity . Misalnya, referenceQuantity dari 10 dengan unitCode "P1" dan basePrice dari 5 dalam USD menghasilkan $5 + 10% dari
nilai pesanan. Nilai defaultnya adalah 0. |
Contoh biaya Pengeksporan
Google mengizinkan Anda menentukan berbagai biaya kepada pengguna di awal menggunakan Offer.PriceSpecification
entitas Layanan.
Perlu diketahui bahwa saat ini kami hanya mendukung satu PaymentChargeSpecification
. Gabungkan
semua jenis biaya ke dalam satu PaymentChargeSpecification
Jika tidak ada biaya, Offer.PriceSpecification
akan dihapus.
- Contoh 1: Tarif layanan 5% dari subtotal keranjang
- Contoh 2: Tarif layanan adalah $5
- Contoh 3: Biaya bagasi adalah $0,1 dan biaya layanan adalah 5% dari subtotal keranjang
- Contoh 4: Biaya bagasi adalah $0,1 dan biaya layanan adalah $1
- Contoh 5: Biaya layanan adalah 5% dan tip yang diperlukan adalah 10% dari subtotal keranjang
Contoh 1
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Contoh 2
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Contoh 3
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
Contoh 4
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
Contoh 5
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Tempat
Tabel berikut menjelaskan properti jenis Place
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Lokasinya selalu "Place". |
address |
PostalAddress |
Wajib | Alamat tempat. |
Contoh berikut menunjukkan elemen Tempat:
Contoh
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
Tabel berikut menjelaskan properti jenis PostalAddress
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Alamatnya selalu berupa "PostalAddress". |
addressLocality |
Teks | Wajib diisi* | Lokalitas atau kota. Misalnya, "Jakarta". |
addressRegion |
Teks | Wajib diisi* | Wilayah atau negara bagian. Misalnya, "CA". |
postalCode |
Teks | Wajib diisi* | Kode pos. Misalnya, "94102". |
streetAddress |
Teks | Opsional | Alamat. Misalnya, "1600 Amphitheatre Pkwy". |
addressCountry |
Teks | Wajib | Kode negara dua huruf ISO 3166-1 alpha-2 . Misalnya, "US". |
Penyedia pengiriman dapat mencantumkan properti ini untuk menentukan Service.areaServed
tempat layanan disediakan.
Saat digunakan di Restaurant.address
, semua properti yang tercantum dalam
PostalAddress
diperlukan.
Contoh berikut menunjukkan elemen PostalAddress
:
Contoh
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
Tabel berikut menjelaskan properti jenis PriceSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilainya selalu "PriceSpecification". |
@id |
URL | Opsional | ID untuk PriceSpecification . |
minPrice |
Angka | Opsional | Harga terendah jika harga berupa rentang. |
maxPrice |
Angka | Opsional | Harga tertinggi jika harga berupa rentang. |
priceCurrency |
Teks | Wajib | Kode mata uang ISO 4217 3 huruf untuk harga. Misalnya, "USD". |
eligibleQuantity |
QuantitativeValue |
Opsional | Jumlah pemesanan yang valid untuk spesifikasi harga. Misalnya, harganya mungkin $2 per pon atau 2 barang untuk satu dolar. |
Contoh berikut menunjukkan elemen PriceSpecification
:
Contoh 1
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Pasangan nilai properti yang digunakan untuk mendeskripsikan opsi di MenuItemOption
.
Tabel berikut mencantumkan properti untuk jenis PropertyValue
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Properti ini selalu "PropertyValue". |
name |
Teks | Wajib |
Nama atau jenis opsi. Berikut adalah nama yang valid saat digunakan di
Nama yang valid saat digunakan di
|
value |
Teks | Wajib |
Nilai untuk opsi. Nilainya bisa berupa string apa pun dan ditampilkan apa adanya. Berikut ini adalah nilai yang valid:
|
QuantitativeValue
Tabel berikut menjelaskan properti jenis QuantitativeValue
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilainya selalu "QuantitativeValue". |
value |
Angka | Opsional | Nilai kuantitatif atau simpul nilai properti. |
unitCode |
Teks atau URL | Opsional |
Satuan pengukuran sebagai Kode Umum UN/CEFACT atau URL. Kode selain Kode Umum UN/CEFACT dapat digunakan dengan awalan yang diikuti dengan titik dua. |
maxValue |
Angka | Opsional | Nilai atas dari beberapa karakteristik atau properti. |
minValue |
Angka | Opsional | Nilai yang lebih rendah dari beberapa karakteristik atau properti. |
Contoh berikut menunjukkan penggunaan jenis QuantitativeValue
:
Contoh 1
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
Contoh 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Contoh 3
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Restoran
Tabel berikut mencantumkan properti untuk jenis Restaurant
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Opsi ini selalu "Restoran". |
@id |
URL | Wajib | ID unik restoran atau penyedia layanan pesan antar. Misalnya, "http://www.provider.com/326", dengan "326" adalah ID unik restoran. |
name |
Teks | Wajib | Teks yang dapat mengidentifikasi Restaurant selama proses pengurutan. |
url |
URL | Wajib | URL di domain Anda yang mewakili restoran. Misalnya, "http://www.provider.com/somerestaurant". |
sameAs |
URL | Opsional | Situs resmi restoran. Misalnya, "http://www.somerestaurant.com". |
email |
Teks | Opsional | Email kontak restoran. |
description |
Teks | Opsional | Deskripsi restoran. |
telephone |
Teks | Wajib |
Nomor telepon dalam format berikut: "[+][country_code][phone_#_with_area_code]" Misalnya, "+16501234567". |
priceRange |
Teks | Opsional | Rentang harga. Misalnya, "$$" ($-Inexpensive, $$-Moderate, $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
Example 1
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": "+16501234567", // Kode negara (+1) wajib diisi "servesCuisine": [ "Indian-Meksiko Fusion" ] },Contoh 2
{ "@type": "Restaurant", "@id": "http://www.example.com/threebrotherstacos", "name": "Three Brothers Tacos", "address": { "@type": "PostalAddress", "addressLocality": "Mountain View", "addressRegion": "CA", "postalCode": "94041", "streetAddress": "123 Foo St", "addressCountry": "US" }, "additionalProperty": [ {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"} ] }Untuk contoh entitas
Restaurant
lainnya, lihat Contoh Feed Menu dan Restoran.
ReturnablePackageDepositDetails
Untuk menggunakan jenis ini, tambahkan konteks gs1: "@context":
["http://gs1.org/voc/", "http://schema.org"]
Kemudian, tambahkan
FoodBeverageTobaccoProduct
ke jenisMenuItem
atauMenuItemOption
yang sesuai.Tabel berikut menjelaskan properti jenis
ReturnablePackageDepositDetails
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Namanya selalu "ReturnablePackageDepositDetails". |
returnablePackageDepositAmount |
gs1:PriceSpecification |
Opsional | Jumlah setoran untuk item ini per gs1:PriceSpecification. Misalnya, setoran $0,25 per kaleng. |
Contoh berikut menunjukkan penggunaan jenis
ReturnablePackageDepositDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
Layanan
Menjelaskan pengiriman Action Pemesanan End-to-End dari restoran ke lokasi geografis oleh organisasi pengiriman.
Tabel berikut menjelaskan properti jenis Service
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib |
Jenis feed.
|
@id |
URL | Wajib | ID untuk layanan fulfillment. Misalnya, "http://www.provider.com/service/1". |
description |
Teks | Opsional | Deskripsi item. |
serviceType |
Teks | Wajib | Jenis layanan yang ditawarkan. Nilai yang mungkin adalah "Delivery" atau "TakeOUT". |
provider |
Restaurant |
Wajib | Referensi ke ID unik untuk restoran. Misalnya, "http://www.provider.com/somerestaurant". |
areaServed |
Array GeoShape ,
Place , atau
GeoCircle |
Kondisional | Area geografis tempat layanan disediakan. Kolom ini bersifat opsional secara default, tetapi wajib ada jika serviceType adalah "PENGIRIMAN". |
hoursAvailable |
Array OpeningHoursSpecification |
Wajib | Jam saat layanan ini tersedia. |
specialOpeningHoursSpecification |
Array OpeningHoursSpecification ,
ServiceDeliveryHoursSpecification , atau
AdvanceServiceDeliveryHoursSpecification |
Opsional |
Waktu yang mengganti Tentukan rentang tanggal khusus menggunakan properti |
offers |
Array Offer |
Kondisional |
Detail tentang penawaran pesan antar untuk restoran tertentu. Kolom
ini bersifat opsional secara default, tetapi wajib jika Properti |
hasOfferCatalog |
[Menu , OfferCatalog] |
Wajib |
Menentukan menu untuk layanan ini. Anda dapat memiliki menu yang berbeda untuk setiap layanan (seperti layanan bawa pulang, pesan antar, dan katering). Anda harus menentukan "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
Array {name, value} | Opsional |
Informasi konfigurasi layanan opsional. Item diharapkan menjadi objek dengan
Lihat referensi "additionalProperty": [{ "name": "disableOrderInstructions", "value": false }, { "name": "disableMenuItemSpecialInstructions", "value": false }, { "name": "disableTipWidget", "value": false }, { "name": "disablePromoWidget", "value": false }, { "name": "menuItemSpecialInstructionsMaxLength", "value": 256 }, { "name": "orderInstructionsMaxLength", "value": 256 }] |
potentialAction |
URL | Opsional |
Berisi URL untuk layanan pengiriman/bawa pulang yang akan digunakan saat bermigrasi dari pengalaman pemesanan makanan menyeluruh ke pengalihan. Misalnya, "potentialAction": { "url": "https://fopatestagent.com/ordering/restaurant-1/delivery" } |
Contoh berikut menunjukkan penggunaan jenis Layanan:
Contoh
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "serviceType": "DELIVERY", "provider": { "@type": "Restaurant", "@id": "http://www.provider.com/threebrotherstacos" }, "potentialAction": { "url": "https://foprovider.com/ordering/restaurant-1/delivery" }, "hoursAvailable": [ // Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }, // Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ], "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/menu/1" }, "areaServed": [{ "@type": "GeoCircle", // area1 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "42.362757", "longitude": "-71.087109" }, "geoRadius": "10000" }, { "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } }, { "@type": "GeoShape", // area3 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.418128 -122.098167 37.382755 -122.118968 37.368551 -122.047978 37.400949 -122.048106 37.418128 -122.098167" }, { "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" }, { "@type": "GeoCircle", // area5 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ], "offers": { "@type": "Offer", "priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ] } },
Untuk mengetahui contoh entitas Layanan lainnya, lihat Contoh Feed Layanan.
ServiceDeliveryHoursSpecification
Menampilkan jam pemenuhan bagi pengguna untuk menjadwalkan pesanan sesegera mungkin untuk diantar dan dibawa pulang.
Biasanya, nilai opens
lebih kecil daripada nilai closes
. Panduan
berikut berlaku untuk penggunaan properti opens
dan closes
:
- Properti
opens
dancloses
bersifat opsional untukServiceDeliveryHoursSpecification
, tetapi sebaiknya Anda menyertakannya. - Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan
zona waktu dalam nilai
opens
ataucloses
. Jika zona waktu ditentukan, Google mengabaikan informasi zona waktu. - Jika
opens
dancloses
tidak ditentukan secara eksplisit, kami berasumsi bahwa pemesanan SEGERA tersedia setiap hari setiap saat. - Jika
opens
dancloses
sama, kami menganggap bahwa pengurutan ASAP tidak tersedia. - Jika
opens
lebih besar daricloses
, jam tutup akan ditafsirkan sebagai hari berikutnya. Misalnya, jika jam buka ditetapkan ke 1 Januari pukul 17.00 dan jam tutup adalah 02.00, restoran akan dianggap tutup pada 2 Januari pukul 02.00.
Tabel berikut menjelaskan properti jenis
ServiceDeliveryHoursSpecification
:
Properti | Jenis | Kebutuhan | Deskripsi |
---|---|---|---|
@type |
Teks | Wajib | Nilainya akan selalu "ServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
Opsional |
Tanggal dan waktu (termasuk zona waktu) saat pesanan ASAP pengguna dapat dipenuhi. Misalnya, "2017-05-01T07:00:00-07:00". Jika properti ini tidak ditetapkan, properti ini dianggap valid setiap hari. Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
validThrough |
DateTime |
Opsional |
Tanggal dan waktu (termasuk zona waktu) saat pesanan ASAP pengguna tidak dapat dipenuhi. Misalnya, "2017-05-01T07:00:00-07:00". Jika properti ini tidak ditetapkan, properti ini dianggap valid setiap hari. Waktu untuk Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
opens |
Time |
Opsional |
Waktu saat layanan pengiriman dimulai untuk pesanan ASAP pengguna harus dipenuhi. Misalnya, "T10:30:00". Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
closes |
Time |
Opsional |
Waktu saat layanan pengiriman untuk pesanan ASAP pengguna tidak lagi tersedia. Misalnya, "T23:59:59". Waktu untuk Waktu harus ditentukan dalam waktu lokal untuk layanan. Jangan sertakan zona waktu dalam nilai Untuk mengetahui informasi selengkapnya, lihat Format Tanggal dan Waktu. |
dayOfWeek |
Array DayOfWeek |
Opsional |
Hari dalam seminggu saat layanan ini tersedia untuk pesanan ASAP pengguna. Berikut adalah nilai yang valid:
Jika Anda tidak menentukan hari apa pun, maka
|
deliveryLeadTime |
QuantitativeValue |
Opsional | Perkiraan waktu pengiriman, dalam menit, setelah pesanan dilakukan. Sebaiknya Anda menetapkan properti ini. Tetapkan kolom
value dari QuantitativeValue ke jumlah
menit dan unitCode ke "MIN". |
Contoh berikut menunjukkan elemen ServiceDeliveryHoursSpecification
:
Contoh 1
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", // If no exact deliveryLeadTime, put a maximum time "unitCode": "MIN" } },
Contoh 2
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }
Enum
RestrictedDiet
Jenis RestrictedDiet
memiliki kemungkinan nilai berikut:
- http://schema.org/DiabeticDiet
- http://schema.org/GlutenFreeDiet
- http://schema.org/HalalDiet
- http://schema.org/HinduDiet
- http://schema.org/KosherDiet
- http://schema.org/LowCalorieDiet
- http://schema.org/LowFatDiet
- http://schema.org/LowLactoseDiet
- http://schema.org/LowSaltDiet
- http://schema.org/VeganDiet
- http://schema.org/VegetarianDiet
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-02-16 UTC.