Import Order Lines from Excel / CSV for Odoo 19 documentation
A guide to importing order lines: the file and its headers, the check, the options, sales and purchase orders, and access rights.
Documents version 1.0.0Updated Oct 23, 2026
Start here
In plain words: A customer sends a spreadsheet with 150 items, and you type them in one by one. Import Order Lines from Excel / CSV adds the lines of a quotation, a sales order or a purchase order from a file: the products by reference, barcode or name, the quantity, and the price, discount, description and unit when the file has them. Every row is checked before anything is added, so you see the errors first.
Tip: Unlike the standard Odoo import, you do not map columns or create the order with the file: you open the order you have and add lines to it, with the prices and taxes of Odoo.
What you get
| Feature | What it does |
|---|---|
| Excel and CSV | Files .xlsx, .xls and .csv (comma, semicolon or tab; UTF-8). |
| Sales and purchase | A button on quotations and on purchase orders in draft. |
| Products found by | Internal reference, barcode or name; on a purchase order also the vendor's product code. |
| Headers recognised | In English and Arabic, in any column order: Internal Reference, Barcode, Product, Quantity, Unit Price, Discount, Description, Unit. |
| The price of Odoo | If the file has no price, the line gets the price of the price list (sales) or of the vendor (purchases). |
| A check first | Each row is Ready, Warning or Error, with the reason: product not found or ambiguous, bad quantity, price, discount or unit. |
| Your choice | Import the valid rows only, or nothing if a row has an error. A product already on the order: a new line, more quantity, or skip. |
| A template | Download an Excel file with the right headers. |
| The chatter | The import is noted on the order: how many lines, from which file. |
| Arabic | Everything is translated and works right to left. |
Requirements
| Item | Details |
|---|---|
| Odoo | 19.0 (Community or Enterprise) |
| Apps needed | Sales (sale) and Purchase (purchase) |
| License | OPL-1 (Odoo Proprietary License v1.0) |
Install
- Unzip the package. Inside is
taqnix_import_order_lines.zip; unzip it to get the foldertaqnix_import_order_lines. - Copy the folder into one of the
addons_pathfolders of your Odoo server and restart Odoo. - Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
- Remove the “Apps” filter, search Import Order Lines from Excel / CSV and press Install.
# or from the command line ./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_import_order_lines --stop-after-init
Prepare the file
In plain words: The first row holds the headers; each following row is a line. Only the product and the quantity are needed.
| Column | Accepted headers | Content |
|---|---|---|
| Product | Internal Reference, Reference, SKU, Code / Barcode, EAN / Product, Item | The reference, the barcode or the name of the product. Without case, spaces around are ignored. |
| Quantity | Quantity, Qty | A number above zero. 1,250.50 and 3,5 are understood. |
| Price | Unit Price, Price | Optional. Empty: the price of Odoo. |
| Discount | Discount, Disc | Optional, from 0 to 100. |
| Description | Description, Label, Name | Optional. Replaces the description of the product on the line. |
| Unit | Unit, UoM | Optional, the name of a unit of the same family as the product's (Units, Dozens...). |
Tip: Click Download the template in the wizard for a ready file. Arabic headers (الكمية, الباركود, السعر...) work as well.
Import the lines
In plain words: Open a quotation (or a draft purchase order) and click Import lines. Choose the file, then click Check the file.
| Option | Meaning |
|---|---|
| If the product is already on the order | Add a new line, add to the quantity of the existing line, or skip the row. |
| If a row has an error | Import the valid rows and skip the others, or import nothing. |
In plain words: When the list is right, click Import the lines. Correct the file and Check again if you prefer.
How a row is checked
| Result | When |
|---|---|
| Ready | The product is found, the quantity, price, discount and unit are valid. |
| Warning | The product is found but cannot be sold (or purchased): the line is still imported. |
| Error | No product matches; several products match (use the reference or the barcode); the quantity is zero, negative or not a number; the price or the discount is not valid; the unit does not fit the product. |
In plain words: Row numbers are those of the file, so you find the row in your spreadsheet.
Who can do what
| Who | Can |
|---|---|
| Salespeople and purchase users | Import lines into the orders they can edit. |
| Other users | The button is not on the order, and adding lines is refused by Odoo's access rights. |
Arabic and right to left
Limits
| Limit | Detail |
|---|---|
| Draft orders only | Quotations and draft purchase orders: not confirmed orders. |
| Up to 5000 rows | In one file. |
| First sheet | Only the first sheet of an Excel file is read. |
| Lines only | The order itself (customer, dates) is not created from the file. |
| No combos | Combo products are not imported. |
For developers
In plain words: Skip this chapter if you only use the module.
wizard = env['taqnix.order.import'].create({'res_model': 'sale.order', 'res_id': order.id, 'file': base64_content, 'filename': 'lines.xlsx', 'duplicates': 'add'})
wizard.action_check()
wizard.line_ids.mapped('message')
wizard.action_import()Troubleshooting
| Problem | What to do |
|---|---|
| The file needs a column that tells the product | Name the column Internal Reference, Barcode or Product on the first row. |
| No product matches | Check the reference; spaces and capitals do not matter; a purchase order also accepts the vendor's code. |
| Several products are named... | Use the reference or the barcode instead of the name. |
| The unit does not fit this product | Use a unit of the same family as the one of the product, and an active one. |
| The Import lines button is missing | It shows on quotations and draft purchase orders only. |
Updating and removing
Replace the folder with the new version, restart Odoo and run -u taqnix_import_order_lines. Nothing is stored: the lines you imported stay on your orders.
Support
Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.