$_MODULE['<{bypasscf}prestashop>bypasscf_0aea8c258fce0ffc403e6197b16ea761'] = 'Bypass CF - Football IP Block Protection'; $_MODULE['<{bypasscf}prestashop>bypasscf_89e9262055ac5e49d1f6037a510edd26'] = 'Automatically manages Cloudflare proxy settings when Spanish football IP blocks are detected.'; $_MODULE['<{bypasscf}prestashop>bypasscf_4a5025f9cf8177c095e111df5d2f3e83'] = 'The mail templates have been reset to their default versions.'; $_MODULE['<{bypasscf}prestashop>bypasscf_5f6eaa93137be85d2203dce4c4c7b4b8'] = 'The default mail templates could not be found. Please reinstall the module and try again.'; $_MODULE['<{bypasscf}prestashop>bypasscf_a93cc4754473636088b5be3ddae5dd0a'] = 'Mail templates'; $_MODULE['<{bypasscf}prestashop>bypasscf_88b130bbc0cf1c7bc4ca3311c8d0ea2e'] = 'Default templates'; $_MODULE['<{bypasscf}prestashop>bypasscf_96b639966992eb32c48295c76c75838a'] = 'Reset to default templates'; $_MODULE['<{bypasscf}prestashop>bypasscf_5bb87997ae62a613d696c03e8aca504d'] = 'This copies the default email templates supplied by the module over the ones currently in use. Use it after an update to get the latest versions. Any changes you have made to the templates will be replaced.'; $_MODULE['<{bypasscf}prestashop>bypasscf_892da422925887471273a5c91bbd193c'] = 'This replaces the current mail templates with the default versions supplied by the module. Any changes you have made to them will be lost. Do you want to continue?'; $_MODULE['<{bypasscf}prestashop>bypasscf_79c25eb9d7c5dd09351370a87e093b6b'] = 'Please select a valid authentication type.'; $_MODULE['<{bypasscf}prestashop>bypasscf_abcf9de694efc14dedb645f04dbaec45'] = 'Please enter a valid Cloudflare account email address.'; $_MODULE['<{bypasscf}prestashop>bypasscf_973df61109514cdd4bb429f4d75c863b'] = 'Please enter your Cloudflare API key or token.'; $_MODULE['<{bypasscf}prestashop>bypasscf_8f93b90c3c791bfc62e82d012b2251bc'] = 'Your API key contains spaces or line breaks. Please copy it again and paste it carefully.'; $_MODULE['<{bypasscf}prestashop>bypasscf_6853c6ab00f74bd4749a8d0cb47def37'] = 'This looks like a scoped API Token, not a Global API Key. Please select "Scoped API Token" as the authentication type, or paste your Global API Key instead.'; $_MODULE['<{bypasscf}prestashop>bypasscf_05fa49dc0916f8d4aaca35bb09910378'] = 'This looks like a Global API Key, not a scoped API Token. Please select "Global API Key" as the authentication type, or paste your API Token instead.'; $_MODULE['<{bypasscf}prestashop>bypasscf_39914972d2e298a2e5bb9780527bcf79'] = 'This looks like a Token ID, not the token itself. The token value is only shown once when you create it. Please create a new API Token in Cloudflare and paste its value here.'; $_MODULE['<{bypasscf}prestashop>bypasscf_aabd5d93a3e2d5d38aa082260c39f9cf'] = 'Your API Token contains unexpected characters. Please copy it again from Cloudflare and paste it carefully.'; $_MODULE['<{bypasscf}prestashop>bypasscf_6d585c3ac00942ea2c41190859b47d79'] = 'Please enter a valid Cloudflare Zone ID (32-character hexadecimal string).'; $_MODULE['<{bypasscf}prestashop>bypasscf_3b5e31b5b12382450ebae9901ba99739'] = 'Check interval must be between 1 and 60 minutes.'; $_MODULE['<{bypasscf}prestashop>bypasscf_61a6e47161b37455725d8b66c64c4353'] = 'Cooldown period must be between 5 and 600 minutes.'; $_MODULE['<{bypasscf}prestashop>bypasscf_fcb888615e61f0a071274eeb005eecc8'] = 'Minimum ISP count must be at least 1.'; $_MODULE['<{bypasscf}prestashop>bypasscf_9ca04e0f6f385444a17e625db05fd727'] = '"%s" is not a valid email address. Please check your notification addresses.'; $_MODULE['<{bypasscf}prestashop>bypasscf_4d9ac946f92f7211e40671513c72fd09'] = 'Settings saved successfully.'; $_MODULE['<{bypasscf}prestashop>bypasscf_5fb40b6527b40b7df5b3531c94f8bdfb'] = 'Please save your Cloudflare credentials before testing the connection.'; $_MODULE['<{bypasscf}prestashop>bypasscf_b988ae810021000e2f084f9c6bd4732e'] = 'Connection successful!'; $_MODULE['<{bypasscf}prestashop>bypasscf_e6e42855066e7a3ae050b2c698021b14'] = 'Zone:'; $_MODULE['<{bypasscf}prestashop>bypasscf_c75840445991340207fd7c56e0d69fce'] = 'Connection failed:'; $_MODULE['<{bypasscf}prestashop>bypasscf_fdf3ba6fd387b76305ddd920f67c3a20'] = 'Scoped API Token'; $_MODULE['<{bypasscf}prestashop>bypasscf_31bfd213f6ca9ab6e440f614d31c2a61'] = 'Global API Key'; $_MODULE['<{bypasscf}prestashop>bypasscf_e3b3830292cc288721559b5855231dec'] = 'Stored key: %1$s (%2$d characters). Authentication type: %3$s.'; $_MODULE['<{bypasscf}prestashop>bypasscf_d21f1ccbefee9f21a285e130a644923a'] = 'The stored value looks like a Global API Key. Please switch the authentication type to "Global API Key" and save, or paste a real API Token.'; $_MODULE['<{bypasscf}prestashop>bypasscf_5558b2ef0e020cd146e5f510c9b8cd09'] = 'The stored value looks like a Token ID or Zone ID, not the token itself. The token value is only shown once when you create it. Please create a new API Token in Cloudflare and save it here.'; $_MODULE['<{bypasscf}prestashop>bypasscf_8e50c61db6b468a9a0fed346aa43128e'] = 'The stored value contains unexpected characters. Please copy your API Token again from Cloudflare and save it.'; $_MODULE['<{bypasscf}prestashop>bypasscf_30eb591842202da8bfe0d4ad3bfef9f6'] = 'The stored value is shorter than a normal API Token (40 characters). It may have been cut during copy-paste. Please copy it again and save.'; $_MODULE['<{bypasscf}prestashop>bypasscf_70748b3b50a74753ec68552c61c32669'] = 'The stored value looks like a scoped API Token. Please switch the authentication type to "Scoped API Token" and save.'; $_MODULE['<{bypasscf}prestashop>bypasscf_6e87e3eedc225fd850587ce738ff9ed9'] = 'Global API Keys are 37 characters long, but the stored value has %d. Please copy your Global API Key again from Cloudflare and save.'; $_MODULE['<{bypasscf}prestashop>bypasscf_6d395ac23e43e79cadea1b40ade82d1e'] = 'Please save your Cloudflare credentials before fetching DNS records.'; $_MODULE['<{bypasscf}prestashop>bypasscf_9a436b970efc8db0b66ab15f3f3345e2'] = 'Could not retrieve DNS records:'; $_MODULE['<{bypasscf}prestashop>bypasscf_41730185d1111c0af90c505d92ce88c5'] = '%d DNS records retrieved and ready to select.'; $_MODULE['<{bypasscf}prestashop>bypasscf_5ed69a8831926eb19a5ae0e336f1087b'] = 'Please configure and save your Cloudflare credentials first.'; $_MODULE['<{bypasscf}prestashop>bypasscf_5c6c664ff75f8f3a3ca5ec43701598b1'] = 'Please select at least one DNS record to manage.'; $_MODULE['<{bypasscf}prestashop>bypasscf_84b1b72671d2c0a42d150678ddc8bba4'] = 'Cloudflare proxy has been enabled on all selected records.'; $_MODULE['<{bypasscf}prestashop>bypasscf_b3b36f2b76d83551dac6d39e5692cc66'] = 'Cloudflare proxy has been disabled on all selected records.'; $_MODULE['<{bypasscf}prestashop>bypasscf_10c3cb30b7e8528dad20e7ba07f4c156'] = 'Could not update proxy status. Please check your Cloudflare credentials.'; $_MODULE['<{bypasscf}prestashop>bypasscf_6abffa06a6380df96543f134869e3deb'] = 'Check failed:'; $_MODULE['<{bypasscf}prestashop>bypasscf_76a0a4822f51c4cd3ac4392b46dc81cf'] = 'Blocks detected across %d ISP(s). Proxy has been disabled.'; $_MODULE['<{bypasscf}prestashop>bypasscf_2730c57b9d327b146a047edf5b98c778'] = 'No active blocks detected. Proxy is enabled.'; $_MODULE['<{bypasscf}prestashop>bypasscf_6e7b34fa59e1bd229b207892956dc41c'] = 'Never'; $_MODULE['<{bypasscf}prestashop>bypasscf_c298723a00c4dccebae113d9ca2fb926'] = '[Bypass CF] Cloudflare proxy disabled - IP blocks detected'; $_MODULE['<{bypasscf}prestashop>bypasscf_83c00da8aa5cb6e2f8b8aaa26f97f133'] = 'Active IP blocks have been detected across %d ISP(s). '; $_MODULE['<{bypasscf}prestashop>bypasscf_acc629cb5101f77f1d6403bc5ef769d9'] = '[Bypass CF] Cloudflare proxy restored - blocks cleared'; $_MODULE['<{bypasscf}prestashop>bypasscf_e2a71381a8fe2fde069549ebf9f57fe6'] = 'IP blocks are no longer active and the cooldown period has elapsed. '; $_MODULE['<{bypasscf}prestashop>bypasscf_2b382302e27440f933d893c84f48e8ad'] = 'Hello, this is an automated message from %s.'; $_MODULE['<{bypasscf}prestashop>bypasscf_b54dafd5146e9fb55bf78e7cfeeb45dc'] = 'View Bypass CF status panel'; $_MODULE['<{bypasscf}prestashop>bypasscf_6d53cbc1e4c9c9cac06062a8d6035bd7'] = 'Bypass CF v%s - %s'; $_MODULE['<{bypasscf}prestashop>configure_9a5bb268ae8f0abf5f49ca592909015d'] = 'Status Dashboard'; $_MODULE['<{bypasscf}prestashop>configure_83e5b0584792b39ee6af3a851392040a'] = 'Cloudflare Proxy'; $_MODULE['<{bypasscf}prestashop>configure_00d23a76e43b46dae9ec7aa9dcbebb32'] = 'Enabled'; $_MODULE['<{bypasscf}prestashop>configure_b9f5c797ebbf55adccdd8539a65a0241'] = 'Disabled'; $_MODULE['<{bypasscf}prestashop>configure_df30821625bbe063a2b5c0375079d0fc'] = 'IP Blocks'; $_MODULE['<{bypasscf}prestashop>configure_4d3d769b812b6faa6b76e1a8abaece2d'] = 'Active'; $_MODULE['<{bypasscf}prestashop>configure_6178086076cc9a95c02771b5f0af6ae1'] = 'None detected'; $_MODULE['<{bypasscf}prestashop>configure_6b3f639af218e65a49fb2b967b1450a9'] = 'ISPs reporting'; $_MODULE['<{bypasscf}prestashop>configure_b69c545e81ae20ea472c7cd426d5ad6d'] = 'Last Check'; $_MODULE['<{bypasscf}prestashop>configure_2c872e677f8b5831f20a66c65e7f8966'] = 'Check now'; $_MODULE['<{bypasscf}prestashop>configure_f06eec7a79aa8b9e03cec8a41486897a'] = 'Enable Cloudflare proxy on all selected records?'; $_MODULE['<{bypasscf}prestashop>configure_45aeec47e2804a565b886a893302fa3a'] = 'Force proxy ON'; $_MODULE['<{bypasscf}prestashop>configure_8e72e74eeab30070cfd93b1db5ace226'] = 'Disable Cloudflare proxy on all selected records?'; $_MODULE['<{bypasscf}prestashop>configure_5bf0c2ab3724d2640dd8c7e22e7f5c43'] = 'Force proxy OFF'; $_MODULE['<{bypasscf}prestashop>configure_2440d0581c5d6ee1bbf0bf0cc0b754eb'] = 'Cloudflare Credentials'; $_MODULE['<{bypasscf}prestashop>configure_50854526d8d552e026d2bc11d2d69c58'] = 'Which authentication type should I use?'; $_MODULE['<{bypasscf}prestashop>configure_59d3b18f58d24d472e4148c61c767044'] = 'Scoped API Token (recommended):'; $_MODULE['<{bypasscf}prestashop>configure_ce4c174d0a5fd13231a583f2256d2571'] = 'a token you create with only the permission this module needs (edit the DNS of one zone). It can expire and be revoked individually. If it leaks, an attacker can only change the DNS of that zone.'; $_MODULE['<{bypasscf}prestashop>configure_a126d91dc7b7a5d912ad84f9b01b472d'] = 'Global API Key:'; $_MODULE['<{bypasscf}prestashop>configure_c3c1811d504a3ed5e85e9244f9a1ac3a'] = 'the master key of your Cloudflare account, used together with your account email. It gives full access to all your zones and settings, cannot be limited and cannot expire. Cloudflare considers it legacy. Use it only if you cannot create tokens.'; $_MODULE['<{bypasscf}prestashop>configure_da693ae39ce1f02c06abf5905042ba78'] = 'How to create your Cloudflare API Token'; $_MODULE['<{bypasscf}prestashop>configure_6c850f5faf70e3de7049487f7e429fd3'] = 'In the Cloudflare dashboard, click your profile icon and open "My Profile" > "API Tokens".'; $_MODULE['<{bypasscf}prestashop>configure_f43eeea0d2a3085e3fede02c4f25c230'] = 'Click "Create Token" and choose the "Edit zone DNS" template.'; $_MODULE['<{bypasscf}prestashop>configure_85c8bf179cbbedee77bf4192c21632b5'] = 'Under "Zone Resources", select the zone of your shop, then click "Continue to summary" and "Create Token".'; $_MODULE['<{bypasscf}prestashop>configure_37205ef3e6485cd49b2cc87ccf59fd21'] = 'Copy the token shown on the next screen. It is a long value of about 40 characters and is displayed only once.'; $_MODULE['<{bypasscf}prestashop>configure_0b6606f7bd38fc5155caece58c304234'] = 'Paste it below, select "Scoped API Token" as the authentication type and save your settings.'; $_MODULE['<{bypasscf}prestashop>configure_44fb0098e60a929c700bf3790f5a8a82'] = 'Do not copy the Token ID shown in the token list: it is a short 32-character code and will not work. If you lost your token value, create a new token.'; $_MODULE['<{bypasscf}prestashop>configure_bfdcf5f2dcae8bbaf4e0c2ea9626c5c2'] = 'If you prefer the Global API Key, you will find it in "My Profile" > "API Tokens" > "Global API Key" > "View". It is a 37-character code and must be used together with your Cloudflare account email.'; $_MODULE['<{bypasscf}prestashop>configure_188c9bad27f84e6fa6749495bf816b7c'] = 'Authentication type'; $_MODULE['<{bypasscf}prestashop>configure_3ca4d0ff099a28d67d56ef42512aed22'] = 'Global API Key (email + key)'; $_MODULE['<{bypasscf}prestashop>configure_fdf3ba6fd387b76305ddd920f67c3a20'] = 'Scoped API Token'; $_MODULE['<{bypasscf}prestashop>configure_4cfa4354569edebee19442d445c8965b'] = 'Use a scoped API token for better security (Zone > DNS > Edit).'; $_MODULE['<{bypasscf}prestashop>configure_59ba8e2986481228bda13c72bc70b4ec'] = 'Cloudflare account email'; $_MODULE['<{bypasscf}prestashop>configure_c32176d41d0e0d319fcd5f88c6e0c134'] = 'Required only when using the Global API Key method.'; $_MODULE['<{bypasscf}prestashop>configure_68922c05267c6b81a378cffa60c033ea'] = 'API Key / API Token'; $_MODULE['<{bypasscf}prestashop>configure_3dc5bbb023bcbbdf18dc2575e7369629'] = 'Your Cloudflare Global API Key or a scoped API Token.'; $_MODULE['<{bypasscf}prestashop>configure_dbcbb50a8c58bac0562e83c0ade142a9'] = 'If you use a token, paste the token value (about 40 characters), not the Token ID.'; $_MODULE['<{bypasscf}prestashop>configure_ca7086c6ed2859db76f290c9cc1ed037'] = 'Zone ID'; $_MODULE['<{bypasscf}prestashop>configure_7489a23a72746923e97eaa6128e94109'] = '32-character Zone ID found in your Cloudflare domain overview page.'; $_MODULE['<{bypasscf}prestashop>configure_39838db537c95bc8df810c5601601d5b'] = 'Test connection'; $_MODULE['<{bypasscf}prestashop>configure_5236e078cc870c30c6522d2401970ea7'] = 'DNS Records'; $_MODULE['<{bypasscf}prestashop>configure_0dcc6904267bef24bf1781adfeb2c322'] = 'Select the DNS records Bypass CF should toggle when IP blocks are detected. Click "Refresh DNS records" to load them from Cloudflare.'; $_MODULE['<{bypasscf}prestashop>configure_5333b16c94920eaea8d454dd0ac9ed41'] = 'Refresh DNS records'; $_MODULE['<{bypasscf}prestashop>configure_e0626222614bdee31951d84c64e5e9ff'] = 'Select'; $_MODULE['<{bypasscf}prestashop>configure_49ee3087348e8d44e1feda1917443987'] = 'Name'; $_MODULE['<{bypasscf}prestashop>configure_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Type'; $_MODULE['<{bypasscf}prestashop>configure_f15c1cae7882448b3fb0404682e17e61'] = 'Content'; $_MODULE['<{bypasscf}prestashop>configure_f56ec2ab97d604832d90f6394e3f341f'] = 'Proxy'; $_MODULE['<{bypasscf}prestashop>configure_327e0d0304f8ac78f4ed36aa311de58f'] = 'Proxied'; $_MODULE['<{bypasscf}prestashop>configure_d8c52085680d089eab1ed5041b04c1cd'] = 'DNS only'; $_MODULE['<{bypasscf}prestashop>configure_993edab0233f408c3ca8bb0cca9af358'] = 'No DNS records loaded yet. Save your credentials and click "Refresh DNS records".'; $_MODULE['<{bypasscf}prestashop>configure_1a5664ea9da0f4ea98a81c4ef44da514'] = 'Automation Settings'; $_MODULE['<{bypasscf}prestashop>configure_2c9ce0f486a3db284d89982ef38c5d4f'] = 'Check interval (minutes)'; $_MODULE['<{bypasscf}prestashop>configure_3dd1cb35ec2550c04831cb0dbad53336'] = 'How often to check hayahora.futbol for active blocks. Between 1 and 60 minutes.'; $_MODULE['<{bypasscf}prestashop>configure_4dd0ec35d2bc60ff3070a635b5e76726'] = 'If you use an external cron job, set its frequency to match this interval. When the cron fires on schedule, the check runs in the background and real page loads are never slowed down. If the cron runs less often than the interval, a visitor\'s page load will trigger the check instead, adding latency to that request.'; $_MODULE['<{bypasscf}prestashop>configure_ae141bf95f87f762288a275de99c7ddf'] = 'Cooldown period (minutes)'; $_MODULE['<{bypasscf}prestashop>configure_ab415256914d509e0fe0feec312ca03c'] = 'How many minutes to wait after blocks clear before re-enabling the proxy. Between 5 and 600 minutes.'; $_MODULE['<{bypasscf}prestashop>configure_b9e8938689dc67e687bf372cc345a5bd'] = 'Minimum ISPs reporting blocks'; $_MODULE['<{bypasscf}prestashop>configure_a82f16799b0ec445a16777b66271f3d6'] = 'Minimum number of distinct ISPs that must report blocks before the bypass activates. Set to 1 to react immediately.'; $_MODULE['<{bypasscf}prestashop>configure_a9d570973056f798c72dc23f3baaed9d'] = 'External Cron URL'; $_MODULE['<{bypasscf}prestashop>configure_b8da7bdc21714609259d66c9e3a28090'] = 'For more reliable scheduling, add the URL below to your server crontab. This lets the module run checks even on low-traffic stores.'; $_MODULE['<{bypasscf}prestashop>configure_a329d8c39097b2750c016b32fad9736d'] = 'Set the cron frequency to match the Check interval in the Automation Settings tab. When both are in sync, the cron always fires the check before any page load reaches the interval threshold - so no visitor ever waits for the check to complete. For example, if the interval is 15 minutes, use'; $_MODULE['<{bypasscf}prestashop>configure_5fb63579fc981698f97d55bfecb213ea'] = 'Copy'; $_MODULE['<{bypasscf}prestashop>configure_846f8ae15cb17d02e0c064b2f81d410b'] = 'Example crontab line:'; $_MODULE['<{bypasscf}prestashop>configure_08cab09e9c5700ffdd3c26a54a83ec4c'] = 'General Options'; $_MODULE['<{bypasscf}prestashop>configure_41af0bb786375738c456cd89b6e134d3'] = 'Notification email addresses'; $_MODULE['<{bypasscf}prestashop>configure_24be74c625fef1843a4725b9fe81e80d'] = 'Email addresses to notify when the proxy state changes. Separate multiple addresses with a semicolon (;). Leave empty to disable notifications.'; $_MODULE['<{bypasscf}prestashop>configure_d4dccb8ca2dac4e53c01bd9954755332'] = 'Save settings'; $_MODULE['<{bypasscf}prestashop>bypasscf_85bf65a336bf3fb01a1994c6ff74e108'] = 'Bypass CF'; $_MODULE['<{bypasscf}prestashop>bypasscf_5236e078cc870c30c6522d2401970ea7'] = 'DNS Records'; $_MODULE['<{bypasscf}prestashop>bypasscf_e0626222614bdee31951d84c64e5e9ff'] = 'Select'; $_MODULE['<{bypasscf}prestashop>bypasscf_49ee3087348e8d44e1feda1917443987'] = 'Name'; $_MODULE['<{bypasscf}prestashop>bypasscf_a1fa27779242b4902f7ae3bdd5c6d508'] = 'Type'; $_MODULE['<{bypasscf}prestashop>bypasscf_f15c1cae7882448b3fb0404682e17e61'] = 'Content'; $_MODULE['<{bypasscf}prestashop>bypasscf_f56ec2ab97d604832d90f6394e3f341f'] = 'Proxy'; $_MODULE['<{bypasscf}prestashop>bypasscf_327e0d0304f8ac78f4ed36aa311de58f'] = 'Proxied'; $_MODULE['<{bypasscf}prestashop>bypasscf_d8c52085680d089eab1ed5041b04c1cd'] = 'DNS only'; $_MODULE['<{bypasscf}prestashop>bypasscf_5333b16c94920eaea8d454dd0ac9ed41'] = 'Refresh DNS records'; $_MODULE['<{bypasscf}prestashop>bypasscf_d4dccb8ca2dac4e53c01bd9954755332'] = 'Save settings'; $_MODULE['<{bypasscf}prestashop>bypasscf_0dcc6904267bef24bf1781adfeb2c322'] = 'Select the DNS records Bypass CF should toggle when IP blocks are detected. Click "Refresh DNS records" to load them from Cloudflare.'; EU GreenPass for Shopify — Eco Compliance & Digital Product Passport

EU eco-compliance, built into every product

EU GreenPass adds France's Triman labels and repair index, Germany's LUCID/VerpackG data and Spain's plastics tax, publishes a public Digital Product Passport, and exports the official declarations — all from your Shopify products.

Every EU eco-rule, handled in one app

Declare each product's materials once and EU GreenPass turns them into the labels, the passport and the official documents the authorities expect.

France — Triman & repair index

Show the Triman sorting logo and Info-tri instructions plus the official repairability index on every product page — the AGEC obligations, automated and in your shopper's language.

Germany — LUCID / VerpackG

Record your LUCID producer registration and packaging-material declarations, ready for the yearly ZSVR report — no spreadsheets.

Spain — plastics tax

Track non-reusable plastic packaging by weight and estimate the Modelo 592 plastics tax (€0.45/kg) product by product.

EU Digital Product Passport

Publish a public passport per product — materials, recycled %, country of origin, durability and certificates — ready for the ESPR.

Storefront eco panel

A clean eco panel — reparability · recycled content · durability — and Triman badges that build trust on your product pages, in all 24 EU languages.

Bulk import & official exports

Bulk-import your whole catalogue by CSV and export the official CITEO, LUCID (ZSVR) and Modelo 592 declarations as CSV/PDF in one click.

Not decorative badges — real multi-country compliance

Most “sustainability” apps add a green icon and stop there. EU GreenPass is built around the actual law: France's AGEC (Triman, Info-tri, repairability index), Germany's VerpackG (LUCID), Spain's non-reusable plastics tax and the EU's Ecodesign / Digital Product Passport — with the official CSV/PDF exports you file with CITEO, ZSVR and the Spanish tax authority. One app, three countries, real documents.

  • France, Germany & Spain eco-rules in a single app
  • Public Digital Product Passport, ESPR-ready
  • Official CITEO / LUCID / Modelo 592 exports — not just badges

Compliant in three steps

1. Pick your countries

Enable France, Germany and/or Spain, add your producer IDs (SIREN/UIN, LUCID number, Spanish tax ID) and link your policy page.

2. Add materials per product or by CSV

Enter each product's materials, recycled content, origin and repair index — one by one, or bulk-import the whole catalogue with a single CSV.

3. Publish & export

The eco panel and passport go live on your storefront, and you export the official declarations for the authorities whenever you need them.

One simple plan

Everything included — every country, unlimited products, the public passport and all the official exports. Pro: $4.99/mo — or $49.99/year — save ~17%. 7-day free trial.

  • France Triman + repair index
  • Germany LUCID / VerpackG
  • Spain plastics tax (Modelo 592)
  • EU Digital Product Passport
  • Storefront eco panel (24 languages)
  • Official CITEO / LUCID / 592 exports
  • Bulk CSV import + history
  • Priority email support

Frequently asked questions

What is the EU Digital Product Passport?

The Ecodesign for Sustainable Products Regulation (ESPR) introduces a Digital Product Passport that carries a product's material composition, recycled content, origin, durability and documentation. EU GreenPass already publishes a public passport per product, so you're ready as the rules roll out by category.

Do I need this for France's AGEC?

If you sell to France, the AGEC law requires the Triman logo, Info-tri sorting instructions and — for many categories — the repairability index on the product page. EU GreenPass shows all of them automatically, in your shopper's language.

What about Germany's LUCID / VerpackG?

If you place packaging on the German market you must register with LUCID and report your packaging volumes. The app records your registration and exports the data ready for the yearly ZSVR report.

How does the Spanish plastics tax work?

Spain taxes non-reusable plastic packaging at €0.45/kg. EU GreenPass tracks plastic packaging weight per product and helps you prepare the Modelo 592 declaration.

In what language do shoppers see it?

The storefront eco panel and the passport are shown in the languages your store has installed — up to all 24 EU languages — picked automatically by each shopper's language.

Do I need to touch code?

No. The storefront passport is a theme app embed you place from the theme editor, and all the compliance data is managed inside the app — no code, no developer.

Get it on the Shopify App Store