Schemat zasobów reklamowych w wersji 1

Pliki danych katalogu produktów spożywczych są oparte na elementach schema.org DataFeed. Plik danych katalogu żywności zawiera informacje o lokalizacji restauracji, takie jak adres, menu i lokalizacja, a także informacje o usługach restauracji, takie jak opłaty za dostawę, obszary dostawy i inne elementy wymienione poniżej.

Element DataFeed zawiera zbiór elementów, z których każdy reprezentuje pojedynczy element wyrażony w języku schema.org. Aby opublikować wszystkie uporządkowane dane w formacie JSON-LD, możesz użyć typu DataFeed.

Informacje o korzystaniu z tej specyfikacji na potrzeby tworzenia plików danych znajdziesz w artykule Omówienie integracji z asortymentem.

Formaty daty i godziny

DateTime opiera się na typie schema.org i, o ile nie określono inaczej, musi być zgodny z formatem ISO 8601 oraz zawierać datę, godzinę i strefę czasową. Użyj tej składni dla atrybutu DateTime:

// DateTime format:
YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]

Na przykład:

2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z  // UTC time zone. The optional "Z" suffix represents the UTC time zone.

Time to czas lokalny w danej restauracji lub strefie czasowej lokalizacji usługi. Jest on również oparty na typie schema.org i musi być zgodny z formatem ISO 8601. Czas ma taką składnię:

// Time format:
THH:MM:SS

Na przykład:

T08:08:00 // 8:08 AM

Pamiętaj o tych kwestiach, gdy podajesz wartość DateTime lub Time:

  • Prefiks „T” przed czasem jest częścią formatu i jest wymagany.
  • Musisz określić strefę czasową dla DATETIME. Nie jest to wymagane w przypadku TIME.
  • Czas musi być podany w lokalnej strefie czasowej restauracji lub usługi.

Koperta

Kod początkowy w pliku danych katalogu produktów spożywczych powinien zawierać sekcję „envelope”.

„Otoczka” to struktura najwyższego poziomu każdego pliku danych i musi być elementem DataFeed z tymi właściwościami:

Właściwość Typ Konieczność Opis
@context URL Wymagane Używany kontekst, zwykle „http://schema.googleapis.com”.
@type Tekst Wymagane Zawsze jest to „DataFeed”.
dateModified DateTime Wymagane

Ostatnia modyfikacja DateTime pliku danych w formacie ISO 8601.

Data i godzina w formacie ISO_OFFSET_DATE_TIME, w której zostały zmodyfikowane elementy w tym pliku danych. W przypadku braku tego pola przyjmuje się, że czas aktualizacji to czas, w którym wiadomość push została odebrana (lub indeksowana) na serwerach Google.

Zdecydowanie zalecamy wdrożenie tej funkcji, jeśli korzystasz zarówno z push, jak i przeszukiwania. Sygnatura czasowa powinna być określona ze strefą czasową i dokładnością do milisekund, na przykład „2016-12-28T06:30:00:123-07:00”.

W plikach danych zbiorczych wersja elementu jest określana na podstawie pola dateModified w kopercie pliku danych.

dataFeedElement Tablica Menu lub Restaurantlub Service Wymagane Co najmniej 1 element w tym pliku danych. Więcej informacji znajdziesz poniżej.

Przykład kopert:

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

W tej tabeli opisujemy właściwości typu AdditiveDetails:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „AdditiveDetails”.
additiveName Tekst Opcjonalnie Nazwa dodatku.
additiveLevelOfContainment Tekst Opcjonalnie Kod kontenera na podstawie gs1:LevelOfContainmentCode. na przykład http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM lub http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN.

Ten przykład pokazuje użycie typu AdditiveDetails:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/8",
  "name": "Energy Drink",
  "description": "A 0.25l can of energy drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-energy-drink",
    "price": "3.49",
    "priceCurrency": "USD"
  },
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AdditiveDetails",
      "additiveName": "phosphate",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

AddOnMenuItem

Produkt spożywczy lub napój wymieniony w dodatkowym menu MenuItem.

W tabeli poniżej podano właściwości typu AddOnMenuItem:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „AddOnMenuItem”.
@id URL Wymagane Unikalny identyfikator elementu menu dodatku.
name Tekst Wymagane Tekst identyfikujący pozycję menu AddOnMenuItem podczas przeglądania menu przez użytkownika.
description Tekst Opcjonalnie Opis pozycji menu dodatku.
image URL Opcjonalnie

Obraz elementu menu dodatku, który jest zgodny z tymi wytycznymi:

  • 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 1 oferta dotycząca tego menu dodatkowych opcji;

Określa, kiedy i za jaką cenę jest dostępne to menu dodatków. W danym momencie powinna być ważna tylko jedna oferta. Możesz mieć wiele ważnych ofert, jeśli cena lub dostępność mogą się zmieniać w zależności od pory dnia. Jeśli dodatek lub produkt różni się atrybutem podstawowym lub wersją samego dodatku (np. frytki małe, średnie i duże jako dodatek), użyj właściwości hasMenuItemOption.

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

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

  • Wymagane Offer.sku
  • Wymagane Offer.price
  • Wymagane Offer.priceCurrency
  • Offer.availabilityStarts opcjonalny
  • Offer.availabilityEnds opcjonalny
  • Offer.availableDay opcjonalny
  • Offer.validFrom opcjonalny
  • Offer.validThrough opcjonalny
  • Offer.eligibleQuantity opcjonalny
  • Offer.inventoryLevel opcjonalny
hasMenuItemOptions Tablica MenuItemOption Wymagana*

Tablica podstawowych atrybutów opisujących wersję dodatku (np. małe, średnie i duże frytki jako dodatek) dla tego dodatku do menu. Użyj opcji, aby określić różne wersje dostępne dla tego elementu menu dodatku. Może się tak zdarzyć w 2 sytuacjach:

  • Wersja podstawowa dotyczy samego dodatku (np. frytki małe, średnie i duże jako dodatek).
  • Podstawowa wersja 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 opisanymi ograniczeniami żywieniowymi (np. „Dieta bezglutenowa” lub „Dieta wegańska”). Poniżej znajduje się wyliczona lista możliwych wartości.
nutrition NutritionInformation Opcjonalnie informacje o wartościach odżywczych potrawy, zwłaszcza o jej kaloryczności;
menuAddOn Tablica AddOnMenuSection Opcjonalnie AddOnMenuItem może zawierać sekcję menu składającą się z dozwolonych elementów, które można dodać jako dodatek.

Poniższy przykład pokazuje AddOnMenuItem:

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}
{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small-pepperoni-pizza",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large-pepperoni-pizza",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ],
  "menuAddOn": [
    {
      "@type": "AddOnMenuSection",
      "name": "Choice of toppings",
      "@id": "https://www.example.com/1089/addon/1",
      "hasMenuItem": [
        {
          "@type": "AddOnMenuItem",
          "@id": "https://www.example.com/1089/addon/1/a",
          "name": "Shrimp",
          "hasMenuItemOptions": [
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],
              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-small",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-left-large",
                "price": "2.00",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Small" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-small",
                "price": "1.50",
                "priceCurrency": "USD"
              }
            },
            {
              "@type": "MenuItemOption",
              "value": [
                {
                  "@type": "PropertyValue",
                  "name": "PIZZA_SIDE",
                  "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side.
                },
                {
                  "@type": "PropertyValue",
                  "name": "APPLICABLE_ITEM_OPTION",
                  "value": "Large" // Value should be same as mentioned in item's options.
                }
              ],

              "offers": {
                "@type": "Offer",
                "sku": "offer-topping-shrimp-whole-large",
                "price": "2.50",
                "priceCurrency": "USD"
              }
            }
          ]
        }
      ]
    }
  ]
}

AddOnMenuSection

Podgrupa produktów spożywczych lub napojów jako dodatkowa sekcja menu dla pozycji menu.

W tabeli poniżej podano właściwości typu AddOnMenuSection:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „AddOnMenuSection”.
@id URL Wymagane Unikalny identyfikator sekcji menu.
name Tekst Wymagane Tekst, który może identyfikować sekcję AddOnMenuSection podczas przeglądania menu przez użytkownika.
description Tekst Opcjonalnie Opis sekcji menu.
eligibleQuantity QuantitativeValue Opcjonalnie Wskazuje liczbę elementów dozwolonych jako dodatków w tej sekcji menu. Za pomocą tego pola możesz ograniczyć liczbę dodatków, np. minimalną i maksymalną liczbę dodatków, które można wybrać do pizzy.
image URL Opcjonalnie Obraz sekcji menu.
hasMenuItem Tablica AddOnMenuItem Wymagana* Elementy menu dodatku zawarte w sekcji AddOnMenuSection.
offers Tablica Offer Opcjonalnie

Użyj atrybutów Offer.availabilityStarts i Offer.availabilityEnds, aby wskazać przedział czasu, w którym sekcja menu dodatku jest dostępna.

Poniższa lista pokazuje, które właściwości Offer są używane w sekcji AddOnMenuSection.

  • Offer.availabilityStarts opcjonalny
  • Offer.availabilityEnds opcjonalny
  • Offer.availableDay opcjonalny
  • Offer.validFrom opcjonalny
  • Offer.validThrough opcjonalny
hasMenuSection Tablica AddOnMenuSection Wymagana* logiczne utworzenie podgrup menu dodatku (np. kolacja, przystawki lub dania rybne).
defaultOption Tablica AddOnMenuItem Opcjonalnie

Elementy menu rozszerzenia, które mają być domyślnie wybrane dla użytkowników w AddOnMenuSection. Użytkownicy mogą zmienić ostateczne wybory. Jeśli nie określono właściwości defaultOption, żadna wartość AddOnMenuItem nie zostanie wstępnie wybrana.

W hasMenuItem obiektu AddOnMenuSection muszą istnieć obiekty AddOnMenuItem.

Liczba defaultOption nie może przekraczać maksymalnej wartości eligibleQuantity AddOnMenuSection.

numberOfFreeAddOns Liczba Opcjonalnie Wskazuje liczbę dodatków, które użytkownik może wybrać bezpłatnie.

Przykłady z użyciem obiektów AddOnMenuSection:

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}
"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}

Produkt „Cheese Sandwich” ma opcję „Choice of Cheese” (wybór sera)AddOnMenuSection, w której domyślnie wybrane są „Swiss” (szwajcarski) i „Mozzarella”.

{
  "@type": "AddOnMenuSection",
  "@id": "https://www.example.com/1089/addon/1",
  "name": "AddOnCheese",
  "defaultOption": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a"
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b"
    }
  ],
  "hasMenuItem": [
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/a",
      "name": "Swiss",
      "offers": {
        "@type": "Offer",
        "sku": "offer-swiss",
        "price": "2.99",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "AddOnMenuItem",
      "@id": "https://www.example.com/1089/addon/b",
      "name": "Mozzarella",
      "offers": {
        "@type": "Offer",
        "sku": "offer-mozzarella",
        "price": "1.99",
        "priceCurrency": "USD"
      }
    }
  ]
}

