Sale Order Import

sale_order_import
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/19.0/sale_order_import
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Ricardoalso
WEBSITE
WEBSITEhttps://github.com/OCA/edi
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - uom_unece
OCA/edi:
    - base_business_document_import
OCA/reporting-engine:
    - pdf_xml_attachment
OCA/sale-workflow:
    - sale_commercial_partner
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds support for the import of electronic RFQ or orders.
This module provides the base methods to import electronic orders, and
you can also plug additional formats by extending the wizard. It
requires additional modules to support specific order formats:

- module *sale_order_import_ubl*: adds support for [Universal Business
  Language (UBL)](http://ubl.xml.org/) RFQs and orders as:
  - XML file,
  - PDF file with an embedded XML file.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
skip_error_line_value_message skip_error_line_value_message ir.ui.view qweb New
skip_error_lines_message skip_error_lines_message ir.ui.view qweb New
Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (14)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Commercial Entity' args: 'res.partner'
  • confirm_order Boolean
    default=False
  • create_missing_invoice_partner Boolean
    default=False
  • create_missing_shipping_partner Boolean
    default=False
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • import_type Selection
    default=None help='Select a type which you want to import' required=True args: [('xml', 'XML'), ('pdf', 'PDF')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    default='pricelist' selection=[('pricelist', 'Pricelist'), ('order', 'Customer Order')] string='Apply Prices From'
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • skip_error_lines Boolean
    help='Ignore and push all error lines to the chatter when importing if enabled.'
  • state Selection
    default='import' args: [('import', 'Import'), ('update', 'Update')]
Public methods (11)
  • create_order(self, parsed_order, price_source, order_filename=None)
    @api.model
  • create_order_button(self)
  • create_order_return_action(self, parsed_order, order_filename)
  • create_order_ws(self, parsed_order, price_source, order_filename=None)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • import_order_button(self)
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, data, detect_doc_type=False)
    @api.model
  • update_order_button(self)
  • update_order_lines(self, parsed_order, order, price_source)
    @api.model
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/18.0/sale_order_import
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Simone Orsi, SilvioC2C, oca-ci, thienvh
WEBSITE
WEBSITEhttps://github.com/OCA/edi
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - uom_unece
OCA/edi:
    - base_business_document_import
OCA/reporting-engine:
    - pdf_xml_attachment
OCA/sale-workflow:
    - sale_commercial_partner
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds support for the import of electronic RFQ or orders.
This module provides the base methods to import electronic orders, and
you can also plug additional formats by extending the wizard. It
requires additional modules to support specific order formats:

- module *sale_order_import_ubl*: adds support for [Universal Business
  Language (UBL)](http://ubl.xml.org/) RFQs and orders as:
  - XML file,
  - PDF file with an embedded XML file.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
skip_error_line_value_message skip_error_line_value_message ir.ui.view qweb New
skip_error_lines_message skip_error_lines_message ir.ui.view qweb New
Models touched (2)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (14)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Commercial Entity' args: 'res.partner'
  • confirm_order Boolean
    default=False
  • create_missing_invoice_partner Boolean
    default=False
  • create_missing_shipping_partner Boolean
    default=False
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • import_type Selection
    default=None help='Select a type which you want to import' required=True args: [('xml', 'XML'), ('pdf', 'PDF')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    default='pricelist' selection=[('pricelist', 'Pricelist'), ('order', 'Customer Order')] string='Apply Prices From'
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • skip_error_lines Boolean
    help='Ignore and push all error lines to the chatter when importing if enabled.'
  • state Selection
    default='import' args: [('import', 'Import'), ('update', 'Update')]
Public methods (11)
  • create_order(self, parsed_order, price_source, order_filename=None)
    @api.model
  • create_order_button(self)
  • create_order_return_action(self, parsed_order, order_filename)
  • create_order_ws(self, parsed_order, price_source, order_filename=None)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • import_order_button(self)
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, data, detect_doc_type=False)
    @api.model
  • update_order_button(self)
  • update_order_lines(self, parsed_order, order, price_source)
    @api.model
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/16.0/sale_order_import
VERSION
VERSION 1.5.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp
COMMITTERS
COMMITTERSAlexis de Lattre, Weblate, OCA-git-bot, Simone Orsi, oca-ci, duongtq, thaolt, thienvh
WEBSITE
WEBSITEhttps://github.com/OCA/edi
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - uom_unece
OCA/edi:
    - base_business_document_import
    - pdf_helper
OCA/sale-workflow:
    - sale_commercial_partner
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
skip_error_line_value_message skip_error_line_value_message ir.ui.view qweb New
skip_error_lines_message skip_error_lines_message ir.ui.view qweb New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)
    Add amount_untaxed in name_get of sale orders

New fields (12)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Commercial Entity' args: 'res.partner'
  • confirm_order Boolean
    default=False
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • import_type Selection
    default=None help='Select a type which you want to import' required=True args: [('xml', 'XML'), ('pdf', 'PDF')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    string='Apply Prices From' args: [('pricelist', 'Pricelist'), ('order', 'Customer Order')]
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • skip_error_lines Boolean
    help='Ignore and push all error lines to the chatter when importing if enabled.'
  • state Selection
    default='import' args: [('import', 'Import'), ('update', 'Update')]
Public methods (11)
  • create_order(self, parsed_order, price_source, order_filename=None, confirm_order=False)
    @api.model
  • create_order_button(self)
  • create_order_return_action(self, parsed_order, order_filename)
  • create_order_ws(self, parsed_order, price_source, order_filename=None, confirm_order=False)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • import_order_button(self)
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, data, detect_doc_type=False)
    @api.model
  • update_order_button(self)
  • update_order_lines(self, parsed_order, order, price_source)
    @api.model
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/14.0/sale_order_import
VERSION
VERSION 1.6.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp
COMMITTERS
COMMITTERSOCA Transbot, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, Simone Orsi, oca-ci, Hai Lang, Tran Thanh Phuc
WEBSITE
WEBSITEhttps://github.com/OCA/edi
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - uom_unece
OCA/edi:
    - base_business_document_import
    - pdf_helper
OCA/sale-workflow:
    - sale_commercial_partner
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pypdf>=3.1.0,<5.0
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)
    Add amount_untaxed in name_get of sale orders

