Optimization Guide

Shopify EU Ecodesign & Repairability Schema — France Indice de Réparabilité, EPREL & Sustainability Structured Data

The EU's Right to Repair regulation and France's mandatory repairability index (indice de réparabilité) have created a new class of structured data signals that AI shopping agents increasingly filter on. Queries like "most repairable laptop," "7-year spare parts guarantee smartphone," "eco-certified washing machine with EPD," or "recyclable packaging electronics" require machine-readable sustainability signals that Shopify outputs zero of by default. This guide covers the full EU ecodesign, repairability, and sustainability structured data stack for Shopify merchants selling into European markets.

TL;DR Use additionalProperty for the France repairability index score (0–10), spare parts availability period (years), recycled content percentages, and energy class. Add hasCertification for EU EPD, EU Ecodesign compliance, and Blauer Engel / Nordic Swan ecolabels. Use sustainabilityFeature for a plain-language NLP-friendly sustainability summary. Store all values in an eco.* metafield namespace for catalog-scale implementation.

France Repairability Index — Legal Requirement and Schema Implementation

France's AGEC anti-waste law (Loi Anti-Gaspillage, Decree No. 2020-1757) mandates that five product categories display a repairability index score at the point of sale — both in-store and online — since 1 January 2021. The score runs from 0 to 10 and is calculated by ADEME's official scoring methodology across five sub-criteria: documentation availability, spare parts availability, spare parts price, ease of disassembly, and product-specific criteria.

Product category French regulation Mandatory from
SmartphonesDecree No. 2020-17571 Jan 2021
Laptops / Notebook computersDecree No. 2020-17571 Jan 2021
Televisions (≥24 inch)Decree No. 2020-17571 Jan 2021
Front-loading washing machinesDecree No. 2020-17571 Jan 2021
Electric lawnmowersDecree No. 2020-17571 Jan 2021
Dishwashers, dryers, vacuum cleanersDecree No. 2021-1988 (expanded)4 Nov 2022
→ Converted to Durability Index (indice de durabilité)Decree No. 2024-xxxJan 2024 (phased)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "FairPhone 5 — Modular Smartphone, EU Ecodesign Compliant, Repairability Index 9.3/10",
  "description": "Modular, repairable 5G smartphone designed for longevity. Repairability index 9.3/10 (highest-rated smartphone in France). 8 years of software support. Spare parts available for 10 years. EU Ecodesign regulation (EU) 2022/1926 compliant. 50% post-consumer recycled plastic by weight.",
  "sku": "FP5-256-BLUE",
  "brand": { "@type": "Brand", "name": "Fairphone" },
  "sustainabilityFeature": "France repairability index (indice de réparabilité): 9.3/10 — highest-rated smartphone. Spare parts available 10 years from purchase. 8 years OS/security updates. 50% post-consumer recycled plastic (PCR). Fairtrade Gold certified minerals. B Corp certified. EU Ecodesign Regulation (EU) 2022/1926 compliant.",
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "EU Ecodesign Regulation (EU) 2022/1926 Compliance — Smartphones",
      "issuedBy": {
        "@type": "Organization",
        "name": "European Commission",
        "url": "https://energy.ec.europa.eu/topics/energy-efficiency/energy-efficient-products/ecodesign-regulation_en"
      }
    },
    {
      "@type": "Certification",
      "name": "B Corp Certification",
      "issuedBy": {
        "@type": "Organization",
        "name": "B Lab",
        "url": "https://www.bcorporation.net"
      }
    },
    {
      "@type": "Certification",
      "name": "Fairtrade Gold Certification",
      "issuedBy": {
        "@type": "Organization",
        "name": "Fairtrade International",
        "url": "https://www.fairtrade.net"
      }
    }
  ],
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Repairability Index",
      "value": "9.3",
      "minValue": "0",
      "maxValue": "10",
      "description": "France indice de réparabilité 9.3/10 — calculated per ADEME scoring methodology (Decree No. 2020-1757). Criteria: documentation 10/10, spare parts availability 10/10, spare parts price 8.5/10, disassembly ease 9.5/10, product-specific criteria 9.0/10.",
      "propertyID": "https://www.ecologie.gouv.fr/indice-reparabilite"
    },
    {
      "@type": "PropertyValue",
      "name": "Spare Parts Availability",
      "value": "10",
      "unitCode": "ANN",
      "description": "Spare parts available for 10 years from date of purchase"
    },
    {
      "@type": "PropertyValue",
      "name": "Software Support Period",
      "value": "8",
      "unitCode": "ANN",
      "description": "8 years OS security and feature updates from product launch"
    },
    {
      "@type": "PropertyValue",
      "name": "Post-Consumer Recycled Plastic Content",
      "value": "50",
      "unitCode": "P1",
      "description": "50% of plastic components by weight are post-consumer recycled (PCR)"
    },
    {
      "@type": "PropertyValue",
      "name": "Recycled Tin Content",
      "value": "100",
      "unitCode": "P1",
      "description": "100% recycled tin in soldering"
    },
    {
      "@type": "PropertyValue",
      "name": "Product Design for Repairability",
      "value": "Modular — 8 replaceable modules (battery, screen, camera, speakers, USB-C port, back cover, top module, display frame)"
    },
    {
      "@type": "PropertyValue",
      "name": "Packaging Material",
      "value": "100% recycled and recyclable cardboard — no plastic packaging"
    }
  ],
  "offers": {
    "@type": "Offer",
    "price": "699.00",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock"
  }
}
</script>

