Schemat zasobów reklamowych w wersji 1

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 aplikacji TIME.
  • 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 DateTime pliku danych w formacie ISO 8601.

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 dateModified w kopercie pliku.

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:

  • Format obrazu 3:2
  • >
  • Minimalna rozdzielczość: 600 x 400 pikseli, 72 dpi
  • >
  • Zalecana rozdzielczość 1400 x 960 pikseli, 72 dpi
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 hasMenuItemOption.

Wartość domyślna parametru Offer.eligibleQuantity to 0, maksymalnie 1.

W elemencie AddOnMenuItem są używane te właściwości Offer:

  • Wymagane Offer.sku
  • Wymagane Offer.price
  • Wymagane Offer.priceCurrency
  • Opcjonalny Offer.availabilityStarts
  • Opcjonalny Offer.availabilityEnds
  • Opcjonalny Offer.availableDay
  • Opcjonalny Offer.validFrom
  • Opcjonalny Offer.validThrough
  • Opcjonalny Offer.eligibleQuantity
  • Opcjonalny Offer.inventoryLevel
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:

  • Odmiana podstawowa dotyczy samego produktu (np. małych, średnich i dużych frytek jako dodatku).
  • Podstawowa odmiana pozycji menu, z którą jest powiązany ten dodatek (np. dodatkowy ser jako dodatek do dużej pizzy)
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 Offer.availabilityStarts i Offer.availabilityEnds, aby wskazać przedział czasu, w którym ta sekcja AddOnMenuSection jest dostępna.

Poniżej znajdziesz listę właściwości Offer, które są używane w sekcji AddOnMenuSection.

  • Opcjonalny Offer.availabilityStarts
  • Opcjonalny Offer.availabilityEnds
  • Opcjonalny Offer.availableDay
  • Opcjonalny Offer.validFrom
  • Opcjonalny Offer.validThrough
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: AddOnMenuSection. Użytkownicy mogą zmienić ostateczne wybory. Jeśli nie określono właściwości defaultOption, wstępnie wybrana nie będzie AddOnMenuItem.

Obiekty AddOnMenuItem muszą znajdować się w grupie hasMenuItem zasobu AddOnMenuSection.

Liczba w polu defaultOption nie może przekraczać maksymalnej wartości w kolumnie eligibleQuantity (AddOnMenuSection).

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 i closes są opcjonalne w przypadku właściwości AdvanceServiceDeliveryHoursSpecification, 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 ani closes. Podane strefy czasowe są ignorowane.
  • Jeśli wartości opens i closes 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 i closes 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 i closes odnoszą się do przyszłego przedziału czasu. Usługa closes jest dostępna na wyłączność. Jeśli np. opens to 10:00, a closes to 16:00 z serviceTimeInterval 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 validFrom i validThrough muszą być brakujące lub występują razem.

Jeśli ten typ jest określony jako specialOpeningHoursSpecification na poziomie Service, właściwość validFrom w elemencie AdvanceServiceDeliveryHoursSpecification jest wymagana.

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 validFrom i validThrough muszą być brakujące lub występują razem.

Jeśli ten typ jest określony jako specialOpeningHoursSpecification na poziomie Service, wymagana jest właściwość validThrough w AdvanceServiceDeliveryHoursSpecification.

Czas na validThrough jest wyjątkowy. Jeśli np. godzina zostanie ustawiona na 18:00, będzie ona poprawna do 17:59:59.

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 opens. Jeśli określisz strefę czasową, Google zignoruje tę informację.

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 closes> jest niedostępne, dlatego ustawienie go na 21:00 dla serviceTimeInterval wynoszącego 15 minut oznacza, że ostatni dostępny przedział czasu będzie się zaczynał o 20:45.

Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości closes. Jeśli określisz strefę czasową, Google zignoruje tę informację.

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:

  • „Monday”
  • "Wtorek"
  • „Środa”
  • „Czwartek”
  • „Piątek”
  • „Sobota”
  • "Niedziela"

