BambooForge Labs

EPCIS Traceability for Supply Chain

Record what happened to which lot, where and why, in the GS1 EPCIS vocabulary your trading partners already read - and trace it end to end.

Buy on the Odoo Apps StoreOpen the live demoWarehouse€249Community & Enterprise

Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0, Odoo 20.0. Technical name bambooforge_epcis.

Odoo 16.0Odoo 17.0Odoo 18.0Odoo 19.0Odoo 20.0
Screens and walkthrough for
Transcript of the walkthrough (Odoo 20)

EPCIS Traceability for Supply Chain. Record what happened to which lot, where and why, in the GS1 EPCIS vocabulary your trading partners already read - and trace it end to end. Odoo records that stock moved. EPCIS is what a trading partner, a regulator or a recall needs instead: the same movement expressed as what happened, to which serialised items, where, and for what business reason — in a vocabulary everybody else in the chain reads the same way.

A validated receipt or delivery becomes one event per lot moved, with the GS1 business step and disposition that match the transfer: receiving into stock, shipping into transit. In the next few minutes: what this is for, then capturing, then tracing, then exporting, then how we make sure it works. Then what this app deliberately does not do, so you can tell before you buy whether it fits. Everything lives under Traceability Events.

1. Copy bambooforge_epcis into your addons path and update the app list, or install the ZIP from the Odoo Apps Store. 2. Install EPCIS Traceability for Supply Chain.

3. Open Traceability Events. What this is for. Odoo records that stock moved.

EPCIS is what a trading partner, a regulator or a recall needs instead: the same movement expressed as what happened, to which serialised items, where, and for what business reason — in a vocabulary everybody else in the chain reads the same way. Capturing. A validated receipt or delivery becomes one event per lot moved, with the GS1 business step and disposition that match the transfer: receiving into stock, shipping into transit. A transfer without lots still produces one event for the transfer as a whole.

Quantity-level traceability is worth less than serialised traceability, but refusing to record it is how a traceability project dies in month two. Tracing. The Trace button on a lot lists every event that ever touched it, oldest first. That is the query a recall runs, and the reason the events exist at all.

Exporting. Select events and run Export EPCIS 2.0. The file is an EPCIS 2.0 JSON document — the shape a partner's system imports — with the CBV vocabulary spelled out in full (urn:epcglobal:cbv:bizstep:shipping) rather than in Odoo's own words. Serialised events carry an epcList; unserialised ones carry a quantityList instead, which is what the standard expects.

How we make sure it works. Before every release, 11 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them: Capturing twice does not duplicate. Event of another company is not readable.

Event of another company is not searchable. An event without lots still reports a quantity. An unvalidated transfer is refused. The complete list is in the source you receive.

Questions people ask. Which Odoo versions does it run on? Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing. Community or Enterprise?

Both. It needs no Enterprise app. Now the part most videos leave out: what this does not do. Events are captured from transfers.

Manufacturing (transformation events) and aggregation onto pallets are modelled but not captured automatically — the fields are there for a customisation or a manual record. Identifiers are built from the product barcode or internal reference. A company with real GS1 company prefixes should map them properly before sending anything to a partner. This produces and reads the events.

It is not an EPCIS repository and does not answer EPCIS queries over HTTP. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.

Event - bambooforge_epcis
Event
Events - bambooforge_epcis
Events

Key facts

What it is
Record what happened to which lot, where and why, in the GS1 EPCIS vocabulary your trading partners already read - and trace it end to end.
For
Warehouse
Odoo versions
16.0, 17.0, 18.0, 19.0, 20.0 - Community and Enterprise
Runs on
Odoo.sh or Odoo you host yourself - not Odoo Online, which accepts no third-party apps
Price
249 EUR, one-time, on the Odoo Apps Store
Technical name
bambooforge_epcis
Not for
Events are captured from transfers. Manufacturing (transformation events) and aggregation onto pallets are modelled but not captured automatically — the fields are there for a customisation or a manual record.; Identifiers are built from the product barcode or internal reference. A company with real GS1 company prefixes should map them properly before sending anything to a partner.; This produces and reads the events. It is not an EPCIS repository and does not answer EPCIS queries over HTTP.
Manual
https://docs.bambooforge.dev/bambooforge_epcis/
Live demo
https://demo20.bambooforge.dev/odoo/action-bambooforge_epcis.action_bf_epcis_event
Store page
https://apps.odoo.com/apps/modules/20.0/bambooforge_epcis
Manual last updated
2026-09-21

EPCIS Traceability for Supply Chain

What this is for

Odoo records that stock moved. EPCIS is what a trading partner, a regulator or a recall needs instead: the same movement expressed as what happened, to which serialised items, where, and for what business reason — in a vocabulary everybody else in the chain reads the same way.

Capturing

A validated receipt or delivery becomes one event per lot moved, with the GS1 business step and disposition that match the transfer: receiving into stock, shipping into transit.

A transfer without lots still produces one event for the transfer as a whole. Quantity-level traceability is worth less than serialised traceability, but refusing to record it is how a traceability project dies in month two.

Capture runs hourly on a schedule, not on validation. Traceability must not sit on the hottest write path in the warehouse — a slow put-away costs more every day than a one-hour delay in a record nobody reads until there is a recall.

The button on the transfer captures immediately when somebody needs it now.

Tracing

The Trace button on a lot lists every event that ever touched it, oldest first. That is the query a recall runs, and the reason the events exist at all.

Exporting

Select events and run Export EPCIS 2.0. The file is an EPCIS 2.0 JSON document — the shape a partner's system imports — with the CBV vocabulary spelled out in full (urn:epcglobal:cbv:bizstep:shipping) rather than in Odoo's own words.

Serialised events carry an epcList; unserialised ones carry a quantityList instead, which is what the standard expects.

Known limits

  • Events are captured from transfers. Manufacturing (transformation events) and aggregation onto pallets are modelled but not captured automatically — the fields are there for a customisation or a manual record.

  • Identifiers are built from the product barcode or internal reference. A company with real GS1 company prefixes should map them properly before sending anything to a partner.

  • This produces and reads the events. It is not an EPCIS repository and does not answer EPCIS queries over HTTP.

How we make sure it works

Before every release, 11 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them:

  • Capturing twice does not duplicate.

  • Event of another company is not readable.

  • Event of another company is not searchable.

  • An event without lots still reports a quantity.

  • An unvalidated transfer is refused.

The complete list is in the source you receive.

Install

  1. Copy bambooforge_epcis into your addons path and update the app list, or install the ZIP from the Odoo Apps Store.

  2. Install EPCIS Traceability for Supply Chain.

  3. Open Traceability Events.

Questions people ask

Which Odoo versions does it run on?

Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing.

Community or Enterprise?

Both. It needs no Enterprise app.

What does it need?

The standard Inventory app. No extra Python package.

Where does it show up?

Under the Traceability Events menu.

Does anything leave my server?

No. It makes no call outside your Odoo server: no telemetry, no licence check, no third-party service.

What happens if I uninstall it?

Odoo drops the app's own tables and fields; the standard records it worked on (contacts, orders, products) stay as they are.