Pliki danych katalogu produktów spożywczych są oparte na elementach schema.org DataFeed
. Plik danych katalogu żywności zawiera informacje o lokalizacji restauracji, takie jak adres, menu i lokalizacja, a także informacje o usługach restauracji, takie jak opłaty za dostawę, obszary dostawy i inne elementy wymienione poniżej.
Element DataFeed
zawiera zbiór elementów, z których każdy reprezentuje pojedynczy element wyrażony w języku schema.org. Aby opublikować wszystkie uporządkowane dane w formacie JSON-LD, możesz użyć typu DataFeed
.
Informacje o korzystaniu z tej specyfikacji na potrzeby tworzenia plików danych znajdziesz w artykule Omówienie integracji z asortymentem.
Formaty daty i godziny
DateTime
opiera się na typie schema.org i, o ile nie określono inaczej, musi być zgodny z formatem ISO 8601 oraz zawierać datę, godzinę i strefę czasową. Użyj tej składni dla atrybutu DateTime
:
// DateTime format:YYYY-MM-DD THH:MM:SS [∓HH:MM |Z]
Na przykład:
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
to czas lokalny w danej restauracji lub strefie czasowej lokalizacji usługi. Jest on również oparty na typie schema.org i musi być zgodny z formatem ISO 8601. Czas ma taką składnię:
// Time format: THH:MM:SS
Na przykład:
T08:08:00 // 8:08 AM
Pamiętaj o tych kwestiach, gdy podajesz wartość DateTime
lub Time
:
- Prefiks „T” przed czasem jest częścią formatu i jest wymagany.
- Musisz określić strefę czasową dla
DATETIME
. Nie jest to wymagane w przypadkuTIME
. - Czas musi być podany w lokalnej strefie czasowej restauracji lub usługi.
Koperta
Kod początkowy w pliku danych katalogu produktów spożywczych powinien zawierać sekcję „envelope”.
„Otoczka” to struktura najwyższego poziomu każdego pliku danych i musi być elementem DataFeed
z tymi właściwościami:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@context |
URL | Wymagane | Używany kontekst, zwykle „http://schema.googleapis.com”. |
@type |
Tekst | Wymagane | Zawsze jest to „DataFeed”. |
dateModified |
DateTime |
Wymagane |
Ostatnia modyfikacja Data i godzina w formacie ISO_OFFSET_DATE_TIME, w której zostały zmodyfikowane elementy w tym pliku danych. W przypadku braku tego pola przyjmuje się, że czas aktualizacji to czas, w którym wiadomość push została odebrana (lub indeksowana) na serwerach Google. Zdecydowanie zalecamy wdrożenie tej funkcji, jeśli korzystasz zarówno z push, jak i przeszukiwania. Sygnatura czasowa powinna być określona ze strefą czasową i dokładnością do milisekund, na przykład „2016-12-28T06:30:00:123-07:00”. W plikach danych zbiorczych wersja elementu jest określana na podstawie pola |
dataFeedElement |
Tablica Menu lub Restaurant lub Service |
Wymagane | Co najmniej 1 element w tym pliku danych. Więcej informacji znajdziesz poniżej. |
Przykład kopert:
{ "@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
Aby użyć tego typu, dodaj kontekst gs1:"@context": ["http://gs1.org/voc/", "http://schema.org"]
Następnie dodaj FoodBeverageTobaccoProduct
do typu odpowiedniego elementu MenuItem
lub MenuItemOption
.
W tej tabeli opisujemy właściwości typu AdditiveDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „AdditiveDetails”. |
additiveName |
Tekst | Opcjonalnie | Nazwa dodatku. |
additiveLevelOfContainment |
Tekst | Opcjonalnie | Kod kontenera na podstawie gs1:LevelOfContainmentCode.
na przykład http://gs1.org/voc/LevelOfContainmentCode-CONTAINS , http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM lub http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN . |
Ten przykład pokazuje użycie typu 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
Produkt spożywczy lub napój wymieniony w dodatkowym menu MenuItem
.
W tabeli poniżej podano właściwości typu AddOnMenuItem
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „AddOnMenuItem”. |
@id |
URL | Wymagane | Unikalny identyfikator elementu menu dodatku. |
name |
Tekst | Wymagane | Tekst identyfikujący pozycję menu AddOnMenuItem podczas przeglądania menu przez użytkownika. |
description |
Tekst | Opcjonalnie | Opis pozycji menu dodatku. |
image |
URL | Opcjonalnie |
Obraz elementu menu dodatku, który jest zgodny z tymi wytycznymi:
|
offers |
Tablica Offer |
Wymagana* |
co najmniej 1 oferta dotycząca tego menu dodatkowych opcji; Określa, kiedy i za jaką cenę jest dostępne to menu dodatków.
W danym momencie powinna być ważna tylko jedna oferta. Możesz mieć wiele ważnych ofert, jeśli cena lub dostępność mogą się zmieniać w zależności od pory dnia. Jeśli dodatek lub produkt różni się atrybutem podstawowym lub wersją samego dodatku (np. frytki małe, średnie i duże jako dodatek), użyj właściwości Wartość domyślna parametru W klasie AddOnMenuItem są używane te właściwości
|
hasMenuItemOptions |
Tablica MenuItemOption |
Wymagana* |
Tablica podstawowych atrybutów opisujących wersję dodatku (np. małe, średnie i duże frytki jako dodatek) dla tego dodatku do menu. Użyj opcji, aby określić różne wersje dostępne dla tego elementu menu dodatku. Może się tak zdarzyć w 2 sytuacjach:
|
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Danie jest zgodne z opisanymi ograniczeniami żywieniowymi (np. „Dieta bezglutenowa” lub „Dieta wegańska”). Poniżej znajduje się wyliczona lista możliwych wartości. |
nutrition |
NutritionInformation |
Opcjonalnie | informacje o wartościach odżywczych potrawy, zwłaszcza o jej kaloryczności; |
menuAddOn |
Tablica AddOnMenuSection |
Opcjonalnie | AddOnMenuItem może zawierać sekcję menu składającą się z dozwolonych elementów, które można dodać jako dodatek. |
Poniższy przykład pokazuje AddOnMenuItem
:
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small-pepperoni-pizza", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large-pepperoni-pizza", "price": "20.00", "priceCurrency": "USD" } } ], "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Choice of toppings", "@id": "https://www.example.com/1089/addon/1", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Shrimp", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-small", "price": "1.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-large", "price": "2.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-small", "price": "1.50", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-large", "price": "2.50", "priceCurrency": "USD" } } ] } ] } ] }
AddOnMenuSection
Podgrupa produktów spożywczych lub napojów jako dodatkowa sekcja menu dla pozycji menu.
W tabeli poniżej podano właściwości typu AddOnMenuSection
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „AddOnMenuSection”. |
@id |
URL | Wymagane | Unikalny identyfikator sekcji menu. |
name |
Tekst | Wymagane | Tekst, który może identyfikować sekcję AddOnMenuSection podczas przeglądania menu przez użytkownika. |
description |
Tekst | Opcjonalnie | Opis sekcji menu. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Wskazuje liczbę elementów dozwolonych jako dodatków w tej sekcji menu. Za pomocą tego pola możesz ograniczyć liczbę dodatków, np. minimalną i maksymalną liczbę dodatków, które można wybrać do pizzy. |
image |
URL | Opcjonalnie | Obraz sekcji menu. |
hasMenuItem |
Tablica AddOnMenuItem |
Wymagana* | Elementy menu dodatku zawarte w sekcji AddOnMenuSection. |
offers |
Tablica Offer |
Opcjonalnie |
Użyj atrybutów Poniższa lista pokazuje, które właściwości
|
hasMenuSection |
Tablica AddOnMenuSection |
Wymagana* | logiczne utworzenie podgrup menu dodatku (np. kolacja, przystawki lub dania rybne). |
defaultOption |
Tablica AddOnMenuItem |
Opcjonalnie |
Elementy menu rozszerzenia, które mają być domyślnie wybrane dla użytkowników w W Liczba |
numberOfFreeAddOns |
Liczba | Opcjonalnie | Wskazuje liczbę dodatków, które użytkownik może wybrać bezpłatnie. |
Przykłady z użyciem obiektów AddOnMenuSection
:
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Produkt „Cheese Sandwich” ma opcję „Choice of Cheese” (wybór sera)AddOnMenuSection
, w której domyślnie wybrane są „Swiss” (szwajcarski) i „Mozzarella”.
{ "@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
Określa godziny realizacji zamówień z dostawą i na wynos.
Zazwyczaj wartość opens
jest mniejsza niż wartość closes
. W przypadku właściwości opens
i closes
obowiązują te wytyczne:
- Właściwości
opens
icloses
są opcjonalne w przypadku typuAdvanceServiceDeliveryHoursSpecification
, ale zdecydowanie zalecamy ich uwzględnienie. - Czas musi być podany w czasie lokalnym usługi. Nie podawaj strefy czasowej w wartości atrybutu
opens
anicloses
. Określone strefy czasowe są ignorowane. - Jeśli właściwości
opens
icloses
nie są wyraźnie określone, zakładamy, że zamówienia z wyprzedzeniem są dostępne przez cały czas. - Jeśli wartości
opens
icloses
są takie same, przyjmujemy, że zamówienie z wyprzedzeniem jest niedostępne. - Jeśli
opens
jest większa niżcloses
, godzina zamknięcia jest interpretowana jako godzina następnego dnia. Jeśli na przykład godzina otwarcia to 1 stycznia o 17:00, a godzina zamknięcia to 2 stycznia o 2:00, restauracja jest interpretowana jako zamknięta 2 stycznia o 2:00. opens
icloses
odnoszą się do przyszłego przedziału czasowego.closes
jest wartością wykluczającą. Jeśli na przykładopens
to 10:00, acloses
to 16:00, aserviceTimeInterval
to 15 minut, pierwszy przedział czasowy rozpoczyna się o 10:00, a ostatni – o 15:45.
W tej tabeli opisujemy właściwości typu AdvanceServiceDeliveryHoursSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „AdvanceServiceDeliveryHoursSpecification”. |
validFrom |
DateTime |
Warunkowy |
Data, od której można realizować zamówienia wstępne użytkowników. Przykład: „2017-05-01T00:00:00-07:00”. Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest ona ważna codziennie.
Właściwości Jeśli ten typ jest określony jako Więcej informacji znajdziesz w artykule Formaty daty i czasu. |
validThrough |
DateTime |
Opcjonalnie |
Data zakończenia, po której zamówienia wstępne użytkowników nie będą już realizowane. Przykład: „2018-12-01T00:00:00-07:00”. Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest ona ważna codziennie.
Właściwości Jeśli ten typ jest określony jako Czas w miejscowości Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
opens |
Time |
Opcjonalnie |
Dotyczy slotów na wynos lub dostawę. Określona pora dnia, od której można realizować zamówienia wstępne użytkowników. Na przykład 6:30 rano to „T06:30:00”. Czas musi być podany w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
closes |
Time |
Opcjonalnie |
Dotyczy slotów na wynos lub dostawę. Czas, po którym zamówienia wstępne użytkowników nie mogą być realizowane. Na przykład 21:00 godz. jest podawane jako „T21:00:00”.
Czas musi być podany w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
dayOfWeek |
Tablica DayOfWeek |
Opcjonalnie |
Dni tygodnia, w których dostępne są godziny dostawy z wyprzedzeniem. Prawidłowe wartości:
Jeśli nie określisz żadnych dni tygodnia, opcja
|
serviceTimeInterval |
Duration |
Wymagane |
Przedział między dwoma kolejnymi czasami obsługi. Przykład: jeśli Wartość |
advanceBookingRequirement |
QuantitativeValue |
Wymagane |
Liczba minut od momentu złożenia zamówienia, w których można je zrealizować. Wartości Jeśli na przykład realizacja zamówienia z wyprzedzeniem zajmuje co najmniej 60 minut, a jego realizacja jest ograniczona do 2 dni, wartość |
Ten przykład pokazuje użycie typu AdvanceServiceDeliveryHoursSpecification
:
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
Aby użyć tego typu, dodaj kontekst gs1:"@context": ["http://gs1.org/voc/", "http://schema.org"]
Następnie dodaj FoodBeverageTobaccoProduct
do typu odpowiedniego MenuItem
lub MenuItemOption
.
W tej tabeli opisujemy właściwości typu AllergenDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „AllergenDetails”. |
allergenType |
Tekst | Opcjonalnie | Typ alergenu według kodu gs1:AllergenTypeCode
. Na przykład http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Tekst | Opcjonalnie | Kod kontenera na podstawie gs1:LevelOfContainmentCode.
Na przykład http://gs1.org/voc/LevelOfContainmentCode-CONTAINS , http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM lub http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .
|
Ten przykład pokazuje użycie typu 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
W tej tabeli opisujemy właściwości typu DeliveryChargeSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „DeliveryChargeSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator specyfikacji opłat za dostawę. |
price |
Liczba | Wymagane | Łączny koszt dostawy w formie wartości czysto numerycznej. Do określenia waluty zamiast jej symbolu użyj właściwości priceCurrency . Na przykład „6.00” bez symbolu waluty. |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty w formacie ISO 4217. Na przykład „PLN”. |
eligibleTransactionVolume |
PriceSpecification |
Opcjonalnie | Wielkość transakcji wyrażona w jednostce pieniężnej, w której przypadku obowiązuje ta specyfikacja opłaty za dostawę. Możesz na przykład wskazać minimalną ilość do zakupu lub wyrazić, że dostawa jest dostępna bez dodatkowych opłat powyżej określonej liczby zamówień. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Interval and unit of measurement of ordering quantities for which the delivery charge is valid. Dzięki temu możesz na przykład określić, że określona opłata za transport jest ważna tylko w przypadku określonej ilości. |
eligibleRegion |
Tablica GeoShape lub Place lub GeoCircle |
Opcjonalnie | Miejsce lub kształt geometryczny/geospój dla regionu geograficznego, dla którego obowiązuje specyfikacja oferty lub specyfikacja opłat za dostawę. Używaj tej właściwości tylko wtedy, gdy opłaty za dostawę różnią się w zależności od regionu. |
validFrom |
DateTime |
Opcjonalnie | Data i godzina (wraz ze strefą czasową) obowiązywania wskazanej opłaty za dostawę. Na przykład „2017-05-01T06:30:00-07:00”. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
validThrough |
DateTime |
Opcjonalnie | Data i godzina (wraz ze strefą czasową), po której podany koszt dostawy nie jest ważny. Na przykład „2017-05-01T06:30:00-07:00”.
Czas validThrough jest wyłączony: jeśli na przykład ustawisz go na 18:00, będzie on ważny do 17:59:59.
Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
Poniższe przykłady przedstawiają elementy DeliveryChargeSpecification
:
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
"priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ]
Oprócz "@type": ["DeliveryChargeSpecification"]
obiekt można rozszerzyć o UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Rozszerzenie zawiera 2 dodatkowe właściwości wymagane do obliczania opłat za dostawę w procentach.
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Wymagane | Ilość referencyjna, której dotyczy określona cena. Na przykład:referenceQuantity o wartości 10 z unitCode „P1” daje 10% wartości zamówienia. Obecnie obsługiwana jest tylko wersja unitCode „P1”. |
basePrice |
Liczba | Opcjonalnie | Opłata podstawowa oprócz referenceQuantity . Na przykład referenceQuantity 10 z unitCode „P1” i basePrice 5 w USD daje 5 USD + 10% wartości zamówienia. Wartością domyślną jest 0. |
Przykłady opłat za dostawę
Google umożliwia określenie różnych opłat dla użytkowników z wyprzedzeniem za pomocą Offer.PriceSpecification
podmiotu świadczącego Usługę.
Pamiętaj, że usługa Zamów od początku do końca obsługuje obecnie tylko 1 DeliveryChargeSpecification
. Połącz wszystkie typy opłat w jednym DeliveryChargeSpecification
.
Aby dowiedzieć się, jak określić opłaty za dostawę na podstawie obszaru, odległości i wartości zamówienia, zapoznaj się z przykładami plików danych o usługach.
Jeśli nie ma opłaty, element Offer.PriceSpecification
jest pomijany.
- Przykład 1. Opłata za dostawę wynosi 5% podsumowania koszyka
- Przykład 2. Opłata za dostawę wynosi 5 PLN
- Przykład 3. Opłata za dostawę wynosi 5 PLN + 10% wartości podsumowania w koszyku
- Przykład 4.Opłata za dostawę wynosi 5 PLN, a opłata za torbę – 0,1 PLN
- Przykład 5. Opłata za dostawę wynosi 5%, a opłata za wygodę 2% łącznej kwoty w koszyku
- Przykład 6. Koszt dostawy to 5 PLN i 1 PLN za każdy dodatkowy 1 km odległości
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "10.00", // 10% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "5.00" // User always pays $5 in addition to 10% } ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "basePrice": 5.00, // User always pays $5 "price": 1.00, // An additional $1.00 is added per 1km "priceCurrency": "USD", "referenceQuantity": { "@type": "QuantitativeValue", "unitCode": "MTR", // MTR == meter "value": "1000.0" // 1km } } ]
GeoCircle
W tej tabeli opisujemy właściwości typu GeoCircle
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „GeoCircle”. |
geoMidpoint |
GeoCoordinates |
Wymagane | Oznacza GeoCoordinates w środku GeoCircle . |
geoRadius |
Liczba | Wymagane | Oznacza przybliżony promień (w metrach) GeoCircle . |
Ten przykład przedstawia element GeoCircle
:
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
W tej tabeli opisujemy właściwości typu GeoCoordinates
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „GeoCoordinates”. |
latitude |
Liczba | Wymagane |
Szerokość geograficzna w stopniach. Wartości muszą mieścić się w zakresie od -90 do 90 włącznie. Jeśli podana wartość jest mniejsza niż -90, jest ustawiana na -90. Jeśli jest większa niż 90, jest ustawiana na 90. Dokładność powinna wynosić co najmniej 5 miejsc po przecinku. |
longitude |
Liczba | Wymagane |
Długość geograficzna w stopniach. Wartości spoza zakresu od -180 do 180 są zawijane, aby mieściły się w tym zakresie. Na przykład wartość -190 jest zamieniana na 170. Wartość 190 jest zamieniana na -170. Odzwierciedla to fakt, że długości geograficzne okaleczają kulę ziemską. Dokładność powinna wynosić co najmniej 5 miejsc po przecinku. |
Ten przykład przedstawia element GeoCoordinates
:
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
W tej tabeli opisujemy właściwości typu GeoShape
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „GeoShape”. |
polygon |
Tablica tekstowa | Wymagane |
wielokąt lub wielokąt złożony wyrażony jako ciąg co najmniej 3 punktów oddzielonych spacjami. Pierwszy i ostatni punkt powinny być takie same, ale nie jest to wymagane. Każdy punkt w wieloboku lub wielokącie jest definiowany przez współrzędną szerokości geograficznej, a następnie przez współrzędną długości geograficznej. Musisz też określić punkty w kierunku przeciwnym do ruchu wskazówek zegara. W większości przypadków będzie to pojedynczy wielokąt. W przypadku bardziej złożonych zastosowań zapoznaj się z dokumentacją obszaru dostawy. |
Poniższe przykłady przedstawiają elementy GeoShape
:

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

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

{ "@type": "Service", "@id": "http://www.provider.com/service/1", "areaServed": [ { "@type": "GeoShape", // Richmond District delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474" }, { "@type": "GeoShape", // Haight-Ashbury delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417" } ], ... },
Menu
W tabeli poniżej podano właściwości typu Menu
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „Menu”. |
@id |
URL | Wymagane | Unikalny identyfikator menu. |
name |
Tekst | Opcjonalnie | Tekst, który może identyfikować Menu podczas przeglądania menu przez użytkownika. |
description |
Tekst | Opcjonalnie | Opis menu. |
disclaimer |
MenuDisclaimer |
Opcjonalnie | Wyłączenie odpowiedzialności dotyczące menu. Mogą to być na przykład informacje o wartościach odżywczych i alergenach. |
hasMenuSection |
Pojedynczy obiekt lub tablica elementów MenuSection |
Opcjonalnie | logiczne uporządkowanie menu w podgrupy (np. kolacja, przystawki lub dania rybne). |
hasMenuItem |
Pojedynczy obiekt lub tablica elementów MenuItem |
Opcjonalnie | Obiekty MenuItem zawarte w Menu , zazwyczaj gdy Menu nie jest podzielony według atrybutu MenuSections . |
inLanguage |
Tekst | Opcjonalnie | Język treści menu podany jako kod języka według standardu IETF BCP 47. Przykład: „pl-PL”. |
Przykłady poniżej pokazują użycie typu Menu
:
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "hasMenuSection": { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Tacos", "description": "Tacos inspired by India cuisine.", "offers": { "@type": "Offer", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM }, "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Aloo Gobi Taco", "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.", "offers": { "@type": "Offer", "sku": "offer-aloo-gobi-taco", "price": "3.50", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, "inLanguage": "English" }
W tym przykładzie hasMenuItem
jest tablicą.
{ "@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" } } ] }
W tym przykładzie hasMenuSection
jest tablicą.
{ "@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" } } } ] }
Więcej przykładów elementów Menu
znajdziesz w artykule Przykłady pliku danych restauracji i menu.
MenuDisclaimer
W tabeli poniżej podano właściwości typu MenuDisclaimer
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „MenuDisclaimer”. |
@id |
URL | Wymagane | Unikalny identyfikator wyłączenia odpowiedzialności w menu. |
text |
Tekst | Wymagane | Tekst wyłączenia odpowiedzialności. Na przykład: „Średnia dzienna dawka energii dla dorosłego to 8700 kJ”. |
url |
URL | Opcjonalnie | Adres URL wskazujący stronę z dodatkowymi informacjami o wyłączeniu odpowiedzialności. |
Ten przykład pokazuje użycie typu MenuDisclaimer
:
{ "@type": "Menu", "@id": "menu_1", "disclaimer": { "@type": "MenuDisclaimer", "@id": "menu_1_disclaimer_1", "text": "The average adult daily energy intake is 8700 kJ", "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html" } }
MenuItem
pozycja menu reprezentująca element w menu, W tabeli poniżej znajdziesz właściwości typu MenuItem
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „MenuItem”. |
@id |
URL | Wymagane | Unikalny identyfikator elementu menu. |
name |
Tekst | Wymagane | Tekst, który może identyfikować MenuItem podczas przeglądania menu przez użytkownika. |
description |
Tekst | Opcjonalnie | Opis pozycji menu. |
image |
URL | Opcjonalnie |
Obraz pozycji z menu. Przestrzegaj tych wskazówek dotyczących obrazów:
|
menuAddOn |
Tablica AddOnMenuSection |
Opcjonalnie | Elementy w sekcji menu, które można dodać jako dodatki do pozycji menu. |
offers |
Tablica Offer |
Wymagana* |
Jedna lub wiele ofert, które umożliwiają to Poniższa lista pokazuje, które właściwości
|
hasMenuItemOptions |
Tablica MenuItemOption |
Wymagane | Lista opcji podstawowych/wariacji tego elementu menu. Opcje powinny służyć do określania różnych wersji podstawowych dostępnych dla produktu, na przykład małe, średnie i duże. |
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Danie jest zgodne z opisanymi ograniczeniami dietetycznymi (np. „http://schema.org/GlutenFreeDiet” lub „http://schema.org/VeganDiet”). Jest to wyliczona lista możliwych wartości. |
nutrition |
NutritionInformation |
Opcjonalnie | informacje o wartościach odżywczych potrawy, w szczególności o kaloryczności; |
hasAllergen |
AllergenDetails |
Opcjonalnie | Alergeny w daniach na gs1:AllergenDetails .
Aby używać tej usługi, dodaj kontekst GS1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dodaj FoodBeverageTobaccoProduct do typu MenuItem . |
additive |
Tablica AdditiveDetails |
Opcjonalnie | Dodatki w potrawie na gs1:AdditiveDetails .
Jest to wyliczona lista możliwych wartości. Aby użyć tej usługi: "@context": ["http://gs1.org/voc/", "http://schema.org"] , dodaj kontekst gs1.
Dodaj FoodBeverageTobaccoProduct do typu MenuItem . |
packaging |
PackagingDetails |
Opcjonalnie | informacje o opakowaniu i recyklingu tego MenuItema na podstawie gs1:PackagingDetails ;
Aby korzystać z tej usługi, dodaj kontekst GS1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dodaj FoodBeverageTobaccoProduct do typu MenuItem .
|
Poniższe przykłady przedstawiają elementy MenuItem
:
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
Więcej przykładów elementów MenuItem
znajdziesz w artykule Przykłady pliku danych restauracji i menu.
MenuItemOption
Opcja reprezentująca wybory, które użytkownik musi dokonać przy wyborze dania lub zestawu. Użytkownik musi wybrać opcję, w przeciwnym razie zamówienie zostanie uznane za nieprawidłowe. Na przykład w przypadku pizzy możesz wybrać rozmiar mały, średni lub duży.
Przykładowe zastosowania MenuItemOption
znajdziesz w przewodniku personalizacja za pomocą MenuItemOption
.
W tabeli poniżej podano właściwości typu MenuItemOption
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „MenuItemOption”. |
value |
PropertyValue |
Wymagane | PropertyValue zawierający parę nazwa/wartość reprezentującą opcję. |
offers |
Tablica Offer |
Wymagane |
Co najmniej 1 oferta dotycząca tego
Poniższa lista pokazuje, które właściwości
|
menuAddOn |
Array of |
Opcjonalnie | Sekcja menu z dozwolonymi elementami, które można dodać jako dodatek. Używaj tego tylko wtedy, gdy dodatki są przeznaczone do konkretnej opcji elementu menu. W przeciwnym razie dodaj dodatki za pomocą właściwości MenuItem .menuAddOn.
|
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Wyliczona lista, która wskazuje diety, w których to danie jest zgodne z opisanym ograniczeniem dietetycznym (np. „http://schema.org/GlutenFreeDiet” lub „http://schema.org/VeganDiet”). |
nutrition |
NutritionInformation |
Opcjonalnie | informacje o wartościach odżywczych potrawy, w szczególności o kaloryczności; |
hasAllergen |
AllergenDetails |
Opcjonalnie | Alergeny w daniach na gs1:AllergenDetails .
Aby używać tej usługi, dodaj kontekst GS1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dodaj FoodBeverageTobaccoProduct do typu MenuItemOption .
|
additive |
Tablica AdditiveDetails |
Opcjonalnie | Dodatki w daniach na 1 gs1:AdditiveDetails .
Jest to wyliczona lista możliwych wartości. Aby użyć tej usługi: "@context": ["http://gs1.org/voc/", "http://schema.org"] , dodaj kontekst gs1.
Dodaj FoodBeverageTobaccoProduct do typu MenuItemOption .
|
packaging |
PackagingDetails |
Opcjonalnie | Informacje o opakowaniu i recyklingu tego MenuItema na podstawie:
gs1:PackagingDetails
Aby użyć tej właściwości, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
Dodaj FoodBeverageTobaccoProduct do typu MenuItemOption .
|
Ten przykład przedstawia elementy MenuItemOption
:
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
MenuSection
Sekcja menu, która reprezentuje konkretną sekcję menu. W tabeli poniżej podano właściwości typu MenuSection
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „MenuSection”. |
@id |
URL | Wymagane | Unikalny identyfikator sekcji menu. |
name |
Tekst | Wymagane | Tekst, który może identyfikować MenuSection , gdy użytkownik przegląda menu. |
description |
Tekst | Opcjonalnie | Opis sekcji menu. |
hasMenuSection |
Tablica MenuSection |
Opcjonalnie | Logiczna podgrupa MenuSection . Na przykład sekcja menu kolacji może zawierać kilka podsekcja menu, takich jak „Dania z drobiu” lub „Wegetariańskie”. |
hasMenuItem |
Tablica MenuItem |
Opcjonalnie | pozycje menu zawarte w MenuSection , |
offers |
Tablica Offer |
Opcjonalnie |
Użyj atrybutów Na tej liście widać, które właściwości
|
image |
URL | Opcjonalnie | Obraz sekcji menu. |
Te przykłady przedstawiają elementy MenuSection
:
{ "@type": "MenuSection", "@id": "http://www.provider.com/bar/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }
"hasMenuSection": [ { "@type": "MenuSection", "@id": "https://www.example.com/1089/categorization/25114480", "name": "Main Items", "hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ] }, { "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] } ]
Więcej przykładów elementów MenuSection
znajdziesz w artykule Przykłady pliku danych restauracji i menu.
NutritionInformation
W tej tabeli opisujemy właściwości typu NutritionInformation
. W przypadku jednostek miary wielkość liter ma znaczenie. Na przykład „Cal” jest akceptowalny, ale „cal” już nie.
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „NutritionInformation”. |
description |
Tekst | Opcjonalnie | informacje o wartościach odżywczych w formacie dowolnego tekstu; Na przykład „zawiera konserwanty”. |
calories |
Tekst | Opcjonalnie |
Liczba kalorii w cal, kcal lub kJ, w następującym formacie:
Na przykład „240 kcal”. |
carbohydrateContent |
Tekst | Opcjonalnie |
ilość węglowodanów, zwykle w g, w tym formacie:
Na przykład „7 g”. |
cholesterolContent |
Tekst | Opcjonalnie |
Ilość cholesterolu, zwykle w mg, w tym formacie:
Na przykład „12 mg”. |
fatContent |
Tekst | Opcjonalnie |
ilość tłuszczu, zwykle w g, w tym formacie:
Na przykład „42 g”. |
fiberContent |
Tekst | Opcjonalnie |
Liczba g lub mg błonnika w formacie:
|
proteinContent |
Tekst | Opcjonalnie |
Liczba g lub mg białka w formacie:
|
saturatedFatContent |
Tekst | Opcjonalnie |
liczba g lub mg tłuszczu nasyconego w formacie:
|
servingSize |
Tekst | Opcjonalnie | Wielkość porcji w mL, L, g lub kg w ujęciu objętości lub masy. |
sodiumContent |
Tekst | Opcjonalnie |
liczba mg lub g sodu w formacie:
|
sugarContent |
Tekst | Opcjonalnie |
Liczba g lub mg cukru w formacie:
|
transFatContent |
Tekst | Opcjonalnie |
Liczba g lub mg tłuszczów trans w formacie:
|
unsaturatedFatContent |
Tekst | Opcjonalnie |
Ilość tłuszczów nienasyconych, zwykle w g, w tym formacie:
|
Poniższe przykłady pokazują element NutritionInformation
:
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/7", "name": "Peach Ice Tea", "description": "A 0.5l bottle of peach ice tea.", "offers": { "@type": "Offer", "sku": "offer-peach-ice-tea", "price": "2.49", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" } },
Oferta
Oferta na pozycję z menu. W tej tabeli opisujemy właściwości typu Offer
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Jest to zawsze „Oferta”. |
sku |
Tekst | Warunkowy |
Unikalny identyfikator oferty. Może to być dowolna wartość tekstowa, która jest unikalna w Ta właściwość jest używana tylko w tych typach ofert:
|
price |
Tekst | Warunkowy |
Cena oferowanego produktu. Przykładowo: „6.00” bez symbolu waluty. Ta właściwość jest wymagana tylko w przypadku tych typów ofert:
Nie jest on używany w przypadku tych typów ofert:
|
priceCurrency |
Tekst | Warunkowy |
Waluta (w 3-literowym formacie ISO 4217) ceny lub jej składnika, gdy jest ona dołączona do atrybutu PriceSpecification i jego podtypów. Ta właściwość jest wymagana tylko w przypadku tych typów ofert:
Nie jest on używany w przypadku tych typów ofert:
|
availabilityStarts |
DateTime lub Time |
Opcjonalnie | Data i godzina lub tylko godzina, od której oferta jest dostępna. Jeśli na przykład naleśniki są podawane od godziny 7:00, wartość tego pola może wyglądać tak: „2017-05-01T07:00:00-07:00”. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
availabilityEnds |
DateTime lub Time |
Opcjonalnie | Data i godzina lub tylko godzina, kiedy oferta jest niedostępna. Tym razem jest to wykluczające się. Jeśli np. sprzedaż naleśników kończy się o 10:00, ostatni naleśnik może zostać podany o 9:59:59. Wartość tego pola może wyglądać tak: „2017-05-01T10:00:00-07:00”. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
availableDay |
Tablica DayOfWeek | Opcjonalnie |
Dni tygodnia, w których ten produkt jest dostępny. Prawidłowe wartości to:
Jeśli w różnych dniach tygodnia masz różne terminy dostępności, użyj więcej niż jednego obiektu |
validFrom |
DateTime |
Opcjonalnie |
Data i godzina (wraz ze strefą czasową), w których obowiązuje podana cena. Na przykład pasta kosztuje 8 USD na obiad i 10 USD na kolację. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. Tej właściwości można używać w ramach tych typów ofert:
Ta właściwość nie jest używana w przypadku tych typów ofert:
|
validThrough |
DateTime |
Opcjonalnie | Data i godzina (wraz ze strefą czasową), po której podany cen straci ważność. Na przykład pasta kosztuje 8 USD w godzinach obiadowych i 10 USD na kolację. Czas Tej właściwości można używać w ramach tych typów ofert:
Ta właściwość nie jest używana w przypadku tych typów ofert:
|
eligibleQuantity |
QuantitativeValue | Opcjonalnie |
Dozwolone ilości zamówienia dla tego produktu. Na przykład restauracja może wymagać zamówienia co najmniej 10 pizzy na potrzeby dostawy. Ta wartość jest opcjonalna. Domyślnie nie ma maksymalnego limitu, ale restauracja może go określić. Minimalne limity mają zastosowanie tylko wtedy, gdy użytkownik wybierze element. Właściwości tej można używać w ramach tych typów ofert:
Ta właściwość nie jest używana w przypadku tych typów ofert:
|
aggregateRating |
AggregateRating | Opcjonalnie |
Ogólna ocena na podstawie zbioru opinii lub ocen produktu. Tej właściwości można używać w ramach tych typów ofert:
Ta właściwość nie jest używana w przypadku tych typów.
|
inventoryLevel |
QuantitativeValue | Opcjonalnie |
Bieżący przybliżony poziom zasobów reklamowych danego produktu lub produktów. Właściwości tej można używać w ramach tych typów ofert:
Ta właściwość nie jest używana w przypadku tych typów ofert:
|
priceSpecification |
Tablica DeliveryChargeSpecification lub tablica PaymentChargeSpecification | Opcjonalnie |
Gdy jest używany w elemencie Właściwości tej można używać w ramach tych typów ofert:
Ta właściwość nie jest używana w przypadku tych typów ofert:
|
offeredBy |
Tablica identyfikatorów Restaurant |
Opcjonalnie | Reprezentuje restauracje, w których dostępna jest usługa Jeśli nie podasz wartości, ta Tej właściwości można używać w ramach tych typów ofert:
Ta właściwość nie jest używana w przypadku tych typów ofert:
|
applicableFulfillmentMethod |
Tablica tekstowa | Opcjonalnie | Reprezentuje typ usługi, w ramach której jest realizowana Jeśli nie określisz tego parametru, Właściwości tej można używać w ramach tych typów ofert:
Ta właściwość nie jest używana w przypadku tych typów ofert:
|
@id |
URL | Wycofano | Unikalny identyfikator oferty. Od 25 kwietnia 2019 r. nie jest już obsługiwana. Zastąp ją opcją sku opisaną powyżej.
|
Poniższe przykłady przedstawiają elementy Offer
:
Ten przykład pokazuje prostą ofertę:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Przykładowa oferta pokazuje dostępność w godzinach 8:00–10:00 w weekendy:
{ "@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. }
W tym przykładzie dostępność w poniedziałki, środy i piątki jest w godzinach 9:00–10:59:59, a we wtorki i czwartki w godzinach 8:00–11:59:59.
{ "@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"] }
W poniższym przykładzie podana jest dopuszczalna ilość dodatku do menu, aby użytkownik mógł zamówić maksymalnie 2 porcje tego produktu:
{ "@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 } } }
Ten przykład pokazuje ofertę dostawy w określonej lokalizacji:
{ "@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
Określa, kiedy można składać zamówienia. Wartość parametru opens
jest zazwyczaj mniejsza od wartości parametru closes
. W przypadku właściwości opens
i closes
obowiązują te wytyczne:
- Parametry
opens
icloses
są opcjonalne, ale zdecydowanie zalecane, aby określić, kiedy można składać zamówienia. Sprawdzoną metodą definiowania dostępnych godzin jest uwzględnienie tablicydeliveryHours
zawierającej obiektServiceDeliveryHoursSpecification
z właściwościamiopens
icloses
. Jeśli chcesz zaoferować krótsze okno na składanie zamówień z wyprzedzeniem, możesz uwzględnić obiektAdvanceServiceDeliveryHoursSpecification
wdeliveryHours
z własnymi właściwościamiopens
icloses
. - Jeśli wartości
opens
icloses
nie są wyraźnie określone, przyjmujemy, że usługa zamawiania jest dostępna codziennie o każdej porze dnia. - Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości
opens
anicloses
. Jeśli podasz strefę czasową, Google zignoruje te informacje. - Jeśli wartości
opens
icloses
są takie same, zakładamy, że restauracja jest otwarta przez 0 minut. - Jeśli
opens
jest większa niżcloses
, godzina zamknięcia jest interpretowana jako godzina następnego dnia. Jeśli np. godzina otwarcia to 1 stycznia, 17:00, a godzina zamknięcia to 2 stycznia, 2:00, restauracja jest interpretowana jako restauracja, która zamyka się 2 stycznia o 2:00. - Czas w miejscowości
closes
nie należy do zakresu. Jeśli więc godziny otwarcia i zamknięcia tego okna zamówień to odpowiednio 10:00 i 16:00, ostatnie zamówienie może zostać złożone o 15:59:59.
W tej tabeli opisujemy właściwości typu OpeningHoursSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Jest to zawsze „OpeningHoursSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator OpeningHoursSpecification . |
dayOfWeek |
Tablica DayOfWeek |
Opcjonalnie |
Dzień tygodnia, w którym te godziny otwarcia są ważne. Akceptowane wartości to „Monday”, „Tuesday”, „Wednesday”, „Thursday”, „Friday”, „Saturday” i „Sunday”. Na przykład: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Jeśli nie określisz żadnych dni tygodnia, opcja
|
opens |
Time |
Opcjonalnie |
Gdy jest używana w specyfikacji Jeśli zostanie użyta w specyfikacji Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
closes |
Time |
Opcjonalnie |
W specyfikacji Czas musi być podany w czasie lokalnym usługi. Nie
uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
validFrom |
DateTime |
Opcjonalnie |
Gdy jest używana w specyfikacji Jeśli na przykład podane godziny dotyczą całego roku 2017, ustawiasz W specyfikacji Jeśli ta właściwość nie jest określona w pliku danych, Google zakłada, że restauracja lub usługa są dostępne codziennie. Oprócz daty wymagane są też wartości godziny i strefy czasowej. W przypadku strefy czasowej użyj strefy czasowej restauracji lub usługi. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
validThrough |
DateTime |
Opcjonalnie |
Jeśli jest używany w elementach Jeśli na przykład podane godziny dotyczą całego roku 2017, ustawiasz W specyfikacji Jeśli ta właściwość nie jest określona w pliku danych, Google zakłada, że restauracja lub usługa są dostępne codziennie. Oprócz daty wymagane są również godziny i strefa czasowa. W przypadku strefy czasowej użyj strefy czasowej restauracji lub usługi. Czas w miejscowości Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
deliveryHours |
Tablica ServiceDeliveryHoursSpecification lub tablica AdvanceServiceDeliveryHoursSpecification |
Warunkowy |
Specyfikacja czasu dostawy lub odbioru na wynos. Ten parametr jest wymagany, chyba że restauracja jest zamknięta (co oznacza, że
|
Poniższe przykłady przedstawiają elementy OpeningHoursSpecification
:
// Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] },
// Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }
"hoursAvailable": { "@type": "OpeningHoursSpecification", "validFrom": "2016-02-01T00:00:00-07:00", "validThrough": "2016-03-01T00:00:00-07:00", "opens": "T08:00:00", // Ordering begins at 8:00AM and ends at 6:00PM. // ASAP and and advance orders are restricted to this // time frame since the user won't be able to place // orders outside of this window. "closes": "T18:00:00", "deliveryHours": { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" } } },
// List hours available for 2017 and 2018 "hoursAvailable": [ { "@type": "OpeningHoursSpecification", // Array containing advance order hours for each day "deliveryHours": [ { // Open 10:00AM to 9:29:59PM on Mondays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Tuesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Tuesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Wednesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Wednesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Thursdays "@type": "AdvanceServiceDeliveryHoursSpecification", "dayOfWeek": [ "Thursday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Fridays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Friday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Saturdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 11:00AM to 6:59:59PM on Sundays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Sunday" ], "opens": "T11:00:00", "closes": "T19:00:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ],
PackagingDetails
Aby użyć tego typu, dodaj kontekst GS1: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
Dodaj FoodBeverageTobaccoProduct
do typu elementu MenuItem
lub MenuItemOption
.
W tej tabeli opisujemy właściwości typu PackagingDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „PackagingDetails”. |
packagingRecyclingProcessType |
Tekst | Opcjonalnie | Typ procesu recyklingu opakowania według kodu
gs1:PackagingRecyclingProcessTypeCode. Na przykład:http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE lubhttp://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Opcjonalnie | Szczegóły depozytu za zwracany produkt według gs1:ReturnablePackageDepositDetails. Na przykład butelki i puszki mają kaucje. |
Ten przykład pokazuje użycie typu 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
W tej tabeli opisujemy właściwości typu PaymentChargeSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „PaymentChargeSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator PaymentChargeSpecification . |
price |
Liczba | Wymagane | Łączna kwota obciążenia. Na przykład „6.00” bez symbolu waluty. |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty w formacie ISO 4217. Przykład: „PLN”. |
eligibleTransactionVolume |
PriceSpecification |
Opcjonalnie | Ilość transakcji w jednostce pieniężnej, dla której obowiązuje ta specyfikacja opłat za płatność, np. do wskazania minimalnej ilości zakupu. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Ilości zamówień, dla których opłata jest ważna. Możesz na przykład użyć tej właściwości, aby wymagać minimalnej liczby produktów w zamówieniu. |
validFrom |
DateTime |
Opcjonalnie | Data i godzina (wraz ze strefą czasową) ważności określonego obciążenia płatności. Przykład: „2017-05-01T07:00:00-07:00”. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
validThrough |
DateTime |
Opcjonalnie | Data i godzina (w tym strefa czasowa), kiedy wskazane obciążenie jest nieprawidłowe. Na przykład „2017-05-01T07:30:00-07:00”.
Czas validThrough jest wyłączony: jeśli na przykład ustawisz go na 18:00, będzie on ważny do 17:59:59.
Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny. |
Ten przykład przedstawia element PaymentChargeSpecification:
"priceSpecification": [{ "@type": "PaymentChargeSpecification", "@id": "http://www.provider.com/paymentCharge/bar", "priceCurrency": "USD", "price": "6.00", // Charges $6 for processing fee "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 2 // Minimum of two items required } }]
Oprócz atrybutu "@type": ["PaymentChargeSpecification"]
obiekt może być rozszerzony o UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
). Rozszerzenie zawiera 2 dodatkowe właściwości wymagane do obliczenia opłat za usługi wyrażonych w procentach.
właściwość | Typ | Konieczność | Opis |
referenceQuantity |
QuantitativeValue |
Wymagane | Ilość referencyjna, której dotyczy określona cena. Na przykład:referenceQuantity o wartości 10 z unitCode „P1” daje 10% wartości zamówienia. Obecnie obsługiwana jest tylko wersja unitCode „P1”. |
basePrice |
Liczba | Opcjonalnie | Opłata podstawowa oprócz referenceQuantity . Na przykład referenceQuantity 10 z unitCode „P1” i basePrice 5 w USD daje 5 USD + 10% wartości zamówienia. Wartością domyślną jest 0. |
Przykłady opłat za wynos
Google umożliwia określenie różnych opłat dla użytkowników z wyprzedzeniem za pomocą Offer.PriceSpecification
podmiotu świadczącego Usługę.
Pamiętaj, że obecnie obsługujemy tylko 1 wartość PaymentChargeSpecification
. Połącz wszystkie typy opłat w jednym PaymentChargeSpecification
Jeśli nie ma opłaty, element Offer.PriceSpecification
jest pomijany.
- Przykład 1. Opłata za obsługę to 5% sumy częściowej w koszyku
- Przykład 2. Opłata za obsługę to 5 PLN
- Przykład 3.Opłata za torbę wynosi 0,10 PLN, a opłata za obsługę to 5% sumy częściowej w koszyku
- Przykład 4.Opłata za torbę wynosi 0,1 PLN, a opłata za obsługę 1 PLN
- Przykład 5. Opłata za obsługę wynosi 5%, a wymagane napiwki stanowią 10% łącznej kwoty koszyka
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Miejsce
W tej tabeli opisujemy właściwości typu Place
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „Miejsce”. |
address |
PostalAddress |
Wymagane | Adres miejsca. |
Ten przykład przedstawia element Miejsce:
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
W tej tabeli opisujemy właściwości typu PostalAddress
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „PostalAddress”. |
addressLocality |
Tekst | Wymagana* | Miejscowość lub miasto. Na przykład „Warszawa”. |
addressRegion |
Tekst | Wymagana* | Region lub stan. Na przykład „CA”. |
postalCode |
Tekst | Wymagana* | Kod pocztowy. np. „94102”. |
streetAddress |
Tekst | Opcjonalnie | Ulica i numer. np. „1600 Pkwy Amfiteatr”. |
addressCountry |
Tekst | Wymagane | Dwuliterowy kod kraju w formacie ISO 3166-1 alfa-2 . Przykład: „PL”. |
Dostawcy usług mogą podać te właściwości, aby wskazać Service.areaServed
, w którym świadczona jest usługa.
Jeśli używasz Restaurant.address
, wszystkie właściwości wymienione w PostalAddress
są wymagane.
Ten przykład przedstawia element PostalAddress
:
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
W tej tabeli opisujemy właściwości typu PriceSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „PriceSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator PriceSpecification . |
minPrice |
Liczba | Opcjonalnie | Najniższa cena, jeśli cena jest zakresem. |
maxPrice |
Liczba | Opcjonalnie | Najwyższa cena, jeśli cena jest zakresem. |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty w formacie ISO 4217. Przykład: „PLN”. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Ilości zamówienia, dla których specyfikacja ceny jest ważna. Może to być na przykład 2 zł za funta lub 2 produkty za dolara. |
Ten przykład przedstawia element PriceSpecification
:
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Para wartość–właściwość używana do opisywania opcji w MenuItemOption
.
W tabeli poniżej podano właściwości typu PropertyValue
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „PropertyValue”. |
name |
Tekst | Wymagane |
Nazwa lub typ opcji. W sekcji
Prawidłowe nazwy używane w sekcji
|
value |
Tekst | Wymagane |
Wartość opcji. Wartości mogą być dowolnymi ciągami znaków i są wyświetlane w takiej postaci, w jakiej są podane. Dozwolone wartości to:
|
QuantitativeValue
W tej tabeli opisujemy właściwości typu QuantitativeValue
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „QuantitativeValue”. |
value |
Liczba | Opcjonalnie | Wartość węzła wartości ilościowej lub węzła wartości właściwości. |
unitCode |
Tekst lub URL | Opcjonalnie |
Jednostka miary w postaci kodu UN/CEFACT lub adresu URL. Kody inne niż kod UN/CEFACT Common Code mogą być używane z prefiksem, po którym następuje dwukropek. |
maxValue |
Liczba | Opcjonalnie | Górna wartość pewnej właściwości lub cechy. |
minValue |
Liczba | Opcjonalnie | Niższa wartość pewnej cechy lub właściwości. |
Przykłady poniżej pokazują użycie typu QuantitativeValue
:
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Restauracja
W tabeli poniżej podano właściwości typu Restaurant
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „Restauracje”. |
@id |
URL | Wymagane | Unikalny identyfikator restauracji lub dostawcy. Przykład: „http://www.provider.com/326”, gdzie „326” to unikalny identyfikator restauracji. |
name |
Tekst | Wymagane | Tekst, który może identyfikować Restaurant podczas procesu zamawiania. |
url |
URL | Wymagane | Adres URL w Twojej domenie, który reprezentuje restaurację. Na przykład: "http://www.provider.com/somerestaurant". |
sameAs |
URL | Opcjonalnie | oficjalna strona restauracji; Na przykład: "http://www.jakiejśrestauracji.com". |
email |
Tekst | Opcjonalnie | Adres e-mail do kontaktu z restauracją. |
description |
Tekst | Opcjonalnie | Opis restauracji. |
telephone |
Tekst | Wymagane |
Numer telefonu w formacie: "[+][ Na przykład „+16501234567”. |
priceRange |
Tekst | Opcjonalnie | zakres cen, Na przykład: „$$" ($-Inexpensive, $$-Średnia, $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$”, "telefon": "+16501234567", // Kod kraju (+1) jest wymagany "servesCuisine": [ "Indian-Mexican Fusion" ] },Przykład 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"} ] }Więcej przykładów elementów
Restaurant
znajdziesz w artykule Przykłady pliku danych restauracji i menu.
ReturnablePackageDepositDetails
Aby użyć tego typu, dodaj kontekst gs1: „@context”:
["http://gs1.org/voc/", "http://schema.org"]
Następnie dodaj
FoodBeverageTobaccoProduct
do typu odpowiedniegoMenuItem
lubMenuItemOption
.W tej tabeli opisujemy właściwości typu
ReturnablePackageDepositDetails
:
Właściwość Typ Konieczność Opis @type
Tekst Wymagane Zawsze jest to „ReturnablePackageDepositDetails”. returnablePackageDepositAmount
gs1:PriceSpecification
Opcjonalnie Kwota depozytu za ten produkt na podstawie gs1:PriceSpecification. Na przykład 0, 25 zł kaucji za każdą puszkę. Ten przykład pokazuje użycie typu
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" } } } },Usługa
Opisuje dostawę kompleksowego działania dotyczącego zamawiania z restauracji do lokalizacji geograficznej przez organizację świadczyącą usługi dostawy.
W tej tabeli opisujemy właściwości typu
Service
:
Właściwość Typ Konieczność Opis @type
Tekst Wymagane Typ pliku danych.
Service
: użyj tego typu dla wszystkich aktywnych plików danych usługi.DisabledService
: używaj tego typu tylko wtedy, gdy musisz wyłączyć element usługi z powodu nieoczekiwanego zdarzenia i nie wiesz, kiedy usługa zostanie przywrócona.@id
URL Wymagane Identyfikator usługi realizacji zamówienia. Na przykład: "http://www.provider.com/service/1". description
Tekst Opcjonalnie Opis produktu. serviceType
Tekst Wymagane Typ oferowanej usługi. Możliwe wartości to „DELIVERY” lub „TAKEOUT”. provider
Restaurant
Wymagane Odwołuje się do unikalnego identyfikatora restauracji. Na przykład: "http://www.provider.com/somerestaurant". areaServed
Tablica GeoShape
,Place
lubGeoCircle
Warunkowy Obszar geograficzny, na którym świadczona jest usługa. To pole jest domyślnie opcjonalne, ale jest wymagane, jeśli serviceType
to „DELIVERY”.hoursAvailable
Tablica OpeningHoursSpecification
Wymagane Godziny, w których usługa jest dostępna. specialOpeningHoursSpecification
Tablica OpeningHoursSpecification
,ServiceDeliveryHoursSpecification
lubAdvanceServiceDeliveryHoursSpecification
Opcjonalnie Czasy, które zastępują bardziej ogólne
OpeningHoursSpecification
lub czasy realizacji. Zwykle używasz tego pola do definiowania świąt i innych typów tymczasowych zamknięć lub zmian godzin otwarcia.Określ specjalny zakres dat za pomocą właściwości
validFrom
ivalidThrough
. Przy podawaniu tych właściwości wymagane są godzina i strefa czasowa.offers
Tablica Offer
Warunkowy Szczegóły oferty dostawy w przypadku wybranej restauracji. To pole jest domyślnie opcjonalne, ale wymagane, jeśli
serviceType
ma wartość „DELIVERY”.Właściwość
Offer.priceSpecification
jest opcjonalna w usłudze. Nie są tu używane żadne inne właściwościOffer
.hasOfferCatalog
[ Menu
, OfferCatalog]Wymagane Określa menu tej usługi. Możesz mieć inne menu dla każdej z usług (np. na wynos, z dostawą i catering).
Musisz podać wartości
Menu
iOfferCatalog
dla typu. Na przykład: "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" }additionalProperty
Tablica {name, value} Opcjonalnie Opcjonalne informacje o konfiguracji usługi. Elementy powinny być obiektem z kluczem
name
odpowiadającym opcjonalnej nazwie pola. Kluczvalue
to wartość kontekstowa dla pola.Więcej informacji o konkretnych nazwach i wartościach znajdziesz w dokumentacji dotyczącej wymiaru
ServingConfig
. "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 Opcjonalnie Zawiera adres URL usługi dostawy lub odbioru osobistego, która będzie używana podczas migracji z kompleksowego procesu zamawiania jedzenia na przekierowanie. Przykład: „potentialAction”: { „url”: „https://fopatestagent.com/ordering/restaurant-1/delivery” }
Przykład użycia typu usługi:
{ "@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" } } ] } },Więcej przykładów jednostek usługi znajdziesz w artykule Przykłady pliku danych usługi.
ServiceDeliveryHoursSpecification
Określa godziny realizacji zamówień z dostawą i na wynos.
Zazwyczaj wartość
opens
jest mniejsza niż wartośćcloses
. W przypadku właściwościopens
icloses
obowiązują te wytyczne:
- Właściwości
opens
icloses
są opcjonalne w przypadku typuServiceDeliveryHoursSpecification
, ale zdecydowanie zalecamy ich dodanie.- Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości
opens
anicloses
. Jeśli podasz strefę czasową, Google zignoruje informacje o niej.- Jeśli atrybuty
opens
icloses
nie są wyraźnie określone, przyjmujemy, że składanie zamówień ASAP jest możliwe codziennie o każdej porze.- Jeśli wartości
opens
icloses
są takie same, przyjmujemy, że zamawianie ASAP jest niedostępne.- Jeśli
opens
jest większa niżcloses
, godzina zamknięcia jest interpretowana jako godzina następnego dnia. Jeśli np. godzina otwarcia to 1 stycznia, 17:00, a godzina zamknięcia to 2 stycznia, 2:00, restauracja jest interpretowana jako restauracja, która zamyka się 2 stycznia o 2:00.W tej tabeli opisujemy właściwości typu
ServiceDeliveryHoursSpecification
:
Właściwość Typ Konieczność Opis @type
Tekst Wymagane Jest to zawsze „ServiceDeliveryHoursSpecification”. validFrom
DateTime
Opcjonalnie Data i godzina (w tym strefa czasowa), kiedy można zrealizować zamówienia użytkowników ASAP. Przykład: „2017-05-01T07:00:00-07:00”. Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest ona ważna codziennie.
Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.
validThrough
DateTime
Opcjonalnie Data i godzina (wraz ze strefą czasową), po której zamówienia użytkowników realizowane „jak najszybciej” nie będą mogły być realizowane. Przykład: „2017-05-01T07:00:00-07:00”. Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest ona ważna codziennie.
Czas w miejscowości
validThrough
nie należy do zakresu. Jeśli na przykład ustawisz godzinę 18:00, będzie ona obowiązywać do 17:59:59.Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.
opens
Time
Opcjonalnie Czas, w którym usługa dostawy rozpoczyna realizację zamówień użytkowników oznaczonych jako „jak najszybciej”. Na przykład „T10:30:00”.
Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości
opens
. Jeśli strefa czasowa jest określona, Google zignoruje te informacje.Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.
closes
Time
Opcjonalnie Czas, w którym usługa dostawy zamówień użytkowników na „jak najszybciej” jest niedostępna. Na przykład „T23:59:59”.
Czas w miejscowości
closes
nie należy do zakresu. Jeśli więc dla tegoServiceDeliveryHoursSpecification
ustawisz godziny otwarcia i zamknięcia 10:00 i 16:00, ostatnie zamówienie będzie możliwe o 15:59:59.Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości
closes
. Jeśli strefa czasowa jest określona, Google zignoruje te informacje.Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.
dayOfWeek
Tablica DayOfWeek
Opcjonalnie Dni tygodnia, w które ta usługa jest dostępna dla zamówień realizowanych jak najszybciej. Prawidłowe wartości:
- „Monday”
- „Tuesday” (wtorek)
- „Środa”
- „Czwartek”
- „piątek”
- „Sobota”
- „Sunday”
Jeśli nie określisz żadnych dni tygodnia,
ServiceDeliveryHoursSpecification
będzie obowiązywać we wszystkie dni.deliveryLeadTime
QuantitativeValue
Opcjonalnie Przewidywany czas dostawy w minutach po złożeniu zamówienia. Zdecydowanie zalecamy skonfigurowanie tej właściwości. W polu value
w zasobieQuantitativeValue
ustaw liczbę minut, a w poluunitCode
ustaw wartość „MIN”.Ten przykład przedstawia element
ServiceDeliveryHoursSpecification
: { "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", // If no exact deliveryLeadTime, put a maximum time "unitCode": "MIN" } }, { "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }Wartości w polu enum
RestrictedDiet
Typ
RestrictedDiet
może mieć te wartości:
- 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