EU Ecodesign Regulation — Key Requirements in Structured Data

The EU Ecodesign Regulation framework (formerly Directive 2009/125/EC, now Regulation (EU) 2024/1781 — the "Ecodesign for Sustainable Products Regulation" or ESPR) sets mandatory requirements for product design, including minimum repairability thresholds, spare parts availability obligations, and energy efficiency floors. For each product category, use hasCertification referencing the specific regulation number to signal compliance.

Product category EU Ecodesign Regulation Key requirements
Smartphones & tablets (EU) 2022/1926 Spare parts 5 years, repairability information, battery replaceable, charger compatibility
Washing machines (EU) 2019/2014 Spare parts 10 years, drum cleaning program, water efficiency
Refrigerators (EU) 2019/2016 Spare parts 10 years, energy class, minimum energy performance
Televisions (EU) 2019/2021 Spare parts 7 years, software updates 8 years, standby power <0.5W
Laptops & computers (EU) 2023/1670 Battery replaceable by professional, spare parts 7 years, software updates 8 years
Power supplies (external) (EU) 2019/1782 Minimum efficiency thresholds, no-load power limits
Tyres (EU) 2020/740 Rolling resistance, wet grip, external rolling sound

hasCertification for Ecodesign compliance signals

{
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "EU Ecodesign Regulation (EU) 2022/1926 — Smartphones & Tablets",
      "issuedBy": {
        "@type": "Organization",
        "name": "European Commission",
        "url": "https://energy.ec.europa.eu"
      },
      "description": "Compliant with EU ecodesign requirements for smartphones including spare parts availability, repairability information, and battery replaceability"
    },
    {
      "@type": "Certification",
      "name": "Nordic Swan Ecolabel",
      "issuedBy": {
        "@type": "Organization",
        "name": "Nordic Ecolabelling Board",
        "url": "https://www.nordic-ecolabel.org"
      },
      "certificationIdentification": "XXXXX-YYYY"
    },
    {
      "@type": "Certification",
      "name": "EU Ecolabel",
      "issuedBy": {
        "@type": "Organization",
        "name": "European Commission",
        "url": "https://environment.ec.europa.eu/topics/circular-economy/eu-ecolabel_en"
      },
      "certificationIdentification": "DK-011-XXXX"
    }
  ]
}