Jeśli nie wskażesz żadnego dnia tygodnia, AdvanceServiceDeliveryHoursSpecification będzie stosowany do wszystkich dni.

serviceTimeInterval Duration Wymagane

Odstęp między dwoma kolejnymi czasami obsługi.

Na przykład: jeśli opens i closes to 8:00 i 20:00, a serviceTimeInterval to 15 minut, użytkownik może wybrać godziny realizacji zamówień: 8:00, 8:15, 8:30, 8:45 itd. aż do 20:00.

Czas trwania Duration musi być określony w formacie ISO 8601. Na przykład: "P15M" oznacza 15-minutowe przedziały.

advanceBookingRequirement QuantitativeValue Wymagane

Liczba minut od momentu złożenia zamówienia, w którym można zrealizować zamówienie z wyprzedzeniem.

Wartości min i max obiektu QuantitativeValue muszą być ustawione na liczbę minut, a parametr unitCode na „MIN”.

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ść min wynosi 60, a max – 2880.

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"
    }  ],
...
},

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.

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"
    }
}

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:

  • Format obrazu 3:2
  • Minimalna rozdzielczość: 600 x 400 pikseli, 72 dpi
  • Zalecana rozdzielczość 1400 x 960 pikseli 72 dpi
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 (MenuItem). Wskazuje, kiedy i w jakiej cenie urządzenie MenuItem jest dostępne. Tylko jedna oferta powinna być ważna w danym momencie. Można podać wiele ofert, jeśli ceny i dostępność różnią się w zależności od pory dnia. Jeśli produkt spożywczy różni się atrybutem podstawowy (np. rozmiar w przypadku pizzy), użyj menuItemOption. Wartość domyślna parametru Offer.eligibleQuantity to 0 bez górnego limitu.

Poniżej znajdziesz informacje o tym, które usługi Offer są używane w tagu MenuItem.

  • Wymagane Offer.sku
  • Wymagane Offer.price
  • Wymagane Offer.priceCurrency
  • Opcjonalny Offer.availabilityStarts
  • Opcjonalny Offer.availabilityEnds
  • Opcjonalny Offer.availableDay
  • Opcjonalny Offer.validFrom
  • Opcjonalny Offer.validThrough
  • Opcjonalny Offer.eligibleQuantity
  • Opcjonalny Offer.inventoryLevel
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.

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 MenuItemOption. Opisuje, kiedy i za jaką cenę ta opcja menu jest dostępna. Tylko jedna oferta powinna być ważna w danym momencie. Jeśli cena i dostępność zmieniają się w zależności od pory dnia, możesz mieć wiele ważnych ofert. Nie używaj Offer.eligibleQuantity. Pole MenuItemOption wzajemnie się wyklucza, więc parametr Offer.eligibleQuantity jest ignorowany, jeśli został podany.

Poniżej znajdziesz informacje o tym, które usługi Offer są używane w tagu MenuItemOption.

  • Wymagane Offer.sku
  • Wymagane Offer.price
  • Wymagane Offer.priceCurrency
  • Opcjonalny Offer.availabilityStarts
  • Opcjonalny Offer.availabilityEnds
  • Opcjonalny Offer.availableDay
  • Opcjonalny Offer.validFrom
  • Opcjonalny Offer.validThrough
  • Opcjonalny Offer.eligibleQuantity
  • Opcjonalny Offer.inventoryLevel
menuAddOn Array of AddOnMenuSection 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:PackagingDetailsDodaj 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 --
          ]
        }
      ]
    }
  ]
}

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 Offer.availabilityStarts i Offer.availabilityEnds, aby wskazać przedział czasu, w którym zasób MenuSection jest wyświetlany. Nie używaj właściwości Offer.eligibleQuantity.