AdvanceServiceDeliveryHoursSpecification

Określa godziny realizacji zamówień z dostawą i na wynos.

Zazwyczaj wartość opens jest mniejsza niż wartość closes. W przypadku właściwości opens i closes obowiązują te wytyczne:

  • Właściwości openscloses są opcjonalne w przypadku typu AdvanceServiceDeliveryHoursSpecification, ale zdecydowanie zalecamy ich uwzględnienie.
  • Czas musi być podany w czasie lokalnym usługi. Nie podawaj strefy czasowej w wartości atrybutu opens ani closes. Określone strefy czasowe są ignorowane.
  • Jeśli właściwości opens i closes nie są wyraźnie określone, zakładamy, że zamówienia z wyprzedzeniem są dostępne przez cały czas.
  • Jeśli wartości openscloses są takie same, przyjmujemy, że zamówienie z wyprzedzeniem jest niedostępne.
  • Jeśli opens jest większa niż closes, godzina zamknięcia jest interpretowana jako godzina następnego dnia. Jeśli na przykład godzina otwarcia to 1 stycznia o 17:00, a godzina zamknięcia to 2 stycznia o 2:00, restauracja jest interpretowana jako zamknięta 2 stycznia o 2:00.
  • opens i closes odnoszą się do przyszłego przedziału czasowego. closes jest wartością wykluczającą. Jeśli na przykład opens to 10:00, a closes to 16:00, a serviceTimeInterval to 15 minut, pierwszy przedział czasowy rozpoczyna się o 10:00, a ostatni – o 15:45.

W tej tabeli opisujemy właściwości typu AdvanceServiceDeliveryHoursSpecification:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „AdvanceServiceDeliveryHoursSpecification”.
validFrom DateTime Warunkowy

Data, od której można realizować zamówienia wstępne użytkowników. Przykład: „2017-05-01T00:00:00-07:00”.

Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest ona ważna codziennie. Właściwości validFromvalidThrough muszą być albo nieobecne, albo obecne razem.

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

Więcej informacji znajdziesz w artykule Formaty daty i czasu.

validThrough DateTime Opcjonalnie

Data zakończenia, po której zamówienia wstępne użytkowników nie będą już realizowane. Przykład: „2018-12-01T00:00:00-07:00”.

Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest ona ważna codziennie. Właściwości validFromvalidThrough muszą być nieobecne lub obecne razem.

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

Czas w miejscowości validThrough nie należy do zakresu. Jeśli na przykład ustawisz godzinę 18:00, będzie ona obowiązywać do 18:59:59.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

opens Time Opcjonalnie

Dotyczy slotów na wynos lub dostawę.

Określona pora dnia, od której można realizować zamówienia wstępne użytkowników. Na przykład 6:30 rano to „T06:30:00”.

Czas musi być podany w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości opens. Jeśli określona jest strefa czasowa, Google ignoruje te informacje.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

closes Time Opcjonalnie

Dotyczy slotów na wynos lub dostawę.

Czas, po którym zamówienia wstępne użytkowników nie mogą być realizowane. Na przykład 21:00 godz. jest podawane jako „T21:00:00”. closes> jest wyłączne, więc ustawienie go na 21:00 z serviceTimeInterval 15-minutowym interwałem oznacza, że ostatni dostępny przedział czasowy rozpoczyna się o 20:45.

Czas musi być podany w czasie lokalnym. Nie uwzględniaj strefy czasowej w wartości closes. Jeśli strefa czasowa jest określona, Google zignoruje te informacje.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

dayOfWeek Tablica DayOfWeek Opcjonalnie

Dni tygodnia, w których dostępne są godziny dostawy z wyprzedzeniem. Prawidłowe wartości:

  • „Monday”
  • „Tuesday” (wtorek)
  • „Środa”
  • „Czwartek”
  • „piątek”
  • „Sobota”
  • „Sunday”

Jeśli nie określisz żadnych dni tygodnia, opcja AdvanceServiceDeliveryHoursSpecification będzie obowiązywać we wszystkie dni.

serviceTimeInterval Duration Wymagane

Przedział między dwoma kolejnymi czasami obsługi.

Przykład: jeśli openscloses to odpowiednio 8 rano i 20 w nocy, a serviceTimeInterval to 15 minut, użytkownik może wybrać czas realizacji 8 rano, 8:15, 8:30, 8:45 itd. do 20 w nocy.

Wartość Duration musi być podana jako czas trwania zgodny z normą ISO 8601. Na przykład: "P15M" oznacza interwały 15-minutowe.

advanceBookingRequirement QuantitativeValue Wymagane

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

Wartości min i max właściwości QuantitativeValue muszą być ustawione na liczbę minut, a wartość właściwości unitCode na „MIN”.

Jeśli na przykład realizacja zamówienia z wyprzedzeniem zajmuje co najmniej 60 minut, a jego realizacja jest ograniczona do 2 dni, wartość min wynosi 60, a wartość max wynosi 2880.

Ten przykład pokazuje 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 opisujemy właściwości typu AllergenDetails:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „AllergenDetails”.
allergenType Tekst Opcjonalnie Typ alergenu według kodu gs1:AllergenTypeCode . Na przykład http://gs1.org/voc/AllergenTypeCode-PEANUTS.
allergenLevelOfContainmentCode Tekst Opcjonalnie Kod kontenera na podstawie gs1:LevelOfContainmentCode. Na przykład http://gs1.org/voc/LevelOfContainmentCode-CONTAINS, http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM lub http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN.

Ten przykład pokazuje użycie typu AllergenDetails:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/6",
  "name": "Strawberry joghurt drink",
  "description": "A 0.5l bottle of strawberry joghurt drink.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-joghurt-drink",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ]
},

DeliveryChargeSpecification

W tej tabeli opisujemy właściwości typu DeliveryChargeSpecification:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „DeliveryChargeSpecification”.
@id URL Opcjonalnie Identyfikator specyfikacji opłat za dostawę.
price Liczba Wymagane Łączny koszt dostawy w formie wartości czysto numerycznej. Do określenia waluty zamiast jej symbolu użyj właściwości priceCurrency. Na przykład „6.00” bez symbolu waluty.
priceCurrency Tekst Wymagane Trzyliterowy kod waluty w formacie ISO 4217. Na przykład „PLN”.
eligibleTransactionVolume PriceSpecification Opcjonalnie Wielkość transakcji wyrażona w jednostce pieniężnej, w której przypadku obowiązuje ta specyfikacja opłaty za dostawę. Możesz na przykład wskazać minimalną ilość do zakupu lub wyrazić, że dostawa jest dostępna bez dodatkowych opłat powyżej określonej liczby zamówień.
eligibleQuantity QuantitativeValue Opcjonalnie Interval and unit of measurement of ordering quantities for which the delivery charge is valid. Dzięki temu możesz na przykład określić, że określona opłata za transport jest ważna tylko w przypadku określonej ilości.
eligibleRegion Tablica GeoShape lub Place lub GeoCircle Opcjonalnie Miejsce lub kształt geometryczny/geospój dla regionu geograficznego, dla którego obowiązuje specyfikacja oferty lub specyfikacja opłat za dostawę. Używaj tej właściwości tylko wtedy, gdy opłaty za dostawę różnią się w zależności od regionu.
validFrom DateTime Opcjonalnie Data i godzina (wraz ze strefą czasową) obowiązywania wskazanej opłaty za dostawę. Na przykład „2017-05-01T06:30:00-07:00”. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.
validThrough DateTime Opcjonalnie Data i godzina (wraz ze strefą czasową), po której podany koszt dostawy nie jest ważny. Na przykład „2017-05-01T06:30:00-07:00”. Czas validThrough jest wyłączony: jeśli na przykład ustawisz go na 18:00, będzie on ważny do 17:59:59. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

Poniższe przykłady przedstawiają elementy DeliveryChargeSpecification:

"offers": {
  "@type":"Offer",
  "priceSpecification":[
    {
      "@type": "DeliveryChargeSpecification",
      "price": "5.0",
      "priceCurrency": "USD"
    }
  ]
}
"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]
"priceSpecification": [{
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1",
    "price": "8.00", // Charges $8 for area5
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00",
      "priceCurrency": "USD"
    },
    "eligibleRegion": [ // area5
      {
        "@type": "GeoCircle",
        "geoMidpoint": {
          "@type": "GeoCoordinates",
          "latitude": "37.7392607",
          "longitude": "-122.3895522"
        },
        "geoRadius": "4505"
      }
    ]
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee",
    "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge)
    "priceCurrency": "USD",
    "eligibleTransactionVolume": {
      "@type": "PriceSpecification",
      "minPrice": "20.00", // Minimum order price for delivery is $20
      "priceCurrency": "USD"
    }
  }
]

Oprócz "@type": ["DeliveryChargeSpecification"] obiekt można rozszerzyć o UnitPriceSpecification:

"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]

Rozszerzenie zawiera 2 dodatkowe właściwości wymagane do obliczania opłat za dostawę w procentach.

Właściwość Typ Konieczność Opis
referenceQuantity QuantitativeValue Wymagane Ilość referencyjna, której dotyczy określona cena. Na przykład:referenceQuantity o wartości 10 z unitCode „P1” daje 10% wartości zamówienia. Obecnie obsługiwana jest tylko wersja unitCode „P1”.
basePrice Liczba Opcjonalnie Opłata podstawowa oprócz referenceQuantity. Na przykład referenceQuantity 10 z unitCode „P1” i basePrice 5 w USD daje 5 USD + 10% wartości zamówienia. Wartością domyślną jest 0.

Przykłady opłat za dostawę

Google umożliwia określenie różnych opłat dla użytkowników z wyprzedzeniem za pomocą Offer.PriceSpecification podmiotu świadczącego Usługę.

Pamiętaj, że usługa Zamów od początku do końca obsługuje obecnie tylko 1 DeliveryChargeSpecification. Połącz wszystkie typy opłat w jednym DeliveryChargeSpecification.

Aby dowiedzieć się, jak określić opłaty za dostawę na podstawie obszaru, odległości i wartości zamówienia, zapoznaj się z przykładami plików danych o usługach.

Jeśli nie ma opłaty, element Offer.PriceSpecification jest pomijany.

  • Przykład 1. Opłata za dostawę wynosi 5% podsumowania koszyka
  • Przykład 2. Opłata za dostawę wynosi 5 PLN
  • Przykład 3. Opłata za dostawę wynosi 5 PLN + 10% wartości podsumowania w koszyku
  • Przykład 4.Opłata za dostawę wynosi 5 PLN, a opłata za torbę – 0,1 PLN
  • Przykład 5. Opłata za dostawę wynosi 5%, a opłata za wygodę 2% łącznej kwoty w koszyku
  • Przykład 6. Koszt dostawy to 5 PLN i 1 PLN za każdy dodatkowy 1 km odległości
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "10.00", // 10%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "5.00" // User always pays $5 in addition to 10%
  }
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.10" //$5 + $0.1
  }
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "7.00", // 5% + 2%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  },
]
priceSpecification [
  {
    "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"],
    "basePrice": 5.00, // User always pays $5
    "price": 1.00, // An additional $1.00 is added per 1km
    "priceCurrency": "USD",
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "unitCode": "MTR", // MTR == meter
      "value": "1000.0" // 1km
    }
  }
]

