Wo WooCommerce Intermédiaire

DataFirefly Digital Product Passport — Documentation

Guide complet pour installer, configurer et utiliser le Passeport Numérique Produit (DPP) sur WooCommerce en conformité avec l'ESPR 2027.

Mis à jour Version du module 1.0.0

Introduction

Le plugin DataFirefly Digital Product Passport ajoute à WooCommerce tout ce qu’il faut pour générer un Passeport Numérique Produit (DPP) conforme au Règlement européen Écoconception pour des produits durables (ESPR). Ce passeport devient progressivement obligatoire dans l’Union européenne à partir de 2027, en commençant par le textile, les batteries et l’électronique grand public, avant de s’étendre à la quasi-totalité des produits mis sur le marché européen.

Concrètement, chaque produit WooCommerce gagne un identifiant unique stable (UUID v4), un QR code natif, une URL publique propre du type /dpp/{uuid}, un registre complet des composants et matériaux, une timeline de traçabilité, et une API REST publique. Aucun appel externe : tout est généré côté serveur.

À qui ça s’adresse ?
Toute boutique WooCommerce vendant en UE : textile, mode, batteries, électronique, ameublement, matériaux de construction, cosmétiques, jouets, détergents, lubrifiants ou peintures. Si tu ne fais pas partie des premières vagues, tu as tout intérêt à structurer tes données dès maintenant.

Prérequis

  • WordPress 6.0 ou supérieur
  • WooCommerce 7.0 ou supérieur, activé
  • PHP 7.4 minimum (testé jusqu’à PHP 8.3)
  • Un permalien autre que « Simple » (Réglages → Permaliens)

Installation

  1. Télécharge le ZIP dfdpp-1.0.0.zip depuis ton compte DataFirefly.
  2. Va dans Extensions → Ajouter → Téléverser une extension, sélectionne le ZIP, puis Installer maintenant.
  3. Clique sur Activer. Les 5 tables custom sont créées automatiquement (wp_dfdpp_passports, wp_dfdpp_components, wp_dfdpp_materials, wp_dfdpp_suppliers, wp_dfdpp_events) et les options par défaut sont posées.
  4. Si l’URL publique /dpp/{uuid} ne répond pas immédiatement, va dans Réglages → Permaliens et clique sur Enregistrer les modifications (sans rien changer) pour forcer le flush.

Configuration globale

Rends-toi dans WooCommerce → Passeport DPP. Cet écran regroupe tous les réglages du plugin.

URL publique et QR Code

  • Préfixe d’URL : par défaut dpp, ce qui donne tondomaine.com/dpp/{uuid}. Change-le si tu préfères passeport, product-passport ou autre. Pense à visiter Réglages → Permaliens après modification.
  • Taille du QR : facteur de zoom de 1 à 10. La valeur 6 (par défaut) produit environ 240 px de côté.
  • Marge : nombre de modules blancs autour du QR (4 par défaut).
  • Correction d’erreur : L / M / Q / H. Reste sur H si le QR sera imprimé sur étiquette : jusqu’à 30 % du code peut être abîmé sans compromettre la lecture.
  • Format préféré : PNG (raster, universel) ou SVG (vectoriel, meilleur pour l’impression grand format).

Identité fabricant par défaut

Renseigne ici les informations que tu ne veux pas retaper produit par produit :

  • Raison sociale, adresse, pays de fabrication
  • Pays par défaut appliqué aux composants et matériaux
  • Catégorie ESPR par défaut (textile, batterie, électronique, ameublement, etc.)

Affichage public

Cinq bascules indépendantes contrôlent ce que tes clients voient sur la page publique du passeport :

  • Empreinte carbone (activée par défaut)
  • Fournisseurs (désactivée par défaut — données sensibles)
  • Composition matière (activée)
  • Réparabilité et pièces détachées (activée)
  • Timeline de traçabilité (activée)
Tu peux activer les fournisseurs pour renforcer ton discours transparence radicale, mais valide-le au préalable avec tes acheteurs et tes juristes : c’est une information contractuellement sensible.

Publication automatique

Si tu coches cette option, chaque passeport passe automatiquement en published lorsque le produit WooCommerce lui-même est publié. Utile pour un catalogue de plusieurs centaines de produits gérés par une équipe non technique. Sinon, chaque passeport doit être publié manuellement — ce qui garantit un contrôle final.