Na tej liście możesz zobaczyć, które właściwości Offer są używane w MenuSection:

  • Opcjonalny Offer.availabilityStarts
  • Opcjonalny Offer.availabilityEnds
  • Opcjonalny Offer.availableDay
  • Opcjonalny Offer.validFrom
  • Opcjonalny Offer.validThrough
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 Offer. Wartości sku odwołują się do płatności i prześlij jako offerId w lineitem.

Ta właściwość jest używana tylko w tych typach ofert:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Nie jest używana w tych typach ofert:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Nie jest używana w tych typach ofert:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • „Monday”
  • "Wtorek"
  • „Środa”
  • „Czwartek”
  • „Piątek”
  • „Sobota”
  • "Niedziela"

Jeśli masz różną dostępność w różnych dniach tygodnia, użyj więcej niż 1 obiektu Offer, jak pokazano w przykładach poniżej.

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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

Ta właściwość nie jest używana w tych typach ofert:

  • Service.Offer
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 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.

Tej usługi można używać w tych typach ofert:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • AddOnMenuSection.Offer
  • MenuSection.Offer

Ta właściwość nie jest używana w poniższych typach ofert.

  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuOption.Offer

Ta właściwość nie jest używana w poniższych typach ofert.

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Ta właściwość nie jest używana w podanych niżej typach.

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
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:

  • AddOnMenuItem.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer

Ta właściwość nie jest używana w tych typach ofert:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceSpecification Tablica DeliveryChargeSpecification lub tablica PaymentChargeSpecification Opcjonalnie

Jeśli jest używany w polu Service.Offer, wskazuje szczegóły ceny dostawy. Jeśli dostępnych jest wiele obiektów DeliveryChargeSpecification, stosowany jest najbardziej szczegółowy z nich. Aby uniknąć niejasności, używaj wzajemnie wykluczających się obiektów DeliveryChargeSpecification.

Tej usługi można używać w tych typach ofert:

  • Service.Offer

Ta właściwość nie jest używana w tych typach ofert:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuOption.Offer
  • MenuSection.Offer
offeredBy Tablica identyfikatorów Restaurant Opcjonalnie

Reprezentuje restauracje, w których można zjeść Offer.

Jeśli nie podasz żadnej wartości, ten parametr Offer będzie oferowany we wszystkich restauracjach.

Tej usługi można używać w tych typach ofert:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

Ta właściwość nie jest używana w tych typach ofert:

  • Service.Offer
applicableFulfillmentMethod Tablica tekstu Opcjonalnie

Reprezentuje typ usługi, przez którą jest realizowany ten Offer. Możliwe wartości to „DELIVERY” i „TakeOUT”.

Jeśli nie podasz żadnej wartości, ten Offer zostanie zrealizowany zarówno z dostawą, jak i na wynos.

Tej usługi można używać w tych typach ofert:

  • AddOnMenuItem.Offer
  • AddOnMenuSection.Offer
  • MenuItem.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer

Ta właściwość nie jest używana w tych typach ofert:

  • Service.Offer
@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 i closes są opcjonalne, ale zdecydowanie zalecane, ponieważ informują o możliwości składania zamówień. Sprawdzoną metodą definiowania dostępnych godzin jest dodanie tablicy deliveryHours zawierającej ServiceDeliveryHoursSpecification z właściwościami opens i closes. Następnie możesz dołączyć do obiektu deliveryHours obiekt AdvanceServiceDeliveryHoursSpecification z jego własnymi właściwościami opens i closes, jeśli chcesz zaoferować krótszy okres składania zamówień z wyprzedzeniem.
  • Jeśli opens i closes 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 ani closes. Jeśli podasz strefę czasową, Google zignoruje tę informację.
  • Jeśli nazwy opens i closes 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, OpeningHoursSpecification będzie stosowany do wszystkich dni.

opens Time Opcjonalnie

Gdy ta właściwość jest używana w specyfikacji Restaurant, wskazuje godziny otwarcia restauracji w dane dni tygodnia. Na przykład godzina 6:30 jest podana jako „T06:30:00”.