GeoCircle

W tej tabeli opisujemy właściwości typu GeoCircle:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „GeoCircle”.
geoMidpoint GeoCoordinates Wymagane Oznacza GeoCoordinates w środku GeoCircle.
geoRadius Liczba Wymagane Oznacza przybliżony promień (w metrach) GeoCircle.

Ten przykład przedstawia element GeoCircle:

Przykład
{
  "@type": "GeoCircle",
  "geoMidpoint": {
    "@type": "GeoCoordinates",
    "latitude": "37.7392607",
    "longitude": "-122.3895522"
  },
  "geoRadius": "4505"
}

GeoCoordinates

W tej tabeli opisujemy właściwości typu GeoCoordinates:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „GeoCoordinates”.
latitude Liczba Wymagane

Szerokość geograficzna w stopniach. Wartości muszą mieścić się w zakresie od -90 do 90 włącznie. Jeśli podana wartość jest mniejsza niż -90, jest ustawiana na -90. Jeśli jest większa niż 90, jest ustawiana na 90.

Dokładność powinna wynosić co najmniej 5 miejsc po przecinku.

longitude Liczba Wymagane

Długość geograficzna w stopniach. Wartości spoza zakresu od -180 do 180 są zawijane, aby mieściły się w tym zakresie. Na przykład wartość -190 jest zamieniana na 170. Wartość 190 jest zamieniana na -170. Odzwierciedla to fakt, że długości geograficzne okaleczają kulę ziemską.

Dokładność powinna wynosić co najmniej 5 miejsc po przecinku.

Ten przykład przedstawia element GeoCoordinates:

Przykład
"geo": {
  "@type": "GeoCoordinates",
  "latitude": "35.7392607",
  "longitude": "-120.3895522"
}

GeoShape

W tej tabeli opisujemy właściwości typu GeoShape:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „GeoShape”.
polygon Tablica tekstowa Wymagane

wielokąt lub wielokąt złożony wyrażony jako ciąg co najmniej 3 punktów oddzielonych spacjami. Pierwszy i ostatni punkt powinny być takie same, ale nie jest to wymagane.

Każdy punkt w wieloboku lub wielokącie jest definiowany przez współrzędną szerokości geograficznej, a następnie przez współrzędną długości geograficznej. Musisz też określić punkty w kierunku przeciwnym do ruchu wskazówek zegara.

W większości przypadków będzie to pojedynczy wielokąt. W przypadku bardziej złożonych zastosowań zapoznaj się z dokumentacją obszaru dostawy.

Poniższe przykłady przedstawiają elementy GeoShape:

{
  "@type": "GeoShape", // area4
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619"
},
{
  "@type": "GeoShape", // A service area with a hole.
  // Specify latitude first (i.e., lat long lat long ...)
  "polygon": [ 37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058,
               37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729]
},
{
  "@type": "Service",
  "@id": "http://www.provider.com/service/1",
  "areaServed": [
    {
      "@type": "GeoShape",  // Richmond District delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474"
    },
    {
      "@type": "GeoShape",  // Haight-Ashbury delivery area.
      // Specify latitude first (i.e., lat long lat long ...)
      "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417"
    }  ],
...
},

W tabeli poniżej podano właściwości typu Menu:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „Menu”.
@id URL Wymagane Unikalny identyfikator menu.
name Tekst Opcjonalnie Tekst, który może identyfikować Menu podczas przeglądania menu przez użytkownika.
description Tekst Opcjonalnie Opis menu.
disclaimer MenuDisclaimer Opcjonalnie Wyłączenie odpowiedzialności dotyczące menu. Mogą to być na przykład informacje o wartościach odżywczych i alergenach.
hasMenuSection Pojedynczy obiekt lub tablica elementów MenuSection Opcjonalnie logiczne uporządkowanie menu w podgrupy (np. kolacja, przystawki lub dania rybne).
hasMenuItem Pojedynczy obiekt lub tablica elementów MenuItem Opcjonalnie Obiekty MenuItem zawarte w Menu, zazwyczaj gdy Menu nie jest podzielony według atrybutu MenuSections.
inLanguage Tekst Opcjonalnie Język treści menu podany jako kod języka według standardu IETF BCP 47. Przykład: „pl-PL”.

Przykłady poniżej pokazują użycie typu Menu:

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "hasMenuSection": {
    "@type": "MenuSection",
    "@id": "http://www.provider.com/somerestaurant/menusection/1",
    "name": "Tacos",
    "description": "Tacos inspired by India cuisine.",
    "offers": {
      "@type": "Offer",
      "availabilityStarts": "T08:00:00", // Starts at 8:00AM
      "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM
    },
    "hasMenuItem": {
      "@type": "MenuItem",
      "@id": "http://www.provider.com/somerestaurant/menuitem/1",
      "name": "Aloo Gobi Taco",
      "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.",
      "offers": {
        "@type": "Offer",
        "sku": "offer-aloo-gobi-taco",
        "price": "3.50",
        "priceCurrency": "USD"
      },
      "nutrition": {
        "@type": "NutritionInformation",
        "calories": "170 Cal",
        "fatContent": "3 g",
        "fiberContent": "2 g",
        "proteinContent": "4 g"
      },
      "suitableForDiet": "http://schema.org/GlutenFreeDiet"
    }
  },
  "inLanguage": "English"
}

W tym przykładzie hasMenuItem jest tablicą.

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Main",
      "description": "Main course",
      "image": "http://www.provider.com/somerestaurant/main_dishes.jpg",
      "hasMenuItem": [
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/1",
          "name": "Pizza",
          "description": "Pizza",
          "offers": {
            "@type": "Offer",
            "sku": "offer-pizza",
            "price": "7.49",
            "priceCurrency": "USD",
            "availabilityStarts": "T08:00:00", // Starts at 8:00AM
            "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
          }
        },
        {
          "@type": "MenuItem",
          "@id": "http://www.provider.com/somerestaurant/menuitem/2",
          "name": "Pasta",
          "description": "Pasta",
          "offers": [
            {
              "@type": "Offer",
              "sku": "offer-pasta-lunch",
              "price": "7.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T08:00:00", // Starts at 8:00AM
              "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM
            },
            {
              "@type": "Offer",
              "sku": "offer-pasta-dinner",
              "price": "10.49",
              "priceCurrency": "USD",
              "availabilityStarts": "T18:00:00", // Starts at 6:00PM
              "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM
            }
          ]
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/2",
      "name": "Soups & Salads",
      "description": "Salads and a few choices of soup",
      "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/3",
        "name": "Pea Soup",
        "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-pea-soup",
          "price": "3.49",
          "priceCurrency": "USD"
        },
        "suitableForDiet": "http://schema.org/GlutenFreeDiet"
      }
    }
  ]
}

W tym przykładzie hasMenuSection jest tablicą.

{
  "@type": "Menu",
  "@id": "http://www.provider.com/somerestaurant/menu/1",
  "name": "Dine-In Menu",
  "description": "Menu for in-restaurant dining only.",
  "hasMenuSection": [
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/1",
      "name": "Dinner",
      "description": "Dinner dishes",
      "hasMenuSection": [
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/2",
          "name": "Starters",
          "description": "Appetizers and such",
          "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/1",
            "name": "Potato Skins",
            "description": "Small serving of stuffed potato skins.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-potato-skins",
              "price": "7.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/3",
          "name": "Soups & Salads",
          "description": "Salads and a few choices of soup",
          "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/2",
            "name": "Pea Soup",
            "description": "Creamy pea soup topped with melted cheese and sourdough croutons.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-pea-soup",
              "price": "3.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        },
        {
          "@type": "MenuSection",
          "@id": "http://www.provider.com/somerestaurant/menusection/4",
          "name": "Steak",
          "description": "Steak Dishes",
          "image": "https://steak.com/steak_dishes.jpg",
          "hasMenuItem": {
            "@type": "MenuItem",
            "@id": "http://www.provider.com/somerestaurant/menuitem/3",
            "name": "Sirloin",
            "description": "Sirloin steak dish.",
            "offers": {
              "@type": "Offer",
              "sku": "offer-sirloin-steak",
              "price": "15.49",
              "priceCurrency": "USD"
            },
            "suitableForDiet": "http://schema.org/GlutenFreeDiet"
          }
        }
      ]
    },
    {
      "@type": "MenuSection",
      "@id": "http://www.provider.com/somerestaurant/menusection/5",
      "name": "Desserts",
      "description": "Dessert dishes.",
      "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg",
      "hasMenuItem": {
        "@type": "MenuItem",
        "@id": "http://www.provider.com/somerestaurant/menuitem/4",
        "name": "Chocolate Pie",
        "description": "A slice of chocolate pie.",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chocolate-pie",
          "price": "3.49",
          "priceCurrency": "USD"
        }
      }
    }
  ]
}

Więcej przykładów elementów Menu znajdziesz w artykule Przykłady pliku danych restauracji i menu.

W tabeli poniżej podano właściwości typu MenuDisclaimer:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „MenuDisclaimer”.
@id URL Wymagane Unikalny identyfikator wyłączenia odpowiedzialności w menu.
text Tekst Wymagane Tekst wyłączenia odpowiedzialności. Na przykład: „Średnia dzienna dawka energii dla dorosłego to 8700 kJ”.
url URL Opcjonalnie Adres URL wskazujący stronę z dodatkowymi informacjami o wyłączeniu odpowiedzialności.

Ten przykład pokazuje użycie typu MenuDisclaimer:

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 menu reprezentująca element w menu, W tabeli poniżej znajdziesz właściwości typu MenuItem:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „MenuItem”.
@id URL Wymagane Unikalny identyfikator elementu menu.
name Tekst Wymagane Tekst, który może identyfikować MenuItem podczas przeglądania menu przez użytkownika.
description Tekst Opcjonalnie Opis pozycji menu.
image URL Opcjonalnie

Obraz pozycji z menu. Przestrzegaj tych wskazówek dotyczących obrazów:

  • 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 w sekcji menu, które można dodać jako dodatki do pozycji menu.
offers Tablica Offer Wymagana*

Jedna lub wiele ofert, które umożliwiają to MenuItem. Podaje, kiedy i za jaką cenę MenuItem jest dostępny. W danym momencie powinna być ważna tylko jedna oferta. Jeśli cena lub dostępność zmienia się w zależności od pory dnia, możesz podać kilka ofert. Jeśli produkt spożywczy różni się pod względem atrybutu podstawowego (na przykład rozmiar w przypadku pizzy), użyj atrybutu menuItemOption. Wartość domyślna dla parametru Offer.eligibleQuantity to minimum 0 bez górnego limitu.

