We
are currently working on a project where GDSN product data, especially those
relating to the new European regulation, are being received and edited into
consumer-friendly formats for an online shop. I would like to highlight this
challenge in the second article of our blog series on the EU regulation No 1169/2011.
What characterises the mandatory information of the new European regulation in relation to a real product example?
Lets
recall article 9, "List of mandatory particulars" (see also http://themdmblog.blogspot.de/2013/12/eu-regulation-11692011-on-provision-of.html ):
- The name of the food ("Product Name" in the illustration: "Double-filled biscuits with cocoa cream filling 46%".
- The list of ingredients ("Ingredients" in the illustration): "Ingredients: flour, sugar,..."
- Any ingredient or processing aid causing allergies or intolerances ("Allergens" in the illustration): "May contain traces of: Soy". The additional nutritional information "Suitable for vegetarians" is no mandatory declaration according to the European regulation.
- The quantity of certain ingredients or categories of ingredients. The product example provides here no more detailed declaration in its list of ingredients
- The net quantity of the food: ("Net Content" in the illustration): "400 g".
- The date of minimum durability or the 'use by 'date ("Best Before Date" in the illustration)
- Any special storage conditions and/or conditions of use ("Storage Instructions"in the illustration): "Protect from heat. Store in dry conditions"
- The name or business name and address of the food business operator as well as
- The country of origin or place of provenance where provided for ("Origin / Manufacturer" in the illustration)
- Instructions for use (if necessary) - not relevant in case of the product example
- With respect to beverages containing more than 1,2 % by volume of alcohol, the actual alcoholic strength by volume - not relevant in case of the product example
- A nutrition declaration (mandatory only from 13. December 2016) ("Nutrition Info" in the illustration)
Who will be affected by the European regulation?
European regulation applies to industry and commerce, both stationary stores and online stores.
The
product example is largely European regulation compliant and therefore meets
its stationary trade standards: the customer can take the product into his
hands and decide on the basis of the information printed on the package whether
it fits his needs.
How does the online shop get the relevant data via GDSN though?
Let's
look, for example, at the allergy information on the product example: "May
contain traces of : Soy". The GS1 manual for the use of GDSN for the
European regulation makes the following
recommendation:
In
the GDSN data model, there is the repeatable attribute group
"foodAndBeveragesAllergen" with which a lot of the allergens
contained in a food product can be described.
The
attributes of this group are defined as follows:
- allergenSpecificationAgency - organisation that defines the allergen information
- allergenSpecificationName - name and version of the definition informing the transmitted allergen information
- allergenTypeCode - code that identifies the allergen contained
- levelOfContainment - code that specifies the amount of the allergen contained
Using
our specific example, this will look as follows (attribute = value ->
explanation)
- allergenSpecificationAgency = EU -> pre-defined default referring to the recommendation
- allergenSpecificationName = 1169/2011 -> pre-defined default referring to the recommendation
- allergenTypeCode = AY -> GDSN code list code "allergenTypeCode"
- levelOfContainment = MAY_CONTAIN -> GDSN code list code "Level of Containment Type Code"
In
this example, the actually relevant allergen information is transmitted via the
two codes "MAY_CONTAIN AY" contained in the pre-defined GDSN code
lists.
So what do these codes actually mean?
As a code of the "allergenTypeCode" code list, AY is defined as: "AY: Refers to the presence of soybeans and their derivatives in the product, as listed in as listed in the regulations specified in AllergenSpecificationAgency and AllergenSpecificationName". Or, to put it simple: "soy".
So what do these codes actually mean?
As a code of the "allergenTypeCode" code list, AY is defined as: "AY: Refers to the presence of soybeans and their derivatives in the product, as listed in as listed in the regulations specified in AllergenSpecificationAgency and AllergenSpecificationName". Or, to put it simple: "soy".
As a
code of the "levelOfContainment" code list, MAY_CONTAIN is defined
as: "The substance is not intentionally included, but due to shared
production facilities or other reasons, the product may contain the
substance". Or, to put it simple: "can contain".
How is this information contained in the GDSN Catalog Item Notification (CIN) message which any data recipient gets from the GDSN data pool?
In our example it looks, in a highly abridged version, as follows:
What is necessary to format this for the online shop?
The
task is now (in addition to the technical details of the GDSN data pool connection
and transformation of the GDSN messages, which I will not look at in this
article) to extract the consumer-friendly notice "Can contain traces of:
soy" from the GDSN compliant product information "MAY_CONTAIN: AY".
This
means that for the relevant codes of the GDSN code lists the desired text
fragments must be deposited and mapped. In our example these would be text
fragments for the notice if an allergen is contained ( "Level of Containment
Type Code"):
- "MAY_CONTAIN" => "May contain traces of:"
- "CONTAINS" => "Contains:"
- "FREE_FROM" => "Does not contain:"
As
well as the text fragments or declarations for potentially allergy-causing
substances ("Allergen Type Code") - here are some examples:
- "AX" => "gluten"
- "AY" => "soy"
- "AS" => "sesame"
- "SH" => "hazel"
Following
this final text module mapping, the consumer-friendly text passages for display
in the online shop can be extracted from the coded GDSN product information:
As far as i know the EU Regulation says that you have to highlight all ingredients of a products containing an allergen. E.g. "wheat-flour" has to be highlightet due to the contained "Gluten". Is this also covered by the GDSN datamodel?
ReplyDeleteHighlighting allergens is in fact a delicate area in the GDSN data model.
ReplyDeleteAs GDSN transports item master data, starting to pollute the ingredient text with e.g. html tags to format certain allergens is no feasible option. As data recipients interested in the pure text information only would need to parse out the tags...
However talking to GS1 there are two valid options ...and one of them is close to the formatting approach:
Option 1: Write allergens mentioned in the ingredient statement in UPPERCASE letters.
Option 2: Additionally with the ingredient statement, provide an attribute value pair called "ingredientStatementFormattingPattern". As value a formatting pattern, indicating start/stop positions in the ingredient text, plus the highlighting tag, needs to be given, Example: IngredientStatement="Ingredients: Sugar, water". IngredientStatementFormattingPattern="(13,b),(18,/b)" indicates "water" to be put in bold letters.
Clearly option 2 requires software support, as it would be inacceptable and error-prone for editors to count the characters and fill in the complicated pattern structure.