Jeśli jest używany w specyfikacji Service, wskazuje konkretną porę dnia, od której można składać zamówienia użytkowników. Określa godzinę otwarcia systemu online i umożliwia użytkownikom składanie zamówień. W tych godzinach otwarcia/zamknięcia systemu online możesz użyć właściwości deliveryHours do określenia godzin otwarcia, w których użytkownicy mogą zamawiać dostawy specjalne.

Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości opens. Jeśli określisz strefę czasową, Google zignoruje tę informację.

Więcej informacji znajdziesz w artykule o formatach daty i godziny.

closes Time Opcjonalnie

Gdy ta właściwość jest używana w specyfikacji Service, wskazuje konkretną porę dnia, po której nie można składać zamówień użytkowników. Określa czas zamknięcia systemu online i umożliwia użytkownikom składanie zamówień. W tych godzinach otwarcia/zamknięcia systemu online możesz użyć właściwości deliveryHours do określenia godzin otwarcia, w których użytkownicy mogą zamawiać dostawy specjalne.

Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości closes. Jeśli określisz strefę czasową, Google zignoruje tę informację.

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 Restaurant, wskazuje datę, kiedy obowiązują godziny otwarcia restauracji określone przez opens i closes.

Jeśli na przykład podane godziny dotyczą całego roku 2017, ustaw validFrom na „2017-01-01T00:00:00-07:00”, a dla validThrough na „2017-12-31T23:59:59-07:00”.

Jeśli jest używany w specyfikacji Service, validFrom wskazuje datę początkową, od której można składać zamówienia użytkowników.

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 Restaurant, data, po której godziny otwarcia określone w polach opens i closes są nieprawidłowe.

Jeśli na przykład podane godziny dotyczą całego roku 2017, ustaw validFrom na „2017-01-01T00:00:00-07:00”, a dla validThrough na „2017-12-31T23:59:59-07:00”.

Jeśli jest używany w specyfikacji Service, atrybut validThrough wskazuje datę końcową, po której nie można składać zamówień użytkowników.

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 validThrough jest wyjątkowy. Jeśli na przykład ta godzina zostanie ustawiona na 18:00, będzie obowiązywać do 17:59:59.

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 opens i closes są ustawione i są równe;

  • ServiceDeliveryHoursSpecification: w ramach godzin otwarcia możesz ustawić godziny otwarcia i zamknięcia, w których użytkownicy mogą składać zamówienia w najkrótszym czasie.
  • AdvanceServiceDeliveryHoursSpecification: w ramach godzin otwarcia możesz ustawić godziny otwarcia i zamknięcia, w których użytkownicy mogą składać zamówienia z wyprzedzeniem.

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 MenuItem:

  • „SIZE”: rozmiar MenuItem. na przykład mały, średni lub duży.
  • „OPTION”: dowolna wersja inna niż rozmiar (np. danie podawane w formie sałatki lub kanapki). Jeśli nie możesz odróżnić „SIZE” od „OPTION”, użyj opcji „OPTION”.

Prawidłowe nazwy używane w AddOnMenuItem:

  • „APPLICABLE_ITEM_OPTION”: opcja dodatku, która ma zastosowanie tylko wtedy, gdy jest używana razem z elementem MenuItem z odpowiednimi wartościami „SIZE/OPTION”.
  • „PIZZA_SIDE”: ten dodatek obowiązuje tylko w przypadku pizzy. Można go dodać tylko do porcji lub całej pizzy (np. z grzybami po lewej lub prawej stronie albo w całości).
  • „SIZE”: opcja pozwalająca określić rozmiar dodatku (np. duże frytki jako dodatek do zestawu posiłków).
  • „OPTION”: dowolna odmiana poza rozmiarem. Jeśli nie możesz odróżnić „SIZE” od „OPTION”, użyj opcji „OPTION”.
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:

  • „PIZZA_SIDE”: w przypadku pizzy odpowiednią wartością powinna być „PIZZA_SIDE_LEFT”, „PIZZA_SIDE_RIGHT” lub „PIZZA_SIDE_WHOLE”.
  • „APPLICABLE_ITEM_OPTION”: ta wartość powinna znajdować się w jednej z opcji „OPTION/SIZE” elementu nadrzędnego MenuItem elementu menuItemOptions.

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 "additionalProperty": [{"name": "imprint", "value": "first row\nsecondrow\n"},]

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 odpowiedniego MenuItem lub MenuItemOption.

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.

  • Service: użyj tego typu w przypadku wszystkich aktywnych plików danych usługi.
  • DisabledService: używaj tego typu tylko wtedy, gdy musisz wyłączyć encję usługi z powodu nieoczekiwanego zdarzenia i nie wiesz, kiedy usługa zostanie ponownie uruchomiona.
