

Digital Passport tab in WooCommerce product editor — with completeness bar
Digital Product Passport for WooCommerce adds the product data the EU Ecodesign for Sustainable Products Regulation (ESPR / EU 2024/1781) asks for, and publishes it three ways: as a passport people can open on the product page, as a QR code that links to it, and as JSON-LD a machine can read through the REST API.
Starting in 2025, the ESPR regulation requires many product categories sold in the EU to carry a Digital Product Passport covering sustainability, material composition, repairability, and end-of-life information. This plugin helps you meet those requirements today.
/01/{gtin}/21/{serial} standardhttps://w3id.org/dpp/)/wp-json/dpp/v1/passport/{id} with HTTP caching headersdigital-product-passport-for-woocommerce text domainIdentity & Traceability
– GTIN / EAN-13 barcode
– Serial number & batch number
– Brand name & manufacturer name
– Manufacturer address
– Production country & production date
Sustainability & Environmental Impact
– Carbon footprint (kg CO₂eq) + measurement methodology
– Energy efficiency class (A+++ to G)
– Material composition (name, % weight, % recycled content)
– Recyclability percentage
– Recycling instructions / end-of-life info
Repairability & Durability
– Repairability index (0–10)
– Spare parts availability & availability period
– Durability / expected lifespan (years)
– Warranty duration (months)
– Repairability documentation available (yes/no)
Compliance
– Substances of concern (REACH / RoHS)
– Applicable regulation reference
– Compliance document URL
Nothing in this plugin is locked or limited. Everything described above works, for every
product, with no key and no account.
A separate add-on, also free, adds work that only larger catalogues need. It is a second
plugin you download from us; this one does not change when you install it, it simply
finds it:
dpp_passport_saved( $product_id ) — fired after passport data is saveddpp_passport_viewed( $product_id ) — fired when a passport is viewed (used by Pro analytics)dpp_passport_content_end( $product_id ) — fired at the end of passport content (used by Pro PDF button)dpp_before_passport_display( $product_id ) — before passport HTML outputdpp_after_passport_display( $product_id ) — after passport HTML outputdpp_passport_data( $data, $product_id ) — modify passport data array before displaydpp_json_ld_output( $json_ld, $product_id ) — modify JSON-LD structured datadpp_qr_code_url( $url, $product_id ) — modify QR code URLdpp_rest_passport_response( $response, $product_id ) — modify REST API responseGET /wp-json/dpp/v1/passport/{id} — passport by product IDGET /wp-json/dpp/v1/passport/gtin/{gtin} — passport by GTINGET /wp-json/dpp/v1/passports?search={term}&per_page={n} — search passports (max 100)