PurchaseOrders turns a supplier PO into an Odoo-ready file. Upload a PDF, scan, or photo and the AI pulls the vendor, order dates, line items, and totals into a clean CSV or Excel file. Odoo imports purchase orders through Favorites, then Import records in the Purchase app, so once the columns are mapped you load the order straight into Odoo. Try it on a real PO below.
Submit your purchase orders
Drop documents here, or click to file
Up to 50 files per batch
Uploading...
Odoo can import a purchase order from a CSV or XLSX file using its built-in Import records tool, and every version from Odoo 17 to Odoo 19 works the same way. The slow part is turning the PDFs and scans suppliers actually send into that formatted file, which today usually means typing every order in by hand.
Odoo reads a CSV or Excel import file into the purchase.order model, but suppliers email PDFs and scans. Someone has to read each PO and key it into the import layout before Odoo will accept it.
When a purchase order has several order lines, Odoo expects the first line on the same row as the order header and each additional line on its own row with the header fields left blank. Laying a supplier PO out that way by hand is fiddly and easy to get wrong.
Odoo links each imported line to a vendor and a product record. If the extracted names do not match what already exists, the import creates duplicates or fails, so the vendor and product data has to come out clean and consistent.
Every PO carries a table of products, quantities, and unit prices. Typing that into an Odoo import sheet line by line, for every order, is slow and where most entry mistakes start.
PurchaseOrders reads the supplier PO and gives you clean, column-mapped data that drops into the Odoo Import records tool. You stay in control of the final upload inside your own Odoo database.
Export a clean CSV of vendor, order dates, and line items, then load it through Favorites, then Import records in the Odoo Purchase app. No more typing POs into the sheet by hand.
The AI pulls every product, quantity, unit price, and total, so the order lines your Odoo import needs are already filled in instead of being keyed one line at a time.
No templates and no setup. The AI handles PDFs, scans, and photos from any vendor and captures the PO number, vendor, order and expected arrival dates, and totals.
Prefer to build the import in Excel first, or add an External ID column so a re-import updates the same record instead of creating a new one? Export to Excel. Developers can use JSON or the API to create orders through the Odoo external API instead.
Run more than one system? The same extraction feeds a purchase order to QuickBooks converter, a purchase order to Xero import, a NetSuite import, and a Business Central import for Dynamics 365, so mixed-system teams use one tool for every target. If you just need the raw file, the PO PDF to Excel converter and CSV export produce the spreadsheet directly, and high-volume teams clear a backlog with bulk purchase order processing. For the general approach, see how to import purchase orders to your ERP, and for line-level accuracy, purchase order line item extraction.
An honest look at the two realistic ways to load a supplier purchase order into Odoo today.
| PurchaseOrders + Odoo | Manual entry into Odoo | |
|---|---|---|
| Reading the supplier PO | AI extracts every field | Read and type by hand |
| Line-item table | Captured automatically | Keyed row by row |
| Building the import CSV | Clean CSV, ready to map | Typed into the layout |
| Multi-line layout | One row per order line | Arranged by hand |
| Bulk or list of POs | Up to 100 per batch | One at a time |
| Accuracy | Fields mapped by name, reviewed on screen before export | Published manual keying error rates run 1 to 4 percent |
| Setup | None, no templates | None, but fully manual |
| Output formats | Excel, CSV, JSON, API | Not applicable |
Odoo imports purchase orders through the built-in Import records tool (Favorites, then Import records) into the purchase.order model, and multi-line orders need one row per order line. PurchaseOrders extracts the supplier PO so your import file is ready. Always confirm the current import steps and field names in your own Odoo version.
No templates and no manual line-item entry. Upload a real PO and get Odoo-ready data in seconds.
Drag in a PDF, scan, or photo of the purchase order from any vendor. There is no template or setup to configure first.
Tip: Multi-page POs and several suppliers in one batch are fine.
The AI reads the PO number, vendor, order and expected arrival dates, line items, products, quantities, unit prices, and totals.
Download the CSV or Excel file, open the Purchase app, and use Favorites, then Import records to map the columns and load the order, then review it inside Odoo.
Yes. Odoo imports purchase orders from a CSV or Excel file through the built-in Import records tool in the Purchase app, under Favorites. The order loads into the purchase.order model. The slow part is getting supplier PDFs into that file, which is where AI extraction with a tool like PurchaseOrders removes the manual typing.
Open the Purchase app, go to the purchase orders list, click Favorites, then Import records, and upload a CSV or XLSX that matches the Odoo fields. Map the columns to vendor, product, quantity, and price, then run the import. If your POs are still PDFs, extract them to a clean file first so the columns line up.
Odoo expects the first order line on the same row as the order header, and each additional line on its own row with the header fields left blank. Extraction lays the line items out as one row per line automatically, so a multi-line supplier PO imports as a single order with all its lines instead of separate orders.
An External ID is a unique reference Odoo stores for each imported record. If your import file includes an External ID column, re-importing the same file updates the existing records instead of creating duplicates, which is useful when a purchase order changes and you need to load the correction.
Odoo links each purchase order to a vendor and each line to a product. If the vendor or product already exists, match it by name or External ID so the import connects to the right record; otherwise Odoo can create it. Clean, consistent extraction of the vendor and product names is what keeps that matching correct.
No. PurchaseOrders is a purchase order extraction tool, not an Odoo module. It reads supplier POs and outputs Odoo-ready CSV, Excel, JSON, or API data. You then import that file through the Odoo Import records tool, so it works alongside Odoo rather than inside it.
Get PO data into Xero too.
Export PO data to an Odoo-ready CSV.
Map PO data into any ERP.
Process many POs in one batch.
Match-ready PO data for accounts payable.