EU compliance7 min read
Which Details Must a Food Product Page Show in the EU? Q&A
Nutrition table, ingredients with bold allergens and operator details: what Reg. (EU) 1169/2011 asks of an online food product page, question by question.
In this guide
- Does a product page really need the full label?
- Which details go where on the page?
- Why must the ingredients be written for each product?
- Why does a hand-coded Liquid and metafield setup break so easily?
- What about several flavours or sizes?
- How do you set it up with Etiketto, step by step?
- What does Etiketto not do?
- Is this legal advice?
- Try Etiketto: EU Nutrition Labels
Short answer: if you sell prepacked food online into the EU, each product page has to show, before the shopper buys, the same mandatory food information as the pack. In practice that means at least a nutrition table, a list of ingredients with the allergens emphasised (bold is the usual way), and the name and address of the food business operator, plus the name of the food, net quantity and any storage conditions. The rules come from Regulation (EU) No 1169/2011 on food information to consumers.
This post answers the questions small Shopify food shops ask most often, in order. It is general information based on the text of the regulation, not legal advice. Your product category or country may add rules, so confirm your case with your food authority or a legal adviser.
Does a product page really need the full label?
Yes, for prepacked food sold at a distance. Article 14(1) says the mandatory food information, except the “best before” or “use by” date, must be available before the purchase is concluded. It has to appear on the material that supports the distance sale, which for a web shop is the product page, or be given by other appropriate means that you clearly identify, at no extra cost to the shopper. All mandatory particulars, including the date, must also be there at delivery.
So a printed label on the pack is not enough. The shopper has to be able to read the information on the page where they decide.
Which details go where on the page?
Article 9(1) lists the mandatory particulars. This checklist maps the ones most small shops need to a place on the product page.
| Information | Where in 1169/2011 | Where on the product page | Check |
|---|---|---|---|
| Name of the food | Art. 9(1)(a), Art. 17 | Product title or the first line of the food information | A descriptive name, not only a brand |
| List of ingredients | Art. 9(1)(b), Art. 18 | Food information section, as text | In descending order of weight |
| Allergens, emphasised | Art. 9(1)(c), Art. 21, Annex II | Inside the ingredient list | Each Annex II allergen stands out, e.g. in bold |
| Nutrition declaration | Art. 9(1)(l), Art. 30 to 35 | A table near the ingredients | Energy, fat, saturates, carbohydrate, sugars, protein, salt per 100 g or 100 ml |
| Net quantity | Art. 9(1)(e), Art. 23 | Near the title or in the food information | Weight or volume |
| Storage conditions or conditions of use | Art. 9(1)(g) | Food information section | Where the product needs them |
| Operator name and address | Art. 9(1)(h), Art. 8 | Food information section | The business under whose name the food is sold, or the EU importer |
| Country of origin or place of provenance | Art. 9(1)(i), Art. 26 | Food information section | Where its omission could mislead, or other rules require it |
| Alcoholic strength | Art. 9(1)(k) | Food information section | Drinks over 1.2 per cent alcohol by volume |
| Date of minimum durability or “use by” date | Art. 9(1)(f) | Not required on the page | Must be on the product at delivery |
Two details trip shops up. Where there is no ingredient list, Article 21 asks for the word “Contains” followed by the allergen. And some products are exempt from the nutrition declaration (Annex V lists them, for example unprocessed single-ingredient products), so check before you assume either way. For the table format itself, see our guide to the EU nutrition declaration format.
Why must the ingredients be written for each product?
Because the allergens differ from product to product. Article 21 asks for each allergen to be emphasised in the ingredient list itself, “through a typeset that clearly distinguishes it from the rest of the list”, for example by font, style or background colour. A general “may contain nuts” note in the footer, or the same allergen text on every product, does not do that. To see which words of an ingredient list are Annex II allergens, paste it into the EU allergen checker and compare the result with your recipe.
It also has to be readable. A photo of the pack is hard to read on a phone, cannot be read by screen readers or search engines, and goes out of date the day a recipe changes. Text on the page avoids all three. Our EU allergen information guide covers the 14 allergens in detail.
Why does a hand-coded Liquid and metafield setup break so easily?
Metafields are a sound place to keep food data. The weak point is usually the hand-written code that shows them:
- The snippet lives in one theme. Switch or update the theme and the snippet, or the section it sits in, may not come with it. The data is still there; the page just stops showing it.
- The code reads the wrong place. Values entered on the variant are not read by code that looks at the product, and the reverse. The page shows nothing, and nobody notices until a customer asks. See nutrition and allergen metafields not showing for the usual causes.
- Bold allergens need markup. A plain text field cannot hold bold words, so shops end up pasting HTML into fields, which is easy to break.
- Every new field means more wiring. Adding storage conditions or origin later means another definition, more Liquid and another test on every template.
- Only the person who wrote it can fix it. When that person is gone, a recipe change becomes a theme edit.
None of this makes the do-it-yourself route wrong. It means someone has to own and test that code every time the theme changes.
Add on Shopify App Store: Etiketto: EU Nutrition Labels shows a nutrition table, ingredients with bold allergens and the operator from one form per product and one theme block.
What about several flavours or sizes?
The rule does not change: the shopper has to see the information for the food they are buying.
Etiketto keeps one label per product. So if each flavour has its own recipe, list each flavour as its own product, so each page shows its own ingredients, allergens and nutrition. If sizes share one recipe, the nutrition per 100 g is the same for all of them, so one label covers the recipe; make sure each size’s net quantity is clear to the shopper, for example in the variant name (“250 g”, “500 g”).
How do you set it up with Etiketto, step by step?
Etiketto: EU Nutrition Labels is a Shopify app for food shops selling into the EU. It shows the food information Regulation (EU) No 1169/2011 requires on your product pages: a nutrition table, ingredients with allergens in bold, and the operator.
- Install the app. It asks to read and write products, read themes and read your store’s languages.
- Fill in one product. One editor holds nutrition per 100 g (energy in kJ and kcal, fat, saturates, carbohydrate, sugars, fibre, protein, salt), ingredients, the 14 EU allergens, net quantity, storage, origin, alcohol and the operator. Take the values from your own specification or lab results.
- Mark the allergens. Wrap each allergen in asterisks in the ingredient list, for example
oat flakes, honey, *butter* (*milk*). The product page shows those words in bold. - Add the block. In the theme editor, add the Food information block to the product template of an Online Store 2.0 theme, with no theme code changes, and pick a table, accordion, compact or card layout.
- Check the live page against the pack. Compare one product of each kind before you fill in the rest.
Illustration with sample data, not a real product.
The block renders plain HTML text, not an image, so search engines, screen readers and translation tools read it like the rest of the page. Label wording comes in 10 languages, and your own text can be translated into any published store language. The food information is stored on your products as metafields. More on the Etiketto app page.
What does Etiketto not do?
- It does not calculate values. The nutrition figures come from you.
- It does not detect allergens. Only the words you mark are emphasised.
- It does not print labels or track lots. It is for product pages.
- It does not make a page compliant by itself. You stay responsible for the accuracy of the data and for checking which rules apply to your products.
Is this legal advice?
No. This post summarises the text of Regulation (EU) No 1169/2011 as general information. It is not legal advice. Food supplements, alcoholic drinks, loose food and some national rules have extra requirements. For a shorter list to work through, see what a food product page must show in the EU.
Try Etiketto: EU Nutrition Labels
Pick one product, fill in its nutrition, ingredients and operator, add the block and compare the page with the pack. To do that from one form per product, add Etiketto: EU Nutrition Labels on the Shopify App Store.