Schema.org pre potraviny s NutritionInformation a alergénmi
Pre potravinové e-shopy ako Rohlík.sk, iTesco, Fresh Box alebo špecializované BIO obchody je schema.org komplikovanejšie, lebo Schema.org má pre potraviny špecifické typy: `NutritionInformation` pre nutričné hodnoty na 100 g/ml, `suitableForDiet` pre diétne obmedzenia (vegan, bezlepkové) a `Country` pre krajinu pôvodu. Najčastejšia chyba je ukladať váhu ako string `'1L'` v jednom poli, alergény ako voľný text bez štruktúry a krajinu pôvodu ako prostý reťazec namiesto `Country` objektu. Pri čerstvých produktoch treba pridať aj `expirationDate` na úrovni Offer. Pre vrátenie tovaru pozor — pri potravinách väčšina e-shopov vracanie nepovoľuje, takže `MerchantReturnNotPermitted` musí byť explicitne uvedené.
Príklad validného Product JSON-LD
Hmotnosť cez QuantitativeValue, alergény cez additionalProperty, NutritionInformation pre nutričnú tabuľku.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Rajo Bio jablkový džús 1 l",
"image": "https://example.sk/img/rajo-jablko.jpg",
"description": "100% prírodný bio jablkový džús bez pridaného cukru. Z jabĺk pestovaných v ekologickom poľnohospodárstve.",
"sku": "RAJ-BIO-JAB-1L",
"mpn": "RAJO-9912",
"gtin13": "8588001234560",
"brand": {
"@type": "Brand",
"name": "Rajo"
},
"weight": {
"@type": "QuantitativeValue",
"value": "1",
"unitCode": "LTR"
},
"countryOfOrigin": {
"@type": "Country",
"name": "Slovensko"
},
"suitableForDiet": [
"https://schema.org/VeganDiet",
"https://schema.org/GlutenFreeDiet"
],
"nutrition": {
"@type": "NutritionInformation",
"servingSize": "100 ml",
"calories": "44 kcal",
"carbohydrateContent": "10.5 g",
"sugarContent": "10.5 g",
"fatContent": "0.1 g",
"proteinContent": "0.5 g",
"sodiumContent": "5 mg"
},
"additionalProperty": [
{
"@type": "PropertyValue",
"name": "Bio certifikácia",
"value": "EU Organic"
},
{
"@type": "PropertyValue",
"name": "Alergény",
"value": "Bez alergénov"
},
{
"@type": "PropertyValue",
"name": "Skladovanie",
"value": "Po otvorení skladovať pri teplote 2–6 °C, spotrebovať do 3 dní"
}
],
"offers": {
"@type": "Offer",
"url": "https://example.sk/produkt/rajo-bio-jablkovy-dzus",
"priceCurrency": "EUR",
"price": "3.50",
"priceValidUntil": "2026-06-30",
"itemCondition": "https://schema.org/NewCondition",
"availability": "https://schema.org/InStock",
"hasMerchantReturnPolicy": {
"@type": "MerchantReturnPolicy",
"applicableCountry": "SK",
"returnPolicyCategory": "https://schema.org/MerchantReturnNotPermitted"
},
"shippingDetails": {
"@type": "OfferShippingDetails",
"shippingRate": {
"@type": "MonetaryAmount",
"value": "4.90",
"currency": "EUR"
},
"shippingDestination": {
"@type": "DefinedRegion",
"addressCountry": "SK"
},
"deliveryTime": {
"@type": "ShippingDeliveryTime",
"handlingTime": {
"@type": "QuantitativeValue",
"minValue": 0,
"maxValue": 1,
"unitCode": "DAY"
},
"transitTime": {
"@type": "QuantitativeValue",
"minValue": 1,
"maxValue": 2,
"unitCode": "DAY"
}
}
}
}
}Časté chyby (Potraviny a nápoje)
- 1
Hmotnosť ako '1L' v jednom stringu
Hodnota a jednotka spojené v stringu znemožnia strojom porovnávanie. Použi `QuantitativeValue` s `value: '1'` a `unitCode: 'LTR'` (litre) alebo `'KGM'` (kilogramy).
- 2
Alergény ako voľný text bez štruktúry
EU regulation vyžaduje povinné označenie 14 alergénov. V schema.org najčistejšie cez `additionalProperty` s presným zoznamom (napr. 'Obsahuje: lepok, mlieko, vajcia') alebo cez 'Bez alergénov' pri produktoch bez nich.
- 3
Krajina pôvodu ako string
`countryOfOrigin: 'Slovensko'` síce funguje, ale `countryOfOrigin: { @type: 'Country', name: 'Slovensko' }` je sémanticky správne a Google to lepšie indexuje pre filter 'Slovenský pôvod'.
- 4
Bio ako vlastný kľúč 'organic: true'
Schema.org property 'organic' neexistuje. Bio status patrí buď do `suitableForDiet` (sčasti) alebo lepšie do `additionalProperty` s odkazom na konkrétnu certifikáciu (EU Organic, Demeter, Bio Suisse).
- 5
Chýba returnPolicyCategory pre potraviny
Pre potraviny väčšina e-shopov vracanie nepovoľuje (zákon ich nezaväzuje). To treba explicitne uviesť cez `MerchantReturnNotPermitted`, inak Google čaká plnú return policy a hodí warning.
Časté otázky
Musím uvádzať NutritionInformation pre každý produkt?+
Pre balené potraviny v EU je nutričná tabuľka povinná na obale, takže máš tieto údaje k dispozícii. V schema.org nie je technicky povinná, ale výrazne pomáha pre Google rich snippety pri vyhľadávaniach typu 'jablkový džús bez cukru'.
Čo ak produkt obsahuje alergén — ako ho označiť?+
Cez `additionalProperty` s presnou EU formuláciou (napr. 'Obsahuje: lepok (pšenica), mlieko'). Niektoré e-shopy používajú aj custom property 'allergens' v additionalProperty, aby to mohli ľahko parsovať.
Expirácia / minimálna trvanlivosť — kde ju uviesť?+
Pre konkrétny šaržu cez `Offer.expirationDate` (ISO 8601 dátum). Pre kategorické info (napr. 'Trvanlivosť 12 mesiacov') skôr cez `additionalProperty`. Rohlík to typicky ukazuje pri čerstvých potravinách priamo v rich snippete.
Vegan a bezlepkové produkty — ako ich vyznačiť?+
Schema.org má `suitableForDiet` ako enum. Hodnoty: `VeganDiet`, `VegetarianDiet`, `GlutenFreeDiet`, `LowFatDiet`, `LowSaltDiet` atď. Plný zoznam je na schema.org/RestrictedDiet.
Bio certifikácia — additionalProperty alebo hasCertification?+
Modernejšie cez `hasCertification: Certification` (Schema.org property z 2023), kde uvedieš konkrétnu certifikačnú autoritu (napr. 'EU Organic', 'Bio Suisse'). additionalProperty je fallback ak chceš podporiť aj staršie parsery.
Vygeneruj Product JSON-LD pre Potraviny a nápoje hneď
Vygeneruj JSON-LD pre potraviny vrátane nutričných hodnôt a alergénov.
Otvoriť generátor