A build-to-order Odoo module that reads incoming purchase orders and supplier quotations with OCR and AI, then auto-creates matched draft `purchase.order` records. ECOSIRE builds, installs, and supports it for your Odoo 17, 18, or 19 instance. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $299.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo module that reads incoming purchase orders and supplier quotations with OCR and AI, then auto-creates matched draft `purchase.order` records. ECOSIRE builds, installs, and supports it for your Odoo 17, 18, or 19 instance.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
Procurement teams still key supplier documents by hand. A PO or quotation arrives as a PDF, a scanned fax, or an emailed image, and someone retypes the vendor, every line, quantities, unit prices, and units of measure into Odoo. It is slow, it is where transposition errors creep into purchase.order.line totals, and it does not scale when a buyer processes dozens of documents a day. Odoo core gives you a clean purchase.order model and, on Enterprise, invoice OCR through the Documents/account digitization service — but that pipeline is tuned for vendor bills, not for inbound POs and RFQ responses, and there is no native path that turns an arbitrary supplier quotation into a draft purchase order with your products already matched. Community editions have no OCR at all.
OCR pipeline that handles native-text PDFs, scanned images, and phone photos of supplier POs and quotations, with per-document confidence scoring stored on the record
AI extraction pass returning structured JSON: vendor, document number/date, currency, and a full line table of description, quantity, unit price, and UoM
Vendor resolution against `res.partner` using `product.supplierinfo` references, VAT/registration numbers, and learned aliases before falling back to fuzzy name match
Line-item product matching against `product.product` by internal reference, barcode, supplier product code, then fuzzy description with a review threshold
Unit-of-measure detection mapped to `uom.uom` with category validation so Dozen-vs-Unit mismatches are flagged, not silently miscosted
Side-by-side review screen (OWL on 18/19) showing the original document next to extracted lines with low-confidence fields highlighted for correction
We build a dedicated Odoo module that closes that gap. A new document intake model (extending mail.thread so every source file, confidence score, and correction is chatter-logged) accepts uploads, drag-and-drop, or an aliased inbox address. Each document runs through an OCR + AI extraction step: text-layer PDFs are parsed directly, scans and photos go through OCR, and a large-language-model extraction pass returns structured JSON — vendor identity, document number and date, currency, and a line table of description, quantity, unit price, and UoM. The extraction result is persisted with per-field confidence so nothing is silently trusted. A resolver then matches the payload to Odoo: vendor against res.partner (including product.supplierinfo vendor references and prior aliases), each line against product.product via internal reference, barcode, supplier product code, or fuzzy description, and the parsed unit against uom.uom with category validation so a Dozen-vs-Unit mismatch is flagged rather than miscosted.
Technically this is a real Odoo app, not a bolt-on script. It ships with a proper __manifest__.py (declaring purchase, stock, and mail dependencies), ORM models with @api.depends computes for confidence roll-ups and match status, and backend views built in the current framework for your version — XML list/form views on 17.0, with OWL components where interactive review helps. Security is enforced through ir.model.access.csv plus record rules so buyers only see their own company's intake queue in a multi-company setup. A review screen lets a buyer see the original document beside the extracted lines, fix any low-confidence field, and confirm — which creates the draft purchase.order through the standard ORM so all of Odoo's downstream logic (approvals, taxes, analytic accounting, stock) applies unchanged. Bulk processing is handled by a queued automated action so a batch of documents can be OCR'd without blocking the UI, and every extraction is available over the standard XML-RPC/JSON-RPC API for headless feeding from a scanner or a mailbox.
Because this is build-to-order, you are not downloading a fixed app and hoping it fits. We start with a short scoping call to confirm your document mix (native PDF vs scan vs photo), your OCR/AI provider preference (a hosted vision model, or a self-hosted OCR engine if data residency requires it), your product-matching keys, and your Odoo edition and version. We then build against your exact 17.0, 18.0, or 19.0 instance, validate on a staging copy with your real documents, and hand over installable source and a git repository. Typical delivery is 2 to 4 weeks from confirmed scope, followed by a post-go-live support window.
Runs a buying team drowning in supplier documents and wants POs entered accurately without adding headcount. Needs high-confidence auto-creation with an exception queue, and an audit trail on every extracted line.
Owns the Odoo instance and must keep it upgrade-safe. Wants a clean module with proper `__manifest__.py` dependencies, access rules, and no core overrides, plus a git repo they can maintain across 17/18/19.
Cares that PO quantities, unit prices, currency, and UoM are correct before goods and bills flow downstream. Values the confidence scoring, UoM-category validation, and chatter audit that reduce transposition errors.
Handles high volumes of inbound RFQ responses and supplier POs, often as scans or emailed images. Needs bulk processing, email-alias intake, and reliable product matching against a large `product.product` catalog.
Buy the license on ecosire.com and download the AI Purchase Order OCR Digitization module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for AI Purchase Order OCR Digitization, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Inbound PO / quotation OCR | Purpose-built for POs and RFQ responses | Whatever you spec and can build | Usually invoice-only OCR | |
| AI line-item extraction | Structured JSON with per-field confidence | Depends on in-house AI skills | Basic field capture, weak on line tables | |
| Product & UoM matching | Ref/barcode/supplier-code + fuzzy, UoM category checks | Must be designed from scratch | Often name-only, no UoM validation | |
| Fit to your Odoo version | Built for your 17.0/18.0/19.0 instance | Fully bespoke, at your cost/time | Generic; may lag new versions | |
| Auto-create draft PO | One-click via standard ORM, workflow-safe | You implement the ORM plumbing | Varies; some only export CSV | |
| Audit & confidence trail | Chatter log of file, JSON, and corrections | Only if you build it | Rarely exposed | |
| Source code & ownership | Full source + git repo handover | You own it, you built it | Often encrypted/obfuscated | |
| Support & tuning | Post-go-live window + optional retainer | Your team maintains it | Generic vendor support queue |
This is a build-to-order module, so it is not an instant download. Typical delivery is 2 to 4 weeks from confirmed scope. After a short scoping call we agree the document mix, OCR/AI provider, matching keys, and your Odoo version, then build against your instance, validate on staging with your real documents, and hand over installable source plus a git repository.
Both. Odoo Enterprise ships invoice-focused OCR through its digitization service, but there is no native inbound-PO extraction, and Community has no OCR at all — this module adds that capability on either edition. We build and test against your specific 17.0, 18.0, or 19.0 instance and note any Enterprise-only integration points during scoping.
You receive a post-go-live support window for defect fixes and matching-accuracy tuning, and you own the full source in a git repository so you can maintain it. We can quote an ongoing support or version-upgrade retainer (for example moving the module from 17.0 to 18.0 or 19.0) separately if you want us to keep maintaining it.
By default we use a hosted vision/LLM model for the best line-item extraction accuracy, but if data residency or cost rules that out we can build against a self-hosted OCR engine such as Tesseract or PaddleOCR. We confirm the provider and where documents are processed during the scoping call.
Every field carries a confidence score. Vendors resolve against `res.partner` using supplier references and learned aliases; lines match `product.product` by internal reference, barcode, supplier code, then fuzzy description. High-confidence documents can auto-create draft POs while low-confidence ones route to a manual review queue, and confirmed corrections feed back so recurring suppliers extract better over time.
No. The module creates standard draft `purchase.order` records through the ORM, so your existing approvals, taxes, analytic accounting, and stock logic apply unchanged. It adds an intake and review layer rather than overriding purchase core, which keeps your instance upgrade-safe.
Yes. You can forward supplier documents to a configured email alias so they land in the processing queue automatically, and the extraction and created-PO data is available over Odoo's XML-RPC/JSON-RPC API for headless feeding from a scanner or an external mailbox.
A build-to-order Odoo module that reads incoming purchase orders and supplier quotations with OCR and AI, then auto-creates matched draft `purchase.order` records. ECOSIRE builds, installs, and supports it for your Odoo 17, 18, or 19 instance.