Packaging Compliance
PPWR compliance for ERPNext: document packaging on your existing items - material composition, substance limits with sum checks, recyclability, declarations of conformity and EPR registrations. German UI, Frappe/ERPNext v16, AGPL-3.0.
- Author: saschafo
- Repository: https://github.com/saschafo/packaging_compliance
- GitHub stars: 1
- Forks: 0
- License: AGPL-3.0
- Category: Localization
- Maintenance: Actively Maintained
Install Packaging Compliance
bench get-app https://github.com/saschafo/packaging_compliance
Tags
- circular-economy
- compliance
- epr
- erpnext
- eu-regulation
- frappe
- packaging
- packaging-waste
- ppwr
Add the Frappe Gems badge to your README
Maintain Packaging Compliance? Paste this into your README:
[](https://frappegems.com/gems/apps/saschafo/packaging_compliance)
About Packaging Compliance
Packaging Compliance for ERPNext
Document packaging along the EU Packaging and Packaging Waste Regulation (PPWR, Regulation (EU) 2025/40) directly on your existing ERPNext items: material composition, substance limits, recyclability evidence, declarations of conformity and EPR registrations.
> The user interface is German, since the regulation primarily concerns the > German-speaking market. Internal names are English, so the app can be > translated. See Deutsch below.

What it does
- Packaging types linked to
Item— no separate master data layer. One item can carry several packaging types (single shipment vs. pallet, for instance). - Role per packaging type: producer (own obligation, declaration of conformity, EPR) or supplier (no own obligation, but a duty to inform the customer).
- Material composition as a child table, including adhesives and coatings — the details that decide recyclability.
- Substance limits in two stages, see below.
- Empty space ratio checked against the 40 % limit for transport packaging.
- Recyclability grade A, B or C, documented with its source. Deliberately not calculated — the design-for-recycling criteria are still to be defined by upcoming implementing acts.
- Declaration of conformity as a submittable document with a print format following Annex VIII. It cannot be submitted while the packaging is non-compliant or still carries unconfirmed values.
- EPR registrations with deadline monitoring and a daily reminder.
- Data sheet for customer requests — the supplier-side counterpart, generated from the data already on file.
- Optional AI extraction of substance values from supplier data sheets (PDF), via any OpenAI-compatible endpoint.
The part that is easy to get wrong
Lead, cadmium, mercury and chromium VI share one combined limit of 100 mg/kg — it is a sum, not four individual limits. Four measurements of 40 mg/kg each look unremarkable row by row, but add up to 160 and exceed the limit.
PFAS are limited twice at the same time where there is food contact: 25 ppb per individual substance and 250 ppb across all of them. A single value can fail while the sum stays well within range.
The app therefore evaluates each measurement against its individual limit
and the group sum against the group limit, with separate verdicts. Limits are
master data (Substance Group, Regulated Substance), not code — adding a
substance needs no development.

AI extraction stays a suggestion
Values read from a supplier data sheet land as unconfirmed suggestions. They do not count towards the traffic light and cannot back a declaration of conformity until a human has confirmed them. Model, timestamp, source file and the quoted passage are recorded for every value.

Installation
bench get-app https://github.com//packaging_compliance
bench --site install-app packaging_compliance
Requires Frappe v16 and ERPNext v16 (the app links to Item and Company).
Setup
- Substance masters — create the groups and substances with their limits. The regulation's values are not shipped as fixtures on purpose: limits change, and you should be able to see and adjust what you rely on.
- Settings — empty space limit, EPR warning period.
- AI extraction (optional) — endpoint, model and key of any OpenAI-compatible service. Without a key the feature stays switched off.
- ZSVR registry lookup (optional) — see below.
Not included
- No automatic recyclability grading
- No recycled-content calculation (mandatory from 1 January 2030)
- No own registration or volume reporting via the ZSVR interface. Only the registration status of a business partner can be retrieved, and only once you have your own registry access. The response parsing is deliberately generic — the XML specification is handed out with the access, so the mapping still needs to be completed against a real response.
- No labelling templates for the EU pictograms
- No legal assessment of who counts as producer or supplier in a given supply chain. The role is set by hand.
This app documents and checks. It does not replace legal advice.
Deutsch
Verpackungskonformität nach der EU-Verpackungsverordnung (PPWR) für ERPNext.
Die App hängt Verpackungsangaben direkt an den vorhandenen Artikel: Material, Zusammensetzung, Schadstoffgrenzwerte, Recyclingfähigkeit, Konformitätserklärungen und EPR-Registrierungen. Die Oberfläche ist deutsch.
Rolle je Verpackungstyp. Erzeuger bedeutet eigene Konformitätspflicht mit Erklärung und gegebenenfalls EPR-Registrierung. Lieferant bedeutet keine eigene Konformitätspflicht, aber Auskunftspflicht gegenüber dem Kunden — dafür erzeugt die App ein Datenblatt aus den vorhandenen Daten.
Zweistufige Grenzwertprüfung. Für Blei, Cadmium, Quecksilber und Chrom-VI gilt ein gemeinsamer Grenzwert von 100 mg/kg. Vier Werte von je 40 mg/kg sind zeilenweise unauffällig, in Summe aber 160 und damit eine Überschreitung. Bei PFAS gelten mit Lebensmittelkontakt beide Grenzen gleichzeitig: 25 ppb je Einzelsubstanz und 250 ppb über alle zusammen. Die Grenzwerte stehen als Stammdaten, nicht im Code.
KI-Auswertung bleibt Vorschlag. Aus Datenblättern gelesene Werte gelten als ungeprüft, zählen nicht für die Ampel und tragen keine Konformitätserklärung, bis ein Mensch sie bestätigt hat.
Die App dokumentiert und prüft. Sie ersetzt keine Rechtsberatung.
Betreut von Sascha Böhm — website.industrie-4-0.org · Kontakt · service@industrie-4-0.org
Entstanden im laufenden Betrieb eines Spritzguss- und Lebensmittelumfelds und anschließend für die Frappe- und ERPNext-Community freigegeben. Rückmeldungen aus der Praxis sind willkommen, Hinweise auf Lücken erst recht.
Contributing
Issues and pull requests are welcome. The app uses pre-commit for formatting
and linting:
cd apps/packaging_compliance
pre-commit install
Maintainer
Sascha Böhm — website.industrie-4-0.org · Kontakt / Contact · service@industrie-4-0.org
Built for a real injection moulding and food production setting, then released for the Frappe and ERPNext community. If you use it in production, I would be glad to hear about it — and even more so about what is missing.
License
GNU Affero General Public License v3.0 or later.
Chosen deliberately over a permissive licence: anyone who improves this app and offers it as a hosted service must make those improvements available as well.
Related Localization apps for Frappe & ERPNext
- Wiki — Free and Open Source Wiki built on top of Frappe
- India Compliance — Simple, yet powerful compliance solutions for Indian businesses
- Nepal Compliance — Open source ERP for Nepal with HR, Payroll & Accounting compliance, based on ERPNext by Frappe Technologies.
- Erpnextswiss — ERPNext application for Switzerland-specific use cases
- Erpnext Germany — ERPNext customizations for German companies
- Ksa Compliance — KSA Compliance App for KSA E-invoice
- Zatca Erpgulf — Implementation of Zatca Phase-2 E-Invoicing - for FrappeCLoud
- Kenya Compliance — KRA eTIMS Tax Compliance Integration This app works to integrate ERPNext with KRA's eTIMS via the Online Sales Control Unit (OSCU) to allow for the sharing of information with the revenue authority.via OSCU with ERPNext