sustainabilityFeature — Natural Language Sustainability Summary

Schema.org's sustainabilityFeature is a plain-text string on Product that captures sustainability characteristics in human-readable form. It complements the structured additionalProperty and hasCertification entries by providing the NLP surface that AI agents use to answer unstructured sustainability queries.

AI agents answering "most eco-friendly washing machine," "repairability-first smartphone," or "zero-plastic packaging electronics" are using natural language matching against sustainability claims. sustainabilityFeature is the correct place to put these claims — not the product description, which AI agents parse less reliably for structured sustainability signals.

sustainabilityFeature sentence patterns for EU Ecodesign

AI query intent sustainabilityFeature sentence
Repairability "France repairability index: 8.2/10. Modular design with user-replaceable battery and screen."
Spare parts longevity "Spare parts guaranteed available for 10 years from date of purchase."
Recycled materials "35% post-consumer recycled plastic by weight. 100% recycled aluminium casing."
Packaging "Plastic-free packaging: 100% recycled and recyclable cardboard with soy-based inks."
Carbon footprint "Carbon footprint: 42 kg CO₂e (cradle to gate, verified by ISO 14040/14044 LCA)."
Software support "8 years of OS security and feature updates guaranteed from launch date."
Certifications "EU Ecolabel certified (DK-011-XXXX). Nordic Swan Ecolabel. B Corp certified."
End-of-life "Designed for disassembly: 95% materials recyclable at end of life. Take-back program available."

EU Environmental Product Declaration (EPD) — hasCertification

An Environmental Product Declaration (EPD) is a third-party verified lifecycle assessment document published to a public EPD registry. EPDs quantify the environmental impact of a product across its lifecycle (manufacturing, use, end-of-life) in standardized categories: global warming potential (GWP), acidification, eutrophication, ozone depletion, and others.

EPDs are increasingly used by procurement AI agents handling B2B and institutional purchasing queries where carbon footprint documentation is required. Including the EPD registration number in structured data with a direct verification URL makes the claim programmatically verifiable — the same verification logic used for GIA diamond certificates applies here.

{
  "hasCertification": [
    {
      "@type": "Certification",
      "name": "Environmental Product Declaration (EPD) — ISO 14025 Verified",
      "issuedBy": {
        "@type": "Organization",
        "name": "International EPD System (Environdec)",
        "url": "https://www.environdec.com"
      },
      "certificationIdentification": "S-P-12345",
      "url": "https://www.environdec.com/library/epd-S-P-12345",
      "validFrom": "2024-03-01",
      "validUntil": "2029-02-28",
      "description": "Third-party verified EPD per ISO 14025 and EN 15804+A2. Global Warming Potential: 42 kg CO2e (cradle to gate)."
    }
  ],
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "name": "Global Warming Potential (GWP)",
      "value": "42",
      "unitCode": "KGM",
      "description": "42 kg CO2e per functional unit (cradle to gate, ISO 14040/14044). Verified by EPD S-P-12345."
    },
    {
      "@type": "PropertyValue",
      "name": "EPD Program Operator",
      "value": "International EPD System (Environdec)",
      "propertyID": "https://www.environdec.com"
    }
  ]
}

Dawn Liquid Snippet: Ecodesign JSON-LD from Metafields

Save as snippets/ecodesign-product-schema.liquid. Triggers for products tagged eu-ecodesign or repairability-index. Uses an eco.* metafield namespace.

{% comment %} ecodesign-product-schema.liquid — EU ecodesign + France repairability index schema {% endcomment %}
{% assign is_eco = false %}
{% if product.tags contains 'eu-ecodesign' or product.tags contains 'repairability-index' or product.tags contains 'eco-certified' %}
  {% assign is_eco = true %}
{% endif %}

{% if is_eco %}