New fields (11)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Commercial Entity' args: 'res.partner'
  • confirm_order Boolean
    default=False
  • csv_import Boolean
    default=False readonly=True
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: CSV, XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    domain=[('customer', '=', True)] string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    string='Apply Prices From' args: [('pricelist', 'Pricelist'), ('order', 'Customer Order')]
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • state Selection
    default='import' string='State' args: [('import', 'Import'), ('update', 'Update')]
Public methods (13)
  • create_order(self, parsed_order, price_source, order_filename=None, confirm_order=False)
    @api.model
  • create_order_button(self)
  • create_order_return_action(self, parsed_order, order_filename)
  • create_order_ws(self, parsed_order, price_source, order_filename=None, confirm_order=False)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • get_xml_doc_type(self, xml_root)
    @api.model
  • import_order_button(self)
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_csv_order(self, order_file, partner)
    @api.model
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, xml_root, detect_doc_type=False)
    @api.model
  • update_order_button(self)
  • update_order_lines(self, parsed_order, order, price_source)
    @api.model
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/13.0/sale_order_import
VERSION
VERSION 2.1.2
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSJacques-Etienne Baudoux, sebalix, OCA Transbot, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, Simone Orsi
WEBSITE
WEBSITEhttps://github.com/OCA/edi
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - uom_unece
OCA/edi:
    - base_business_document_import
OCA/sale-workflow:
    - sale_commercial_partner
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)
    Add amount_untaxed in name_get of sale orders

New fields (10)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Commercial Entity' args: 'res.partner'
  • csv_import Boolean
    default=False readonly=True
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: CSV, XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    domain=[('customer', '=', True)] string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    string='Apply Prices From' args: [('pricelist', 'Pricelist'), ('order', 'Customer Order')]
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • state Selection
    default='import' string='State' args: [('import', 'Import'), ('update', 'Update')]
Public methods (13)
  • create_order(self, parsed_order, price_source, order_filename=None)
    @api.model
  • create_order_button(self)
  • create_order_return_action(self, parsed_order, order_filename)
  • create_order_ws(self, parsed_order, price_source, order_filename=None)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • get_xml_doc_type(self, xml_root)
    @api.model
  • import_order_button(self)
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_csv_order(self, order_file, partner)
    @api.model
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, xml_root, detect_doc_type=False)
    @api.model
  • update_order_button(self)
  • update_order_lines(self, parsed_order, order, price_source)
    @api.model
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/12.0/sale_order_import
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAndrea, Miquel Raïch, oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/edi
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - uom_unece
OCA/edi:
    - base_business_document_import
