A food product in an online shop carries two data sets that come from two corners of the ERP and fall due at two different moments. Ingredients, allergens and nutrition belong to the item and are fixed as soon as the recipe is released. The date of minimum durability and the lot number belong to the batch in the warehouse and are only fixed once picking touches a particular pallet. European food information law knows that split and writes it down: almost everything belongs on the product page before the contract is concluded, the durability date only has to travel with the delivery. An interface that pushes both through the same channel produces either an incomplete product page or a date that does not match the goods that were shipped.
Key takeaways
- Article 9(1) of Regulation (EU) No 1169/2011 lists twelve mandatory particulars, from the name of the food to the nutrition declaration. Eleven of them are item master data, exactly one belongs to the batch.
- In distance selling the mandatory particulars are due before the conclusion of the purchase contract, with one exception. Point (f), the date of minimum durability, is carved out; at the moment of delivery all particulars have to be available (Article 14(1)).
- Annex II lists 14 substances or products causing allergies or intolerances. In the shop these are not text snippets but flags on individual ingredients, emphasised inside the list of ingredients.
- The nutrition declaration is a table of seven values expressed per 100 g or per 100 ml. Maintaining it per pack size in the item master means calculating against the wrong reference quantity.
- Batch, durability date and lot number travel a second path: dispatch advice, delivery note and customer account. The catalogue does not know them, because at page load nobody yet knows which pallet will be touched.
Two Deadlines, One Mandatory Data Set
Distance selling has its own article in the Regulation, and that article splits the mandatory data set into two deadlines. Article 14(1)(a) of Regulation (EU) No 1169/2011 requires that mandatory food information, with the exception of the particulars under Article 9(1)(f), be available before the purchase is concluded and appear on the material supporting the distance selling or be provided through other appropriate means clearly identified by the food business operator. For a shop that means the product page is the supporting material, and it carries the particulars before the customer presses the order button. Anyone selling food knows this duty from the pack. What is new is only that the same fields have to arrive in the catalogue machine-readable from the item master instead of being typed into a description once a year. What that looks like in a project is covered by our ERP integration for food and beverage.
Point (b) of the same paragraph closes the gap that point (a) leaves open: all mandatory particulars have to be available at the moment of delivery. The date of minimum durability is therefore not optional, it is simply due later. Exactly that shift breaks the usual interface architecture, because it calls for a second data path: one that does not hang off the item but off the batch that actually goes into the parcel. The technical side of batch handling is covered in batches and serial numbers between ERP and shop; here the question is which fields hang off which path and when they fall due.
The Twelve Mandatory Particulars in the Item Master
Article 9(1) lists the mandatory particulars under points (a) to (l), opening with the name of the food and the list of ingredients and ending with point (l), the nutrition declaration. Twelve particulars, twelve fields. Filing them as running text inside a description puts them formally on the page but not into the data set: no synchronisation sees them, no filter reaches them, no structured markup carries them to a marketplace, and at the next recipe change nobody can find the affected items. The road there starts with master data synchronisation, not with copywriting.
Name of the food
The legal name, not the marketing name. Both belong in separate fields, because one is prescribed and the other is freely worded.
List of ingredients
An ordered list in descending order of weight. Kept as a field structure with individual ingredients, not as one long paragraph.
Allergens
A flag on the individual ingredient, rendered with emphasis inside the list of ingredients. Annex II names the 14 groups the flag refers to.
Net quantity
Quantity and unit maintained separately, so that unit price and nutrition reference are calculated rather than parsed out of a string.
Food business operator
Name and address of the responsible operator. Usually a reference to a partner record, not an address block inside the item text.
Nutrition declaration
Seven values per 100 g or per 100 ml, held as numeric fields with units. Point (l) of the list in Article 9(1).
Allergens Are a Mapping Task
Annex II of the Regulation is headed with substances or products causing allergies or intolerances and ends with entry 14, molluscs and products thereof: fourteen groups in total, from cereals containing gluten to molluscs. What matters is how the particular appears. Article 21(1)(b) requires the name of the substance or product listed in Annex II to be emphasised through a typeset that clearly distinguishes it from the rest of the list of ingredients, for instance by font, style or background colour. The emphasis is therefore a property of the individual ingredient inside the list, not a note underneath it. That turns the allergen particular into a mapping task between recipe ingredient and substance group, which is exactly the kind of work described in data mapping between ERP and store.
The flag belongs on the ingredient, not on the item
read item from the master
mandatory = [name, ingredients, allergens, net_quantity,
operator, nutrition, ...] # Article 9(1)
for field in mandatory:
if field empty or whitespace only:
hold publication and report the field
for ingredient in item.ingredients:
if ingredient.group not in annex_ii and ingredient.allergen_suspect:
hold # mapping missing, emphasis would be blind
if nutrition.basis != '100g' and nutrition.basis != '100ml':
convert or hold # Article 32(2)
for language in target_markets:
if item.text[language] missing:
hold # mandatory particular without a language version
durability date and lot number: do not check in the catalogue
-> they belong on dispatch advice, delivery note and accountThe Nutrition Declaration per 100 Grams
Article 30(1) fixes the content: the mandatory nutrition declaration contains the energy value and the amounts of fat, saturates, carbohydrate, sugars, protein and salt. That is seven values, and they hang off a fixed reference quantity. Article 32(2) states that the energy value and the amounts of nutrients under Article 30(1) to (5) are to be expressed per 100 g or per 100 ml. For an integration that is a hard requirement on the data model: nutrition is never maintained per pack size but per reference quantity, and every display per portion or per pack is calculated from that single set of values. The presentation is governed too: under Article 34(2) the particulars are to be presented in tabular format with the numbers aligned, if space permits. A product page that writes seven values into one sentence does not meet that. How such field structures travel through the chain is shown in PIM integration.
- Hold the reference quantity as a field: 100 grams for solids, 100 millilitres for liquids. The reference sits next to the values, not inside their labels.
- Seven values, seven fields: energy, fat, saturates, carbohydrate, sugars, protein and salt. A combined text field can neither be converted nor compared.
- Two units for energy: kilojoules and kilocalories are both declared and both stored separately instead of deriving one from the other in the frontend.
- Derive portion figures, do not maintain them: if a portion is displayed, the value follows from the reference quantity and the portion size. A second maintained number drifts away from the first.
- Enforce the table in the shop: the display renders a table with the numbers aligned underneath each other. That is not a design question but the intended presentation.
The Field Check Before Publication
An item without complete mandatory particulars must not be offered in distance selling. Technically that means publication is a gate, not a copy job. The synchronisation pulls the item out of the ERP, holds it against the field list and releases it only once every mandatory field is filled. If one is missing, the item stays invisible and lands on a list that somebody works through. That is inconvenient, but the opposite direction costs more: a visible item without a list of ingredients is an offer that should not be standing there. Our ERP inventory integration is the natural place for that gate, because every record passes through it anyway.
The second trap sits in the variants. A flavour, a size, a recipe line: every variant can carry its own recipe and therefore its own list of ingredients. If the particular is maintained on the parent item and inherited down, three out of five variants show the wrong list. The check therefore belongs at the level that is actually ordered. How that level comes into being in the shop is described in product variants from the ERP.
| Field | Kept loosely | Kept as a data field |
|---|---|---|
| List of ingredients | Paragraph inside the description | Position list with order and share |
| Allergens | Note line under the text | Flag per ingredient, emphasised in the list |
| Nutrition | Sentence with seven numbers | Seven fields with reference quantity, rendered as a table |
| Net quantity | String such as 500g | Number and unit separate, unit price calculated |
| Durability date | Maintained in the catalogue and stale | From the batch, with the delivery |
| Lot number | Not kept at all | Visible on the delivery note and in the account |
The Second Data Path: Batch and Shelf Life
The date of minimum durability does not belong in the catalogue, for a simple reason: at page load it is not yet decided which batch the warehouse will pick. A durability figure maintained in the item master is either a remaining shelf life in days, in which case it is a promise rather than a particular, or a fixed date that is wrong at the next goods receipt at the latest. The right place is the document: dispatch advice, delivery note, packing slip and the customer account where the order stays traceable. The fact that documents are created more than once when an order leaves the warehouse in parts is covered in partial deliveries and part invoices, and that same split affects the durability particular, because two part quantities can come from two batches.
How the date is written is governed as well. Annex X, point 1(c) requires the date to consist of the day, the month and, where appropriate, the year, in uncoded form and in that order. For the interface that means a small but recurring piece of diligence: internally the date is held in a sortable form, on output it follows the prescribed order. A format passed straight through from the data set in reverse notation is not a good particular on a delivery note, even if it is unambiguous for machines. Which batch fields exist in detail and how they flow back into traceability is covered in batches and serial numbers between ERP and shop.
The Lot Number and the Letter L
Alongside the food information Regulation there is a separate directive on lot marking. Directive 2011/91/EU provides in Article 2(1) that a foodstuff may only be placed on the market if it bears an indication under Article 1(1). The lot indication is therefore not an optional extra of traceability but a precondition for placing the product on the market. In the ERP it almost always exists already, because batch handling does not work without it. It simply often fails to reach the customer, because it is treated as an internal field.
The notation is prescribed too. Article 3 of the same directive states that the indication is preceded by the letter L, unless it is clearly distinguishable from the other indications on the label. Anyone passing the lot number from the ERP to the delivery note therefore needs an output rule and not just a field: a leading letter or a presentation that visibly stands out. That is one line of code in the right place, and a recurring piece of rework when it is missing, because every complaint then starts with a search in the warehouse instead of a number on the document.
A mandatory particular is a field, not a sentence
Two Systems, Two Cadences
Item master and batch master change at different speeds. A recipe is touched rarely, a batch stock several times a day. Pushing both through the same synchronisation at the same frequency costs either load or freshness. The sensible answer is a split: item data runs at the cadence of master data maintenance and triggers a fresh field check on every change, batch data runs event-driven with the warehouse posting. A middleware in between keeps the two cadences apart and makes sure that an outage on one side does not drag the other down with it.
The difference becomes visible when something fails. If the item synchronisation is down for half a day, the shop shows a slightly older but complete mandatory data set: unpleasant, not critical. If the batch path fails, parcels leave the building with a document that has no durability date, and that is a finding on the delivery itself. The queues behind them must therefore not be treated alike: one may wait, the other halts picking. How to separate such paths cleanly is part of the API development around the integration.
Type Size on the Pack, Data Field in the Shop
The Regulation also governs how small the particulars on the pack may be. Under Article 13(2) the mandatory particulars under Article 9(1), where they appear on the package or on the label attached to it, are to be printed in characters using a font size where the x-height under Annex IV is equal to or greater than 1.2 mm, in such a way as to ensure good legibility. For a shop that is not a direct yardstick, but it is a useful one: if the particulars on the pack have to stay legible at a minimum size, they should not be pushed into a collapsed panel at the bottom of the product page either. Mandatory particulars belong visibly in the area that is read before the order button. The same logic, data from the master, visible on the offer, applies to manufacturer details, which are covered in product safety and economic operator data in listings.
Handover in Day-to-Day Operation
- Each of the twelve mandatory particulars has its own field in the item master and a fixed place in the mapping to the shop, not merely a place in the description.
- The list of ingredients arrives as a position list in descending order of weight, each position with its own substance-group assignment.
- The emphasis on allergens is rendered by the shop from that assignment, not from hand-applied text formatting in the description.
- Nutrition exists as seven numeric fields with a reference quantity of 100 grams or 100 millilitres and is displayed as a table with aligned numbers.
- Publication is a gate: an item with an empty mandatory field stays invisible and appears on a work list.
- Variants carry their own mandatory particulars; only what demonstrably applies to all variants is inherited.
- Durability date and lot number are not in the catalogue but on the dispatch advice, the delivery note and in the customer account for the order.
- The date is output as day, month and, where appropriate, year in that order, regardless of the internal storage format.
- The lot indication is preceded by the letter L unless it already stands out clearly from the other indications.
A mandatory particular that only lives in the description is not a record but a formulation with an expiry date. Only as a field does it survive the next recipe change.
Sources and legal basis
Related Articles
GPSR: Economic Operator Data From ERP Into Every Listing
The economic operator as a master data object: move manufacturer, responsible person and product identifiers from the ERP into every distance offer.
EUDR from December 2026: due diligence data from ERP
From 30 December 2026 every consignment needs a due diligence statement. Which fields the ERP has to carry and how the reference number reaches customs.
Mapping ERP product variants cleanly in the shop
Feature axes, the variant matrix and article number logic: how colour, size and version in the ERP become a solid variant structure in the shop, with GS1 rules.