Pliki danych z katalogu żywności są oparte na elementach DataFeed
schema.org. Plik danych o katalogu żywności zawiera informacje o lokalizacji restauracji, takie jak adres, menu i lokalizacja, oraz szczegóły dotyczące usług restauracji, takie jak koszty dostawy, obszary dostawy i inne elementy, jak opisano poniżej.
Element DataFeed
zawiera zbiór elementów, z których każdy reprezentuje jeden element określony w słowniku schema.org. Aby opublikować wszystkie uporządkowane dane w formacie JSON-LD, możesz użyć typu DataFeed
.
Więcej informacji o korzystaniu z tej specyfikacji podczas tworzenia plików danych znajdziesz w artykule Omówienie integracji zasobów reklamowych.
Formaty daty i godziny
Podstawą właściwości DateTime
jest typ schema.org. O ile nie wskazano inaczej, musi być zgodna z formatem ISO 8601 i zawierać datę, godzinę oraz 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 lokalny czas w strefie czasowej danej restauracji lub lokalizacji usługi, również oparty na typie schema.org i musi być też zgodny z formatem ISO 8601. Czas używa tej składni:
// Time format: THH:MM:SS
Na przykład:
T08:08:00 // 8:08 AM
Określając DateTime
lub Time
, pamiętaj o tych kwestiach:
- Prefiks „T” przed czasem stanowi część formatu i jest wymagany.
- Musisz podać strefę czasową dla
DATETIME
. Nie jest wymagana w przypadku aplikacjiTIME
. - Godzina restauracji lub usługi musi być podana w czasie lokalnym.
Koperta
Kod początkowy każdego pliku danych katalogu produktów powinien zawierać sekcję „koperty”.
„Koperta” to struktura najwyższego poziomu każdego pliku danych, która musi mieć postać DataFeed
o tych właściwościach:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@context |
URL | Wymagane | Używany kontekst; zwykle „http://schema.googleapis.com”. |
@type |
Tekst | Wymagane | To zawsze jest „DataFeed”. |
dateModified |
DateTime |
Wymagane |
Ostatnio zmodyfikowany Data i godzina w formacie ISO_OFFSET_DATE_TIME, kiedy elementy w tym pliku danych zostały zmodyfikowane. W przypadku braku tego pola przyjmuje się, że czas aktualizacji to czas odebrania wiadomości push (lub jej indeksowania) na serwerach Google. Zdecydowanie zalecamy wdrożenie tej metody, jeśli używasz jednocześnie push i indeksowania. Sygnaturę czasową należy podać z dokładnością do strefy czasowej i milisekund, np. „2016-12-28T06:30:00:123-07:00”. W plikach danych wsadowych obsługa wersji elementu jest określana w polu |
dataFeedElement |
Tablica Menu , Restaurant lub Service |
Wymagane | Co najmniej jeden element, który jest częścią tego pliku danych. Szczegółowe informacje znajdziesz poniżej. |
Koperta jest przedstawiona w następujący sposób:
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 odpowiedniego MenuItem
lub MenuItemOption
.
W tej tabeli opisano właściwości typu AdditiveDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze „AdditiveDetails”. |
additiveName |
Tekst | Opcjonalnie | Nazwa dodatku. |
additiveLevelOfContainment |
Tekst | Opcjonalnie | Kod kontenera 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 . |
Ten przykład przedstawia 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 w MenuItem
.
W tabeli poniżej znajdziesz listę 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 w menu dodatku. |
name |
Tekst | Wymagane | Tekst identyfikujący element AddOnMenuItem, gdy użytkownik przegląda menu. |
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 dla tego elementu AddOnMenuItem. Opisuje, kiedy i w jakiej cenie ten element AddOnMenuItem jest dostępny.
Tylko jedna oferta powinna być ważna w danym momencie. Jeśli cena lub dostępność zmieniają się w zależności od pory dnia, możesz mieć wiele ważnych ofert. Jeśli dodatek lub produkt różnią się pod względem atrybutu podstawowego lub odmiany samego elementu dodatku (np. frytki w rozmiarze małym, średnim i dużym jako dodatek), użyj właściwości Wartość domyślna parametru W elemencie AddOnMenuItem są używane te właściwości
|
hasMenuItemOptions |
Tablica MenuItemOption |
Wymagana* |
Tablica atrybutów podstawowych opisujących odmianę samego elementu dodatku (np. małe, średnie i duże frytki jako dodatek) tego elementu menu. Użyj opcji, aby określić różne odmiany dostępne dla tego elementu menu dodatku. Może to nastąpić na 2 sposoby:
|
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Danie jest zgodne z opisem dotyczącym ograniczeń żywieniowych (np. „Dieta bezglutenowa” lub „Diegatanina”). Jest to lista możliwych wartości. |
nutrition |
NutritionInformation |
Opcjonalnie | Informacje o wartościach odżywczych potrawy, zwłaszcza kalorie. |
menuAddOn |
Tablica AddOnMenuSection |
Opcjonalnie | Sekcja AddOnMenuItem może zawierać sekcję menu złożoną z dozwolonych elementów, które można dodać jako dodatek. |
W tym przykładzie pokazano 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 pozycji jedzenia lub napojów jako sekcja dodatków do elementu menu.
W tabeli poniżej znajdziesz listę 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 identyfikujący sekcję AddOnMenuSection, gdy użytkownik przegląda menu. |
description |
Tekst | Opcjonalnie | Opis sekcji menu. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Wskazuje liczbę elementów, które można dodać jako dodatek w tej sekcji menu. To pole pozwala ograniczyć liczbę dodatków, na przykład minimalną i maksymalną liczbę dodatków, które można wybrać 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żyj Poniżej znajdziesz listę właściwości
|
hasMenuSection |
Tablica AddOnMenuSection |
Wymagana* | Logiczne podgrupy menu dodatkowego (np. Kolacja, Przystawki lub Dania rybne). |
defaultOption |
Tablica AddOnMenuItem |
Opcjonalnie |
Pozycje menu dodatków, które będą domyślnie wybrane wstępnie dla użytkowników: Obiekty Liczba w polu |
numberOfFreeAddOns |
Liczby | Opcjonalnie | Wskazuje liczbę dodatków, które użytkownik może wybrać bezpłatnie. |
Obiekty AddOnMenuSection
obejmują te przykłady:
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
Pozycja menu „kanapka z serem” ma w polu „Wybór sera” pole AddOnMenuSection
z wstępnie wybranymi wartościami „Szwajcarski” i „Mozzarella”.
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "defaultOption": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a" }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b" } ], "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozzarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
AdvanceServiceDeliveryHoursSpecification
Reprezentuje godziny realizacji zamówień, w których użytkownicy mogą planować z wyprzedzeniem zamówienia z dostawą i na wynos.
Zazwyczaj wartość opens
jest mniejsza niż wartość closes
. Podczas korzystania z właściwości opens
i closes
obowiązują te wytyczne:
- Właściwości
opens
icloses
są opcjonalne w przypadku właściwościAdvanceServiceDeliveryHoursSpecification
, ale zdecydowanie zalecamy ich uwzględnienie. - Czas świadczenia usługi musi być określony w czasie lokalnym. Nie podawaj strefy czasowej w wartości
opens
anicloses
. Podane strefy czasowe są ignorowane. - Jeśli wartości
opens
icloses
nie są wyraźnie określone, zakładamy, że funkcja zamawiania z wyprzedzeniem jest dostępna zawsze i w każdym dniu. - Jeśli wartości
opens
icloses
są takie same, zakładamy, że funkcja zamawiania z wyprzedzeniem jest niedostępna. - Jeśli
opens
ma wartość większą niżcloses
, przyjmuje się, że godzina zamknięcia to następny dzień. Jeśli np. godzina otwarcia to 1 stycznia na 17:00, a godzina zamknięcia na 2:00, restauracja zostanie zinterpretowana jako zamknięcie 2 stycznia o 2:00. - Nazwy
opens
icloses
odnoszą się do przyszłego przedziału czasu. Usługacloses
jest dostępna na wyłączność. Jeśli np.opens
to 10:00, acloses
to 16:00 zserviceTimeInterval
wynoszącym 15 minut, pierwszy przedział czasu zaczyna się o 10:00, a ostatni o 15:45.
W tej tabeli opisano właściwości typu AdvanceServiceDeliveryHoursSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „AdvanceServiceDeliveryHoursSpecification”. |
validFrom |
DateTime |
Warunkowy |
Data rozpoczęcia realizacji zamówień z wyprzedzeniem użytkownika. Na przykład „2017-05-01T00:00:00-07:00”. Jeśli ta właściwość nie jest skonfigurowana, przyjmuje się, że jest prawidłowa każdego dnia.
Właściwości Jeśli ten typ jest określony jako Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
validThrough |
DateTime |
Opcjonalnie |
Data końcowa, po której nie można już zrealizować zamówień z wyprzedzeniem. Na przykład „2018-12-01T00:00:00-07:00”. Jeśli ta właściwość nie jest skonfigurowana, przyjmuje się, że jest prawidłowa każdego dnia.
Właściwości Jeśli ten typ jest określony jako Czas na Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
opens |
Time |
Opcjonalnie |
Dotyczy przedziałów do dostawy lub na wynos. Określona pora dnia, od której można zrealizować zamówienia z wyprzedzeniem użytkownika. Na przykład godzina 6:30 jest podana jako „T06:30:00”. Czas świadczenia usługi należy określić w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
closes |
Time |
Opcjonalnie |
Dotyczy przedziałów do dostawy lub na wynos. Pora dnia, po której nie można zrealizować zamówień z wyprzedzeniem. Na przykład 21:00 to „T21:00:00”.
Wydarzenie Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
dayOfWeek |
Tablica DayOfWeek |
Opcjonalnie |
Dni tygodnia, w których dostępne są godziny dostawy z wyprzedzeniem. Prawidłowe wartości to:
Jeśli nie wskażesz żadnego dnia tygodnia, |
serviceTimeInterval |
Duration |
Wymagane |
Odstęp między dwoma kolejnymi czasami obsługi. Na przykład: jeśli Czas trwania |
advanceBookingRequirement |
QuantitativeValue |
Wymagane |
Liczba minut od momentu złożenia zamówienia, w którym można zrealizować zamówienie z wyprzedzeniem. Wartości Jeśli na przykład realizacja zamówienia z wyprzedzeniem wymaga co najmniej 60 minut, a jego realizacji nie można zrealizować później niż 2 dni później, wartość |
Ten przykład przedstawia użycie typu AdvanceServiceDeliveryHoursSpecification
:
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 odpowiedniego MenuItem
lub MenuItemOption
.
W tej tabeli opisano właściwości typu AllergenDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „AllergenDetails”. |
allergenType |
Tekst | Opcjonalnie | Rodzaj alergenu na gs1:AllergenTypeCode
. Przykład: http://gs1.org/voc/AllergenTypeCode-PEANUTS .
|
allergenLevelOfContainmentCode |
Tekst | Opcjonalnie | Kod kontenera 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 .
|
Ten przykład przedstawia użycie typu AllergenDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/6", "name": "Strawberry joghurt drink", "description": "A 0.5l bottle of strawberry joghurt drink.", "offers": { "@type": "Offer", "sku": "offer-joghurt-drink", "price": "2.49", "priceCurrency": "USD" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
DeliveryChargeSpecification
W tej tabeli opisano właściwości typu DeliveryChargeSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „DeliveryChargeSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator specyfikacji opłaty za dostawę. |
price |
Liczby | Wymagane | Łączny koszt dostawy w formie wartości czysto numerycznej. Do określenia waluty zamiast jej symbolu użyj właściwości priceCurrency . Na przykład „6.00” bez symbolu waluty. |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty w formacie ISO 4217. Przykład: „PLN”. |
eligibleTransactionVolume |
PriceSpecification |
Opcjonalnie | Liczba transakcji w jednostce pieniężnej, dla której obowiązuje ta specyfikacja opłaty za dostawę. Może to być na przykład informacja o minimalnej liczbie zakupów lub o tym, że dostawa jest dostępna bez dodatkowych opłat powyżej określonej liczby zamówień. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Przedział i jednostka miary liczby zamówień, dla których obowiązuje opłata za dostawę. Dzięki temu możesz na przykład określić, że określona opłata frachtowa jest ważna tylko w przypadku określonej ilości towarów. |
eligibleRegion |
Tablica GeoShape , Place lub GeoCircle |
Opcjonalnie | Miejsce lub Geokształt/GeoCircle dla regionów geopolitycznych, dla których obowiązuje specyfikacja oferty lub opłaty za dostawę. Używaj tej właściwości tylko wtedy, gdy opłaty za dostawę różnią się w zależności od regionu. |
validFrom |
DateTime |
Opcjonalnie | Data i godzina (oraz strefa czasowa), kiedy określona opłata za dostawę będzie obowiązywać. Na przykład „2017-05-01T06:30:00-07:00”. Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
validThrough |
DateTime |
Opcjonalnie | Data i godzina (oraz strefa czasowa), po której podana opłata za dostawę jest nieprawidłowa. Na przykład „2017-05-01T06:30:00-07:00”.
Godzina validThrough nie jest dostępna: jeśli np. godzina została ustawiona na 18:00, godzina będzie ważna do 17:59:59.
Więcej informacji znajdziesz w artykule o formatach 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ą właściwości UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
Rozszerzenie wprowadza 2 dodatkowe właściwości wymagane przy opłatach za dostawę obliczanych w procentach.
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
Wymagane | Ilość referencyjna, której dotyczy określona cena. Na przykład referenceQuantity o wartości 10 z parametrem unitCode o wartości „P1” daje 10% wartości zamówienia. Obecnie obsługiwana jest tylko wartość „P1” (unitCode ). |
basePrice |
Liczby | Opcjonalnie | Opłata podstawowa oprócz referenceQuantity . Na przykład jeśli referenceQuantity z 10 z unitCode to „P1” i basePrice z 5 USD w USD, daje to 5 USD + 10% wartości zamówienia. Wartość domyślna to 0. |
Przykłady opłat za dostawę
Google umożliwia określenie różnych opłat dla użytkowników z góry za pomocą Offer.PriceSpecification
podmiotu związanego z Usługą.
Pamiętaj, że w przypadku kompleksowego zamawiania możesz obecnie używać tylko jednego typu DeliveryChargeSpecification
. Połącz wszystkie rodzaje opłat w jedną właściwość DeliveryChargeSpecification
.
Zapoznaj się z przykładami plików danych usługi, aby dowiedzieć się, jak określić opłaty za dostawę na podstawie obszaru, odległości i wartości zamówienia.
Jeśli nie ma opłaty, pominięto Offer.PriceSpecification
.
- Przykład 1: opłata za dostawę wynosi 5% sumy częściowej koszyka
- Przykład 2: opłata za dostawę wynosi 5 zł
- Przykład 3: opłata za dostawę wynosi 5 zł + 10% sumy częściowej koszyka
- Przykład 4: opłata za dostawę wynosi 5 zł, a opłata za bagaż to 0,1 zł.
- Przykład 5: opłata za dostawę wynosi 5%, a opłata za przetworzenie płatności to 2% sumy częściowej koszyka
- Przykład 6: opłata za dostawę wynosi 5 zł i 1 zł za dodatkowy kilometr odległości.
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 tej tabeli opisano właściwości typu GeoCircle
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „GeoCircle”. |
geoMidpoint |
GeoCoordinates |
Wymagane | Wskazuje element GeoCoordinates w środku elementu GeoCircle . |
geoRadius |
Liczby | Wymagane | Wskazuje przybliżony promień (w metrach) obszaru GeoCircle . |
Oto przykład elementu GeoCircle
:
Przykład
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
W tej tabeli opisano właściwości typu GeoCoordinates
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „GeoCoordinates”. |
latitude |
Liczby | 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, zostaje ustawiona na –90. Jeśli wartość jest większa niż 90, ustawiana jest na 90. Dokładność powinna wynosić co najmniej 5 miejsc po przecinku. |
longitude |
Liczby | Wymagane |
Długość geograficzna w stopniach. Wartości spoza zakresu od -180 do 180 są zawijane, aby mieściły się w zakresie. Na przykład wartość -190 zostanie zamieniona na 170. Wartość 190 jest konwertowana na –170. Odzwierciedla to fakt, że długość geograficzna okrąża kulę ziemską. Dokładność powinna wynosić co najmniej 5 miejsc po przecinku. |
Oto przykład elementu GeoCoordinates
:
Przykład
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
W tej tabeli opisano właściwości typu GeoShape
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „Geokształt”. |
polygon |
Tablica tekstu | Wymagane |
Wielokąt lub wielokąt wyrażony jako seria 3 lub więcej punktów rozdzielonych spacjami. Zalecane jest, aby pierwszy i ostatni punkt były takie same, ale nie jest to wymagane. Każdy punkt wielokąta lub wielokąta jest definiowany przez współrzędne geograficzne. Musisz też podać punkty w kierunku przeciwnym do ruchu wskazówek zegara. W większości przypadków jest to pojedynczy wielokąt. W bardziej złożonych przypadkach użycia zapoznaj się z dokumentacją obszaru usług 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
W tabeli poniżej znajdziesz listę 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 umożliwiający identyfikację elementu Menu , gdy użytkownik przegląda menu. |
description |
Tekst | Opcjonalnie | Opis menu. |
disclaimer |
MenuDisclaimer |
Opcjonalnie | Wyłączenie odpowiedzialności dotyczące menu. Dotyczy to na przykład ujawniania informacji o wartościach odżywczych i alergenów. |
hasMenuSection |
Pojedynczy obiekt lub tablica MenuSection |
Opcjonalnie | Logiczne podział menu (np. Kolacja, Przystawki lub Dania rybne). |
hasMenuItem |
Pojedynczy obiekt lub tablica MenuItem |
Opcjonalnie | MenuItem obiekty zawarte w Menu , zwykle gdy Menu nie jest dzielony według
MenuSections . |
inLanguage |
Tekst | Opcjonalnie | Język treści menu, jako kod języka ze standardu IETF BCP 47. Przykład: „pl-PL”. |
Te 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 wyświetlany jako tablica.
{ "@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 wyświetlany jako tablica.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Dinner", "description": "Dinner dishes", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Starters", "description": "Appetizers and such", "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/3", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/5", "name": "Desserts", "description": "Dessert dishes.", "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/4", "name": "Chocolate Pie", "description": "A slice of chocolate pie.", "offers": { "@type": "Offer", "sku": "offer-chocolate-pie", "price": "3.49", "priceCurrency": "USD" } } } ] }
Więcej przykładów elementów Menu
znajdziesz w artykule Przykłady plików danych o restauracjach i menu.
MenuDisclaimer
W tabeli poniżej znajdziesz listę właściwości typu MenuDisclaimer
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „Menu Wyłączenie odpowiedzialności”. |
@id |
URL | Wymagane | Unikalny identyfikator wyłączenia odpowiedzialności menu. |
text |
Tekst | Wymagane | Tekst wyłączenia odpowiedzialności. Na przykład: „Średnia dzienna dawka energii dla osoby dorosłej to 8700 kJ”. |
url |
URL | Opcjonalnie | URL prowadzący do strony ze szczegółowymi informacjami na temat wyłączenia odpowiedzialności. |
Ten przykład przedstawia 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 w menu reprezentująca pozycję. W tej tabeli 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 umożliwiający identyfikację elementu MenuItem , gdy użytkownik przegląda menu. |
description |
Tekst | Opcjonalnie | Opis pozycji menu. |
image |
URL | Opcjonalnie |
Obraz pozycji menu. Przestrzegaj tych wytycznych dotyczących obrazów:
|
menuAddOn |
Tablica AddOnMenuSection |
Opcjonalnie | Elementy sekcji menu, które można dodać do pozycji menu jako dodatki. |
offers |
Tablica Offer |
Wymagana* |
Co najmniej 1 oferta do utworzenia tego elementu ( Poniżej znajdziesz informacje o tym, które usługi
|
hasMenuItemOptions |
Tablica MenuItemOption |
Wymagane | Lista podstawowych opcji/odmian w tej pozycji menu. Opcje powinny służyć do określania różnych podstawowych odmian dostępnych dla elementu, np. małych, średnich i dużych. |
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Danie jest zgodne z opisem dotyczącym wymagań żywieniowych (np. „http://schema.org/GlutenFreeDiet” lub „http://schema.org/VeganDiet”. Jest to lista możliwych wartości. |
nutrition |
NutritionInformation |
Opcjonalnie | Informacje o wartościach odżywczych danej potrawy, w szczególności kalorii. |
hasAllergen |
AllergenDetails |
Opcjonalnie | Alergeny potrawy na gs1:AllergenDetails .
Aby użyć 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 potrawy na gs1:AdditiveDetails .
Jest to lista możliwych wartości. Aby użyć tej właściwości, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu MenuItem . |
packaging |
PackagingDetails |
Opcjonalnie | Informacje na temat opakowania i recyklingu tego elementu MenuItem na gs1:PackagingDetails .
Aby użyć 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 o restauracjach i menu.
MenuItemOption
Opcja umożliwiająca reprezentowanie opcji, które użytkownik będzie musiał wykonać, wybierając potrawę lub kombinację. Użytkownik musi wybrać jedną z opcji. W przeciwnym razie zamówienie zostanie uznane za nieprawidłowe. np. „mała, średnia” lub duża w przypadku pizzy.
Przykładowe przypadki użycia funkcji MenuItemOption
znajdziesz w naszym przewodniku po dostosowywaniu wersji z wykorzystaniem MenuItemOption
.
W tabeli poniżej znajdziesz listę 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ąca opcję. |
offers |
Tablica Offer |
Wymagane |
Co najmniej jedna oferta do komponentu
Poniżej znajdziesz informacje o tym, które usługi
|
menuAddOn |
Array of |
Opcjonalnie | Sekcja menu z dozwolonymi pozycjami, które można dodać jako dodatek. Tej opcji używaj tylko wtedy, gdy dodatki są związane z konkretną opcją menu. W przeciwnym razie udostępnij dodatki za pomocą właściwości MenuItem .menuAddOn.
|
suitableForDiet |
Tablica RestrictedDiet |
Opcjonalnie | Lista numeryczna wskazująca diety, w przypadku których to danie jest zgodne z opisanymi ograniczeniami żywieniowymi (np. „http://schema.org/GlutenFreeDiet” lub „http://schema.org/VeganDiet”). |
nutrition |
NutritionInformation |
Opcjonalnie | Informacje o wartościach odżywczych danej potrawy, w szczególności kalorii. |
hasAllergen |
AllergenDetails |
Opcjonalnie | Alergeny potrawy na gs1:AllergenDetails .
Aby użyć 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 .
Jest to lista możliwych wartości. Aby użyć tej właściwości, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu MenuItemOption .
|
packaging |
PackagingDetails |
Opcjonalnie | Informacje o opakowaniu i recyklingu tego elementu MenuItem na gs1:PackagingDetails Dodaj kontekst gs1, aby użyć tej właściwości: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
I dodaj FoodBeverageTobaccoProduct do typu MenuItemOption .
|
Oto przykład elementów 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ę menu. W tabeli poniżej znajdziesz 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 umożliwiający identyfikację elementu MenuSection , gdy użytkownik przegląda menu. |
description |
Tekst | Opcjonalnie | Opis sekcji menu. |
hasMenuSection |
Tablica MenuSection |
Opcjonalnie | Logiczne podgrupy komponentów typu MenuSection . Na przykład sekcja menu Kolacja może zawierać wiele podmenu, takich jak „Potrawy z drobiu” czy „Wegetariańskie”. |
hasMenuItem |
Tablica MenuItem |
Opcjonalnie | Pozycje menu zawarte w: MenuSection . |
offers |
Tablica Offer |
Opcjonalnie |
Użyj właściwości Na tej liście możesz zobaczyć, które właściwości
|
image |
URL | Opcjonalnie | Obraz sekcji menu. |
Te przykłady pokazują elementy 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 w artykule Przykłady plików danych o restauracjach i menu.
NutritionInformation
W tabeli poniżej opisujemy właściwości typu NutritionInformation
. W jednostkach miary wielkość liter ma znaczenie. Na przykład „kcal” jest dozwolone,
a „cal” już nie.
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest wartość „NutritionInformation”. |
description |
Tekst | Opcjonalnie | Informacje o wartościach odżywczych w dowolnym tekście. np. „Zawiera substancje konserwujące”. |
calories |
Tekst | Opcjonalnie |
Liczba kalorii w kaloriach, kcal lub kJ, podana w tym formacie: number Cal_kcal_OR_kJ Na przykład: „240 kcal”. |
carbohydrateContent |
Tekst | Opcjonalnie |
Ilość węglowodanów, zwykle w g, podana w takim formacie: number g_OR_mg Na przykład „7 g”. |
cholesterolContent |
Tekst | Opcjonalnie |
Ilość cholesterolu, zwykle w mg, podana w takim formacie: number g_OR_mg Na przykład „12 mg”. |
fatContent |
Tekst | Opcjonalnie |
Ilość tłuszczu, zwykle w g, w następującym formacie: number g_OR_mg Na przykład „42 g”. |
fiberContent |
Tekst | Opcjonalnie |
Liczba g lub mg błonnika w tym formacie: number g_OR_mg |
proteinContent |
Tekst | Opcjonalnie |
Liczba g lub mg białka w następującym formacie: number g_OR_mg |
saturatedFatContent |
Tekst | Opcjonalnie |
Liczba g lub mg tłuszczy nasyconych w następującym formacie: number g_OR_mg |
servingSize |
Tekst | Opcjonalnie | Wielkość porcji w ml, l, g lub kg w postaci objętości lub masy. |
sodiumContent |
Tekst | Opcjonalnie |
Liczba mg lub g sodu w następującym formacie: number g_OR_mg |
sugarContent |
Tekst | Opcjonalnie |
Liczba g lub mg cukru w następującym formacie: number g_OR_mg |
transFatContent |
Tekst | Opcjonalnie |
Liczba g lub mg tłuszczy trans w formacie: number g_OR_mg |
unsaturatedFatContent |
Tekst | Opcjonalnie |
Zawartość tłuszczy nienasyconych, zwykle w g, w takim formacie: number g_OR_mg |
W tych przykładach pokazano 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 w menu. W tej tabeli opisano właściwości typu Offer
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „Oferta”. |
sku |
Tekst | Warunkowy |
Unikalny identyfikator oferty. Może to być dowolna wartość tekstowa, która jest niepowtarzalna w obrębie Ta właściwość jest używana tylko w tych typach ofert:
|
price |
Tekst | Warunkowy |
Cena oferowanego produktu. Na przykład „6.00” bez symbolu waluty. Ta właściwość jest wymagana tylko w przypadku tych typów ofert:
Nie jest używana w tych typach ofert:
|
priceCurrency |
Tekst | Warunkowy |
Waluta (w 3-literowym formacie ISO 4217) ceny lub składnika ceny, jeśli jest ona dołączona do atrybutu PriceSpecification i jego podtypów. Ta właściwość jest wymagana tylko w przypadku tych typów ofert:
Nie jest używana w tych typach ofert:
|
availabilityStarts |
DateTime lub Time |
Opcjonalnie | Data i godzina lub tylko godzina, od której oferta jest dostępna. Jeśli np. naleśniki podawane są o 7:00, wartość tego pola może wyglądać tak: „2017-05-01T07:00:00-07:00”. Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
availabilityEnds |
DateTime lub Time |
Opcjonalnie | Data i godzina lub tylko godzina, kiedy oferta jest niedostępna. Jest to czas wyłączny. Jeśli np. dostępność naleśników kończy się o 10:00, ostatni może być podany o 9:59:59. Wartość tego pola może wyglądać tak: „2017-05-01T10:00:00-07:00”. Więcej informacji znajdziesz w artykule o formatach 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óżną dostępność w różnych dniach tygodnia, użyj więcej niż 1 obiektu |
validFrom |
DateTime |
Opcjonalnie |
Data i godzina (wraz ze strefą czasową), w której obowiązuje podana cena. Na przykład makaron kosztuje 8 zł w porze lunchu i 10 zł za kolację. Więcej informacji znajdziesz w artykule o formatach daty i godziny. Tej usługi można używać w tych typach ofert:
Ta właściwość nie jest używana w tych typach ofert:
|
validThrough |
DateTime |
Opcjonalnie | Data i godzina (z uwzględnieniem strefy czasowej), po których określona cena straciła ważność. Na przykład makaron kosztuje 8 zł w porze lunchu i 10 zł za kolację. Godzina Tej usługi można używać w tych typach ofert:
Ta właściwość nie jest używana w poniższych typach ofert.
|
eligibleQuantity |
QuantitativeValue | Opcjonalnie |
Ilości zamówienia, dla których ten produkt jest dozwolony. Na przykład restauracja może wymagać zamówienia co najmniej 10 pizzy z dostawą. Ta wartość jest opcjonalna. Domyślnie nie ma limitu, ale restauracja może go określić. Limity minimalne obowiązują tylko wtedy, gdy użytkownik wybierze element. Tej usługi można używać w tych typach ofert:
Ta właściwość nie jest używana w poniższych typach ofert.
|
aggregateRating |
AggregateRating | Opcjonalnie |
Ogólna ocena określona na podstawie kolekcji opinii lub ocen elementu. Tej usługi można używać w tych typach ofert:
Ta właściwość nie jest używana w podanych niżej typach.
|
inventoryLevel |
QuantitativeValue | Opcjonalnie |
Bieżący przybliżony poziom asortymentu w przypadku danego produktu lub produktów. Tej usługi można używać w tych typach ofert:
Ta właściwość nie jest używana w tych typach ofert:
|
priceSpecification |
Tablica DeliveryChargeSpecification lub tablica PaymentChargeSpecification | Opcjonalnie |
Jeśli jest używany w polu Tej usługi można używać w tych typach ofert:
Ta właściwość nie jest używana w tych typach ofert:
|
offeredBy |
Tablica identyfikatorów Restaurant |
Opcjonalnie | Reprezentuje restauracje, w których można zjeść Jeśli nie podasz żadnej wartości, ten parametr Tej usługi można używać w tych typach ofert:
Ta właściwość nie jest używana w tych typach ofert:
|
applicableFulfillmentMethod |
Tablica tekstu | Opcjonalnie | Reprezentuje typ usługi, przez którą jest realizowany ten Jeśli nie podasz żadnej wartości, ten Tej usługi można używać w tych typach ofert:
Ta właściwość nie jest używana w tych typach ofert:
|
@id |
URL | Wycofano | Unikalny identyfikator oferty. Ta funkcja jest wycofana 25 kwietnia 2019 r. Zastąp ją elementem sku w sposób opisany 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
Ta przykładowa oferta podaje dostępność w weekendy od 8:00 do 10:00:
{ "@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ść od 9:59:59 w poniedziałki, środy i piątki oraz 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
Ten przykład pokazuje kwalifikujący się zestaw pozycji menu dodatku, dzięki czemu użytkownik może zamówić maksymalnie 2 części tego produktu:
{ "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Ranch", "offers": { "@type": "Offer", "@id": "https://www.example.com/1089/addon/a/offer", "price": "2.99", "priceCurrency": "USD" "eligibleQuantity": { "@type": "QuantitativeValue", "maxValue": 2 } } }
Przykład 5
Ten przykład przedstawia ofertę z dostawą do 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 są dostępne usługi zamawiania. Zwykle wartość opens
jest mniejsza od wartości closes
. Korzystanie z właściwości opens
i closes
podlega tym wytycznym:
- Właściwości
opens
icloses
są opcjonalne, ale zdecydowanie zalecane, ponieważ informują o możliwości składania zamówień. Sprawdzoną metodą definiowania dostępnych godzin jest dodanie tablicydeliveryHours
zawierającejServiceDeliveryHoursSpecification
z właściwościamiopens
icloses
. Następnie możesz dołączyć do obiektudeliveryHours
obiektAdvanceServiceDeliveryHoursSpecification
z jego własnymi właściwościamiopens
icloses
, jeśli chcesz zaoferować krótszy okres składania zamówień z wyprzedzeniem. - Jeśli
opens
icloses
nie są wyraźnie określone, zakładamy, że usługa do składania zamówień jest dostępna codziennie o każdej porze. - Czas świadczenia usługi musi być określony w czasie lokalnym. Nie podawaj strefy czasowej w wartości
opens
anicloses
. Jeśli podasz strefę czasową, Google zignoruje tę informację. - Jeśli nazwy
opens
icloses
są takie same, zakładamy, że restauracja jest otwarta 0 minut. - Jeśli
opens
ma wartość większą niżcloses
, przyjmuje się, że godzina zamknięcia to następny dzień. Jeśli np. godzina otwarcia to 1 stycznia na 17:00, a godzina zamknięcia to 2:00, restauracja zostanie zinterpretowana jako zamknięta 2 stycznia o godzinie 2:00. - Czas na
closes
jest wyjątkowy. Jeśli więc godziny otwarcia i zamknięcia dla tego okna składania zamówień zostaną ustawione odpowiednio na 10:00 i 16:00, ostatnie zamówienie to 15:59:59.
W tej tabeli opisano właściwości typu OpeningHoursSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „OpeningHoursSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator pola OpeningHoursSpecification . |
dayOfWeek |
Tablica DayOfWeek |
Opcjonalnie |
Dzień tygodnia, w którym te godziny otwarcia obowiązują. 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 wskażesz żadnego dnia tygodnia, |
opens |
Time |
Opcjonalnie |
Gdy ta właściwość jest używana w specyfikacji Jeśli jest używany w specyfikacji Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
closes |
Time |
Opcjonalnie |
Gdy ta właściwość jest używana w specyfikacji Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
validFrom |
DateTime |
Opcjonalnie |
Jeśli ta właściwość jest używana w specyfikacji Jeśli na przykład podane godziny dotyczą całego roku 2017, ustaw Jeśli jest używany w specyfikacji Jeśli nie określisz tej właściwości w pliku danych, Google zakłada, że restauracja lub usługa są dostępne codziennie. Oprócz daty wymagane są też podane w niej składniki godziny i strefy czasowej. Jako strefę czasową użyj strefy czasowej restauracji lub usługi. Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
validThrough |
DateTime |
Opcjonalnie |
Jeśli ten parametr jest używany w Jeśli na przykład podane godziny dotyczą całego roku 2017, ustaw Jeśli jest używany w specyfikacji Jeśli nie określisz tej właściwości w pliku danych, Google zakłada, że restauracja lub usługa są dostępne codziennie. Oprócz daty wymagane są też elementy określające godzinę i strefę czasową w polu DateTime. Jako strefę czasową użyj strefy czasowej restauracji lub usługi. Czas na Więcej informacji znajdziesz w artykule o formatach 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 (co oznacza, że pola
|
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"]
.
Dodaj też FoodBeverageTobaccoProduct
do typu MenuItem
lub MenuItemOption
.
W tej tabeli opisano właściwości typu PackagingDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „PackagingDetails”. |
packagingRecyclingProcessType |
Tekst | Opcjonalnie | Rodzaj procesu recyklingu opakowań zgodny z
gs1:PackagingRecyclingProcessTypeCode. Na przykład http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE lub http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
Opcjonalnie | Szczegóły wpłaty pakietu, które można zwrócić, zgodnie z gs1:ReturnablePackageDepositDetails. Na przykład butelki i puszki są objęte kaucją, którą można zwrócić. |
Ten przykład przedstawia 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 typu PaymentChargeSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „PaymentChargeSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator pola PaymentChargeSpecification . |
price |
Liczby | Wymagane | Łączna kwota obciążenia. Na przykład „6.00” bez symbolu waluty. |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty ceny w formacie ISO 4217. Na przykład „PLN”. |
eligibleTransactionVolume |
PriceSpecification |
Opcjonalnie | Liczba transakcji w jednostce pieniężnej, dla której obowiązuje ta specyfikacja opłaty za płatność, na przykład przy wskazywaniu minimalnej liczby zakupów. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Ilości zamówienia, dla których obowiązuje opłata. 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 (wraz ze strefą czasową), w której określona kwota obciążenia zacznie obowiązywać. Na przykład „2017-05-01T07:00:00-07:00”. Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
validThrough |
DateTime |
Opcjonalnie | Data i godzina (oraz strefa czasowa), kiedy określona opłata za płatność jest nieprawidłowa. Na przykład „2017-05-01T07:30:00-07:00”.
Godzina validThrough nie jest dostępna: jeśli na przykład godzina jest ustawiona na 18:00, godzina będzie ważna do 17:59:59.
Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
Poniższy przykład przedstawia 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"]
obiekt można rozszerzyć o UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
). To rozszerzenie udostępnia 2 dodatkowe właściwości wymagane do opłat za obsługę obliczanych w procentach.
usługa | Typ | Konieczność | Opis |
referenceQuantity |
QuantitativeValue |
Wymagane | Ilość referencyjna, której dotyczy określona cena. Na przykład referenceQuantity o wartości 10 z parametrem unitCode o wartości „P1” daje 10% wartości zamówienia. Obecnie obsługiwany jest tylko zakres unitCode „P1”. |
basePrice |
Liczby | Opcjonalnie | Opłata podstawowa oprócz referenceQuantity . Na przykład jeśli referenceQuantity z 10 z unitCode to „P1” i basePrice z 5 w USD, daje to 5 USD + 10% wartości zamówienia. Wartość domyślna to 0. |
Przykładowe opłaty za pobranie
Google umożliwia określenie różnych opłat dla użytkowników z góry za pomocą Offer.PriceSpecification
podmiotu związanego z Usługą.
Pamiętaj, że obecnie obsługujemy tylko 1 PaymentChargeSpecification
. Połącz wszystkie rodzaje opłat w jednym PaymentChargeSpecification
Jeśli nie ma opłaty, pominięto Offer.PriceSpecification
.
- Przykład 1: opłata za obsługę to 5% sumy częściowej koszyka
- Przykład 2: opłata za obsługę wynosi 5 zł
- Przykład 3: opłata za bagaż wynosi 0,1 zł, a opłata za obsługę to 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 tej tabeli opisano właściwości typu Place
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | Ta wartość zawsze ma wartość „Miejsce”. |
address |
PostalAddress |
Wymagane | Adres miejsca. |
Oto przykład elementu Place:
Przykład
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
W tej tabeli opisano właściwości typu PostalAddress
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „Adres pocztowy”. |
addressLocality |
Tekst | Wymagana* | Okolica lub miasto. Na przykład „Warszawa”. |
addressRegion |
Tekst | Wymagana* | Region lub stan. np. „CA”. |
postalCode |
Tekst | Wymagana* | Kod pocztowy. np. „94102”. |
streetAddress |
Tekst | Opcjonalnie | Ulica i numer. Na przykład „Plac Defilad 1”. |
addressCountry |
Tekst | Wymagane | Dwuliterowy kod kraju w formacie ISO 3166-1 alfa-2 . Przykład: „PL”. |
Dostawcy usług mogą wyświetlać listę tych właściwości, aby wskazać element Service.areaServed
, w którym świadczona jest usługa.
Jeśli jest używana w zasadzie Restaurant.address
, wszystkie właściwości wymienione w polu PostalAddress
są wymagane.
Oto przykład elementu 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 typu PriceSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „PriceSpecification”. |
@id |
URL | Opcjonalnie | Identyfikator pola PriceSpecification . |
minPrice |
Liczby | Opcjonalnie | Najniższa cena, jeśli cena jest określona jako przedział. |
maxPrice |
Liczby | Opcjonalnie | Najwyższa cena, jeśli cena jest określona jako przedział. |
priceCurrency |
Tekst | Wymagane | Trzyliterowy kod waluty ceny w formacie ISO 4217. Na przykład „PLN”. |
eligibleQuantity |
QuantitativeValue |
Opcjonalnie | Ilości zamówione, w przypadku których obowiązuje specyfikacja ceny. Może to być na przykład 2 zł za funt lub 2 produkty za złotego. |
Oto przykład elementu 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 obiekcie MenuItemOption
.
W tabeli poniżej znajdziesz listę 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. Oto prawidłowe nazwy użyte w polu
Prawidłowe nazwy używane w
|
value |
Tekst | Wymagane |
Wartość opcji. Wartości mogą być dowolnym ciągiem znaków i są wyświetlane w niezmienionej formie. Są to prawidłowe wartości:
|
QuantitativeValue
W tej tabeli opisano właściwości typu QuantitativeValue
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „QuantitativeValue”. |
value |
Liczby | Opcjonalnie | Wartość węzła wartości ilościowej lub wartości właściwości. |
unitCode |
Tekst lub URL | Opcjonalnie |
Jednostka miary w postaci kodu wspólnego UN/CEFACT lub adresu URL. Kody inne niż Common Code UN/CEFACT można stosować z prefiksem i dwukropkiem. |
maxValue |
Liczby | Opcjonalnie | Górna wartość pewnej cechy lub właściwości. |
minValue |
Liczby | Opcjonalnie | Niższa wartość cechy lub właściwości. |
Te 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,
W tabeli poniżej znajdziesz listę właściwości typu Restaurant
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „Restauracja”. |
@id |
URL | Wymagane | Niepowtarzalny identyfikator restauracji lub dostawcy usług dostawy. Na przykład „http://www.dostawca.pl/326”, gdzie „326” to unikalny identyfikator restauracji. |
name |
Tekst | Wymagane | Tekst, który umożliwia identyfikację elementu Restaurant podczas składania zamówienia. |
url |
URL | Wymagane | Adres URL w Twojej domenie, który reprezentuje restaurację. Na przykład: „http://www.dostawca.pl/restauracja”. |
sameAs |
URL | Opcjonalnie | Oficjalna strona restauracji. np. „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]" Na przykład „+16501234567”. |
priceRange |
Tekst | Opcjonalnie | Zakres cen. Na przykład „$$" ($-Inexpensive, $$-Moderate, $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
Example 1
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": "+16501234567", // Wymagany jest kod kraju (+1) "servesCuisine": [ "Indyjska muzyka 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 w artykule Przykłady plików danych o restauracjach i menu.
ReturnablePackageDepositDetails
Aby użyć tego typu, dodaj kontekst gs1: "@context":
["http://gs1.org/voc/", "http://schema.org"]
Następnie dodaj
FoodBeverageTobaccoProduct
do typu odpowiedniegoMenuItem
lubMenuItemOption
.W tej tabeli opisano właściwości typu
ReturnablePackageDepositDetails
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „ReturnablePackageDepositDetails”. |
returnablePackageDepositAmount |
gs1:PriceSpecification |
Opcjonalnie | Kwota wpłaty za ten produkt zgodna z gs1:PriceSpecification. Na przykład kaucja 0, 25 USD za puszkę. |
Ten przykład przedstawia użycie typu ReturnablePackageDepositDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
Usługa
Opisuje dostawę całości zamówienia z restauracji do lokalizacji geograficznej przez dostawcę.
W tej tabeli opisano 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 zamówień. Na przykład: „http://www.dostawca.pl/usługa/1”. |
description |
Tekst | Opcjonalnie | Opis produktu. |
serviceType |
Tekst | Wymagane | rodzaj oferowanej usługi, Możliwe wartości to „DELIVERY” lub „TakeOUT”. |
provider |
Restaurant |
Wymagane | Odwołanie do unikalnego identyfikatora restauracji. Na przykład: „http://www.dostawca.pl/restauracja”. |
areaServed |
Tablica GeoShape , Place lub GeoCircle |
Warunkowy | Obszar geograficzny, na którym świadczona jest usługa. To pole jest domyślnie opcjonalne, ale jest wymagane, jeśli serviceType ma wartość „DELIVERY”. |
hoursAvailable |
Tablica OpeningHoursSpecification |
Wymagane | Godziny, w których usługa jest dostępna. |
specialOpeningHoursSpecification |
Tablica OpeningHoursSpecification , ServiceDeliveryHoursSpecification lub AdvanceServiceDeliveryHoursSpecification |
Opcjonalnie |
Godziny, które zastępują bardziej ogólne wartości Określ specjalny zakres dat za pomocą właściwości |
offers |
Tablica Offer |
Warunkowy |
Szczegółowe informacje o ofercie dostawy do określonej restauracji. To pole jest domyślnie opcjonalne, ale wymagane, jeśli Właściwość |
hasOfferCatalog |
[Menu , katalog ofert] |
Wymagane |
Określa menu danej usługi. Możesz mieć osobne menu dla poszczególnych usług (np. na wynos, z dostawą i cateringiem). Musisz określić typ "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
Tablica {name, value} | Opcjonalnie |
Opcjonalne informacje o konfiguracji usługi. Elementy powinny być obiektami, których klucz
Więcej informacji o konkretnych nazwach i wartościach znajdziesz w dokumentacji "additionalProperty": [{ "name": "disableOrderInstructions", "value": false }, { "name": "disableMenuItemSpecialInstructions", "value": false }, { "name": "disableTipWidget", "value": false }, { "name": "disablePromoWidget", "value": false }, { "name": "menuItemSpecialInstructionsMaxLength", "value": 256 }, { "name": "orderInstructionsMaxLength", "value": 256 }] |
potentialAction |
URL | Opcjonalnie |
Zawiera adres URL usługi dostawy lub na wynos, który będzie używany podczas migracji z kompleksowego systemu zamawiania jedzenia do przekierowania. Na przykład "potentialAction": { "url": "https://fopatestagent.com/ordering/restauracja-1/delivery" } |
Poniższy przykład ilustruje użycie typu usługi:
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ług znajdziesz w sekcji Przykłady plików danych usługi.
ServiceDeliveryHoursSpecification
Reprezentuje godziny realizacji, w których użytkownicy mogą planować jak najszybciej zamówienia z dostawą i odbiorem na wynos.
Zazwyczaj wartość opens
jest mniejsza niż wartość closes
. Podczas korzystania z właściwości opens
i closes
obowiązują te wytyczne:
- Właściwości
opens
icloses
są opcjonalne w przypadku właściwościServiceDeliveryHoursSpecification
, ale zdecydowanie zalecamy ich uwzględnienie. - Czas świadczenia usługi musi być określony w czasie lokalnym. Nie podawaj strefy czasowej w wartości
opens
anicloses
. Jeśli podasz strefę czasową, Google zignoruje ją. - Jeśli wartości
opens
icloses
nie są wyraźnie określone, zakładamy, że funkcja Jak najszybciej jest dostępna przez cały czas. - Jeśli wartości
opens
icloses
są takie same, zakładamy, że kolejność Jak najszybciej jest niedostępna. - Jeśli
opens
ma wartość większą niżcloses
, przyjmuje się, że godzina zamknięcia to następny dzień. Jeśli np. godzina otwarcia to 1 stycznia na 17:00, a godzina zamknięcia to 2:00, restauracja zostanie zinterpretowana jako zamknięta 2 stycznia o godzinie 2:00.
W tej tabeli opisano właściwości typu ServiceDeliveryHoursSpecification
:
Właściwość | Typ | Konieczność | Opis |
---|---|---|---|
@type |
Tekst | Wymagane | To zawsze jest „ServiceDeliveryHoursSpecification”. |
validFrom |
DateTime |
Opcjonalnie |
Data i godzina (wraz ze strefą czasową), w której można zrealizować zamówienia użytkowników w jak najszybszym terminie. Na przykład „2017-05-01T07:00:00-07:00”. Jeśli ta właściwość nie jest skonfigurowana, przyjmuje się, że jest prawidłowa każdego dnia. Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
validThrough |
DateTime |
Opcjonalnie |
Data i godzina (wraz ze strefą czasową), po których nie będzie można zrealizować zamówień w możliwie najkrótszym czasie. Na przykład „2017-05-01T07:00:00-07:00”. Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest prawidłowa każdego dnia. Czas na Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
opens |
Time |
Opcjonalnie |
Godzina, o której rozpoczyna się usługa dostawy w przypadku jak najszybszego realizacji zamówień użytkownika. na przykład „T10:30:00”. Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
closes |
Time |
Opcjonalnie |
Godzina, w której usługa dostawy zamówień użytkowników w jak najszybszym czasie nie jest już dostępna. np. „T23:59:59”. Czas na Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości Więcej informacji znajdziesz w artykule o formatach daty i godziny. |
dayOfWeek |
Tablica DayOfWeek |
Opcjonalnie |
Dni tygodnia, w których ta usługa jest dostępna w przypadku zamówień składanych w jak najszybszym czasie. Prawidłowe wartości są następujące:
Jeśli nie wskażesz żadnego dnia tygodnia, |
deliveryLeadTime |
QuantitativeValue |
Opcjonalnie | Przewidywany czas dostawy w minutach od złożenia zamówienia. Zdecydowanie zalecamy ustawienie tej właściwości. W polu value dla QuantitativeValue ustaw liczbę minut, a w polu unitCode wpisz „MIN”. |
Oto przykład elementu 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 mieć następujące możliwe 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-02-16 UTC.