Poniższa lista pokazuje, które właściwości Offer są używane w MenuItem.

  • Wymagane Offer.sku
  • Wymagane Offer.price
  • Wymagane Offer.priceCurrency
  • Offer.availabilityStarts opcjonalny
  • Offer.availabilityEnds opcjonalny
  • Offer.availableDay opcjonalny
  • Offer.validFrom opcjonalny
  • Offer.validThrough opcjonalny
  • Offer.eligibleQuantity opcjonalny
  • Offer.inventoryLevel opcjonalny
hasMenuItemOptions Tablica MenuItemOption Wymagane Lista opcji podstawowych/wariacji tego elementu menu. Opcje powinny służyć do określania różnych wersji podstawowych dostępnych dla produktu, na przykład małe, średnie i duże.
suitableForDiet Tablica RestrictedDiet Opcjonalnie Danie jest zgodne z opisanymi ograniczeniami dietetycznymi (np. „http://schema.org/GlutenFreeDiet” lub „http://schema.org/VeganDiet”). Jest to wyliczona lista możliwych wartości.
nutrition NutritionInformation Opcjonalnie informacje o wartościach odżywczych potrawy, w szczególności o kaloryczności;
hasAllergen AllergenDetails Opcjonalnie Alergeny w daniach na gs1:AllergenDetails. Aby używać tej usługi, dodaj kontekst GS1: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dodaj FoodBeverageTobaccoProduct do typu MenuItem.
additive Tablica AdditiveDetails Opcjonalnie Dodatki w potrawie na gs1:AdditiveDetails. Jest to wyliczona lista możliwych wartości. Aby użyć tej usługi: "@context": ["http://gs1.org/voc/", "http://schema.org"], dodaj kontekst gs1. Dodaj FoodBeverageTobaccoProduct do typu MenuItem.
packaging PackagingDetails Opcjonalnie informacje o opakowaniu i recyklingu tego MenuItema na podstawie gs1:PackagingDetails; Aby korzystać z tej usługi, dodaj kontekst GS1: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dodaj FoodBeverageTobaccoProduct do typu MenuItem.
.

Poniższe przykłady przedstawiają elementy MenuItem:

"hasMenuItem": {
  "@type": "MenuItem",
  "@id": "http://www.provider.com/bar/menuitem/1",
  "name": "Potato Skins",
  "description": "Small serving of stuffed potato skins.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-potato-skins",
    "price": "7.49",
    "priceCurrency": "USD"
  },
  "suitableForDiet": "http://schema.org/GlutenFreeDiet"
}
"hasMenuItem": [
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170067",
    "name": "Veg Grill Burrito",
    "offers": {
      "@type": "Offer",
      "sku": "offer-veg-grill-burrito",
      "price": "12.99",
      "priceCurrency": "USD"
    },
    "menuAddOn": {
      "@type": "AddOnMenuSection",
      "name": "Cheese",
      "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
      "eligibleQuantity":
        "@type": "QuantitativeValue",
        "minValue": 0,
        "maxValue": 2 // Maximum of 2 cheeses are allowed
      }
    }
  },
  {
    "@type": "MenuItem",
    "@id": "https://www.example.com/1089/product/170018",
    "name": "Chicken Taco",
    "offers": {
      "@type": "Offer",
      "sku": "offer-chicken-taco",
      "price": "6.99",
      "priceCurrency": "USD"
    }
  }
]
{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}
{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}
{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/9",
  "name": "Ice Coffee",
  "offers": {
    "@type": "Offer",
    "sku": "offer-ice-coffee",
    "price": "3.99",
    "priceCurrency": "USD"
  },
  "nutrition": {
    "@type": "NutritionInformation",
    "description": "Contains preservatives and artificial flavor"
  },
  "hasAllergen": [
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    },
    {
      "@type": "AllergenDetails",
      "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS",
      "allergenLevelOfContainmentCode":
        "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN"
    }
  ],
  "additive": [
    {
      "@type": "AdditiveDetails",
      "additiveName": "caffeine",
      "additiveLevelOfContainment":
        "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS"
    }
  ],
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.10",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
}

Więcej przykładów elementów MenuItem znajdziesz w artykule Przykłady pliku danych restauracji i menu.

Opcja reprezentująca wybory, które użytkownik musi dokonać przy wyborze dania lub zestawu. Użytkownik musi wybrać opcję, w przeciwnym razie zamówienie zostanie uznane za nieprawidłowe. Na przykład w przypadku pizzy możesz wybrać rozmiar mały, średni lub duży.

Przykładowe zastosowania MenuItemOption znajdziesz w przewodniku personalizacja za pomocą MenuItemOption.

W tabeli poniżej podano właściwości typu MenuItemOption:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „MenuItemOption”.
value PropertyValue Wymagane PropertyValue zawierający parę nazwa/wartość reprezentującą opcję.
offers Tablica Offer Wymagane

Co najmniej 1 oferta dotycząca tego MenuItemOption. Określa, kiedy i za jaką cenę dana pozycja menu jest dostępna. W danym momencie powinna być ważna tylko jedna oferta. Jeśli cena lub dostępność może się zmieniać w zależności od pory dnia, możesz mieć wiele prawidłowych ofert. Nie używaj Offer.eligibleQuantity. Wartości MenuItemOption są wzajemnie wykluczające się, więc jeśli podana jest wartość Offer.eligibleQuantity, wartość Offer.eligibleQuantity jest ignorowana.

Poniższa lista pokazuje, które właściwości Offer są używane w MenuItemOption.

  • Wymagane Offer.sku
  • Wymagane Offer.price
  • Wymagane Offer.priceCurrency
  • Offer.availabilityStarts opcjonalny
  • Offer.availabilityEnds opcjonalny
  • Offer.availableDay opcjonalny
  • Offer.validFrom opcjonalny
  • Offer.validThrough opcjonalny
  • Offer.eligibleQuantity opcjonalny
  • Offer.inventoryLevel opcjonalny
menuAddOn Array of AddOnMenuSection Opcjonalnie Sekcja menu z dozwolonymi elementami, które można dodać jako dodatek. Używaj tego tylko wtedy, gdy dodatki są przeznaczone do konkretnej opcji elementu menu. W przeciwnym razie dodaj dodatki za pomocą właściwości MenuItem.menuAddOn.
suitableForDiet Tablica RestrictedDiet Opcjonalnie Wyliczona lista, która wskazuje diety, w których to danie jest zgodne z opisanym ograniczeniem dietetycznym (np. „http://schema.org/GlutenFreeDiet” lub „http://schema.org/VeganDiet”).
nutrition NutritionInformation Opcjonalnie informacje o wartościach odżywczych potrawy, w szczególności o kaloryczności;
hasAllergen AllergenDetails Opcjonalnie Alergeny w daniach na gs1:AllergenDetails. Aby używać tej usługi, dodaj kontekst GS1: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dodaj FoodBeverageTobaccoProduct do typu MenuItemOption.
additive Tablica AdditiveDetails Opcjonalnie Dodatki w daniach na 1 gs1:AdditiveDetails. Jest to wyliczona lista możliwych wartości. Aby użyć tej usługi: "@context": ["http://gs1.org/voc/", "http://schema.org"], dodaj kontekst gs1. Dodaj FoodBeverageTobaccoProduct do typu MenuItemOption.
packaging PackagingDetails Opcjonalnie Informacje o opakowaniu i recyklingu tego MenuItema na podstawie: gs1:PackagingDetails Aby użyć tej właściwości, dodaj kontekst gs1: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dodaj FoodBeverageTobaccoProduct do typu MenuItemOption.

Ten przykład przedstawia elementy MenuItemOption:

{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Pepperoni Pizza",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Small"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-small",
        "price": "10.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Medium"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-medium",
        "price": "15.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "SIZE",
        "value": "Large"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-large",
        "price": "20.00",
        "priceCurrency": "USD"
      }
    }
  ]
}
{
  "@type": "MenuItem",
  "@id": "https://www.example.com/1089/product/170067",
  "name": "Meat Combo",
  "hasMenuItemOptions": [
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Plate",
        "offers": {
          "@type": "Offer",
          "sku": "offer-meat-combo-plate",
          "price": "12.00",
          "priceCurrency": "USD"
        },
        "menuAddOn": [
          {
            "@type": "AddOnMenuSection",
            "name": "Toppings for Plate",
            "@id": "https://www.example.com/1089/addon/1",
            "eligibleQuantity": {
              "@type": "QuantitativeValue",
              "minValue": 0,
              "maxValue": 3
            },
            "hasMenuItem": [
              {
                "@type": "AddOnMenuItem",
                "@id": "https://www.example.com/1089/addon/1/a",
                "name": "Hummus",
                "offers": {
                  "@type": "Offer",
                  "sku": "offer-meat-combo-topping-hummus",
                  "price": "1.00",
                  "priceCurrency": "USD"
                }
              }
              // -- Other Items --
            ]
          }
        ]
      }
    },
    {
      "@type": "MenuItemOption",
      "value": {
        "@type": "PropertyValue",
        "name": "OPTION",
        "value": "Sandwich"
      },
      "offers": {
        "@type": "Offer",
        "sku": "offer-meat-combo-sandwich",
        "price": "10.00",
        "priceCurrency": "USD"
      },
      "menuAddOn": [
        {
          "@type": "AddOnMenuSection",
          "name": "Toppings for Sandwich",
          "@id": "https://www.example.com/1089/addon/1",
          "eligibleQuantity": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2
          },
          "hasMenuItem": [
            {
              "@type": "AddOnMenuItem",
              "@id": "https://www.example.com/1089/addon/1/a",
              "name": "Hummus",
              "offers": {
                "@type": "Offer",
                "sku": "offer-meat-combo-topping-hummus",
                "price": "1.00",
                "priceCurrency": "USD"
              }
            }
            // -- Other Items --
          ]
        }
      ]
    }
  ]
}

Sekcja menu, która reprezentuje konkretną sekcję menu. W tabeli poniżej podano właściwości typu MenuSection:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „MenuSection”.
@id URL Wymagane Unikalny identyfikator sekcji menu.
name Tekst Wymagane Tekst, który może identyfikować MenuSection, gdy użytkownik przegląda menu.
description Tekst Opcjonalnie Opis sekcji menu.
hasMenuSection Tablica MenuSection Opcjonalnie Logiczna podgrupa MenuSection. Na przykład sekcja menu kolacji może zawierać kilka podsekcja menu, takich jak „Dania z drobiu” lub „Wegetariańskie”.
hasMenuItem Tablica MenuItem Opcjonalnie pozycje menu zawarte w MenuSection,
offers Tablica Offer Opcjonalnie

Użyj atrybutów Offer.availabilityStarts i Offer.availabilityEnds, aby wskazać przedział czasu, w którym wyświetlana jest ta MenuSection. Nie używaj Offer.eligibleQuantity.

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

  • Offer.availabilityStarts opcjonalny
  • Offer.availabilityEnds opcjonalny
  • Offer.availableDay opcjonalny
  • Offer.validFrom opcjonalny
  • Offer.validThrough opcjonalny
image URL Opcjonalnie Obraz sekcji menu.

Te przykłady przedstawiają elementy MenuSection:

