Pliki danych z katalogiem żywności są oparte na schema.org DataFeed
podmiotów. Plik danych z katalogiem żywności zawiera informacje o lokalizacji restauracji, takie jak
adres restauracji, jej menu i lokalizację, a także sposób obsługi restauracji.
szczegóły, takie jak opłaty za dostawę, obszary dostawy i inne określone elementy;
poniżej.
Element DataFeed
zawiera zbiór elementów, z których każdy reprezentuje jeden element.
wyrażonych w słowniku schema.org. Za pomocą usługi DataFeed
aby opublikować wszystkie uporządkowane dane w formacie JSON-LD.
Informacje o korzystaniu z tej specyfikacji do tworzenia plików danych znajdziesz tutaj: Omówienie integracji zasobów reklamowych
Formaty daty i godziny
DateTime
jest oparty na typie schema.org,
oraz, o ile nie wskazano inaczej, muszą być zgodne z formatem ISO 8601 i zawierać
datę, godzinę i strefę czasową. Użyj tej składni w polu DateTime
:
// DateTime format: YYYY-MM-DDTHH: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 danej restauracji lub
strefa czasowa lokalizacji usługi, jest również oparta na typie schema.org i musi również
muszą być zgodne z formatem ISO 8601. Czas ma taką składnię:
// Time format: THH:MM:SS
Na przykład:
T08:08:00 // 8:08 AM
Gdy określasz DateTime
lub Time
, pamiętaj o tych uwagach:
- Litera „T” prefiks przed godziną jest częścią formatu i jest wymagany.
- Musisz podać strefę czasową w tym regionie:
DATETIME
. Nie jest wymagana w przypadkuTIME
. - Godzina musi być podana w czasie lokalnym w restauracji lub usłudze.
Koperta
Kod początkowy każdego pliku danych z katalogiem produktów spożywczych powinien zawierać „kopertę” .
„Koperta” to struktura najwyższego poziomu każdego pliku danych i musi być
DataFeed
z tymi właściwościami:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@context |
URL | Wymagane | podany kontekst; zwykle „http://schema.googleapis.com”. |
@type |
Tekst | Wymagane | To zawsze „DataFeed”. |
dateModified |
DateTime |
Wymagane |
Ostatnia modyfikacja pliku Data i godzina w formacie ISO_OFFSET_DATE_TIME, w którym elementy w tym pliku danych zostały zmodyfikowane. W przypadku braku tego pola przyjmuje się, że czas aktualizacji to godzina odebrania wiadomości push (albo pobierania danych) na serwerach Google. Zdecydowanie zalecamy wdrożenie tego rozwiązania, jeśli używasz zarówno metody push, i czołgają się razem. Tę sygnaturę czasową należy podawać za pomocą strefy czasowej i stopień szczegółowości w milisekundach; na przykład "2016-12-28T06:30:00:123-07:00". W plikach danych wsadowych para klucz-wartość
jednostka
obsługa wersji jest określana przez |
dataFeedElement |
Tablica Menu lub
Restaurant
lub Service |
Wymagane | Co najmniej jeden element, który jest częścią tego pliku danych. Zobacz poniżej . |
Kopertę znajdziesz w tym przykładzie:
Przykład
{ "@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 odpowiedniej MenuItem
lub MenuItemOption
.
W tabeli poniżej opisujemy właściwości typu AdditiveDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest wartość „AdditiveDetails”. |
additiveName |
Tekst | Opcjonalnie | Nazwa dodatku. |
additiveLevelOfContainment |
Tekst | Opcjonalnie | Kod opuszczenia na
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 |
Poniższy 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
Jedzenie lub napoje wymienione w menu dodatku do MenuItem
Poniższa tabela zawiera właściwości typu AddOnMenuItem
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „AddOnMenuItem”. |
@id |
URL | Wymagane | Unikalny identyfikator pozycji menu dodatku. |
name |
Tekst | Wymagane | Tekst określający element AddOnMenuItem, gdy użytkownik przegląda . |
description |
Tekst | Opcjonalnie | Opis pozycji menu dodatku. |
image |
URL | Opcjonalnie |
Obraz przedstawiający pozycję menu dodatku, która jest zgodna z tymi wytycznymi:
|
offers |
Tablica Offer |
Wymagana* |
Co najmniej jedna oferta z tym dodatkiem AddOnMenuItem. Określa, kiedy i za jaką cenę dostępny jest ten element AddOnMenuItem.
Tylko jedna oferta powinna być ważna w danym momencie. Możesz mieć
jest wiele ważnych ofert, jeśli cena lub dostępność mogą się zmienić
porę dnia. Gdy dodatek lub produkt różni się atrybutem podstawowym
lub jego wariant (np. mały, średni lub duży)
frytki jako dodatek), użyj programu Wartość domyślna ( W obiekcie
|
hasMenuItemOptions |
Tablica MenuItemOption |
Wymagana* |
Tablica atrybutów podstawowych opisujących odmianę elementu dodatku (np. małe, średnie i duże frytki jako dodatek). dodatek do menu. Za pomocą opcji określ dostępne odmiany w przypadku tej pozycji menu dodatku. Istnieją 2 sytuacje, w których za:
|
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Danie jest zgodne z podanymi niżej ograniczeniami żywieniowymi (np. „Dieta bezglutenowa” lub „Dieta Wegańska”). To jest lista możliwych . |
nutrition |
NutritionInformation |
Opcjonalnie | Informacje o wartościach odżywczych potrawy, zwłaszcza kalorie. |
menuAddOn |
Tablica AddOnMenuSection |
Opcjonalnie | Sekcja menu AddOnMenuItem może zawierać tylko dozwolone elementy które można dodać jako dodatek. |
Poniższy przykład pokazuje AddOnMenuItem
:
Przykład 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
Przykład 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small-pepperoni-pizza", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large-pepperoni-pizza", "price": "20.00", "priceCurrency": "USD" } } ], "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Choice of toppings", "@id": "https://www.example.com/1089/addon/1", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Shrimp", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-small", "price": "1.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-large", "price": "2.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-small", "price": "1.50", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-large", "price": "2.50", "priceCurrency": "USD" } } ] } ] } ] }
AddOnMenuSection
Podgrupa produktów spożywczych lub napojów jako sekcja menu dodatkowego dla .
Poniższa tabela zawiera właściwości typu AddOnMenuSection
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „AddOnMenuSection”. |
@id |
URL | Wymagane | Unikalny identyfikator sekcji menu. |
name |
Tekst | Wymagane | Tekst, który może zidentyfikować dodatek AddOnMenuSection, gdy użytkownik przegląda . |
description |
Tekst | Opcjonalnie | Opis sekcji menu. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Wskazuje liczbę elementów, które mogą być dodatkiem do tego menu . Możesz użyć tego pola, aby ograniczyć liczbę dodatków, takich jak minimalną i maksymalną liczbę dodatków do pizzy. |
image |
URL | Opcjonalnie | Obraz sekcji menu. |
hasMenuItem |
Tablica AddOnMenuItem |
Wymagana* | Pozycje menu dodatków zawarte w sekcji AddOnMenuSection. |
offers |
Tablica Offer |
Opcjonalnie |
Używaj tych identyfikatorów: Na liście poniżej widać, które usługi
|
hasMenuSection |
Tablica AddOnMenuSection |
Wymagana* | logiczne podział menu dodatkowego (np. Kolacja, Przystawki lub Dania rybne). |
defaultOption |
Tablica AddOnMenuItem |
Opcjonalnie |
Pozycje menu dodatków, które będą domyślnie wstępnie wybrane dla użytkowników w
Liczba w polu |
numberOfFreeAddOns |
Liczba | Opcjonalnie | Określa liczbę dodatków, które użytkownik może wybrać bezpłatnie. |
W tych przykładach są obiekty AddOnMenuSection
:
Przykład 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
Przykład 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Przykład 3
„kanapka serowa” pozycja menu zawiera „Wybór sera”
AddOnMenuSection
z „Szwajcarią” i „Mozzarella” wstępnie wybrana
domyślnie.
{ "@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
Reprezentuje godziny realizacji zamówień, w których użytkownicy mogą planować wcześniejsze zamówienia na wynos i z dostawą.
Wartość opens
jest zwykle mniejsza od wartości closes
.
podczas korzystania z właściwości opens
i closes
obowiązują te wytyczne:
- Właściwości
opens
icloses
są opcjonalne w przypadkuAdvanceServiceDeliveryHoursSpecification
, ale zdecydowanie zalecamy ich uwzględnienie. - Godzina usługi musi być podana w czasie lokalnym. Nie dodawaj
strefa czasowa w wartości
opens
lubcloses
. Określone strefy czasowe są ignorowane. - Jeśli wartości
opens
icloses
nie są wyraźnie określone, zakładamy, że postęp możliwość składania zamówień jest dostępna przez cały dzień. - Jeśli wartości
opens
icloses
są takie same, zakładamy, że zamawianie z wyprzedzeniem jest niedostępna. - Jeśli
opens
ma wartość większą niżcloses
, przyjmuje się, że godzina zamknięcia to włączona. następnego dnia. Jeśli na przykład godzina otwarcia to 1 stycznia w 17:00, a godzina zamknięcia to 2:00, to wtedy restauracja uznaje się za zamkniętą 2 stycznia o godz. 2:00. opens
icloses
odnoszą się do przyszłego przedziału czasu.closes
ma charakter wyłączny. Dla: przykład: jeśliopens
to 10:00, acloses
to 16:00 zserviceTimeInterval
po 15 minutach, pierwszy przedział czasu zaczyna się o 10:00 i ostatnio zaczyna się o 15:45.
W poniższej tabeli opisano właściwości funkcji
AdvanceServiceDeliveryHoursSpecification
typ:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze ma wartość „AdvanceServiceDeliveryHoursSpecification”. |
validFrom |
DateTime |
Warunkowy |
Data początkowa, od której użytkownicy zamówienia z wyprzedzeniem mogą być zrealizowano. Na przykład „2017-05-01T00:00:00-07:00”. Jeśli ta właściwość nie jest skonfigurowana, przyjmuje się, że obowiązuje w odniesieniu do każdego dnia.
Właściwości Jeśli ten typ jest określony jako
Więcej informacji: Formaty daty i godziny. |
validThrough |
DateTime |
Opcjonalnie |
Data końcowa, po której użytkownicy zamówienia z wyprzedzeniem nie mogą być zrealizowano. Na przykład „2018-12-01T00:00:00-07:00”. Jeśli ta właściwość nie jest skonfigurowana, przyjmuje się, że obowiązuje w odniesieniu do każdego dnia.
Właściwości Jeśli ten typ jest określony jako
Więcej informacji: Formaty daty i godziny. |
opens |
Time |
Opcjonalnie |
Dotyczy przedziałów z dostawą lub na wynos. Konkretna pora dnia, od której użytkownicy zamówienia z wyprzedzeniem wypełnione. Na przykład godzina 6:30 jest podana jako „T06:30:00”. Godzina usługi musi być podana w czasie lokalnym. Nie dodawaj
strefa czasowa w wartości Więcej informacji: Formaty daty i godziny. |
closes |
Time |
Opcjonalnie |
Dotyczy przedziałów z dostawą lub na wynos. Konkretna pora dnia, po której użytkownicy zamówienia z wyprzedzeniem nie mogą
wypełnione. Na przykład godzina 21:00 jest podana jako „T21:00:00”.
Usługa Godzina usługi musi być podana w czasie lokalnym. Nie wolno
uwzględnić strefę czasową w wartości Więcej informacji: Formaty daty i godziny. |
dayOfWeek |
Tablica DayOfWeek |
Opcjonalnie |
Dni tygodnia, w których dostępne są godziny dostawy z wyprzedzeniem. Prawidłowa wartości to:
Jeśli nie określisz dni tygodnia,
|
serviceTimeInterval |
Duration |
Wymagane |
Odstęp czasu między 2 kolejnymi operacjami obsługi. Na przykład: jeśli
|
advanceBookingRequirement |
QuantitativeValue |
Wymagane |
Liczba minut od momentu złożenia zamówienia, w którym można złożyć zamówienie z wyprzedzeniem zrealizowano.
Jeśli na przykład zamówienie z wyprzedzeniem musi trwać co najmniej 60 minut, aby
został zrealizowany i nie może być zrealizowany dłużej niż 2 dni
później wartość |
Poniższy przykład pokazuje użycie funkcji
AdvanceServiceDeliveryHoursSpecification
– typ:
Przykład 1
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
Aby użyć tego typu, dodaj kontekst gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
Następnie dodaj FoodBeverageTobaccoProduct
do typu odpowiedniej MenuItem
lub MenuItemOption
.
W tabeli poniżej opisujemy właściwości typu AllergenDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „AllergenDetails”. |
allergenType |
Tekst | Opcjonalnie | Rodzaj alergenu na
gs1:Kod typu alergena
. na przykład http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Tekst | Opcjonalnie | Kod opuszczenia na
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
|
Poniższy 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 poniższej tabeli opisano właściwości funkcji
DeliveryChargeSpecification
typ:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „DeliveryChargeSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator specyfikacji opłaty za dostawę. |
price |
Liczba | Wymagane | Łączny koszt dostawy w formie wartości czysto numerycznej. Użyj
właściwość priceCurrency , która wskazuje rodzaj waluty;
zamiast symboli walut. Na przykład „6.00” bez waluty
. |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty w formacie ISO 4217. Przykład: „PLN”. |
eligibleTransactionVolume |
PriceSpecification |
Opcjonalnie | Wielkość transakcji w jednostce pieniężnej, w przypadku której ta dostawa specyfikacja obciążenia jest prawidłowa. Na przykład, aby wskazać minimalny zakup woluminu lub aby poinformować, że dostawa jest dostępna bez dodatkowych opłat. ponad określoną liczbę zamówień. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Przedział czasu i jednostka miary wielkości zamówienia, dla których czy opłata za dostawę jest prawidłowa. Pozwala to na przykład określić, że określona opłata frachtowa dotyczy tylko określonej ilości, |
eligibleRegion |
Tablica GeoShape lub
Place lub
GeoCircle |
Opcjonalnie | Miejsce lub element Geo shape/GeoCircle dla regionów geopolitycznych. w przypadku których ważna jest oferta lub specyfikacja opłaty za dostawę. Użyj tej tylko wtedy, gdy opłaty za dostawę różnią się w zależności od regionu. |
validFrom |
DateTime |
Opcjonalnie | Data i godzina (oraz strefa czasowa) pobrania opłaty za dostawę. staje się prawidłowy. Przykład: „2017-05-01T06:30:00-07:00”. Dla: więcej informacji znajdziesz w Formaty daty i godziny. |
validThrough |
DateTime |
Opcjonalnie | Data i godzina (łącznie ze strefą czasową), po których upływie
podana opłata jest nieprawidłowa. Przykład: „2017-05-01T06:30:00-07:00”.
Czas dla validThrough jest nieograniczony, np. jeśli
jest ustawiona na 18:00, a zostaje ustawiona do 17:59:59.
Więcej informacji:
Formaty daty i godziny. |
W tych przykładach widać elementy DeliveryChargeSpecification
:
Przykład 1
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
Przykład 2
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Przykład 3
"priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ]
Oprócz "@type": ["DeliveryChargeSpecification"]
obiekt można rozszerzyć za pomocą funkcji
UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Rozszerzenie ma 2 dodatkowe właściwości wymagane do opłat za dostawę. i wyrażone w procentach.
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Wymagane | Ilość referencyjna, do której ma zastosowanie określona cena. Przykład:
referenceQuantity z wartości 10 z unitCode wynoszącą
„P1” daje 10% wartości zamówienia. Tylko unitCode „P1” to
jest obecnie obsługiwany. |
basePrice |
Liczba | Opcjonalnie | Opłata podstawowa oprócz referenceQuantity . Dla:
przykład: referenceQuantity z 10 z wartością unitCode
z „P1” a basePrice z 5 w USD daje 5 USD + 10%
wartość zamówienia. Wartością domyślną jest 0. |
Przykłady opłat za dostawę
Google pozwala z wyprzedzeniem określić różne opłaty dla użytkowników za pomocą
Offer.PriceSpecification
podmiotu Usługi.
Pamiętaj, że w tej chwili dostępne jest tylko zamawianie typu end-to-end
DeliveryChargeSpecification
Połącz wszystkie rodzaje opłat w jednym
DeliveryChargeSpecification
Aby dowiedzieć się, jak określić sposób przesyłania, zapoznaj się z przykładowymi plikami danych usług. i opłaty zależą od obszaru, odległości i wartości zamówienia.
Jeśli nie ma opłaty, kolumna Offer.PriceSpecification
jest pomijana.
- Przykład 1. Opłata za dostawę to 5% sumy częściowej koszyka
- Przykład 2. Opłata za dostawę wynosi 5 USD
- Przykład 3: opłata za dostawę wynosi 5 zł + 10% sumy częściowej koszyka
- Przykład 4.Opłata za dostawę to 5 USD, a opłata za bagaż 0,1 USD
- Przykład 5. Opłata za dostawę wynosi 5%, a opłata za obsługę w wysokości 2% sumy częściowej koszyka
- Przykład 6: opłata za dostawę wynosi 5 USD i 1 USD za dodatkowy kilometr.
Przykład 1
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Przykład 2
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Przykład 3
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "10.00", // 10% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "5.00" // User always pays $5 in addition to 10% } ]
Przykład 4
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
Przykład 5
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
Przykład 6
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "basePrice": 5.00, // User always pays $5 "price": 1.00, // An additional $1.00 is added per 1km "priceCurrency": "USD", "referenceQuantity": { "@type": "QuantitativeValue", "unitCode": "MTR", // MTR == meter "value": "1000.0" // 1km } } ]
GeoCircle
W tabeli poniżej opisujemy właściwości typu GeoCircle
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „GeoCircle”. |
geoMidpoint |
GeoCoordinates |
Wymagane | Wskazuje GeoCoordinates w środku
GeoCircle |
geoRadius |
Liczba | Wymagane | Wskazuje przybliżony promień (w metrach) obiektu
GeoCircle |
Ten przykład pokazuje element GeoCircle
:
Przykład
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
W tabeli poniżej opisujemy właściwości typu GeoCoordinates
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „GeoCoordinates”. |
latitude |
Liczba | Wymagane |
Szerokość geograficzna w stopniach. Wartości są ograniczone do zakresu od -90 do 90, włącznie. Jeśli podana wartość jest mniejsza niż -90, jest ustawiona na -90. jeśli wartość jest większa niż 90, zostaje ustawiona 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ą w taki sposób, aby mieściły się w zakresie. Na przykład wartość -190 jest konwertowana na 170. Wartość 190 jest przeliczana na –170. Ten odzwierciedla fakt, że długość geograficzna rozciąga się wokół kuli ziemskiej. Dokładność powinna wynosić co najmniej 5 miejsc po przecinku. |
Ten przykład pokazuje element GeoCoordinates
:
Przykład
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
W tabeli poniżej opisujemy właściwości typu GeoShape
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „GeoForm”. |
polygon |
Tablica tekstu | Wymagane |
Wielokąt lub wielokąt wyrażony jako seria trzech lub więcej miejsc rozdzielanych punktów. Zalecamy, aby pierwszy i ostatni punkt to samo, ale nie jest to wymagane. Każdy punkt w wielokątnej lub wielokątnej jest definiowany przez punkt szerokości geograficznej a po nim długość geograficzna. Musisz również określić punkty w w lewo. W większości przypadków będzie to jeden wielokąt. Do bardziej złożonych zastosowań , zapoznaj się z dokumentacji obsługiwanego obszaru dostawy. |
W tych przykładach widać elementy GeoShape
:
Przykład 1
{ "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" },
Przykład 2
{ "@type": "GeoShape", // A service area with a hole. // Specify latitude first (i.e., lat long lat long ...) "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”, “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”] },
Przykład 3
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "areaServed": [ { "@type": "GeoShape", // Richmond District delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474" }, { "@type": "GeoShape", // Haight-Ashbury delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417" } ], ... },
Menu
Poniższa tabela zawiera właściwości typu Menu
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „Menu”. |
@id |
URL | Wymagane | Unikalny identyfikator menu. |
name |
Tekst | Opcjonalnie | Tekst, który może zidentyfikować Menu , gdy użytkownik przegląda
. |
description |
Tekst | Opcjonalnie | Opis menu. |
disclaimer |
MenuDisclaimer |
Opcjonalnie | Wyłączenie odpowiedzialności dotyczące menu. Na przykład informacje o wartościach odżywczych i ujawnianie alergenów. |
hasMenuSection |
Pojedynczy obiekt lub tablica MenuSection |
Opcjonalnie | Logiczne podział menu (np. obiad, przystawki lub ryby) dania). |
hasMenuItem |
Pojedynczy obiekt lub tablica MenuItem |
Opcjonalnie | MenuItem obiektów zawartych w Menu ,
zwykle, gdy Menu nie jest dzielony przez
MenuSections |
inLanguage |
Tekst | Opcjonalnie | Język treści menu, taki jak kod języka standard IETF BCP 47. Przykład: „pl-PL”. |
Poniższe przykłady pokazują użycie typu Menu
:
Przykład 1
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "hasMenuSection": { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Tacos", "description": "Tacos inspired by India cuisine.", "offers": { "@type": "Offer", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM }, "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Aloo Gobi Taco", "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.", "offers": { "@type": "Offer", "sku": "offer-aloo-gobi-taco", "price": "3.50", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, "inLanguage": "English" }
Przykład 2
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" } } ] }
Przykład 3
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 tutaj
Przykłady kanałów restauracji i menu.
MenuDisclaimer
Poniższa tabela zawiera właściwości typu MenuDisclaimer
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „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 energia dla dorosłych spożyte kalorie to 8700 kJ”. |
url |
URL | Opcjonalnie | Adres URL strony, która zawiera więcej informacji na temat wyłączenia odpowiedzialności. |
Poniższy przykład pokazuje użycie typu MenuDisclaimer
:
Przykład
{ "@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 pozycję w menu. W tabeli poniżej znajdziesz listę
właściwości typu MenuItem
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „MenuItem”. |
@id |
URL | Wymagane | Unikalny identyfikator pozycji menu. |
name |
Tekst | Wymagane | Tekst, który może zidentyfikować MenuItem podczas przeglądania
w menu. |
description |
Tekst | Opcjonalnie | Opis pozycji menu. |
image |
URL | Opcjonalnie |
Obraz pozycji menu. Przestrzegaj tych wytycznych dotyczących obrazów:
|
menuAddOn |
Tablica AddOnMenuSection |
Opcjonalnie | Pozycje w sekcji menu, które można dodać jako dodatki do . |
offers |
Tablica Offer |
Wymagana* |
Co najmniej 1 oferta, która zawiera ten element: Na liście poniżej widać, które usługi
|
hasMenuItemOptions |
Tablica MenuItemOption |
Wymagane | Lista podstawowych opcji lub wariantów tego elementu menu. Opcje powinny: służy do określania różnych wersji podstawowych dostępnych dla danego produktu, np. małych, średnich i dużych. |
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Danie jest zgodne z podanymi niżej ograniczeniami żywieniowymi (np. "http://schema.org/GlutenFreeDiet" lub „http://schema.org/VeganDiet”. Ten to wyliczona lista możliwych wartości. |
nutrition |
NutritionInformation |
Opcjonalnie | Informacje o wartościach odżywczych potrawy, zwłaszcza kalorii. |
hasAllergen |
AllergenDetails |
Opcjonalnie | Alergie podane w potrawie według: gs1:AllergenDetails .
Aby używać tej właściwości, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu
MenuItem |
additive |
Tablica AdditiveDetails |
Opcjonalnie | Dodatki do potrawy na: gs1:AdditiveDetails .
To jest wyliczana lista możliwych wartości. Dodaj kontekst gs1, którego chcesz użyć
ta usługa: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu
MenuItem |
packaging |
PackagingDetails |
Opcjonalnie | Informacje na temat opakowania i recyklingu produktu MenuItem według
gs1:PackagingDetails
Aby używać tej właściwości, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu
MenuItem
|
W tych przykładach widać elementy MenuItem
:
Przykład 1
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
Przykład 2
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
Przykład 3
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
Przykład 4
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Przykład 5
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
Więcej przykładów elementów MenuItem
znajdziesz w artykule Przykłady plików danych z restauracji i menu.
MenuItemOption
Opcja reprezentująca wybory, których użytkownik byłby zmuszony, wybierając potrawę lub kombinację. Użytkownik musi wybrać opcję. W przeciwnym razie kolejność jest uznawany za nieprawidłowy. np. wybór małego, średniego lub dużego w przypadku zgłoszenia. pizzy.
Przykładowe przypadki użycia atrybutu MenuItemOption
znajdziesz w naszym przewodniku:
dostosowanie za pomocą MenuItemOption
.
Poniższa tabela zawiera właściwości typu MenuItemOption
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „MenuItemOption”. |
value |
PropertyValue |
Wymagane | PropertyValue zawierający parę nazwa/wartość reprezentujące
. |
offers |
Tablica Offer |
Wymagane |
Co najmniej jedna oferta z tym elementem:
Na liście poniżej widać, które usługi
|
menuAddOn |
Array of |
Opcjonalnie | Sekcja menu z dozwolonymi elementami, które można dodać jako dodatek. Używaj tylko
Dzieje się tak, jeśli dodatki są przypisane do konkretnej opcji menu. W przeciwnym razie
dostarczać dodatki za pomocą właściwości MenuItem .menuAddOn.
|
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Lista wyliczana wskazująca diety, do których stosuje się to danie podane ograniczenie żywieniowe (np. "http://schema.org/GlutenFreeDiet" lub „http://schema.org/VeganDiet”). |
nutrition |
NutritionInformation |
Opcjonalnie | Informacje o wartościach odżywczych potrawy, zwłaszcza kalorii. |
hasAllergen |
AllergenDetails |
Opcjonalnie | Alergie podane w potrawie według: gs1:AllergenDetails .
Aby używać tej właściwości, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu
MenuItemOption
|
additive |
Tablica AdditiveDetails |
Opcjonalnie | Dodatki do potrawy na: gs1:AdditiveDetails .
To jest wyliczana lista możliwych wartości. Dodaj kontekst gs1, którego chcesz użyć
ta usługa: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu
MenuItemOption
|
packaging |
PackagingDetails |
Opcjonalnie | Informacje na temat opakowania i recyklingu tego elementu MenuItem według
gs1:PackagingDetails
Aby używać tej właściwości, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu
MenuItemOption
|
Ten przykład pokazuje elementy MenuItemOption
:
Przykład 1
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
Przykład 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
MenuSection
Sekcja menu reprezentująca konkretną sekcję w menu. Tabela poniżej
zawiera listę właściwości typu MenuSection
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „MenuSection”. |
@id |
URL | Wymagane | Unikalny identyfikator sekcji menu. |
name |
Tekst | Wymagane | Tekst, który może zidentyfikować MenuSection podczas przeglądania
w menu. |
description |
Tekst | Opcjonalnie | Opis sekcji menu. |
hasMenuSection |
Tablica MenuSection |
Opcjonalnie | Podgrupa logiczna MenuSection . Na przykład parametr
Sekcja menu obiadowego może zawierać wiele sekcji podrzędnych, takich jak „Drób
Dania lub „wegetariańskie”. |
hasMenuItem |
Tablica MenuItem |
Opcjonalnie | Pozycje menu w menu MenuSection . |
offers |
Tablica Offer |
Opcjonalnie |
Używaj tych identyfikatorów: Na poniższej liście możesz sprawdzić, które właściwości
|
image |
URL | Opcjonalnie | Obraz sekcji menu. |
W tych przykładach można zobaczyć elementy typu MenuSection
:
Przykład 1
{ "@type": "MenuSection", "@id": "http://www.provider.com/bar/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }
Przykład 2
"hasMenuSection": [ { "@type": "MenuSection", "@id": "https://www.example.com/1089/categorization/25114480", "name": "Main Items", "hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ] }, { "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] } ]
Więcej przykładów elementów MenuSection
znajdziesz tutaj
Przykłady kanałów restauracji i menu.
NutritionInformation
W tej tabeli opisano właściwości funkcji NutritionInformation
typu. W jednostkach miary rozróżniana jest wielkość liter. Na przykład „Kcal”. jest akceptowany,
ale „kcal” nie.
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „NutritionInformation”. |
description |
Tekst | Opcjonalnie | Informacje żywieniowe w dowolnym tekście. Na przykład „Zawiera konserwantów”. |
calories |
Tekst | Opcjonalnie |
Liczba kalorii w kcal, kcal lub kJ na podstawie tych kryteriów format: number Cal_kcal_OR_kJ Na przykład „240 kcal”. |
carbohydrateContent |
Tekst | Opcjonalnie |
Ilość węglowodanów, zwykle w g, przy zastosowaniu: format: number g_OR_mg Przykład: „7 g”. |
cholesterolContent |
Tekst | Opcjonalnie |
Ilość cholesterolu, zwykle w mg, przy użyciu w tym formacie: number g_OR_mg Na przykład „12 mg”. |
fatContent |
Tekst | Opcjonalnie |
Zawartość tłuszczu, zwykle w g, podana w takim formacie: number g_OR_mg Przykład: „42 g”. |
fiberContent |
Tekst | Opcjonalnie |
Liczba g lub mg błonnika podana w tym formacie: number g_OR_mg |
proteinContent |
Tekst | Opcjonalnie |
Liczba g lub mg białka podana w tym formacie: number g_OR_mg |
saturatedFatContent |
Tekst | Opcjonalnie |
Liczba g lub mg tłuszczów nasyconych podana w tym formacie: number g_OR_mg |
servingSize |
Tekst | Opcjonalnie | Wielkość porcji w ml, L, g lub kg masa. |
sodiumContent |
Tekst | Opcjonalnie |
Liczba mg lub g sodu podana w tym formacie: number g_OR_mg |
sugarContent |
Tekst | Opcjonalnie |
Liczba g lub mg cukru podana w tym formacie: number g_OR_mg |
transFatContent |
Tekst | Opcjonalnie |
Liczba g lub mg tłuszczów trans podana w tym formacie: number g_OR_mg |
unsaturatedFatContent |
Tekst | Opcjonalnie |
Zawartość tłuszczy nienasyconych, zwykle w g, przy zastosowaniu następujących kryteriów format: number g_OR_mg |
W tych przykładach widać element NutritionInformation
:
Przykład 1
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
Przykład 2
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/7", "name": "Peach Ice Tea", "description": "A 0.5l bottle of peach ice tea.", "offers": { "@type": "Offer", "sku": "offer-peach-ice-tea", "price": "2.49", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" } },
Oferta
Oferta dotycząca pozycji menu. W poniższej tabeli opisano właściwości funkcji
Offer
typ:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „Oferta”. |
sku |
Tekst | Warunkowy |
Unikalny identyfikator oferty. Może to być dowolna niepowtarzalna wartość tekstowa
w: Ta usługa jest używana tylko w tych typach ofert:
|
price |
Tekst | Warunkowy |
Cena oferowanego produktu. Na przykład „6.00” bez waluty . Ta właściwość jest wymagana tylko w przypadku tych typów ofert:
Nie jest on używany w tych typach ofert:
|
priceCurrency |
Tekst | Warunkowy |
Waluta (w 3-literowym formacie ISO 4217) ceny lub ceny. dołączony do atrybutu PriceSpecification i jego podtypy. Ta właściwość jest wymagana tylko w przypadku tych typów ofert:
Nie jest on używany w tych typach ofert:
|
availabilityStarts |
DateTime lub Time |
Opcjonalnie | Data i godzina lub tylko godzina, dla której oferta jest dostępna. Jeśli np. naleśniki pojawiają się od 7:00, wtedy wartość może wyglądać tak: „2017-05-01T07:00:00-07:00”. Więcej informacji: Formaty daty i godziny. |
availabilityEnds |
DateTime lub Time |
Opcjonalnie | Data i godzina lub tylko godzina, kiedy oferta jest niedostępna. Ten czas jest wyjątkowy. Jeśli na przykład dostępność naleśników kończy się 10:00, a ostatni naleśnik możesz podać o 9:59:59. Wartość pole może wyglądać tak: „2017-05-01T10:00:00-07:00”. Więcej informacji: 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 masz różne dostępności w poszczególnych dniach tygodnia,
użyj więcej niż jednego obiektu |
validFrom |
DateTime |
Opcjonalnie |
Data i godzina (łącznie ze strefą czasową), w której jest prawidłowa. Na przykład makaron kosztuje 8 zł w porze lunchu i 10 zł. przy kolacji. Więcej informacji: Formaty daty i godziny. Tej usługi można używać w następujących typach ofert:
Ta usługa nie jest używana w tych typach ofert:
|
validThrough |
DateTime |
Opcjonalnie | Data i godzina (łącznie ze strefą czasową), po których określony
cena jest już nieważna. Na przykład: makaron w porze lunchu kosztuje 8 zł.
i 10 USD na kolację. Tej usługi można używać w następujących typach ofert:
Ta usługa nie jest używana w następujących typach ofert.
|
eligibleQuantity |
QuantitativeValue | Opcjonalnie |
Liczba sztuk zamówienia, w przypadku których ten produkt jest dozwolona. Przykład: restauracja może wymagać zamówienia co najmniej 10 pizzy . Ta wartość jest opcjonalna. Domyślnie nie ma maksymalnego limitu, ale może je określić restauracja. Limity minimalne obowiązują tylko wtedy, gdy użytkownik wybierze element. Tej usługi można używać w następujących typach ofert:
Ta usługa nie jest używana w następujących typach ofert.
|
aggregateRating |
AggregateRating | Opcjonalnie |
ogólna ocena oparta na zbiorze opinii lub ocen programu elementu. Tej usługi można używać w następujących typach ofert:
Ta właściwość nie jest używana w podanych niżej typach.
|
inventoryLevel |
QuantitativeValue | Opcjonalnie |
Bieżący przybliżony poziom asortymentu produktów. Tej usługi można używać w następujących typach ofert:
Ta usługa nie jest używana w tych typach ofert:
|
priceSpecification |
Tablica DeliveryChargeSpecification lub tablica PaymentChargeSpecification | Opcjonalnie |
Gdy jest używany w polu Tej usługi można używać w następujących typach ofert:
Ta usługa nie jest używana w tych typach ofert:
|
offeredBy |
Tablica identyfikatorów Restaurant |
Opcjonalnie | Reprezentuje restauracje, do których należy Jeśli nie określisz tego parametru, będzie to Tej usługi można używać w następujących typach ofert:
Ta usługa nie jest używana w tych typach ofert:
|
applicableFulfillmentMethod |
Tablica tekstu | Opcjonalnie | Reprezentuje typ usługi Jeśli nie określono tej wartości, Tej usługi można używać w następujących typach ofert:
Ta usługa nie jest używana w tych typach ofert:
|
@id |
URL | Wycofano | Unikalny identyfikator oferty. Wycofany 25.04.19. Zastąp
sku , jak opisano powyżej.
|
W tych przykładach widać elementy Offer
:
Przykład 1
Oto przykład prostej oferty:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
Przykład 2
Przykładowa oferta poniżej pokazuje dostępność w godzinach 8–10 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. }
Przykład 3
Ten przykład pokazuje dostępność w poniedziałki w godzinach 9–10:59:59. Środy i piątki, ale od 8:00 do 11:59:59 we wtorki i czwartki:
{ "@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"] }
Przykład 4
Poniższy przykład pokazuje, że pozycja menu dodatku może tak, aby użytkownik mógł zamówić maksymalnie 2 porcje ten element.:
{ "@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 } } }
Przykład 5
Ten przykład przedstawia 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 dostępne są usługi zamawiania. Zwykle opens
ma wartość
jest mniejsza niż wartość closes
. Poniższe wytyczne dotyczą korzystania z
Usługi opens
i closes
:
- Właściwości
opens
icloses
są opcjonalne, ale zdecydowanie zalecane, wskazują, kiedy dostępna jest kolejność. Sprawdzona metoda definiowania dostępnych godziny należy uwzględnić tablicędeliveryHours
, która zawieraServiceDeliveryHoursSpecification
z właściwościamiopens
icloses
. Ty może następnie uwzględnić obiektAdvanceServiceDeliveryHoursSpecification
wdeliveryHours
z własnymi właściwościamiopens
icloses
, jeśli chcesz z większym okresem składania zamówień z wyprzedzeniem. - Jeśli atrybuty
opens
icloses
nie są wyraźnie określone, zakładamy, że kolejność jest dostępna codziennie o każdej porze dnia. - Godzina usługi musi być podana w czasie lokalnym. Nie dodawaj
strefa czasowa w wartości
opens
lubcloses
. Jeśli podasz strefę czasową, Google ignoruje tę informację. - Jeśli wartości
opens
icloses
są takie same, zakładamy, że restauracja jest otwarte na 0 minut. - Jeśli
opens
ma wartość większą niżcloses
, przyjmuje się, że godzina zamknięcia to włączona. następnego dnia. Jeśli na przykład godzina otwarcia to 1 stycznia w 17:00, a godziną zamknięcia to 2:00, wtedy restauracja jest interpretowana jako kończy się 2 stycznia o godzinie 2:00. closes
ma wyjątkowy czas. Dlatego, jeśli godziny otwarcia i zamknięcia ten okres składania zamówień jest ustawiony odpowiednio na 10:00 i 16:00, a następnie jest 15:59:59.
W tej tabeli opisano właściwości funkcji OpeningHoursSpecification
typ:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „OpeningHoursSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator urządzenia OpeningHoursSpecification . |
dayOfWeek |
Tablica DayOfWeek |
Opcjonalnie |
Dzień tygodnia, w którym podane są te godziny otwarcia. Akceptowane wartości to „Monday”, „Tuesday”, „Wednesday”, „Czwartek”, „Piątek”, „Sobota” i „Niedziela”. Na przykład: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] Jeśli nie określisz dni tygodnia,
|
opens |
Time |
Opcjonalnie |
W przypadku użycia w specyfikacji Użyta w specyfikacji Godzina usługi musi być podana w czasie lokalnym. Nie wolno
uwzględnić strefę czasową w wartości Więcej informacji: Formaty daty i godziny. |
closes |
Time |
Opcjonalnie |
W przypadku użycia w specyfikacji Godzina usługi musi być podana w czasie lokalnym. Nie wolno
uwzględnić strefę czasową w wartości Więcej informacji: Formaty daty i godziny. |
validFrom |
DateTime |
Opcjonalnie |
W przypadku użycia w specyfikacji Jeśli np. podane godziny pracy dotyczą całego roku 2017, ustaw
ustaw Gdy jest używany 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, godziny i strefy czasowej w polu są wymagane. Jako strefy czasowej użyj strefy czasowej restauracji lub usługi. Więcej informacji: Formaty daty i godziny. |
validThrough |
DateTime |
Opcjonalnie |
Jeśli jest używany w Jeśli np. podane godziny pracy dotyczą całego roku 2017, ustaw
ustaw Gdy jest używany 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, godziny i strefy czasowej w polu Data i godzina są wymagane. Jako strefy czasowej użyj strefy czasowej restauracji lub usługi.
Więcej informacji: Formaty daty i godziny. |
deliveryHours |
Tablica ServiceDeliveryHoursSpecification lub tablica
AdvanceServiceDeliveryHoursSpecification |
Warunkowy |
Specyfikacja czasu dostawy lub na wynos. Ten parametr jest wymagany, o ile restauracja nie jest zamknięta (czyli
że punkty
|
W tych przykładach widać elementy OpeningHoursSpecification
:
Przykład 1
// Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] },
Przykład 2
// Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }
Przykład 3
"hoursAvailable": { "@type": "OpeningHoursSpecification", "validFrom": "2016-02-01T00:00:00-07:00", "validThrough": "2016-03-01T00:00:00-07:00", "opens": "T08:00:00", // Ordering begins at 8:00AM and ends at 6:00PM. // ASAP and and advance orders are restricted to this // time frame since the user won't be able to place // orders outside of this window. "closes": "T18:00:00", "deliveryHours": { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" } } },
Przykład 4
// List hours available for 2017 and 2018 "hoursAvailable": [ { "@type": "OpeningHoursSpecification", // Array containing advance order hours for each day "deliveryHours": [ { // Open 10:00AM to 9:29:59PM on Mondays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Tuesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Tuesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Wednesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Wednesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Thursdays "@type": "AdvanceServiceDeliveryHoursSpecification", "dayOfWeek": [ "Thursday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Fridays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Friday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Saturdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 11:00AM to 6:59:59PM on Sundays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Sunday" ], "opens": "T11:00:00", "closes": "T19:00:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ],
PackagingDetails
Aby użyć tego typu, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
i dodaj FoodBeverageTobaccoProduct
do typu MenuItem
lub MenuItemOption
.
W tabeli poniżej opisujemy właściwości typu PackagingDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „PackagingDetails”. |
packagingRecyclingProcessType |
Tekst | Opcjonalnie | Typ procesu recyklingu opakowań według
gs1:PackagingRecyclingProcessTypeCode. Przykład:
http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE
lub http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Opcjonalnie | Szczegóły depozytu zwracanego pakietu na gs1:ReturnablePackageDepositDetails. Na przykład butelki i puszki są przeznaczone do zwrotu paczki. |
Poniższy 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 opisano właściwości funkcji PaymentChargeSpecification
typ:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „PaymentChargeSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator urządzenia PaymentChargeSpecification . |
price |
Liczba | Wymagane | Łączna kwota obciążenia. Na przykład „6.00” bez waluty . |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty ceny w standardzie ISO 4217. Przykład: „PLN”. |
eligibleTransactionVolume |
PriceSpecification |
Opcjonalnie | Wielkość transakcji w jednostce pieniężnej, której dotyczy ta płatność specyfikacja jest prawidłowa, np. do sygnalizowania minimalnego zakupu głośność. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Liczba sztuk zamówienia, w przypadku których obowiązuje opłata za płatność. Dla: możesz na przykład użyć tej właściwości, aby wymagać minimalnej liczby elementów w zamówieniu. |
validFrom |
DateTime |
Opcjonalnie | Data i godzina (oraz strefa czasowa) pobrania płatności staje się prawidłowy. Przykład: „2017-05-01T07:00:00-07:00”. Dla: więcej informacji znajdziesz w Formaty daty i godziny. |
validThrough |
DateTime |
Opcjonalnie | Data i godzina (wraz ze strefą czasową) dokonania płatności
podana opłata jest nieprawidłowa. Przykład: „2017-05-01T07:30:00-07:00”.
Czas dla validThrough jest nieograniczony: na przykład jeśli
ustawiona jest godzina 18:00, co obowiązuje do 17:59:59.
Więcej informacji:
Formaty daty i godziny. |
Poniższy przykład pokazuje element PaymentChargeSpecification:
Przykład
"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 "@type": ["PaymentChargeSpecification"]
obiektem można być
rozszerzony o UnitPriceSpecification
("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
).
Rozszerzenie dodaje 2 dodatkowe właściwości wymagane na potrzeby opłat za obsługę.
i wyrażone w procentach.
właściwość | Typ | Konieczność | Opis |
referenceQuantity |
QuantitativeValue |
Wymagane | Ilość referencyjna, do której ma zastosowanie określona cena. Przykład:
referenceQuantity z wartości 10 z unitCode wynoszącą
„P1” daje 10% wartości zamówienia. Tylko unitCode „P1” to
obecnie obsługiwane. |
basePrice |
Liczba | Opcjonalnie | Opłata podstawowa oprócz referenceQuantity . Dla:
przykład: referenceQuantity z 10 z wartością unitCode
z „P1” a basePrice z 5 w dolarach amerykańskich daje 5 USD + 10%
wartość zamówienia. Wartością domyślną jest 0. |
Przykłady opłat za jedzenie na wynos
Google pozwala z wyprzedzeniem określić różne opłaty dla użytkowników za pomocą
Offer.PriceSpecification
podmiotu Usługi.
Obecnie obsługujemy tylko jeden typ PaymentChargeSpecification
. Połącz
wszystkich typów opłat w jednym PaymentChargeSpecification
Jeśli nie ma opłaty, kolumna Offer.PriceSpecification
jest pomijana.
- Przykład 1. Opłata za obsługę wynosi 5% sumy częściowej koszyka
- Przykład 2. Opłata za obsługę wynosi 5 USD
- Przykład 3.Opłata za bagaż wynosi 0,1 USD, a opłata za obsługę wynosi 5% sumy częściowej koszyka
- Przykład 4. Opłata za bagaż wynosi 0,1 USD, a opłata za obsługę – 1 USD.
- Przykład 5: opłata za obsługę wynosi 5%, a wymagana napiwek to 10% sumy częściowej koszyka
Przykład 1
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Przykład 2
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
Przykład 3
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
Przykład 4
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
Przykład 5
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
Miejsce
W tabeli poniżej opisujemy właściwości typu Place
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Jest to zawsze „Miejsce”. |
address |
PostalAddress |
Wymagane | Adres miejsca. |
Poniższy przykład przedstawia element Place:
Przykład
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
W tabeli poniżej opisujemy właściwości typu PostalAddress
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „PostalAddress”. |
addressLocality |
Tekst | Wymagana* | Rejon lub miasto. Przykład: „Kraków”. |
addressRegion |
Tekst | Wymagana* | Region lub stan. Przykład: „PL”. |
postalCode |
Tekst | Wymagana* | Kod pocztowy. Przykład: „94102”. |
streetAddress |
Tekst | Opcjonalnie | Ulica i numer. Na przykład „1600 Amphitheatre Pkwy”. |
addressCountry |
Tekst | Wymagane | Dwuliterowy kod kraju w formacie ISO 3166-1 alfa-2 . Przykład: „PL”. |
Dostawcy mogą wyświetlić listę tych właściwości, aby wyznaczyć Service.areaServed
gdzie świadczona jest usługa.
Jeśli użyjesz tego atrybutu w polu Restaurant.address
, wszystkie właściwości wymienione w polu
PostalAddress
są wymagane.
Ten przykład pokazuje element PostalAddress
:
Przykład
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
W tej tabeli opisano właściwości funkcji PriceSpecification
typ:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „PriceSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator urządzenia PriceSpecification . |
minPrice |
Liczba | Opcjonalnie | Najniższa cena, jeśli cena mieści się w zakresie. |
maxPrice |
Liczba | Opcjonalnie | Najwyższa cena, jeśli cena mieści się w zakresie. |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty ceny w standardzie ISO 4217. Przykład: „PLN”. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Liczba sztuk zamówienia, w przypadku których obowiązuje specyfikacja ceny. Cena może na przykład wynosić 2 zł za funt lub 2 produkty za złotówkę. |
Ten przykład pokazuje element PriceSpecification
:
Przykład 1
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
Para wartości właściwości używana do opisywania opcji w MenuItemOption
.
Poniższa tabela zawiera właściwości typu PropertyValue
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „propertyValue”. |
name |
Tekst | Wymagane |
Nazwa lub typ opcji. W
Prawidłowe nazwy używane w
|
value |
Tekst | Wymagane |
Wartość opcji. Wartościami mogą być dowolny ciąg znaków i są one wyświetlane jako Następujące wartości są prawidłowe:
|
QuantitativeValue
W tabeli poniżej opisujemy właściwości typu QuantitativeValue
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „QuantitativeValue”. |
value |
Liczba | Opcjonalnie | Wartość węzła wartości ilościowej lub wartości właściwości. |
unitCode |
Tekst lub URL | Opcjonalnie |
Jednostka miary jako Wspólny kodeks UN/CEFACT lub adres URL. Kody inne niż wspólny kod UN/CEFACT mogą być używane z prefiksem po którym następuje dwukropek. |
maxValue |
Liczba | Opcjonalnie | Górna wartość jakiejś cechy lub właściwości. |
minValue |
Liczba | Opcjonalnie | Dolna wartość jakiejś właściwości lub właściwości. |
Poniższe przykłady pokazują użycie typu QuantitativeValue
:
Przykład 1
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
Przykład 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
Przykład 3
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
Restauracja
Poniższa tabela zawiera właściwości typu Restaurant
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „Restauracja”. |
@id |
URL | Wymagane | Unikalny identyfikator restauracji lub dostawcy usług dostawy. Przykład: „http://www.provider.com/326”, gdzie „326” to unikalny identyfikator do restauracji. |
name |
Tekst | Wymagane | Tekst, który może zidentyfikować Restaurant podczas składania zamówienia
proces tworzenia konta. |
url |
URL | Wymagane | URL w Twojej domenie, który reprezentuje restaurację. Przykład: "http://www.provider.com/somerestaurant". |
sameAs |
URL | Opcjonalnie | Oficjalna strona internetowa restauracji. Przykład: „http://www.restauracja.pl”. |
email |
Tekst | Opcjonalnie | Kontaktowy adres e-mail restauracji. |
description |
Tekst | Opcjonalnie | Opis restauracji. |
telephone |
Tekst | Wymagane |
Numer telefonu w takim formacie: "[+][country_code][phone_#_with_area_code]" Przykład: „+16501234567”. |
priceRange |
Tekst | Opcjonalnie | Zakres cen. Na przykład „$$" ($-Inexpensive, $$-Umiarkowane, $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
Example 1
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": "+16501234567", // Kod kraju (+1) jest wymagany "servesKuchnia": [ „fuzja indyjsko-meksykańska” ] },. 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 tutaj Przykłady kanałów 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 odpowiedniejMenuItem
lubMenuItemOption
.W poniższej tabeli opisano właściwości funkcji
ReturnablePackageDepositDetails
typ:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „ReturnablePackageDepositDetails”. |
returnablePackageDepositAmount |
gs1:PriceSpecification |
Opcjonalnie | Kwota wpłaty za ten produkt na gs1:PriceSpecification. np.0, 25 USD za puszkę. |
Poniższy przykład pokazuje użycie funkcji ReturnablePackageDepositDetails
typ:
{ "@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 realizację kompleksowej akcji realizacji zamówienia z restauracji do lokalizację geograficzną według organizacji kurierskiej.
W tabeli poniżej opisujemy właściwości typu Service
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane |
Typ pliku danych.
|
@id |
URL | Wymagane | Identyfikator usługi realizacji. Przykład: "http://www.provider.com/service/1". |
description |
Tekst | Opcjonalnie | Opis produktu. |
serviceType |
Tekst | Wymagane | Typ świadczonej usługi. Możliwe wartości to „DELIVERY” lub „Na wynos”. |
provider |
Restaurant |
Wymagane | Odwołanie do unikalnego identyfikatora restauracji. Przykład: "http://www.provider.com/somerestaurant". |
areaServed |
Tablica GeoShape ,
Place lub
GeoCircle |
Warunkowy | Obszar geograficzny, w którym świadczona jest usługa. To pole jest opcjonalne przez
domyślna, ale jest wymagana, jeśli serviceType ma wartość „DOSTAWA”. |
hoursAvailable |
Tablica OpeningHoursSpecification |
Wymagane | Godziny, w których ta usługa jest dostępna. |
specialOpeningHoursSpecification |
Tablica OpeningHoursSpecification ,
ServiceDeliveryHoursSpecification lub
AdvanceServiceDeliveryHoursSpecification |
Opcjonalnie |
Godziny, które zastępują bardziej ogólne wartości Zdefiniuj specjalny zakres dat za pomocą funkcji |
offers |
Tablica Offer |
Warunkowy |
Szczegółowe informacje o ofercie dostawy w przypadku określonej restauracji. Ten
jest domyślnie opcjonalne, ale wymagane, jeśli Właściwość |
hasOfferCatalog |
[Menu , Katalog ofert] |
Wymagane |
Określa menu tej usługi. Możesz mieć inne menu dla na poszczególne usługi (np. jedzenie na wynos, z dostawą i catering). Musisz określić zarówno "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
Tablica {name, value} | Opcjonalnie |
Opcjonalna konfiguracja usługi. Elementy muszą być
obiekt z kluczem
Zobacz "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 z dostawą lub na wynos, który będzie używany podczas przechodzenia z całkowitego procesu zamawiania jedzenia na przekierowanie. Na przykład "potentialAction": { "url": "https://fopatestagent.com/ordering/restauracja-1/delivery" |
Poniższy przykład pokazuje wykorzystanie typu Service:
Przykład
{ "@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 elementów usługi znajdziesz w artykule Przykłady plików danych o usługach.
ServiceDeliveryHoursSpecification
Reprezentuje godziny realizacji zamówień, w których użytkownicy mogą zaplanować dostawę zamówień jak najszybciej i na wynos.
Wartość opens
jest zwykle mniejsza od wartości closes
.
podczas korzystania z właściwości opens
i closes
obowiązują te wytyczne:
- Właściwości
opens
icloses
są opcjonalne w przypadkuServiceDeliveryHoursSpecification
, ale zdecydowanie zalecamy które zostaną uwzględnione. - Godzina usługi musi być podana w czasie lokalnym. Nie dodawaj
strefa czasowa w wartości
opens
lubcloses
. Jeśli podasz strefę czasową, Google ignoruje informacje o strefie czasowej. - Jeśli atrybuty
opens
icloses
nie są wyraźnie określone, zakładamy, że jak najszybciej możliwość składania zamówień jest dostępna codziennie o dowolnej porze. - Jeśli wartości
opens
icloses
są takie same, zakładamy, że kolejność jak najszybciej to niedostępna. - Jeśli
opens
ma wartość większą niżcloses
, przyjmuje się, że godzina zamknięcia to włączona. następnego dnia. Jeśli na przykład godzina otwarcia to 1 stycznia w 17:00, a godziną zamknięcia to 2:00, wtedy restauracja jest interpretowana jako kończy się 2 stycznia o godzinie 2:00.
W poniższej tabeli opisano właściwości funkcji
ServiceDeliveryHoursSpecification
typ:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Zawsze jest to „ServiceDeliveryHoursSpecification”. |
validFrom |
DateTime |
Opcjonalnie |
Data i godzina (łącznie ze strefą czasową) wejścia w życie użytkowników Zamówienia jak najszybciej można zrealizowano. Przykład: „2017-05-01T07:00:00-07:00”. Jeśli ta usługa to nie jest ustawiona, przyjmuje się, że obowiązuje codziennie. Więcej informacji: Formaty daty i godziny. |
validThrough |
DateTime |
Opcjonalnie |
Data i godzina (łącznie ze strefą czasową), po których użytkownicy Zamów jak najszybciej nie można zrealizować. Przykład: „2017-05-01T07:00:00-07:00”. Jeśli nie została skonfigurowana, przyjmuje się, że jest ważna codziennie.
Więcej informacji: Formaty daty i godziny. |
opens |
Time |
Opcjonalnie |
Godzina rozpoczęcia usługi dostawy dla użytkowników Zamówienia na zrealizowano. Na przykład „T10:30:00”. Godzina usługi musi być podana w czasie lokalnym. Nie wolno
uwzględnić strefę czasową w wartości Więcej informacji: Formaty daty i godziny. |
closes |
Time |
Opcjonalnie |
Czas świadczenia usługi dostawy dla użytkowników Zamówienia jak najszybciej i dostępności informacji. Przykład: „T23:59:59”.
Godzina usługi musi być podana w czasie lokalnym. Nie wolno
uwzględnić strefę czasową w wartości Więcej informacji: Formaty daty i godziny. |
dayOfWeek |
Tablica DayOfWeek |
Opcjonalnie |
Dni tygodnia, w których ta usługa jest dostępna dla użytkowników. Jak najszybciej. Następujące wartości są prawidłowe:
Jeśli nie określisz dni tygodnia,
|
deliveryLeadTime |
QuantitativeValue |
Opcjonalnie | Szacowany czas dostawy w minutach po złożeniu zamówienia
umieszczonego tekstu. Zdecydowanie zalecamy ustawienie tej właściwości. Ustaw parametr
pole value z wartością QuantitativeValue na liczbę
minut oraz od unitCode do „MIN”. |
Ten przykład pokazuje element ServiceDeliveryHoursSpecification
:
Przykład 1
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", // If no exact deliveryLeadTime, put a maximum time "unitCode": "MIN" } },
Przykład 2
{ "@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 zawierać 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
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-08-21 UTC.