
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.
Key Features
- Full ESPR / EU 2024/1781 Compliance — all mandatory data fields included
- QR Code Generation — one code per product, generated inside the plugin as SVG. No external service, no API key, nothing leaves the site
- GS1 Digital Link — QR codes follow the
/01/{gtin}/21/{serial}standard - JSON-LD Structured Data — schema.org + W3ID DPP ontology (
https://w3id.org/dpp/) - REST API — GET
/wp-json/dppass/v1/passport/{id}with HTTP caching headers - WP-CLI:
wp dppass passportandwp dppass settingsread and change passports and settings with the checks of the admin screens - Tab or Button Display — show the passport in a product tab or via a modal button
- Completeness Score — live progress bar showing how complete each passport is
- WooCommerce HPOS Ready — compatible with High Performance Order Storage
- Cart & Checkout Blocks — full Block Editor compatibility declared
- Fully Translatable — all strings use the
digital-product-passport-for-woocommercetext domain
Passport Data Fields
Identity & 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
Free add-on
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:
- Analytics Dashboard — track passport views per product with Chart.js charts
- PDF Passport Export — print-optimized HTML passport with your branding
- Bulk Passport Editor — edit all products in a spreadsheet-like grid
- CSV & JSON Import/Export — migrate data or sync with external systems
- Email Notifications — notify admins on passport updates + weekly digest reports
- ACF Integration — sync Advanced Custom Fields with passport data
- WPML & Polylang Support — multilingual passport data
- Branded PDFs — custom logo, company name, and accent color in exports
Developer Hooks
Actions
dppass_passport_updated( $product_id, $product ): after the passport fields are written, on the product screen and bywp dppass passport set, before WooCommerce saves the product: read the new values from$product, not from the databasedppass_passport_viewed( $product_id ): when a passport is shown on the product page (used by Pro analytics)dppass_passport_content_end( $product_id ): at the end of the passport output (used by the Pro PDF button)
The plugin has no filters. Up to 1.6.3 this section listed hooks with the old dpp_ prefix that the plugin does not fire.
REST API
GET /wp-json/dppass/v1/passport/{id}— passport by product IDGET /wp-json/dppass/v1/passport/gtin/{gtin}— passport by GTINGET /wp-json/dppass/v1/passports?search={term}&per_page={n}— search passports (max 100)
WP-CLI
wp dppass passport get <product-id> [<field>]: the passport of a product as JSONwp dppass passport set <product-id> <field> <value>: change one field with the checks of the product screen: switches take true or false, selections one of their options, numbers their limits, materials and certifications a JSON list. Saving clears the QR code and the cached REST passport and firesdppass_passport_updated, as the product screen does.wp dppass passport schema: every field with its type, options and limitswp dppass settings get|set|schema: the plugin settings, through the checks of the settings screen
Example: wp dppass passport set 42 materials '[{"name":"Cotton","percentage":60,"recycled":20}]'
Support
- Documentation: aos-digital.de/plugin-verzeichnis/digital-product-passport
- Support: support@aos-digital.de
- Issues: support@aos-digital.de
Screenshots

Digital Passport tab in WooCommerce product editor — with completeness bar

Frontend modal showing full passport with QR code

Material composition grid with recycled content column

Settings page — display mode, REST API, and the sidebar pointing to the free add-on

REST API JSON-LD response in browser

Mobile bottom-sheet view of the passport modal