@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 OpeningHoursSpecification lub czasy realizacji. Zwykle używasz tego pola do definiowania świąt i innych rodzajów tymczasowych przerw w działalności lub zmian godzin pracy.

Określ specjalny zakres dat za pomocą właściwości validFrom i validThrough. Określając te właściwości, musisz podać godzinę i strefę czasową.

offers Tablica Offer Warunkowy

Szczegółowe informacje o ofercie dostawy do określonej restauracji. To pole jest domyślnie opcjonalne, ale wymagane, jeśli serviceType ma wartość „DOSTAWA”.

Właściwość Offer.priceSpecification jest opcjonalna w usłudze Service. Nie są tu używane żadne inne właściwości Offer.

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 Menu i OfferCatalog. Na przykład:

"hasOfferCatalog": {
"@type": ["Menu", "OfferCatalog"],
"@id": "https://www.provider.com/restaurant/menu/1"
}
additionalProperty Tablica {name, value} Opcjonalnie

Opcjonalne informacje o konfiguracji usługi. Elementy powinny być obiektami, których klucz name odpowiada nazwie opcjonalnego pola. Klucz value określa kontekstową wartość pola.

Więcej informacji o konkretnych nazwach i wartościach znajdziesz w dokumentacji ServingConfig.

"additionalProperty": [{
  "name": "disableOrderInstructions",
  "value": false
}, {
  "name": "disableMenuItemSpecialInstructions",
  "value": false
}, {
  "name": "disableTipWidget",
  "value": false
}, {
  "name": "disablePromoWidget",
  "value": false
}, {
  "name": "menuItemSpecialInstructionsMaxLength",
  "value": 256
}, {
  "name": "orderInstructionsMaxLength",
  "value": 256
}]
potentialAction URL Opcjonalnie

Zawiera adres URL usługi dostawy lub 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 i closes są opcjonalne w przypadku właściwości ServiceDeliveryHoursSpecification, 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 ani closes. Jeśli podasz strefę czasową, Google zignoruje ją.
  • Jeśli wartości opens i closes nie są wyraźnie określone, zakładamy, że funkcja Jak najszybciej jest dostępna przez cały czas.
  • Jeśli wartości opens i closes 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 validThrough jest wyjątkowy. Jeśli np. godzina zostanie ustawiona na 18:00, będzie ona poprawna do 17:59:59.

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 opens. Jeśli określisz strefę czasową, Google zignoruje tę informację.

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 closes jest wyjątkowy. Jeśli więc ustawisz godziny otwarcia/zamknięcia tego ServiceDeliveryHoursSpecification na 10:00 i 16:00, ostatnie zamówienie będzie miało miejsce na 15:59:59.

Czas świadczenia usługi musi być określony w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości closes. Jeśli określisz strefę czasową, Google zignoruje tę informację.

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:

  • „Monday”
  • "Wtorek"
  • „Środa”
  • „Czwartek”
  • „Piątek”
  • „Sobota”
  • "Niedziela"

Jeśli nie wskażesz żadnego dnia tygodnia, ServiceDeliveryHoursSpecification będzie stosowany do wszystkich dni.

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