BambooForge Labs

EDIFACT EDI: ORDERS, INVOIC and DESADV

EDIFACT EDI: turn the ORDERS files your retail customers send into sales orders, and send back INVOIC and DESADV, with the original kept.

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

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

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

EDIFACT EDI: ORDERS, INVOIC and DESADV. EDIFACT EDI: turn the ORDERS files your retail customers send into sales orders, and send back INVOIC and DESADV, with the original kept. Retail chains do not email purchase orders. They send EDIFACT, and a supplier who cannot read it does not get listed.

Odoo has no EDIFACT support at all. Sales ▸ EDI ▸ Trading Partners In the next few minutes: what this is for, then setting up a trading partner, then receiving orders, then sending invoices and despatch advices, then the payload. Then what this app deliberately does not do, so you can tell before you buy whether it fits. Everything lives under Messages then Trading Partners then EDI.

1. Copy bambooforge_edifact into your addons path and update the app list, or install the ZIP from the Odoo Apps Store. 2. Install EDIFACT EDI: ORDERS, INVOIC and DESADV.

3. Open Messages - its menus are Trading Partners, EDI. What this is for. Retail chains do not email purchase orders.

They send EDIFACT, and a supplier who cannot read it does not get listed. Odoo has no EDIFACT support at all. Setting up a trading partner. Every chain runs the same standard slightly differently, so their habits live on a profile rather than in the code: Their interchange ID and qualifier — usually a GLN with qualifier 14.

Ours — what we are called in the UNB segment. Test interchanges — partners run a test phase and reject live files during it. Leave this on until they say otherwise. Product code field — which of our fields carries the code they send in LIN.

Retail chains almost always send an EAN. Check prices on orders — compare the price on the incoming line with our own price list. Confirm orders automatically — leave off until their files have been trusted for a while. An order that confirms itself also reserves stock and can start a delivery.

Receiving orders. An ORDERS interchange becomes a sales order: the buyer is resolved from NAD+BY by interchange identifier, products from LIN, quantities from QTY+21 and prices from PRI+AAA. A price difference does not stop the order. The order is created and the difference is written on it, listing what they say against what our price list says.

Price disputes are the expensive part of EDI trading and finding them at invoice time is too late. An unknown buyer or product code fails loudly. The message goes to Error with the identifier that could not be matched, and the payload is kept. Fix the data and press Process Again.

A resent interchange does not become a second order. Partners resend; a gateway that takes the same order twice ships it twice. Sending invoices and despatch advices. build_invoic on a posted customer invoice and build_desadv on a validated outgoing shipment produce the interchange.

Neither will build from a draft invoice or an unvalidated picking — a despatch advice for goods that have not left is worse than none at all. The payload. Stored exactly as sent or received, and never rewritten. When a partner disputes an order six months later, the file they actually sent is the only thing that settles it.

How we make sure it works. Before every release, 29 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them: The same order is not taken twice. Something that is not edifact is refused.

Orders in with a price difference is processed not error. An employee without the checkbox reads no message. A partner without a profile 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. This module reads and writes the files.

It does not talk to a VAN or an AS2 gateway — those need credentials and a contract, and are usually a separate piece of infrastructure that drops files where Odoo can pick them up. ORDERS, INVOIC and DESADV only. ORDRSP, RECADV, IFTMIN and friends are not implemented. Syntax level A with the D96A directory, which is what the grocery trade runs on.

A partner on a different directory version may need adjustments. 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.

Invoic out - bambooforge_edifact
Invoic out
Messages - bambooforge_edifact
Messages
Orders in - bambooforge_edifact
Orders in
Profile - bambooforge_edifact
Profile

Key facts

What it is
EDIFACT EDI: turn the ORDERS files your retail customers send into sales orders, and send back INVOIC and DESADV, with the original kept.
For
Accounting
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_edifact
Not for
This module reads and writes the files. It does not talk to a VAN or an AS2 gateway — those need credentials and a contract, and are usually a separate piece of infrastructure that drops files where Odoo can pick them up.; ORDERS, INVOIC and DESADV only. ORDRSP, RECADV, IFTMIN and friends are not implemented.; Syntax level A with the D96A directory, which is what the grocery trade runs on. A partner on a different directory version may need adjustments.
Manual
https://docs.bambooforge.dev/bambooforge_edifact/
Live demo
https://demo20.bambooforge.dev/odoo/action-bambooforge_edifact.action_bf_edifact_message
Store page
https://apps.odoo.com/apps/modules/20.0/bambooforge_edifact
Manual last updated
2026-09-23

EDIFACT EDI: ORDERS, INVOIC and DESADV

What this is for

Retail chains do not email purchase orders. They send EDIFACT, and a supplier who cannot read it does not get listed. Odoo has no EDIFACT support at all.

Setting up a trading partner

Sales ▸ EDI ▸ Trading Partners

Every chain runs the same standard slightly differently, so their habits live on a profile rather than in the code:

  • Their interchange ID and qualifier — usually a GLN with qualifier 14.

  • Ours — what we are called in the UNB segment.

  • Test interchanges — partners run a test phase and reject live files during it. Leave this on until they say otherwise.

  • Product code field — which of our fields carries the code they send in LIN. Retail chains almost always send an EAN.

  • Check prices on orders — compare the price on the incoming line with our own price list.

  • Confirm orders automatically — leave off until their files have been trusted for a while. An order that confirms itself also reserves stock and can start a delivery.

Receiving orders

An ORDERS interchange becomes a sales order: the buyer is resolved from NAD+BY by interchange identifier, products from LIN, quantities from QTY+21 and prices from PRI+AAA.

Three behaviours are worth knowing:

  • A price difference does not stop the order. The order is created and the difference is written on it, listing what they say against what our price list says. Price disputes are the expensive part of EDI trading and finding them at invoice time is too late.

  • An unknown buyer or product code fails loudly. The message goes to Error with the identifier that could not be matched, and the payload is kept. Fix the data and press Process Again.

  • A resent interchange does not become a second order. Partners resend; a gateway that takes the same order twice ships it twice.

Sending invoices and despatch advices

build_invoic on a posted customer invoice and build_desadv on a validated outgoing shipment produce the interchange. Neither will build from a draft invoice or an unvalidated picking — a despatch advice for goods that have not left is worse than none at all.

The payload

Stored exactly as sent or received, and never rewritten. When a partner disputes an order six months later, the file they actually sent is the only thing that settles it.

Known limits

  • This module reads and writes the files. It does not talk to a VAN or an AS2 gateway — those need credentials and a contract, and are usually a separate piece of infrastructure that drops files where Odoo can pick them up.

  • ORDERS, INVOIC and DESADV only. ORDRSP, RECADV, IFTMIN and friends are not implemented.

  • Syntax level A with the D96A directory, which is what the grocery trade runs on. A partner on a different directory version may need adjustments.

How we make sure it works

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

  • The same order is not taken twice.

  • Something that is not edifact is refused.

  • Orders in with a price difference is processed not error.

  • An employee without the checkbox reads no message.

  • A partner without a profile is refused.

The complete list is in the source you receive.

Install

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

  2. Install EDIFACT EDI: ORDERS, INVOIC and DESADV.

  3. Open Messages - its menus are Trading Partners, EDI.

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, Invoicing, Sales apps. No extra Python package.

Where does it show up?

Under the Messages menu (Trading Partners, EDI).

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.