{% assign repair_score      = product.metafields.eco.repairability_score %}
{% assign spare_years       = product.metafields.eco.spare_parts_years %}
{% assign software_years    = product.metafields.eco.software_support_years %}
{% assign recycled_plastic  = product.metafields.eco.recycled_plastic_pct %}
{% assign sustainability_ft = product.metafields.eco.sustainability_feature %}
{% assign eprel_number      = product.metafields.eco.eprel_number %}
{% assign epd_number        = product.metafields.eco.epd_number %}
{% assign epd_org           = product.metafields.eco.epd_org %}
{% assign ecodesign_reg     = product.metafields.eco.ecodesign_regulation %}
{% assign eu_ecolabel_num   = product.metafields.eco.eu_ecolabel_number %}
{% assign gwp_value         = product.metafields.eco.gwp_kg_co2e %}

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": {{ product.title | json }},
  "description": {{ product.description | strip_html | truncatewords: 80 | json }},
  "url": "{{ shop.url }}{{ product.url }}",
  "sku": {{ product.selected_or_first_available_variant.sku | json }}
  {% if product.vendor != blank %}
  ,"brand": { "@type": "Brand", "name": {{ product.vendor | json }} }
  {% endif %}
  {% if sustainability_ft != blank %}
  ,"sustainabilityFeature": {{ sustainability_ft | json }}
  {% endif %}
  {% if eprel_number != blank or epd_number != blank or eu_ecolabel_num != blank or ecodesign_reg != blank %}
  ,"hasCertification": [
    {% assign cert_started = false %}
    {% if ecodesign_reg != blank %}
    {
      "@type": "Certification",
      "name": {{ "EU Ecodesign Regulation " | append: ecodesign_reg | append: " Compliance" | json }},
      "issuedBy": { "@type": "Organization", "name": "European Commission", "url": "https://energy.ec.europa.eu" }
    }
    {% assign cert_started = true %}
    {% endif %}
    {% if eu_ecolabel_num != blank %}
    {% if cert_started %},{% endif %}{
      "@type": "Certification",
      "name": "EU Ecolabel",
      "issuedBy": { "@type": "Organization", "name": "European Commission", "url": "https://environment.ec.europa.eu" },
      "certificationIdentification": {{ eu_ecolabel_num | json }}
    }
    {% assign cert_started = true %}
    {% endif %}
    {% if epd_number != blank %}
    {% if cert_started %},{% endif %}{
      "@type": "Certification",
      "name": "Environmental Product Declaration (EPD) — ISO 14025",
      "issuedBy": { "@type": "Organization", "name": {% if epd_org != blank %}{{ epd_org | json }}{% else %}"International EPD System"{% endif %} },
      "certificationIdentification": {{ epd_number | json }}
      {% if epd_number contains 'S-P' %}
      ,"url": {{ "https://www.environdec.com/library/epd-" | append: epd_number | json }}
      {% endif %}
    }
    {% assign cert_started = true %}
    {% endif %}
  ]
  {% endif %}
  ,"additionalProperty": [
    {% assign ap_started = false %}
    {% if repair_score != blank %}
    {
      "@type": "PropertyValue",
      "name": "Repairability Index",
      "value": {{ repair_score | json }},
      "minValue": "0",
      "maxValue": "10",
      "propertyID": "https://www.ecologie.gouv.fr/indice-reparabilite",
      "description": {{ "France indice de réparabilité: " | append: repair_score | append: "/10 (Decree No. 2020-1757)" | json }}
    }
    {% assign ap_started = true %}
    {% endif %}
    {% if spare_years != blank %}
    {% if ap_started %},{% endif %}{
      "@type": "PropertyValue",
      "name": "Spare Parts Availability",
      "value": {{ spare_years | json }},
      "unitCode": "ANN",
      "description": {{ spare_years | append: " years spare parts availability from purchase date" | json }}
    }
    {% assign ap_started = true %}
    {% endif %}
    {% if software_years != blank %}
    ,{
      "@type": "PropertyValue",
      "name": "Software Support Period",
      "value": {{ software_years | json }},
      "unitCode": "ANN",
      "description": {{ software_years | append: " years OS and security updates from product launch" | json }}
    }
    {% endif %}
    {% if recycled_plastic != blank %}
    ,{
      "@type": "PropertyValue",
      "name": "Post-Consumer Recycled Plastic Content",
      "value": {{ recycled_plastic | json }},
      "unitCode": "P1",
      "description": {{ recycled_plastic | append: "% of plastic components by weight are post-consumer recycled (PCR)" | json }}
    }
    {% endif %}
    {% if gwp_value != blank %}
    ,{
      "@type": "PropertyValue",
      "name": "Global Warming Potential (GWP)",
      "value": {{ gwp_value | json }},
      "unitCode": "KGM",
      "description": {{ gwp_value | append: " kg CO2e per functional unit (cradle to gate)" | json }}
    }
    {% endif %}
    {% if eprel_number != blank %}
    ,{
      "@type": "PropertyValue",
      "name": "EU EPREL Registration Number",
      "propertyID": "https://eprel.ec.europa.eu/",
      "value": {{ eprel_number | json }},
      "url": {{ "https://eprel.ec.europa.eu/qr/" | append: eprel_number | json }}
    }
    {% endif %}
  ]
  ,"offers": {
    "@type": "Offer",
    "price": {{ product.selected_or_first_available_variant.price | money_without_currency | json }},
    "priceCurrency": {{ cart.currency.iso_code | json }},
    "availability": {% if product.available %}"https://schema.org/InStock"{% else %}"https://schema.org/OutOfStock"{% endif %},
    "url": "{{ shop.url }}{{ product.url }}"
  }
}
</script>
{% endif %}