{
  "@type": "MenuSection",
  "@id": "http://www.provider.com/bar/menusection/4",
  "name": "Steak",
  "description": "Steak Dishes",
  "image": "https://steak.com/steak_dishes.jpg",
  "hasMenuItem": {
    "@type": "MenuItem",
    "@id": "http://www.provider.com/bar/menuitem/3",
    "name": "Sirloin",
    "description": "Sirloin steak dish.",
    "offers": {
      "@type": "Offer",
      "sku": "offer-sirloin-steak",
      "price": "15.49",
      "priceCurrency": "USD"
    },
    "suitableForDiet": "http://schema.org/GlutenFreeDiet"
  }
}
"hasMenuSection": [
  {
    "@type": "MenuSection",
    "@id": "https://www.example.com/1089/categorization/25114480",
    "name": "Main Items",
    "hasMenuItem": [
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170067",
        "name": "Veg Grill Burrito",
        "offers": {
          "@type": "Offer",
          "sku": "offer-veg-grill-burrito",
          "price": "12.99",
          "priceCurrency": "USD"
        },
        "menuAddOn": {
          "@type": "AddOnMenuSection",
          "name": "Cheese",
          "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
          "eligibleQuantity":
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 2 // Maximum of 2 cheeses are allowed
          }
        }
      },
      {
        "@type": "MenuItem",
        "@id": "https://www.example.com/1089/product/170018",
        "name": "Chicken Taco",
        "offers": {
          "@type": "Offer",
          "sku": "offer-chicken-taco",
          "price": "6.99",
          "priceCurrency": "USD"
        }
      }
    ]
  },
  {
    "@type": "AddOnMenuSection",
    "@id": "https://www.example.com/1089/addon/1",
    "name": "AddOnCheese",
    "hasMenuItem": [
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/a",
        "name": "Swiss",
        "offers": {
          "@type": "Offer",
          "sku": "offer-swiss",
          "price": "2.99",
          "priceCurrency": "USD"
        }
      },
      {
        "@type": "AddOnMenuItem",
        "@id": "https://www.example.com/1089/addon/b",
        "name": "Mozarella",
        "offers": {
          "@type": "Offer",
          "sku": "offer-mozzarella",
          "price": "1.99",
          "priceCurrency": "USD"
        }
      }
    ]
  }
]

Więcej przykładów elementów MenuSection znajdziesz w artykule Przykłady pliku danych restauracji i menu.

NutritionInformation

W tej tabeli opisujemy właściwości typu NutritionInformation. W przypadku jednostek miary wielkość liter ma znaczenie. Na przykład „Cal” jest akceptowalny, ale „cal” już nie.

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „NutritionInformation”.
description Tekst Opcjonalnie informacje o wartościach odżywczych w formacie dowolnego tekstu; Na przykład „zawiera konserwanty”.
calories Tekst Opcjonalnie

Liczba kalorii w cal, kcal lub kJ, w następującym formacie:

number Cal_kcal_OR_kJ

Na przykład „240 kcal”.

carbohydrateContent Tekst Opcjonalnie

ilość węglowodanów, zwykle w g, w tym formacie:

number g_OR_mg

Na przykład „7 g”.

cholesterolContent Tekst Opcjonalnie

Ilość cholesterolu, zwykle w mg, w tym formacie:

number g_OR_mg

Na przykład „12 mg”.

fatContent Tekst Opcjonalnie

ilość tłuszczu, zwykle w g, w tym formacie:

number g_OR_mg

Na przykład „42 g”.

fiberContent Tekst Opcjonalnie

Liczba g lub mg błonnika w formacie:

number g_OR_mg
proteinContent Tekst Opcjonalnie

Liczba g lub mg białka w formacie:

number g_OR_mg
saturatedFatContent Tekst Opcjonalnie

liczba g lub mg tłuszczu nasyconego w formacie:

number g_OR_mg
servingSize Tekst Opcjonalnie Wielkość porcji w mL, L, g lub kg w ujęciu objętości lub masy.
sodiumContent Tekst Opcjonalnie

liczba mg lub g sodu w formacie:

number g_OR_mg
sugarContent Tekst Opcjonalnie

Liczba g lub mg cukru w formacie:

number g_OR_mg
transFatContent Tekst Opcjonalnie

Liczba g lub mg tłuszczów trans w formacie:

number g_OR_mg
unsaturatedFatContent Tekst Opcjonalnie

Ilość tłuszczów nienasyconych, zwykle w g, w tym formacie:

number g_OR_mg

Poniższe przykłady pokazują element NutritionInformation:

"nutrition": {
  "@type": "NutritionInformation",
  "calories": "170 Cal",
  "fatContent": "3 g",
  "fiberContent": "2 g",
  "proteinContent": "4 g"
},
{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/7",
  "name": "Peach Ice Tea",
  "description": "A 0.5l bottle of peach ice tea.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-peach-ice-tea",
    "price": "2.49",
    "priceCurrency": "USD"
  },
  "nutrition": {
              "@type": "NutritionInformation",
              "description": "Contains preservatives and artificial flavor"
  }
},

Oferta

Oferta na pozycję z menu. W tej tabeli opisujemy właściwości typu Offer:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Jest to zawsze „Oferta”.
sku Tekst Warunkowy

Unikalny identyfikator oferty. Może to być dowolna wartość tekstowa, która jest unikalna w Offer. Wartości sku są używane w procesie płatności i przesyłania jako offerId w polu 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. Przykładowo: „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 on używany w przypadku tych typów ofert:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
priceCurrency Tekst Warunkowy

Waluta (w 3-literowym formacie ISO 4217) ceny lub jej składnika, gdy jest ona dołączona do atrybutu PriceSpecification i jego podtypów.

Ta właściwość jest wymagana tylko w przypadku tych typów ofert:

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

Nie jest on używany w przypadku tych typów 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 na przykład naleśniki są podawane od godziny 7:00, wartość tego pola może wyglądać tak: „2017-05-01T07:00:00-07:00”. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.
availabilityEnds DateTime lub Time Opcjonalnie Data i godzina lub tylko godzina, kiedy oferta jest niedostępna. Tym razem jest to wykluczające się. Jeśli np. sprzedaż naleśników kończy się o 10:00, ostatni naleśnik może zostać podany o 9:59:59. Wartość tego pola może wyglądać tak: „2017-05-01T10:00:00-07:00”. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.
availableDay Tablica DayOfWeek Opcjonalnie

Dni tygodnia, w których ten produkt jest dostępny. Prawidłowe wartości to:

  • „Monday”
  • „Tuesday” (wtorek)
  • „Środa”
  • „Czwartek”
  • „piątek”
  • „Sobota”
  • „Sunday”

Jeśli w różnych dniach tygodnia masz różne terminy dostępności, użyj więcej niż jednego obiektu Offer, jak w przykładach poniżej.

validFrom DateTime Opcjonalnie

Data i godzina (wraz ze strefą czasową), w których obowiązuje podana cena. Na przykład pasta kosztuje 8 USD na obiad i 10 USD na kolację. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

Tej właściwości można używać w ramach tych typów ofert:

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

Ta właściwość nie jest używana w przypadku tych typów ofert:

  • Service.Offer
validThrough DateTime Opcjonalnie

Data i godzina (wraz ze strefą czasową), po której podany cen straci ważność. Na przykład pasta kosztuje 8 USD w godzinach obiadowych i 10 USD na kolację. Czas validThrough jest wyłączony: jeśli na przykład ustawisz go na 18:00, będzie on ważny do 17:59:59. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

Tej właściwości można używać w ramach tych typów ofert:

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

Ta właściwość nie jest używana w przypadku tych typów ofert:

  • Service.Offer
eligibleQuantity QuantitativeValue Opcjonalnie

Dozwolone ilości zamówienia dla tego produktu. Na przykład restauracja może wymagać zamówienia co najmniej 10 pizzy na potrzeby dostawy.

Ta wartość jest opcjonalna. Domyślnie nie ma maksymalnego limitu, ale restauracja może go określić. Minimalne limity mają zastosowanie tylko wtedy, gdy użytkownik wybierze element.

Właściwości tej można używać w ramach tych typów ofert:

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

Ta właściwość nie jest używana w przypadku tych typów ofert:

  • AddOnMenuSection.Offer
  • MenuSection.Offer
  • Service.Offer
aggregateRating AggregateRating Opcjonalnie

Ogólna ocena na podstawie zbioru opinii lub ocen produktu.

Tej właściwości można używać w ramach tych typów ofert:

  • AddOnMenuItem.Offer
  • MenuItem.Offer

Ta właściwość nie jest używana w przypadku tych typów.

  • AddOnMenuSection.Offer
  • MenuItemOption.Offer
  • MenuSection.Offer
  • Service.Offer
inventoryLevel QuantitativeValue Opcjonalnie

Bieżący przybliżony poziom zasobów reklamowych danego produktu lub produktów.

Właściwości tej można używać w ramach tych typów ofert:

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

Ta właściwość nie jest używana w przypadku tych typów ofert:

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

Gdy jest używany w elemencie Service.Offer, wskazuje szczegóły ceny dostawy. Jeśli pasuje kilka obiektów DeliveryChargeSpecification, zastosowany zostanie najbardziej szczegółowy z nich. Aby uniknąć niejednoznaczności, używaj wzajemnie wykluczających się obiektów DeliveryChargeSpecification.

Właściwości tej można używać w ramach tych typów ofert:

  • Service.Offer

Ta właściwość nie jest używana w przypadku tych typów ofert:

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

Reprezentuje restauracje, w których dostępna jest usługa Offer.

Jeśli nie podasz wartości, ta Offer będzie oferowana wszystkim restauracjom.

Tej właściwości można używać w ramach tych typów ofert:

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

Ta właściwość nie jest używana w przypadku tych typów ofert:

  • Service.Offer
applicableFulfillmentMethod Tablica tekstowa Opcjonalnie

Reprezentuje typ usługi, w ramach której jest realizowana Offer. Możliwe wartości to „DELIVERY” lub „TAKEOUT”.

Jeśli nie określisz tego parametru, Offer będzie realizowany zarówno w przypadku dostawy, jak i odbioru osobistego.

Właściwości tej można używać w ramach tych typów ofert:

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

Ta właściwość nie jest używana w przypadku tych typów ofert:

  • Service.Offer
@id URL Wycofano Unikalny identyfikator oferty. Od 25 kwietnia 2019 r. nie jest już obsługiwana. Zastąp ją opcją sku opisaną powyżej.

Poniższe przykłady przedstawiają elementy Offer:

Ten przykład pokazuje prostą ofertę:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD"
}

Przykładowa oferta pokazuje dostępność w godzinach 8:00–10:00 w weekendy:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",  // Only available from 8-9:59:59 AM
  "availabilityEnds": "T10:00:00-07:00",
  "availableDay": ["Saturday", "Sunday"]  // Only on weekends.
}

