Odoo and TrueCommerce integration
Odoo runs your accounting, purchasing, and inventory. TrueCommerce connects you to your trading partners via EDI, SFTP, and APIs. Moving purchase orders and supplier invoices from Odoo to your trading partners through TrueCommerce means no manual re-entry of PO data, faster acknowledgments from suppliers, and a real-time view of inbound shipments. ml-connector handles the API authentication on both sides, transforms Odoo records into X12 EDI documents, and pulls confirmation and shipment data back from TrueCommerce into Odoo.
What moves between them
Odoo purchase orders flow outbound to TrueCommerce, transformed into X12 850 EDI format with line items, quantities, and delivery dates. Odoo supplier invoices are similarly transformed into X12 810 invoices. Return documents from trading partners come back through TrueCommerce as SFTP files or Exchange API objects: 855 purchase order acknowledgments confirm receipt and any quantity/date changes, and 856 advance ship notices provide tracking and expected delivery. ml-connector polls Odoo on a schedule, transforms each new purchase order and invoice into X12 format, writes the file to the TrueCommerce SFTP server, monitors the SFTP inbox for responses, parses incoming 855 and 856 documents, and updates Odoo purchase order and delivery statuses with the supplier's confirmed data.
How ml-connector handles it
ml-connector maintains encrypted storage for both the Odoo API key and TrueCommerce SFTP credentials. On the Odoo side, it polls purchase.order and account.move (invoice) records using the write_date filter, so only new or changed records are processed. For each record, it builds an X12 850 or 810 document with Odoo's supplier ID, line item descriptions, quantities, unit prices, and delivery address from the res.partner record. The generated X12 file is written to the customer-specific path on the TrueCommerce SFTP server with the agreed-upon naming convention. ml-connector then polls the TrueCommerce response folder on a schedule (typically hourly), retrieves any 855 or 856 files, parses the EDI segments, extracts supplier-confirmed quantities, dates, and tracking numbers, and writes them back to Odoo as comments on the purchase order or as separate ShipmentTracking records. TrueCommerce's EDI control numbers handle deduplication automatically, so ml-connector keys transactions by ISA ISN and GS group control numbers to prevent duplicate imports. If the TrueCommerce SFTP server returns a file-in-use error on retrieval, ml-connector backs off and retries on the next cycle. Every record carries an audit trail with timestamps and source document IDs.
A real-world example
A mid-sized consumer goods distributor runs Odoo for purchasing and warehouse management and maintains a network of manufacturing partners and drop-ship suppliers that all communicate via EDI through TrueCommerce. Before the integration, the procurement team placed orders in Odoo, then exported the data as CSV, manually formatted it into X12 EDI documents, uploaded them to the TrueCommerce SFTP server, and regularly checked the inbound folder for acknowledgments, manually copying confirmed quantities and shipment dates back into Odoo. The process was error-prone and delayed visibility into supplier confirmation status. With Odoo and TrueCommerce connected, each new purchase order in Odoo automatically flows to suppliers via EDI within minutes, acknowledgments come back and update Odoo without re-entry, and the procurement team sees real-time shipment visibility in their normal workflows.
What you can do
- Transform Odoo purchase orders into X12 850 EDI documents and upload them to TrueCommerce SFTP on a schedule.
- Transform Odoo supplier invoices into X12 810 EDI documents and route them through TrueCommerce to your trading partners.
- Receive TrueCommerce X12 855 purchase order acknowledgments and update Odoo purchase order statuses with supplier-confirmed quantities and dates.
- Receive TrueCommerce X12 856 advance ship notices and create shipment tracking records in Odoo with carrier and delivery windows.
- Maintain full audit trails on every document transformation, SFTP transfer, and Odoo update with timestamps and source identifiers.
Questions
- What purchase order and invoice fields from Odoo are included in the X12 EDI documents sent to TrueCommerce?
- ml-connector includes the supplier ID, purchase order number, issue date, delivery date, line items with product code or description, quantity, unit price, and delivery address from the Odoo purchase.order and account.move records. Any custom fields required by your trading partners can be mapped during setup. If a field is missing or invalid, ml-connector logs the error and does not send a partial document, so data quality issues are surfaced immediately.
- How does ml-connector prevent duplicate EDI documents from being sent to TrueCommerce or imported from inbound responses?
- On the outbound side, ml-connector uses Odoo's write_date and update_at timestamps to identify only new and changed records since the last poll, so each poll captures only what is new. On the inbound side, TrueCommerce embeds ISA interchange control numbers and GS group control numbers in every EDI document, and ml-connector keys its deduplication by these control numbers, so receiving the same 855 or 856 file twice does not create duplicate records in Odoo.
- What happens if the TrueCommerce SFTP server is unavailable or the credentials expire?
- If SFTP connection fails, ml-connector logs the error with the specific reason (connection timeout, authentication failed, file-in-use), retries with exponential backoff on the next scheduled poll, and surfaces the issue via an alert if retries are exhausted. TrueCommerce SFTP credentials are provisioned during account setup and do not auto-expire, but if they are rotated, the new credentials must be updated in ml-connector's encrypted credential store before the next poll.
Related integrations
More Odoo integrations
Other systems that connect to TrueCommerce
Connect Odoo and TrueCommerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started