If your shop runs on Shopify, adding a Digital Product Passport isn't a rebuild — it's mostly a connect-and-import job. The part that actually takes thought isn't the technical setup, it's the handful of fields Shopify was never designed to hold. Here's the whole flow, end to end, and where the real work sits.
What "connecting Shopify" actually does
A DPP tool that supports Shopify should connect over OAuth with read-only scopes — products, product listings, inventory, files. It reads your catalogue; it doesn't write prices, inventory, descriptions, orders or customer data back into your store. The one thing it typically does write, later, is a single metafield holding the public passport URL for each product once you've activated it — that's what lets your theme show a passport link. Worth checking this explicitly before you connect anything, since scope matters more here than with most Shopify apps: a DPP is meant to be a trustworthy public record, not a side door into your store.
Step by step
1. Connect your store
Enter your shop domain, review the requested scopes on Shopify's consent screen, and approve. On productpasses.com this takes about 30 seconds and kicks off an import in the background — see the full setup walkthrough for the exact screens.
2. Let every product land as a draft first
A sensible import creates a Pending draft passport per product, not a live one. Drafts aren't public yet and shouldn't count against your plan's product limit — which matters if you're importing a catalogue of hundreds of SKUs on a mid-tier plan and don't want to pay for headroom you haven't used yet. Spot-check a handful before running the full import, so you catch any mapping issue on three products instead of three hundred.
3. Fill in what Shopify doesn't have
This is the actual work. Shopify already gives a DPP tool title, photos, description, vendor, barcode and weight — it has no native fields for material composition, care and repair instructions, end-of-life guidance or certifications, because none of that is a Shopify concept. Those fields get filled in once, in your DPP tool, per product or per product family. If you're chasing this data from suppliers rather than writing it from your own knowledge, our guide to collecting supplier material data covers how to ask without losing a season to email back-and-forth.
4. Activate
Once a draft has what it needs, activating it makes the passport public at its own URL and generates its QR code. A cap-aware bulk "activate all" is worth having if you're publishing a large batch at once, so anything over your plan's limit is skipped with a clear reason rather than silently failing.
5. Add the storefront button
In Shopify, add the passport block to your product page template (Online Store → Themes → Customize). It renders a "View Digital Product Passport" link using the URL written to the product on activation — no extra JavaScript, no page-speed cost. If you run more than one theme (a live theme plus a seasonal or preview one), you'll need to add the block in each, since Shopify scopes theme customisations per theme rather than per store.
6. Print a QR code for anything sold in person
The storefront button covers online shoppers. If the same product also sells through a physical shop, market stall or stockist, there's no product page to click through from — so once your category's DPP duty applies, ESPR expects a scannable code on or with the product itself for that route. Worth setting up either way if you already sell in person. See our QR placement guide for where that actually goes by product type (a hangtag reads differently on a garment than a sticker on a table leg).
What doesn't carry over automatically — and why
- ✓Material composition, care, repair, end-of-life, certifications. Shopify has no fields for these, so a DPP tool can't invent them from your catalogue — they need a source, whether that's your own product knowledge or a supplier request.
- ✓Variant-level detail. productpasses.com, like most SME tools today, publishes one passport per product rather than one per colour or size variant — per-variant passports are on our own roadmap, not something to expect out of the box yet.
- ✓Anything you edit locally after import. A reasonable sync rule is that edits made in your DPP tool win over later Shopify-side changes to the same field, so polishing a description in your passport editor doesn't get silently overwritten by the next Shopify sync.
If you're not on Shopify
Live two-way sync is a Shopify-specific feature right now; on productpasses.com, WooCommerce auto-sync is on the roadmap but not live yet. WooCommerce and Squarespace merchants typically use an AI-fill flow instead — paste your existing product page URL and the tool drafts the passport fields it can read from the page, then you fill in the rest by hand. Slower than a native sync, but it gets you to the same draft-then-fill workflow described above.
How long this actually takes
For a small catalogue, the mechanical parts are quick: connecting the store is closer to seconds than minutes, and reviewing how a handful of products mapped takes a few more. None of that scales with catalogue size in any meaningful way — importing 30 products or 300 is the same click. What scales is step 3: filling in materials, care, repair and certifications per product, because that's data only you (or your suppliers) have. A brand with a tight, well-documented catalogue of a few dozen SKUs can realistically get through connect, import and a first batch of activations in an afternoon. A few hundred SKUs with patchy supplier documentation is a multi-week project — not because the software is slow, but because chasing down fibre percentages and certificates is.
- ✓Have the data already? Connect, import, fill in the DPP-only fields per product, activate. Realistic for one afternoon on a small catalogue.
- ✓Missing supplier data? Do the technical setup first anyway — it costs nothing to sit with draft passports while you chase composition and certification data in parallel.
- ✓Selling in physical retail too? Add QR printing to the plan; it's a separate small task once passports are activated, not a blocker to starting.