eco.* metafield namespace

Metafield Type Example value
eco.repairability_scoreSingle line text9.3, 7.5, 6.8
eco.spare_parts_yearsInteger10, 7, 5
eco.software_support_yearsInteger8, 5, 3
eco.recycled_plastic_pctInteger50, 35, 25
eco.gwp_kg_co2eSingle line text42, 156, 85.3
eco.eprel_numberSingle line text445678
eco.epd_numberSingle line textS-P-12345
eco.epd_orgSingle line textInternational EPD System (Environdec), IBU
eco.ecodesign_regulationSingle line text(EU) 2022/1926, (EU) 2019/2014
eco.eu_ecolabel_numberSingle line textDK-011-XXXX
eco.sustainability_featureMulti-line textPlain-language sustainability summary

5 Common EU Ecodesign Schema Mistakes

# Mistake Impact Fix
1 France repairability index only in product description text, not structured data AI agents handling "most repairable laptop" queries cannot extract and rank by repairability score from unstructured description text — it requires a numeric structured property to enable comparative filtering across products Add additionalProperty with name: "Repairability Index", value as the decimal score, and minValue: "0", maxValue: "10" for scale context
2 Sustainability claims in description only — no hasCertification or sustainabilityFeature Sustainability claims buried in product descriptions are treated as unverified marketing text by AI agents — the same way medical clearance claims in product descriptions are deprioritized vs structured hasCertification entries. Description-based claims have near-zero structured-data weight Move sustainability certifications to hasCertification (EU Ecolabel, B Corp, Nordic Swan, EPD) and use sustainabilityFeature for the NLP-accessible plain-language summary
3 No spare parts availability period in structured data AI agents answering "longest spare parts guarantee laptop" or "7-year spare parts smartphone" cannot filter products without a structured spare parts duration property — this is one of the Right to Repair movement's most-queried signals Add additionalProperty: { 'name': 'Spare Parts Availability', 'value': '10', 'unitCode': 'ANN' } for the years spare parts are guaranteed by the manufacturer
4 Recycled content percentage in description ("made with recycled materials") without numerical structured data AI agents filtering on "30%+ recycled content" or "majority recycled materials" cannot execute numerical filtering against natural-language recycled content claims in description text — they need a numerical percentage with a unit Add additionalProperty: { 'name': 'Post-Consumer Recycled Plastic Content', 'value': '35', 'unitCode': 'P1' } with explicit percentage and material type for each recycled material stream
5 EU Ecodesign regulation compliance claimed without the specific regulation number "EU Ecodesign compliant" without the regulation number is an unverifiable claim — each regulation applies to a specific product category with specific thresholds. AI compliance-check queries need the regulation number to verify which requirements apply Add hasCertification with name including the exact regulation: "EU Ecodesign Regulation (EU) 2022/1926 — Smartphones" — the regulation number in the name enables AI agents to cross-reference the specific compliance requirements for that product category