OCA/partner-contact:
    - base_vat_sanitized
OCA/sale-workflow:
    - sale_commercial_partner
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - payment
    - account
    - product
    - decimal_precision
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyPDF2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)
    Add amount_untaxed in name_get of sale orders

New fields (10)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Commercial Entity' args: 'res.partner'
  • csv_import Boolean
    default=False readonly=True
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: CSV, XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    domain=[('customer', '=', True)] string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    string='Apply Prices From' args: [('pricelist', 'Pricelist'), ('order', 'Customer Order')]
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • state Selection
    default='import' string='State' args: [('import', 'Import'), ('update', 'Update')]
Public methods (13)
  • create_order(self, parsed_order, price_source, order_filename=None)
    @api.model
  • create_order_button(self)
  • create_order_return_action(self, parsed_order, order_filename)
  • create_order_ws(self, parsed_order, price_source, order_filename=None)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • get_xml_doc_type(self, xml_root)
    @api.model
  • import_order_button(self)
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_csv_order(self, order_file, partner)
    @api.model
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, xml_root, detect_doc_type=False)
    @api.model
  • update_order_button(self)
  • update_order_lines(self, parsed_order, order, price_source)
    @api.model
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/11.0/sale_order_import
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSoca-travis, OCA-git-bot, tarteo
WEBSITE
WEBSITEhttps://github.com/oca/edi
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - product_uom_unece
OCA/edi:
    - base_business_document_import
OCA/partner-contact:
    - base_vat_sanitized
OCA/sale-workflow:
    - sale_commercial_partner
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - analytic
    - web_planner
    - portal
    - http_routing
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyPDF2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)
    Add amount_untaxed in name_get of sale orders

New fields (10)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Customer' args: 'res.partner'
  • csv_import Boolean
    default=False readonly=True
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: CSV, XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    domain=[('customer', '=', True)] string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    string='Apply Prices From' args: [('pricelist', 'Pricelist'), ('order', 'Customer Order')]
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • state Selection
    default='import' string='State' args: [('import', 'Import'), ('update', 'Update')]
Public methods (13)
  • create_order(self, parsed_order, price_source, order_filename=None)
    @api.model
  • create_order_button(self)
  • create_order_return_action(self, parsed_order, order_filename)
  • create_order_ws(self, parsed_order, price_source, order_filename=None)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • get_xml_doc_type(self, xml_root)
    @api.model
  • import_order_button(self)
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_csv_order(self, order_file, partner)
    @api.model
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, xml_root, detect_doc_type=False)
    @api.model
  • update_order_button(self)
  • update_order_lines(self, parsed_order, order, price_source)
    @api.model
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/10.0/sale_order_import
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, OCA Transbot, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - product_uom_unece
OCA/edi:
    - base_business_document_import
OCA/partner-contact:
    - base_vat_sanitized
OCA/sale-workflow:
    - sale_commercial_partner
OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - web_planner
    - procurement
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyPDF2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)
    Add amount_untaxed in name_get of sale orders

New fields (10)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Customer' args: 'res.partner'
  • csv_import Boolean
    default=False readonly=True
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: CSV, XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    domain=[('customer', '=', True)] string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    string='Apply Prices From' args: [('pricelist', 'Pricelist'), ('order', 'Customer Order')]
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • state Selection
    default='import' string='State' args: [('import', 'Import'), ('update', 'Update')]
Public methods (13)
  • create_order(self, parsed_order, price_source, order_filename=None)
    @api.model
  • create_order_button(self)
  • create_order_return_action(self, parsed_order, order_filename)
  • create_order_ws(self, parsed_order, price_source, order_filename=None)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • get_xml_doc_type(self, xml_root)
    @api.model
  • import_order_button(self)
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_csv_order(self, order_file, partner)
    @api.model
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, xml_root, detect_doc_type=False)
    @api.model
  • update_order_button(self)
  • update_order_lines(self, parsed_order, order, price_source)
    @api.model
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/9.0/sale_order_import
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSHolger Brunn
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - product_uom_unece
OCA/edi:
    - sale_commercial_partner
    - base_business_document_import