W tym przykładzie dostępność w poniedziałki, środy i piątki jest w godzinach 9:00–10:59:59, a we wtorki i czwartki w godzinach 8:00–11:59:59.

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/140/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T09:00:00-07:00",
  "availabilityEnds": "T11:00:00-07:00",
  "availableDay": ["Monday", "Wednesday", "Friday"]
}, {
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/141/offer",
  "price": "10",
  "priceCurrency": "USD",
  "availabilityStarts": "T08:00:00-07:00",
  "availabilityEnds": "T12:00:00-07:00",
  "availableDay": ["Tuesday", "Thursday"]
}

W poniższym przykładzie podana jest dopuszczalna ilość dodatku do menu, aby użytkownik mógł zamówić maksymalnie 2 porcje tego produktu:

{
  "@type": "AddOnMenuItem",
  "@id": "https://www.example.com/1089/addon/a",
  "name": "Ranch",
  "offers": {
    "@type": "Offer",
    "@id": "https://www.example.com/1089/addon/a/offer",
    "price": "2.99",
    "priceCurrency": "USD"
    "eligibleQuantity": {
         "@type": "QuantitativeValue",
         "maxValue": 2
     }
  }
}

Ten przykład pokazuje ofertę dostawy w określonej lokalizacji:

{
  "@type": "Offer",
  "@id": "https://www.provider.com/menu/74962/139/offer",
  "price": "10",
  "priceCurrency": "USD",
  "applicableFulfillmentMethods": ["DELIVERY"],
  "offeredBy": [
    {
      "@type": "Restaurant",
      "@id": "https://www.provider.com/location/1",
    }
  ]
}

OpeningHoursSpecification

Określa, kiedy można składać zamówienia. Wartość parametru opens jest zazwyczaj mniejsza od wartości parametru closes. W przypadku właściwości opens i closes obowiązują te wytyczne:

  • Parametry opens i closes są opcjonalne, ale zdecydowanie zalecane, aby określić, kiedy można składać zamówienia. Sprawdzoną metodą definiowania dostępnych godzin jest uwzględnienie tablicy deliveryHours zawierającej obiekt ServiceDeliveryHoursSpecification z właściwościami openscloses. Jeśli chcesz zaoferować krótsze okno na składanie zamówień z wyprzedzeniem, możesz uwzględnić obiekt AdvanceServiceDeliveryHoursSpecification w deliveryHours z własnymi właściwościami opens i closes.
  • Jeśli wartości opens i closes nie są wyraźnie określone, przyjmujemy, że usługa zamawiania jest dostępna codziennie o każdej porze dnia.
  • Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości opens ani closes. Jeśli podasz strefę czasową, Google zignoruje te informacje.
  • Jeśli wartości openscloses są takie same, zakładamy, że restauracja jest otwarta przez 0 minut.
  • Jeśli opens jest większa niż closes, godzina zamknięcia jest interpretowana jako godzina następnego dnia. Jeśli np. godzina otwarcia to 1 stycznia, 17:00, a godzina zamknięcia to 2 stycznia, 2:00, restauracja jest interpretowana jako restauracja, która zamyka się 2 stycznia o 2:00.
  • Czas w miejscowości closes nie należy do zakresu. Jeśli więc godziny otwarcia i zamknięcia tego okna zamówień to odpowiednio 10:00 i 16:00, ostatnie zamówienie może zostać złożone o 15:59:59.

W tej tabeli opisujemy właściwości typu OpeningHoursSpecification:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Jest to zawsze „OpeningHoursSpecification”.
@id URL Opcjonalnie Identyfikator OpeningHoursSpecification.
dayOfWeek Tablica DayOfWeek Opcjonalnie

Dzień tygodnia, w którym te godziny otwarcia są ważne. Akceptowane wartości to „Monday”, „Tuesday”, „Wednesday”, „Thursday”, „Friday”, „Saturday” i „Sunday”. Na przykład:

"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]

Jeśli nie określisz żadnych dni tygodnia, opcja OpeningHoursSpecification będzie obowiązywać we wszystkie dni.

opens Time Opcjonalnie

Gdy jest używana w specyfikacji Restaurant, ta właściwość wskazuje godziny otwarcia restauracji w danym dniu lub dniach tygodnia. Na przykład 6:30 rano to „T06:30:00”.

Jeśli zostanie użyta w specyfikacji Service, oznacza konkretną porę dnia, od której użytkownicy mogą składać zamówienia. określa godziny otwarcia systemu online i umożliwia użytkownikom składanie zamówień; W ramach tych godzin otwarcia/zamknięcia systemu online możesz użyć parametru deliveryHours, aby określić godziny, w których użytkownicy mogą zamówić specjalne rodzaje dostaw.

Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości opens. Jeśli strefa czasowa jest określona, Google zignoruje te informacje.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

closes Time Opcjonalnie

W specyfikacji Service ta właściwość wskazuje konkretną porę dnia, po której użytkownicy nie mogą składać zamówień. określa godzinę zamknięcia systemu online i pozwala użytkownikom składać zamówienia; W ramach tych godzin otwarcia/zamknięcia systemu online możesz użyć parametru deliveryHours, aby określić godziny, w których użytkownicy mogą zamówić specjalne rodzaje dostaw.

Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości closes. Jeśli strefa czasowa jest określona, Google zignoruje te informacje.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

validFrom DateTime Opcjonalnie

Gdy jest używana w specyfikacji Restaurant, wskazuje datę, w której obowiązują godziny otwarcia określone przez openscloses dla restauracji.

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

W specyfikacji Service wartość validFrom wskazuje datę rozpoczęcia, od której można składać zamówienia.

Jeśli ta właściwość nie jest określona w pliku danych, Google zakłada, że restauracja lub usługa są dostępne codziennie.

Oprócz daty wymagane są też wartości godziny i strefy czasowej.

W przypadku strefy czasowej użyj strefy czasowej restauracji lub usługi.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

validThrough DateTime Opcjonalnie

Jeśli jest używany w elementach Restaurant, oznacza datę, po której godziny otwarcia określone przez elementy openscloses nie są ważne.

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

W specyfikacji Service wartość validThrough wskazuje datę końcową, po której użytkownicy nie mogą już składać zamówień.

Jeśli ta właściwość nie jest określona w pliku danych, Google zakłada, że restauracja lub usługa są dostępne codziennie.

Oprócz daty wymagane są również godziny i strefa czasowa.

W przypadku strefy czasowej użyj strefy czasowej restauracji lub usługi.

Czas w miejscowości validThrough nie należy do zakresu. Jeśli np. ustawisz godzinę 18:00, będzie ona obowiązywać do 17:59:59.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

deliveryHours Tablica ServiceDeliveryHoursSpecification lub tablica AdvanceServiceDeliveryHoursSpecification Warunkowy

Specyfikacja czasu dostawy lub odbioru na wynos.

Ten parametr jest wymagany, chyba że restauracja jest zamknięta (co oznacza, że opens i closes mają tę samą wartość).

  • ServiceDeliveryHoursSpecification: w ramach godzin otwarcia/zamknięcia możesz ustawić godziny „otwarcia” i „zamknięcia”, w których użytkownicy mogą składać zamówienia ASAP.
  • AdvanceServiceDeliveryHoursSpecification: w ramach godzin otwarcia/zamknięcia możesz ustawić godziny „otwarcie” i „zamknięcie”, w których użytkownicy mogą składać zamówienia z wyprzedzeniem.

Poniższe przykłady przedstawiają elementy OpeningHoursSpecification:

// Ordering times for Monday through Friday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      "@type": "AdvanceServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T12:00:00", // Advance ordering begins at noon
      "closes": "T23:59:59", // Advance ordering ends at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    },
    {
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "T10:00:00", // ASAP ordering begins at 10AM
      "closes": "T14:00:00", // ASAP ordering ends at 2PM
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
},
// Ordering times for Saturday and Sunday
{
  "@type": "OpeningHoursSpecification",
  "deliveryHours": [
    {
      // In this case advance orders are unavailable on Saturday and Sunday
      "@type": "ServiceDeliveryHoursSpecification",
      "deliveryLeadTime": {
        "@type": "QuantitativeValue",
        "value": "60",
        "unitCode": "MIN"
      },
      "dayOfWeek": [
        "Saturday",
        "Sunday"
      ],
      "opens": "T12:00:00", // ASAP orders start at noon
      "closes": "T23:59:59", // ASAP orders end at midnight
      "validFrom": "2017-01-01T00:00:00-07:00",
      "validThrough": "2018-12-31T23:59:59-07:00"
    }
  ]
}
"hoursAvailable": {
  "@type": "OpeningHoursSpecification",
  "validFrom": "2016-02-01T00:00:00-07:00",
  "validThrough": "2016-03-01T00:00:00-07:00",
  "opens": "T08:00:00",  // Ordering begins at 8:00AM and ends at 6:00PM.
                         // ASAP and and advance orders are restricted to this
                         // time frame since the user won't be able to place
                         // orders outside of this window.
  "closes": "T18:00:00",
  "deliveryHours": {
    "@type": "ServiceDeliveryHoursSpecification",
    "deliveryLeadTime": {
      "@type": "QuantitativeValue",
      "value": "60",
      "unitCode": "MIN"
    }
  }
},
// List hours available for 2017 and 2018
"hoursAvailable": [
  {
    "@type": "OpeningHoursSpecification",
    // Array containing advance order hours for each day
    "deliveryHours": [
      {
        // Open 10:00AM to 9:29:59PM on Mondays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Monday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Tuesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Tuesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Wednesdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Wednesday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 9:29:59PM on Thursdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "dayOfWeek": [
          "Thursday"
        ],
        "opens": "T10:00:00",
        "closes": "T21:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Fridays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Friday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 10:00AM to 11:29:59PM on Saturdays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Saturday"
        ],
        "opens": "T10:00:00",
        "closes": "T23:30:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      },
      {
        // Open 11:00AM to 6:59:59PM on Sundays
        "@type": "AdvanceServiceDeliveryHoursSpecification",
        "deliveryLeadTime": {
          "@type": "QuantitativeValue",
          "value": "60",
          "unitCode": "MIN"
        },
        "dayOfWeek": [
          "Sunday"
        ],
        "opens": "T11:00:00",
        "closes": "T19:00:00",
        "validFrom": "2017-01-01T00:00:00-07:00",
        "validThrough": "2018-12-31T23:59:59-07:00"
      }
    ]
  }
],

PackagingDetails

Aby użyć tego typu, dodaj kontekst GS1: "@context": ["http://gs1.org/voc/", "http://schema.org"]. Dodaj FoodBeverageTobaccoProduct do typu elementu MenuItem lub MenuItemOption.

W tej tabeli opisujemy właściwości typu PackagingDetails:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „PackagingDetails”.
packagingRecyclingProcessType Tekst Opcjonalnie Typ procesu recyklingu opakowania według kodu gs1:PackagingRecyclingProcessTypeCode. Na przykład:http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLElubhttp://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
hasReturnablePackageDeposit ReturnablePackageDepositDetails Opcjonalnie Szczegóły depozytu za zwracany produkt według gs1:ReturnablePackageDepositDetails. Na przykład butelki i puszki mają kaucje.

Ten przykład pokazuje użycie typu PackagingDetails:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

PaymentChargeSpecification

