Connectors
Publish products from UnoPim, ERPNext, metasfresh or Odoo to a GS1 Digital Link, a digital product passport and EPCIS events.
Your products already live in a PIM or an ERP. A connector publishes them to the OpenEPCIS catalog under a GS1 Digital Link, so a scan resolves to a passport without anyone re-typing the data.
Pick your system
| System | Setup | Publishes | Panel in the app |
|---|---|---|---|
| UnoPim | Nothing to install. Optional PHP package for the panel | Products, batches | Yes |
| ERPNext | An API key, two custom fields, five webhooks | Products, batches, serials, parties | No |
| metasfresh | A read-only API token | Products, parties | No |
| Odoo | Six addons from its repository | Products, contacts, lots, serials, movements | Yes |
Odoo publishes from inside Odoo, on a schedule. The other three are polled by a service we run.
Start with how a connector works, or follow a warehouse day in Odoo screen by screen.
What you get
A master-data document at /01/<gtin>, with /10/<lot> for a batch and
/21/<serial> for a single item. JSON-LD over the
GS1 Web Vocabulary, so it expands
to RDF and validates against SHACL shapes. Add your own terms from the battery,
textile, packaging or EUDR vocabularies.
An EN 18223:2026 passport, derived from that document when you read it. In
JSON as compressed, full or gs1, and in XML, Turtle or N-Triples. Creation
needs a Digital Link and an economic operator; without them it is refused.
EPCIS events for individual items. A batch travels as a class, a serial as a single unit, a pallet as an SSCC. The event ID is the CBV hash, so re-sending the same event changes nothing.
A linkset that a scanner reads: master data, passport, product page, events.
Who sees which fields
Three tiers: Public, AuthorizedOnly, Restricted. A caller sees
Restricted fields with the restricted role in the owning tenant, AuthorizedOnly
as any member of it, Public otherwise. Document-level access is live. Field-level
filtering waits on dlr.field-access.enforce, off by default. Unmarked fields
default to AuthorizedOnly.
Standards note: EN 18222 and EN 18223 are two of six parts CEN/CENELEC JTC 24 published in 2026 under request M/604. The series is not yet cited in the EU Official Journal, so implementing it gives no presumption of conformity with the ESPR. prEN 18239 and prEN 18246, which cover access rights and data authentication, are still in development.
Good to know
Mappings are YAML, one file per connection: source field, GS1 term, direction. Direction decides which side owns a field.
Every connection starts in dry-run. Turn it off when you mean it — the catalog
writes to real registrars.
Webhooks only trigger a re-read; the payload is never trusted as data. Publishing the same record twice is a no-op.
Not there yet
- A passport needs a manufacturer. Sync a product without one and you get a catalog entry, not a finished passport.
- Deleting in the source does not delete in the catalog.
- ERPNext and metasfresh have no panel in the host application.
- The Java connectors only report commissioning. Odoo also reports movements, packing and production.
- Fixes made in the platform reach your system on the next poll, not sooner.
- The Java connector is not public yet. Odoo's addons are.