OCA/partner-contact:
    - base_vat_sanitized
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - web_tip
    - web_planner
    - procurement
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyPDF2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)
    @api.multi
    Add amount_untaxed in name_get of sale orders

New fields (10)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Customer' args: 'res.partner'
  • csv_import Boolean
    default=False readonly=True
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: CSV, XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    domain=[('customer', '=', True)] string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    string='Apply Prices From' args: [('pricelist', 'Pricelist'), ('order', 'Customer Order')]
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • state Selection
    default='import' string='State' args: [('import', 'Import'), ('update', 'Update')]
Public methods (12)
  • create_order(self, parsed_order, price_source)
    @api.model
  • create_order_button(self)
    @api.multi
  • create_order_return_action(self, parsed_order)
    @api.multi
  • get_xml_doc_type(self, xml_root)
    @api.model
  • import_order_button(self)
    @api.multi
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_csv_order(self, order_file, partner)
    @api.model
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, xml_root, detect_doc_type=False)
    @api.model
  • update_order_button(self)
    @api.multi
  • update_order_lines(self, parsed_order, order)
    @api.multi
REPOSITORY
REPOSITORYOCA/edi
GIT
GIThttps://github.com/OCA/edi.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/edi/tree/8.0/sale_order_import
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYSales Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSAlexis de Lattre, Pedro M. Baeza, OCA Transbot, Adrien Peiffer (ACSONE), David Beal, oca-travis, OCA-git-bot, houssine
WEBSITE
WEBSITEhttp://www.akretion.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/community-data-files:
    - account_tax_unece
    - base_unece
    - product_uom_unece
OCA/edi:
    - sale_commercial_partner
    - base_business_document_import
OCA/partner-contact:
    - base_vat_sanitized
odoo/odoo:
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web_kanban
    - web
    - web_kanban_sparkline
    - account_voucher
    - account
    - product
    - decimal_precision
    - report
    - analytic
    - board
    - edi
    - email_template
    - procurement
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES PyPDF2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
sale_order_import_form sale.order.import.form sale.order.import form New
Models touched (2)

New fields (0)

No new fields.

Public methods (1)
  • name_get(self)
    @api.multi
    Add amount_untaxed in name_get of sale orders

New fields (10)
  • commercial_partner_id Many2one → res.partner
    readonly=True string='Customer' args: 'res.partner'
  • csv_import Boolean
    default=False readonly=True
  • doc_type Selection
    readonly=True string='Document Type' args: [('rfq', 'Request For Quotation'), ('order', 'Sale Order')]
  • order_file Binary
    help='Upload a Request for Quotation or an Order file. Supported formats: CSV, XML and PDF (PDF with an embeded XML file).' required=True string='Request for Quotation or Order'
  • order_filename Char
    string='Filename'
  • partner_id Many2one → res.partner
    domain=[('customer', '=', True)] string='Customer' args: 'res.partner'
  • partner_shipping_id Many2one → res.partner
    readonly=True string='Shipping Address' args: 'res.partner'
  • price_source Selection
    string='Apply Prices From' args: [('pricelist', 'Pricelist'), ('order', 'Customer Order')]
  • sale_id Many2one → sale.order
    string='Quotation to Update' args: 'sale.order'
  • state Selection
    default='import' string='State' args: [('import', 'Import'), ('update', 'Update')]
Public methods (13)
  • create_order(self, parsed_order, price_source, order_filename=None)
    @api.model
  • create_order_button(self)
    @api.multi
  • create_order_return_action(self, parsed_order, order_filename)
    @api.multi
  • create_order_ws(self, parsed_order, price_source, order_filename=None)
    @api.model
    Same method as create_order() but callable via JSON-RPC webservice. Returns an ID to avoid this error: TypeError: sale.order(15,) is not JSON serializable
  • get_xml_doc_type(self, xml_root)
    @api.model
  • import_order_button(self)
    @api.multi
  • order_file_change(self)
    @api.onchange('order_file')
  • parse_csv_order(self, order_file, partner)
    @api.model
  • parse_order(self, order_file, order_filename, partner=False)
    @api.model
  • parse_pdf_order(self, order_file, detect_doc_type=False)
    @api.model
    Get PDF attachments, filter on XML files and call import_order_xml
  • parse_xml_order(self, xml_root, detect_doc_type=False)
    @api.model
  • update_order_button(self)
    @api.multi
  • update_order_lines(self, parsed_order, order)
    @api.multi