Informational guide. Not legal advice. Verify against primary source →
Food catalog standard — v1.0 — release candidate
How a food catalog should describe itself.
7 fields, each one carrying a primary regulator citation and a Shopify encoding rule. Written for the shopping channels and AI agents that read a catalog before a person ever does.
Free to read, free to cite. Spec text is CC-BY 4.0; the machine artefacts are CC0.
- Status
- Release candidate until 2026-09-22
- Published
- 2026-08-23
- Fields
- 7
- Cadence
- Half-yearly
Field 01 — string — required
gtin
The GS1 Global Trade Item Number identifying the sellable unit.
- Source standard
- What this standard adds
- Shopify metafield encoding rule (my_fields.gtin plus barcode on the variant) and an explicit exclusion for variable-measure prefixes, which are not stable product identifiers.
- Shopify encoding
variant.barcode, mirrored to the my_fields.gtin metafield on the product.
Field 02 — string[] — required
allergen
Declared allergens present in the product, drawn from the FSA Big-14.
- Source standard
- What this standard adds
- A source_phrase provenance field carrying the verbatim label text an allergen was read from, so every declaration is auditable back to the pack.
- Shopify encoding
my_fields.allergens as a list.single_line_text_field, one entry per allergen.- Permitted values (14)
- celery
- cereals containing gluten
- crustaceans
- eggs
- fish
- lupin
- milk
- molluscs
- mustard
- peanuts
- sesame
- soybeans
- sulphur dioxide and sulphites
- tree nuts
Field 03 — object[] — required
ingredient
The ingredient list in descending order of weight at the time of manufacture.
- Source standard
- What this standard adds
- A bidirectional allergen_ref linking each ingredient entry to its allergen declaration, so the two lists cannot drift apart.
- Shopify encoding
my_fields.ingredients as a list.single_line_text_field in declared order.
Field 04 — string — required
country_of_origin
Country of origin or place of provenance for the food, as an ISO 3166-1 alpha-2 code.
- What this standard adds
- primary_ingredient_origin, for the case where the primary ingredient comes from a different country than the food itself (FIC Article 26.3); and quid_pairs, capturing Quantitative Ingredient Declarations where an ingredient is named or pictured on the label (FIC Article 22 and Annex VIII).
- Shopify encoding
my_fields.country_of_origin as a single_line_text_field holding the alpha-2 code.
Field 05 — object — required
net_content
The net quantity of the food, as a value and a unit.
- What this standard adds
- UCUM unit enforcement, where most catalog specs leave net content as free text; plus an e_mark flag for packs carrying the average-quantity estimated sign.
- Shopify encoding
my_fields.net_content_value (number_decimal) and my_fields.net_content_unit (single_line_text_field, UCUM code).
Field 06 — object — optional
lifecycle
Durability dates and storage conditions for the product.
- What this standard adds
- best_before and use_by held as separate fields rather than one conflated date, plus opened and sealed shelf-life in days — the distinction is a safety boundary, not a formatting preference.
- Shopify encoding
my_fields.shelf_life_sealed_days and my_fields.shelf_life_opened_days (number_integer); date type carried in my_fields.durability_type.
Field 07 — string[] — optional
dietary_certifications
Third-party dietary or provenance certifications held by the product.
- Source standard
- What this standard adds
- A pinned scheme enum, where most catalog specs accept free text — free-text certification claims are unverifiable and unqueryable by a shopping channel.
- Shopify encoding
my_fields.certifications as a list.single_line_text_field, one pinned scheme identifier per entry.
Out of scope, and why.
What v1.0 deliberately does not cover.
- Nutrition panels. A separate encoding problem with its own regulatory surface.
- Nutrition and health claims ("low fat", "high fibre"). Claim encoding is governed separately and carries its own approval regime.
- Schema.org/Recipe alignment. Adjacent, but a different document type.
- Beauty INCI and apparel materials. Other verticals, other cadences.
Held back from this version.
- production_method — No verified primary-source URL. The DEFRA marketing-terms guidance is split across egg, poultry, fish, and organic pages, and the URL recorded during ADR 0024 review returned 404. Publishing an unciteable field would contradict the premise that every field cites a primary regulator. Planned for v1.0.1.
Related work.
Where this sits next to what already exists.
Open Food Facts is a public dataset of food products. This is an encoding standard for Shopify catalogs. The two are complementary: a dataset records what products exist; this document says how a merchant should structure their own catalog so a channel can read it.
GS1 governs identifiers. This standard cites GS1 for the identifier and adds the Shopify encoding path around it.
Schema.org Product has no first-class allergen field. The JSON-LD artefact extends it with a vocabulary for the fields above.