W tej tabeli opisujemy właściwości typu PaymentChargeSpecification:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „PaymentChargeSpecification”.
@id URL Opcjonalnie Identyfikator PaymentChargeSpecification.
price Liczba Wymagane Łączna kwota obciążenia. Na przykład „6.00” bez symbolu waluty.
priceCurrency Tekst Wymagane Trzyliterowy kod waluty w formacie ISO 4217. Przykład: „PLN”.
eligibleTransactionVolume PriceSpecification Opcjonalnie Ilość transakcji w jednostce pieniężnej, dla której obowiązuje ta specyfikacja opłat za płatność, np. do wskazania minimalnej ilości zakupu.
eligibleQuantity QuantitativeValue Opcjonalnie Ilości zamówień, dla których opłata jest ważna. Możesz na przykład użyć tej właściwości, aby wymagać minimalnej liczby produktów w zamówieniu.
validFrom DateTime Opcjonalnie Data i godzina (wraz ze strefą czasową) ważności określonego obciążenia płatności. Przykład: „2017-05-01T07:00:00-07:00”. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.
validThrough DateTime Opcjonalnie Data i godzina (w tym strefa czasowa), kiedy wskazane obciążenie jest nieprawidłowe. Na przykład „2017-05-01T07:30:00-07:00”. Czas validThrough jest wyłączony: jeśli na przykład ustawisz go na 18:00, będzie on ważny do 17:59:59. Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

Ten przykład przedstawia element PaymentChargeSpecification:

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 atrybutu "@type": ["PaymentChargeSpecification"] obiekt może być rozszerzony o UnitPriceSpecification ("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]). Rozszerzenie zawiera 2 dodatkowe właściwości wymagane do obliczenia opłat za usługi wyrażonych w procentach.

właściwość Typ Konieczność Opis
referenceQuantity QuantitativeValue Wymagane Ilość referencyjna, której dotyczy określona cena. Na przykład:referenceQuantity o wartości 10 z unitCode „P1” daje 10% wartości zamówienia. Obecnie obsługiwana jest tylko wersja unitCode „P1”.
basePrice Liczba Opcjonalnie Opłata podstawowa oprócz referenceQuantity. Na przykład referenceQuantity 10 z unitCode „P1” i basePrice 5 w USD daje 5 USD + 10% wartości zamówienia. Wartością domyślną jest 0.

Przykłady opłat za wynos

Google umożliwia określenie różnych opłat dla użytkowników z wyprzedzeniem za pomocą Offer.PriceSpecification podmiotu świadczącego Usługę.

Pamiętaj, że obecnie obsługujemy tylko 1 wartość PaymentChargeSpecification. Połącz wszystkie typy opłat w jednym PaymentChargeSpecification

Jeśli nie ma opłaty, element Offer.PriceSpecification jest pomijany.

  • Przykład 1. Opłata za obsługę to 5% sumy częściowej w koszyku
  • Przykład 2. Opłata za obsługę to 5 PLN
  • Przykład 3.Opłata za torbę wynosi 0,10 PLN, a opłata za obsługę to 5% sumy częściowej w koszyku
  • Przykład 4.Opłata za torbę wynosi 0,1 PLN, a opłata za obsługę 1 PLN
  • Przykład 5. Opłata za obsługę wynosi 5%, a wymagane napiwki stanowią 10% łącznej kwoty koszyka
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "5.00"
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "5.00", // 5%
      "unitCode": "P1", // P1 == %
    },
    "priceCurrency": "USD",
    "basePrice": "0.10" // Bag fee $0.1
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification"],
    "priceCurrency": "USD",
    "price": "1.10" //$1 + $0.1
  }
]
priceSpecification [
  {
    "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"],
    "referenceQuantity": {
      "@type": "QuantitativeValue",
      "value": "15.00", // 5% + 10%
      "unitCode": "P1" // P1 == %
    },
    "priceCurrency": "USD"
  }
]

Miejsce

W tej tabeli opisujemy właściwości typu Place:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane To zawsze „Miejsce”.
address PostalAddress Wymagane Adres miejsca.

Ten przykład przedstawia element Miejsce:

Przykład
{
  "@type": "Place", // area2
  "address": {
    "@type": "PostalAddress",
    "postalCode": "94041",
    "addressCountry": "US"
  }
},

PostalAddress

W tej tabeli opisujemy właściwości typu PostalAddress:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „PostalAddress”.
addressLocality Tekst Wymagana* Miejscowość lub miasto. Na przykład „Warszawa”.
addressRegion Tekst Wymagana* Region lub stan. Na przykład „CA”.
postalCode Tekst Wymagana* Kod pocztowy. np. „94102”.
streetAddress Tekst Opcjonalnie Ulica i numer. np. „1600 Pkwy Amfiteatr”.
addressCountry Tekst Wymagane Dwuliterowy kod kraju w formacie ISO 3166-1 alfa-2 . Przykład: „PL”.

Dostawcy usług mogą podać te właściwości, aby wskazać Service.areaServed, w którym świadczona jest usługa.

Jeśli używasz Restaurant.address, wszystkie właściwości wymienione w PostalAddress są wymagane.

Ten przykład przedstawia element PostalAddress:

Przykład
"address": {
  "@type": "PostalAddress",
  "streetAddress": "12345 Bar Avenue",
  "addressLocality": "San Francisco",
  "addressRegion": "CA",
  "postalCode": "94124",
  "addressCountry": "US"
},

PriceSpecification

W tej tabeli opisujemy właściwości typu PriceSpecification:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „PriceSpecification”.
@id URL Opcjonalnie Identyfikator PriceSpecification.
minPrice Liczba Opcjonalnie Najniższa cena, jeśli cena jest zakresem.
maxPrice Liczba Opcjonalnie Najwyższa cena, jeśli cena jest zakresem.
priceCurrency Tekst Wymagane Trzyliterowy kod waluty w formacie ISO 4217. Przykład: „PLN”.
eligibleQuantity QuantitativeValue Opcjonalnie Ilości zamówienia, dla których specyfikacja ceny jest ważna. Może to być na przykład 2 zł za funta lub 2 produkty za dolara.

Ten przykład przedstawia element PriceSpecification:

Przykład 1
"eligibleTransactionVolume": {
  "@type": "PriceSpecification",
  "minPrice": "20.00", // Minimum order price for delivery is $20
  "priceCurrency": "USD"
}

PropertyValue

Para wartość–właściwość używana do opisywania opcji w MenuItemOption.

W tabeli poniżej podano właściwości typu PropertyValue:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „PropertyValue”.
name Tekst Wymagane

Nazwa lub typ opcji.

W sekcji MenuItem można używać tych nazw:

  • „SIZE”: rozmiar MenuItem. Na przykład mały, średni lub duży.
  • „OPCJA”: każda wersja inna niż rozmiar (np. danie podawane jako sałatka lub kanapka). Jeśli nie możesz odróżnić opcji „SIZE” od opcji „OPTION”, użyj opcji „OPTION”.

Prawidłowe nazwy używane w sekcji AddOnMenuItem:

  • „APPLICABLE_ITEM_OPTION”: opcja dodatku, która jest dostępna tylko w połączeniu z MenuItem z odpowiednią opcją „SIZE/OPTION”.
  • „PIZZA_SIDE”: dotyczy pizzy. Ten dodatek jest ważny tylko w przypadku pizzy zwykłej lub całej pizzy (np. grzyby po lewej stronie, po prawej stronie lub na całej pizzy).
  • „ROZMIAR”: opcja umożliwiająca określenie rozmiaru dodatku (np. duże frytki jako dodatek do zestawu śniadaniowego).
  • „OPCJA”: każda wersja inna niż rozmiar. Jeśli nie możesz odróżnić „SIZE” od „OPTION”, użyj „OPTION”.
value Tekst Wymagane

Wartość opcji. Wartości mogą być dowolnymi ciągami znaków i są wyświetlane w takiej postaci, w jakiej są podane. Dozwolone wartości to:

  • „PIZZA_SIDE”: odpowiednia wartość powinna być „PIZZA_SIDE_LEFT”, „PIZZA_SIDE_RIGHT” lub „PIZZA_SIDE_WHOLE” dla pizzy.
  • „APPLICABLE_ITEM_OPTION”: ta wartość powinna być obecna w jednym z odpowiednich opcji „OPTION/SIZE” dla nadrzędnego menuItemOptions elementu MenuItem.

QuantitativeValue

W tej tabeli opisujemy właściwości typu QuantitativeValue:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „QuantitativeValue”.
value Liczba Opcjonalnie Wartość węzła wartości ilościowej lub węzła wartości właściwości.
unitCode Tekst lub URL Opcjonalnie

Jednostka miary w postaci kodu UN/CEFACT lub adresu URL.

Kody inne niż kod UN/CEFACT Common Code mogą być używane z prefiksem, po którym następuje dwukropek.

maxValue Liczba Opcjonalnie Górna wartość pewnej właściwości lub cechy.
minValue Liczba Opcjonalnie Niższa wartość pewnej cechy lub właściwości.

Przykłady poniżej pokazują użycie typu QuantitativeValue:

"deliveryLeadTime": {
  "@type": "QuantitativeValue",
  "value": "60",
  "unitCode": "MIN"
}
"menuAddOn": {
  "@type": "AddOnMenuSection",
  "name": "Cheese",
  "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection
  "eligibleQuantity":
    "@type": "QuantitativeValue",
    "minValue": 0,
    "maxValue": 2 // Maximum of 2 cheeses are allowed
  }
}
"priceSpecification": [
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/defaultdeliveryfee/foo",
    "price": "10.0",
    "priceCurrency": "USD",
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  },
  {
    "@type": "DeliveryChargeSpecification",
    "@id": "http://www.provider.com/deliveryfee/foo/1",
    "price": "20.0",
    "priceCurrency": "USD",
    "validFrom":"T18:00:00", // Valid from 6:00PM
    "validThrough":"T22:00:00", // Valid to 9:59:59PM
    "eligibleQuantity": {
      "@type": "QuantitativeValue",
      "minValue": 3  // Minimum of 3 items required for delivery
    }
  }
]

Restauracja

W tabeli poniżej podano właściwości typu Restaurant:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „Restauracje”.
@id URL Wymagane Unikalny identyfikator restauracji lub dostawcy. Przykład: „http://www.provider.com/326”, gdzie „326” to unikalny identyfikator restauracji.
name Tekst Wymagane Tekst, który może identyfikować Restaurant podczas procesu zamawiania.
url URL Wymagane Adres URL w Twojej domenie, który reprezentuje restaurację. Na przykład: "http://www.provider.com/somerestaurant".
sameAs URL Opcjonalnie oficjalna strona restauracji; Na przykład: "http://www.jakiejśrestauracji.com".
email Tekst Opcjonalnie Adres e-mail do kontaktu z restauracją.
description Tekst Opcjonalnie Opis restauracji.
telephone Tekst Wymagane

Numer telefonu w formacie:

"[+][country_code][phone_#_with_area_code]"

Na przykład „+16501234567”.