Frequently Asked Questions

Where does the France repairability index go in schema.org?

Use additionalProperty: { '@type': 'PropertyValue', 'name': 'Repairability Index', 'value': '7.5', 'minValue': '0', 'maxValue': '10', 'propertyID': 'https://www.ecologie.gouv.fr/indice-reparabilite', 'description': 'France indice de réparabilité 7.5/10 — Decree No. 2020-1757' }. The decimal value enables AI comparative ranking ("sort by repairability score"). Include minValue and maxValue so AI agents understand the scale. The propertyID links to the official French government repairability index page, providing provenance for the score methodology.

What is sustainabilityFeature and how should I use it?

sustainabilityFeature is a plain-language text property on Product. It's the NLP surface for sustainability queries — AI agents use it for natural-language matching against sustainability queries. Write it as a fact-dense summary: "France repairability index: 9.3/10. Spare parts 10 years. 50% PCR plastic. EU Ecolabel certified. B Corp certified. Carbon footprint: 42 kg CO2e." This is distinct from the structured additionalProperty and hasCertification entries which provide machine-filterable data. Both are needed — structured for filtering, sustainabilityFeature for NLP query matching.

How do I express recycled content percentage?

Use additionalProperty with name identifying the material stream ("Post-Consumer Recycled Plastic Content"), value as the percentage number ("35"), unitCode: "P1" (UN/CEFACT percentage code), and description clarifying the scope ("35% of plastic components by weight"). Add separate additionalProperty entries for each material type: PCR plastic, recycled aluminium, recycled paper (packaging). For EPD-verified recycled content claims, reference the EPD certificationIdentification in the description to establish third-party verification.

What products require the France repairability index?

Since January 2021: smartphones, laptops, TVs (≥24"), front-loading washing machines, and electric lawnmowers (Decree No. 2020-1757). From November 2022: dishwashers, tumble dryers, and vacuum cleaners. From 2024, the index evolves into a durability index (indice de durabilité) adding reliability and robustness to the repairability criteria. Products in these categories sold to French consumers via Shopify must display the score on-page and including it in structured data is the machine-readable complement to that mandatory on-page disclosure.

How do I link an EU Environmental Product Declaration (EPD)?

Use hasCertification with name: "Environmental Product Declaration (EPD) — ISO 14025", issuedBy pointing to the EPD program operator (Environdec, IBU, Building Transparency), and certificationIdentification set to the EPD registration number (e.g., "S-P-12345"). Add url pointing to the EPD's public registry page for programmatic verification. Include the GWP value from the EPD as an additionalProperty with unitCode: "KGM" (kg CO2e) — this enables AI B2B procurement queries requiring specific carbon footprint thresholds. See also Ecommerce Carbon Offset & Eco Shipping Schema for carbon offsetting signals.

Are your EU Ecodesign compliance signals invisible to AI shopping agents?

CatalogScan audits your Shopify store's structured data and identifies missing repairability index scores, absent spare parts duration properties, unstructured sustainability certifications, and recycled content claims buried in descriptions — ensuring your EU-compliant products surface accurately in sustainability and right-to-repair queries.

Run Free Scan

Related Resources