Branding

  • Couleur d’accent : format hexadécimal (ex. #0f172a). Elle s’applique au hero, aux titres et aux boutons de la page publique.
  • URL du logo : affiché en haut de la page publique. Utilise une image transparente (PNG ou SVG) — elle sera inversée sur fond sombre.

Créer un passeport pour un produit

Ouvre n’importe quel produit dans WooCommerce. Un nouvel onglet Passeport DPP apparaît dans le panneau de données produit (à côté de Général, Inventaire, Livraison, etc.). Il regroupe 8 sections.

Onglet Identification

Le point d’entrée obligatoire pour publier :

  • Statut : Brouillon / Publié / Archivé. Seul Publié rend l’URL publique accessible.
  • Catégorie ESPR : détermine la structure de données que les auditeurs européens s’attendent à trouver. Choisis textile, battery, electronics, furniture, iron_steel, aluminium, tyres, detergents, paints, lubricants, chemicals, cosmetics, toys, construction ou general.
  • GTIN / EAN / UPC : le code-barres commercial international.
  • Référence modèle, Numéro de lot, Numéro de série : renseigne les champs applicables à ton produit.
  • Fabricant : nom, adresse, pays (préremplis depuis les réglages globaux si tu les as configurés).
  • Date de fabrication et Site de fabrication (ville, usine ou atelier).

Onglet Durabilité et empreinte

  • Empreinte carbone : valeur numérique, unité (kgCO2e par défaut) et méthodologie de calcul de référence (PEF, ISO 14067, GHG Protocol). Ne renseigne l’empreinte que si tu peux la justifier avec une méthodologie documentée — c’est le point le plus scruté par les audits.
  • Indice de réparabilité : note sur 10.
  • Durée de vie prévue en années.
  • Durée de garantie en mois (obligation d’au moins 24 mois en UE pour les biens de consommation).
  • Disponibilité pièces détachées en années.
  • Contenu recyclé en pourcentage.
  • Contenu recyclable en pourcentage.

Onglet Instructions

Quatre champs riches acceptant du HTML basique (paragraphes, listes, liens) :

  • Utilisation : conseils pour tirer le meilleur parti du produit et allonger sa durée de vie.
  • Entretien : lavage, séchage, stockage.
  • Recyclage : filière de recyclage, tri sélectif, points de collecte.
  • Fin de vie : que faire quand le produit n’est plus utilisable.

Onglet Conformité

  • Substances préoccupantes (SCIP / REACH) : liste des substances de la liste candidate REACH présentes à plus de 0,1 % en poids. Format libre, on recommande une liste à puces avec le nom et le numéro CAS.
  • Matières dangereuses : mention des classes de danger applicables (CLP, GHS).
  • Certifications et labels : OEKO-TEX, GOTS, GRS, Ecolabel, EPEAT, etc.

Onglet Composants

Registre à plat des composants qui constituent le produit. Pour chaque composant, tu ajoutes :

  • Nom (obligatoire)
  • Type : parmi une liste prédéfinie (tissu principal, doublure, semelle, boucle, fermeture, etc.)
  • Poids en grammes
  • Nom du fournisseur (jamais exposé publiquement sauf si tu actives la bascule dédiée)
  • Pays d’origine sur 3 caractères ISO 3166 alpha-3 (ex. FRA, ITA, CHN)
  • Recyclable : oui / non
  • Remplaçable : oui / non (pertinent pour l’électronique, l’ameublement)
Les composants sont sauvegardés en AJAX : chaque ajout ou suppression est immédiat, sans recharger la page. Le produit doit exister (au moins en brouillon) pour que le passeport puisse recevoir des composants.

Onglet Matériaux

Registre matière plus granulaire, avec les codes normalisés :

  • Code matériau : liste déroulante avec les principaux codes ISO 11469 / ISO 1043 pour les plastiques (PET, PP, PE, PVC, PS, PA, etc.), ISO 1833 pour les textiles (WO laine, CO coton, PL polyester, VI viscose, EL élasthanne, etc.), DIN 6120 pour les métaux, et les chimies batteries (Li-ion, LFP, NMC, NCA, NiMH, Pb).
  • Nom personnalisé : si le code prédéfini ne convient pas.
  • Pourcentage : part de ce matériau dans le produit (jusqu’à 4 décimales).
  • Recyclé + % recyclé : est-ce qu’il s’agit d’un contenu recyclé, et si oui à quelle proportion.
  • Renouvelable : matière d’origine biologique renouvelable.
  • N° CAS : identifiant CAS de la substance (pour les substances chimiques régulées).

Onglet Traçabilité

Timeline des événements-clés du cycle de vie. Chaque événement associe une date, un type, un acteur, un lieu et une description. Les types disponibles couvrent tout le cycle :

  • Production
  • Contrôle qualité
  • Transport
  • Import / Export
  • Distribution
  • Vente
  • Réparation
  • Reconditionnement
  • Recyclage
  • Fin de vie
Le minimum syndical pour un audit ESPR : une production initiale et une vente. Idéalement tu documentes aussi les étapes de contrôle qualité et de distribution. Les événements post-vente (réparation, recyclage) peuvent être ajoutés au fil de l’eau via l’API REST par un partenaire externe.

Onglet QR Code

Cet onglet devient actif dès que le produit est enregistré une première fois. Il affiche :

  • Le QR code généré (aperçu en data-URI)
  • L’UUID du passeport
  • L’URL publique cliquable
  • Trois boutons de téléchargement : PNG, SVG et JSON brut

Publier un passeport

Un passeport en statut Brouillon n’est pas accessible publiquement — l’URL renvoie une 404. Pour le publier :

  1. Ouvre le produit, va sur l’onglet Passeport DPP → Identification.
  2. Passe Statut sur Publié.
  3. Clique sur Mettre à jour en haut à droite du produit.

La date de première publication est mémorisée automatiquement dans published_at. Un passeport publié peut être remis en Brouillon ou passé en Archivé à tout moment.

Page publique du passeport

L’URL de la forme tondomaine.com/dpp/8f3a2c1d-4b5e-6f7a-8b9c-0d1e2f3a4b5c ouvre une page responsive avec :

  • Un hero avec le nom du produit, la catégorie ESPR, le logo de marque et l’image du produit
  • Un bandeau identifiants (UUID, GTIN, modèle, lot, série, SKU)
  • Une carte fabricant avec adresse et date de production
  • Une carte durabilité et empreinte avec les métriques sous forme de tuiles
  • Les tables composants et matériaux (selon les bascules d’affichage)
  • Les instructions (utilisation, entretien, recyclage, fin de vie)
  • La conformité réglementaire (certifications, substances, matières dangereuses)
  • Une timeline de traçabilité verticale avec dates et lieux
  • Une sidebar QR code avec téléchargement PNG / SVG / JSON
  • Un bloc JSON-LD schema.org Product automatiquement injecté pour le SEO et l’interopérabilité

Sur la fiche produit publique WooCommerce, un bloc discret invite les visiteurs à consulter le passeport, avec un QR miniature. Ce bloc est ajouté automatiquement au-dessous du résumé produit (hook woocommerce_after_single_product_summary, priorité 25).

Formats alternatifs

La même URL accepte deux suffixes :

  • /dpp/{uuid}?dfdpp_format=json ou /dpp/{uuid}.json : retourne le payload JSON complet, y compris le bloc JSON-LD.
  • /dpp/{uuid}?dfdpp_format=qr ou /dpp/{uuid}/qr : télécharge directement le QR code PNG.

API REST

Tous les endpoints sont exposés sous le namespace dfdpp/v1.

Endpoints publics

  • GET /wp-json/dfdpp/v1/passport/{uuid} — retourne le payload JSON complet du passeport.
  • GET /wp-json/dfdpp/v1/passport/by-product/{product_id} — même chose mais recherché par identifiant produit WooCommerce.
  • GET /wp-json/dfdpp/v1/passport/{uuid}/qr — retourne le QR code en SVG vectoriel.

Ces endpoints ne renvoient que les passeports en statut Publié.

Endpoints authentifiés

Nécessitent une authentification Application Password ou OAuth et une capability manage_woocommerce ou edit_products :

  • PATCH /wp-json/dfdpp/v1/passport/{product_id} — met à jour partiellement les champs d’un passeport.
  • POST /wp-json/dfdpp/v1/passport/{product_id}/publish — publie le passeport (raccourci sans avoir à passer par l’admin).
L’API REST est le canal idéal pour synchroniser tes passeports depuis un PIM, un ERP ou une chaîne de production automatisée. Elle permet aussi à un partenaire externe (atelier de réparation, filière de recyclage) d’ajouter des événements de traçabilité au fil du cycle de vie du produit.

Personnalisation

Surcharger la page publique

Copie public/templates/dpp-public.php depuis le plugin vers un dossier dfdpp/ à la racine de ton thème actif. Le plugin utilisera prioritairement ce fichier, ce qui te permet de refondre entièrement le rendu sans toucher au plugin. La logique de récupération des données reste inchangée : tu disposes des variables $passport et $data exactement comme dans le template original.

Filtre du payload JSON

Le filtre dfdpp_passport_payload te permet d’ajouter ou modifier des champs dans la charge JSON exposée. Exemple : ajouter un champ propriétaire internal_reference visible uniquement pour ton ERP.

add_filter( 'dfdpp_passport_payload', function ( $data, $passport ) {
    $data['custom'] = array(
        'internal_reference' => get_post_meta( $passport->product_id, '_erp_ref', true ),
    );
    return $data;
}, 10, 2 );

Bloc sur la fiche produit

Le bloc invitant à consulter le passeport sur la fiche produit publique WooCommerce peut être déplacé, désactivé ou remplacé en manipulant le hook :

// Le retirer complètement
remove_action( 'woocommerce_after_single_product_summary', array( dfdpp()->frontend, 'render_product_dpp_link' ), 25 );

// Le placer ailleurs, par exemple au-dessus du bouton Ajouter au panier
add_action( 'woocommerce_single_product_summary', array( dfdpp()->frontend, 'render_product_dpp_link' ), 25 );

Traductions

Le plugin est livré avec une traduction française complète (languages/dfdpp-fr_FR.po et .mo) et un fichier template dfdpp.pot (291 chaînes uniques) pour traduire vers d’autres langues avec Poedit ou tout outil compatible gettext.

Polylang Pro et WPML sont supportés pour la traduction des contenus produit (nom, description, catégorie ESPR). Le passeport reste attaché au produit source, ce qui garantit une seule source de vérité pour les données de conformité tout en permettant un affichage multilingue de la page publique.

Compatibilité HPOS

Le plugin déclare explicitement sa compatibilité avec le stockage haute performance des commandes WooCommerce (High-Performance Order Storage). Il ne stocke aucune donnée dans le custom post type shop_order — les 5 tables dédiées sont indépendantes. Tu peux activer HPOS sans crainte de rupture avec le plugin.

FAQ et dépannage

L’URL publique renvoie une 404

Trois causes possibles :

  • Le passeport est en statut Brouillon ou Archivé — passe-le en Publié.
  • Les rewrite rules n’ont pas été flushées — va dans Réglages → Permaliens et enregistre (sans rien changer).
  • Un permalien « Simple » est actif — passe à « Titre de la publication » ou tout autre format non simple.

Le QR code ne s’affiche pas

Vérifie que ton hébergeur autorise l’écriture du répertoire wp-content/uploads/ et que l’extension GD est activée dans PHP (nécessaire pour la génération PNG). Si tu es en environnement contraint, force le format SVG dans les réglages : il ne dépend pas de GD.

Comment fournir la traçabilité à un partenaire externe ?

Utilise l’API REST. Crée un Application Password dédié au partenaire dans son compte utilisateur WordPress (Utilisateurs → Profil → Application Passwords), puis fournis-lui la documentation d’un endpoint PATCH pour qu’il pousse ses propres événements de traçabilité au fil de l’eau.

Puis-je générer les QR codes en masse ?

Oui, via WP-CLI. Un script personnalisé peut boucler sur les produits et appeler DFDPP_QRCode::output_png() ou ::as_svg() pour générer les fichiers. Contacte le support si tu veux qu’on te fournisse un WP-CLI command clef en main pour ton catalogue.

Est-ce que ça marche avec les produits variables ?

Oui, le passeport est attaché au produit parent. Si tu as besoin d’un passeport distinct par variation (typique pour l’électronique où chaque configuration a une empreinte carbone différente), contacte-nous pour discuter d’une extension.

Désinstallation

La désactivation simple du plugin conserve toutes les données. Tes passeports restent en base, prêts à être réactivés.

La désinstallation complète (bouton Supprimer sur la page des extensions) déclenche uninstall.php, qui :

  • Supprime les 5 tables custom
  • Supprime toutes les options dfdpp_*
  • Nettoie les transients éventuels
  • Flushe les rewrite rules
La désinstallation est irréversible : sauvegarde ta base ou fais un export JSON de tes passeports (via l’API REST) avant de désinstaller si tu souhaites récupérer les données plus tard.

Support

Le support technique est assuré par e-mail en français et en anglais. Écris à support@datafirefly.com en précisant la version du plugin, la version de WordPress et WooCommerce, ainsi qu’un extrait des logs si tu as un message d’erreur PHP.

Cette page vous a-t-elle été utile ?

Toujours bloqué ? Contactez le support