priceRange Tekst Opcjonalnie zakres cen, Na przykład: „$$" ($-Inexpensive, $$-Średnia, $$$-Expensive, $$$$-Very Expensive).
logo URL Optional Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png".
image URL Optional Image of the restaurant.
servesCuisine Array of Text Optional Food types that are served at the restaurant. For example, ["sushi","Asian fusion"].
address PostalAddress Required* Address of the restaurant.
geo GeoCoordinates Optional* Geographic coordinates of the restaurant.
suitableForDiet Array of RestrictedDiet Optional Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list.
aggregateRating AggregateRating Optional Overall rating, based on a collection of reviews or ratings of the restaurant.
additionalProperty Array of name value string pairs Optional

A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n".

For example "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": "$$”,
    "telefon":
    "+16501234567", // Kod kraju (+1) jest wymagany
  "servesCuisine": [
    "Indian-Mexican Fusion"
  ]
},
  
  

Przykład 2

{
  "@type": "Restaurant",
  "@id": "http://www.example.com/threebrotherstacos",
  "name": "Three Brothers Tacos",
  "address": {
        "@type": "PostalAddress",
        "addressLocality": "Mountain View",
        "addressRegion": "CA",
        "postalCode": "94041",
        "streetAddress": "123 Foo St",
        "addressCountry": "US"
  },
  "additionalProperty": [
    {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"}
  ]
}

Więcej przykładów elementów Restaurant znajdziesz w artykule Przykłady pliku danych restauracji i menu.

ReturnablePackageDepositDetails

Aby użyć tego typu, dodaj kontekst gs1: „@context”:

["http://gs1.org/voc/", "http://schema.org"]

Następnie dodaj FoodBeverageTobaccoProduct do typu odpowiedniego MenuItem lub MenuItemOption.

W tej tabeli opisujemy właściwości typu ReturnablePackageDepositDetails:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Zawsze jest to „ReturnablePackageDepositDetails”.
returnablePackageDepositAmount gs1:PriceSpecification Opcjonalnie Kwota depozytu za ten produkt na podstawie gs1:PriceSpecification. Na przykład 0, 25 zł kaucji za każdą puszkę.

Ten przykład pokazuje użycie typu ReturnablePackageDepositDetails:

{
  "@type": ["MenuItem", "FoodBeverageTobaccoProduct"],
  "@id": "http://www.example.com/bar/menuitem/5",
  "name": "Sparkling Water",
  "description": "A 0.5l bottle of sparking water.",
  "offers": {
    "@type": "Offer",
    "sku": "offer-sparkling-water",
    "price": "1.49",
    "priceCurrency": "USD"
  },
  "packaging": {
    "@type": "PackagingDetails",
    "packagingRecyclingProcessType" :
      "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE",
    "hasReturnablePackageDeposit": {
      "@type": "ReturnablePackageDepositDetails",
      "returnablePackageDepositAmount": {
        "@type": "http://gs1.org/voc/PriceSpecification",
        "http://gs1.org/voc/price": "0.05",
        "http://gs1.org/voc/priceCurrency": "USD"
      }
    }
  }
},

Usługa

Opisuje dostawę kompleksowego działania dotyczącego zamawiania z restauracji do lokalizacji geograficznej przez organizację świadczyącą usługi dostawy.

W tej tabeli opisujemy właściwości typu Service:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane

Typ pliku danych.

  • Service: użyj tego typu dla wszystkich aktywnych plików danych usługi.
  • DisabledService: używaj tego typu tylko wtedy, gdy musisz wyłączyć element usługi z powodu nieoczekiwanego zdarzenia i nie wiesz, kiedy usługa zostanie przywrócona.
@id URL Wymagane Identyfikator usługi realizacji zamówienia. Na przykład: "http://www.provider.com/service/1".
description Tekst Opcjonalnie Opis produktu.
serviceType Tekst Wymagane Typ oferowanej usługi. Możliwe wartości to „DELIVERY” lub „TAKEOUT”.
provider Restaurant Wymagane Odwołuje się do unikalnego identyfikatora restauracji. Na przykład: "http://www.provider.com/somerestaurant".
areaServed Tablica GeoShape, Place lub GeoCircle Warunkowy Obszar geograficzny, na którym świadczona jest usługa. To pole jest domyślnie opcjonalne, ale jest wymagane, jeśli serviceType to „DELIVERY”.
hoursAvailable Tablica OpeningHoursSpecification Wymagane Godziny, w których usługa jest dostępna.
specialOpeningHoursSpecification Tablica OpeningHoursSpecification, ServiceDeliveryHoursSpecification lub AdvanceServiceDeliveryHoursSpecification Opcjonalnie

Czasy, które zastępują bardziej ogólne OpeningHoursSpecification lub czasy realizacji. Zwykle używasz tego pola do definiowania świąt i innych typów tymczasowych zamknięć lub zmian godzin otwarcia.

Określ specjalny zakres dat za pomocą właściwości validFromvalidThrough. Przy podawaniu tych właściwości wymagane są godzina i strefa czasowa.

offers Tablica Offer Warunkowy

Szczegóły oferty dostawy w przypadku wybranej restauracji. To pole jest domyślnie opcjonalne, ale wymagane, jeśli serviceType ma wartość „DELIVERY”.

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

hasOfferCatalog [Menu, OfferCatalog] Wymagane

Określa menu tej usługi. Możesz mieć inne menu dla każdej z usług (np. na wynos, z dostawą i catering).

Musisz podać wartości MenuOfferCatalog dla typu. Na przykład:

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

Opcjonalne informacje o konfiguracji usługi. Elementy powinny być obiektem z kluczem name odpowiadającym opcjonalnej nazwie pola. Klucz value to wartość kontekstowa dla pola.

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

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

Zawiera adres URL usługi dostawy lub odbioru osobistego, która będzie używana podczas migracji z kompleksowego procesu zamawiania jedzenia na przekierowanie. Przykład: „potentialAction”: { „url”: „https://fopatestagent.com/ordering/restaurant-1/delivery” }

Przykład użycia typu usługi:

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 jednostek usługi znajdziesz w artykule Przykłady pliku danych usługi.

ServiceDeliveryHoursSpecification

Określa godziny realizacji zamówień z dostawą i na wynos.

Zazwyczaj wartość opens jest mniejsza niż wartość closes. W przypadku właściwości opens i closes obowiązują te wytyczne:

  • Właściwości openscloses są opcjonalne w przypadku typu ServiceDeliveryHoursSpecification, ale zdecydowanie zalecamy ich dodanie.
  • Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości opens ani closes. Jeśli podasz strefę czasową, Google zignoruje informacje o niej.
  • Jeśli atrybuty opens i closes nie są wyraźnie określone, przyjmujemy, że składanie zamówień ASAP jest możliwe codziennie o każdej porze.
  • Jeśli wartości openscloses są takie same, przyjmujemy, że zamawianie ASAP jest niedostępne.
  • Jeśli opens jest większa niż closes, godzina zamknięcia jest interpretowana jako godzina następnego dnia. Jeśli np. godzina otwarcia to 1 stycznia, 17:00, a godzina zamknięcia to 2 stycznia, 2:00, restauracja jest interpretowana jako restauracja, która zamyka się 2 stycznia o 2:00.

W tej tabeli opisujemy właściwości typu ServiceDeliveryHoursSpecification:

Właściwość Typ Konieczność Opis
@type Tekst Wymagane Jest to zawsze „ServiceDeliveryHoursSpecification”.
validFrom DateTime Opcjonalnie

Data i godzina (w tym strefa czasowa), kiedy można zrealizować zamówienia użytkowników ASAP. Przykład: „2017-05-01T07:00:00-07:00”. Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest ona ważna codziennie.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

validThrough DateTime Opcjonalnie

Data i godzina (wraz ze strefą czasową), po której zamówienia użytkowników realizowane „jak najszybciej” nie będą mogły być realizowane. Przykład: „2017-05-01T07:00:00-07:00”. Jeśli ta właściwość nie jest ustawiona, przyjmuje się, że jest ona ważna codziennie.

Czas w miejscowości validThrough nie należy do zakresu. Jeśli na przykład ustawisz godzinę 18:00, będzie ona obowiązywać do 17:59:59.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

opens Time Opcjonalnie

Czas, w którym usługa dostawy rozpoczyna realizację zamówień użytkowników oznaczonych jako „jak najszybciej”. Na przykład „T10:30:00”.

Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości opens. Jeśli strefa czasowa jest określona, Google zignoruje te informacje.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

closes Time Opcjonalnie

Czas, w którym usługa dostawy zamówień użytkowników na „jak najszybciej” jest niedostępna. Na przykład „T23:59:59”.

Czas w miejscowości closes nie należy do zakresu. Jeśli więc dla tego ServiceDeliveryHoursSpecificationustawisz godziny otwarcia i zamknięcia 10:00 i 16:00, ostatnie zamówienie będzie możliwe o 15:59:59.

Czas musi być podany w czasie lokalnym usługi. Nie uwzględniaj strefy czasowej w wartości closes. Jeśli strefa czasowa jest określona, Google zignoruje te informacje.

Więcej informacji znajdziesz w artykule Formaty daty i czasu oraz formaty daty i godziny.

dayOfWeek Tablica DayOfWeek Opcjonalnie

Dni tygodnia, w które ta usługa jest dostępna dla zamówień realizowanych jak najszybciej. Prawidłowe wartości:

  • „Monday”
  • „Tuesday” (wtorek)
  • „Środa”
  • „Czwartek”
  • „piątek”
  • „Sobota”
  • „Sunday”

Jeśli nie określisz żadnych dni tygodnia, ServiceDeliveryHoursSpecification będzie obowiązywać we wszystkie dni.

deliveryLeadTime QuantitativeValue Opcjonalnie Przewidywany czas dostawy w minutach po złożeniu zamówienia. Zdecydowanie zalecamy skonfigurowanie tej właściwości. W polu value w zasobie QuantitativeValue ustaw liczbę minut, a w polu unitCode ustaw wartość „MIN”.

Ten przykład przedstawia element ServiceDeliveryHoursSpecification:

{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "value": "60", // If no exact deliveryLeadTime, put a maximum time
    "unitCode": "MIN"
  }
},
{
  "@type": "ServiceDeliveryHoursSpecification",
  "opens": "T08:00:00",
  "closes": "T17:00:00",
  "deliveryLeadTime": {
    "@type": "QuantitativeValue",
    "minValue": "30",
    "maxValue": "50",
    "unitCode": "MIN"
  }
}
    

Wartości w polu enum

RestrictedDiet

Typ RestrictedDiet może mieć te wartości:

  • http://schema.org/DiabeticDiet
  • http://schema.org/GlutenFreeDiet
  • http://schema.org/HalalDiet
  • http://schema.org/HinduDiet
  • http://schema.org/KosherDiet
  • http://schema.org/LowCalorieDiet
  • http://schema.org/LowFatDiet
  • http://schema.org/LowLactoseDiet
  • http://schema.org/LowSaltDiet
  • http://schema.org/VeganDiet
  • http://schema.org/VegetarianDiet