Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Estate Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Extra Tools
  3. Uploader v 19.0
  4. Sales Conditions FAQ

Uploader

by Shahid Khan https://iamshahid.dev/
Odoo
v 19.0 Third Party 40
Download for v 19.0 Deploy on Odoo.sh
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Lines of code 811
Technical Name sk_uploader
LicenseLGPL-3
Websitehttps://iamshahid.dev/
Versions 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Lines of code 811
Technical Name sk_uploader
LicenseLGPL-3
Websitehttps://iamshahid.dev/
Versions 18.0 19.0
👨‍💻 Need Custom Odoo Development?

I specialize in advanced Odoo modules, data migration tools, performance optimization, and enterprise-grade custom solutions.

🌐 View My Portfolio
VERSION 1.0.0 • ODOO 17/18/19

Uploader

Enterprise-Grade Excel Import Framework for Odoo

Transform your data migration workflow with intelligent templating, advanced field mapping, and seamless relational imports

📌 What is Uploader?

Uploader is a comprehensive data import solution designed specifically for Odoo environments. It eliminates the complexity of manual data entry by providing a sophisticated yet intuitive framework for uploading Excel and CSV files with configurable templates, intelligent field mappings, and advanced duplicate-handling strategies.

Save 10x Time

Automate data imports that would take hours manually into minutes

Zero Errors

Validate data before import with smart field detection and type checking

Reusable Templates

Create once, use forever across multiple import operations

✨ Powerful Features

Everything you need for seamless data migration and import operations

Dynamic Field Mapping

Create intelligent mappings between your Excel/CSV columns and Odoo model fields.

Smart Duplicate Handling

Choose from three strategies: Skip (ignore duplicates), Always Create (allow duplicates), or Update Existing (modify current records). Define unique identifier fields to detect duplicates accurately based on your business logic.

Many2one Sub-Templates

Import complex relational data effortlessly. Sub-templates handle related records automatically by searching existing entries or creating new ones. Perfect for importing products with categories, contacts with companies, or any hierarchical data structure.

Batch Processing

Handle large datasets efficiently with configurable batch sizes (10, 50, 100, or custom). Prevents server timeouts, reduces memory usage, and provides progress tracking. Import thousands of records without compromising system performance.

🧩 Core Concepts

Understanding the building blocks of Uploader

Uploader Template

The foundation of your import configuration. Each template is a reusable blueprint that defines how data should be imported into a specific Odoo model.

Template Components:

  • Target Model: The Odoo model where records will be created (e.g., Products, Contacts, Sales Orders)
  • Company Context: Multi-company support for enterprise environments
  • Unique Identifier: Field used to detect existing records (e.g., Internal Reference, Email, Barcode)
  • Duplicate Strategy: Defines behavior when matching records are found
  • Field Mappings: Column-to-field associations for data transformation
Field Mapping

The bridge between your source data and Odoo fields. Each mapping translates a column from your file into structured database information.

Mapping Features:

  • Smart Field Filtering: Only displays fields compatible with the selected model
  • Type Validation: Ensures data type compatibility (text, number, date, boolean)
  • Required Field Indicators: Visual markers for mandatory fields
  • Default Values: Set fallback values for empty cells
  • Data Transformation: Apply formatting rules and conversions during import

🚀 Step-by-Step Usage Guide

Learn how to configure templates and prepare your data for import

Step 1: Create a New Template

The first step in using the module is to create a Template. A template defines how Excel or CSV data will be mapped and imported into Odoo records.

Template Form Overview

When creating a new template, the form is divided into two main sections:

  • Header fields at the top
  • A Notebook with two configuration pages below

Template Header Fields

Name

The name of the template. It should clearly describe the purpose of the import (e.g., Customer Import, Product Update Template).

Company

Specifies the company for which this template is applicable. Useful in multi-company environments.

Odoo Model

Select the Odoo model for which this template is created (e.g., res.partner, product.template). This determines which fields are available for mapping.

Duplicate Handling Action

  • Always Create: Always create a new record.
  • Update Duplicates: Update existing records.
  • Skip Duplicates: Skip records if duplicates exist.

Unique Field

Field used to identify existing records (e.g., Email, Internal Reference). This field is used during duplicate detection.

📸 Screenshot: Template form showing header fields

Header Fields Image

Notebook Configuration

The template form includes a Notebook with two pages:

  • Fields Mapping
  • Sub Templates
1. Fields Mapping

This tab defines how Excel columns map to Odoo fields. Each row represents a single column-to-field mapping.

  • Only basic Odoo fields are supported
  • Relational fields are excluded (many2one, one2many, many2many)

📸 Screenshot: Fields Mapping tab with sample mappings

Fields Mapping Image
2. Sub Templates

Sub Templates are used to handle relational data during the import process.

  • Only many2one fields are supported
  • one2many and many2many are not supported

When adding a sub-template, an additional field called Mapped To Field is available. This field links the sub-template to a many2one field of the parent model.

Once selected, the sub-template model is automatically determined, reducing configuration errors and ensuring data consistency.

📸 Screenshot: Sub Template creation with Mapped To Field highlighted

Sub Template Image

Step 2: Create and Use an Uploader

After configuring and activating the template, the next step is to create an Uploader. The uploader is responsible for processing the Excel file and importing data into Odoo based on the selected template configuration.

Uploader Form Overview

To begin, create a new uploader record. The uploader form contains the following fields:

Uploader Fields

Name

The name of the uploader. It should clearly describe the import operation (e.g., Customer Import – January, Product Update Batch 1).

Template

Select a template. The uploader uses this template to determine field mappings, duplicate handling rules, and sub-template behavior.

Batches

Defines how many records are processed per batch during the import. This helps manage performance and large datasets.

  • 10
  • 50
  • 100
  • Custom

Custom Batch

This field becomes available only when Custom is selected in the Batches field. Enter the desired number of records to be processed per batch.

File

Upload the Excel file containing the data to be imported. The column names in the file must exactly match the File Field values defined in the template's field mappings.

📸 Screenshot: Uploader form with all fields filled

Uploader form image

Uploading the File

Once all required fields are completed and the file is uploaded, verify the following:

  • The batch size is correctly configured
  • The uploaded file matches the template structure

Click the Upload File button to start the import process.

What happens next?

After clicking Upload File, the system processes the data according to:

  • The selected template
  • Duplicate handling rules
  • Field mappings and data transformations

🔗 Advanced Many2one Relationships

Handle complex relational data structures with nested sub-templates

Uploader's sub-template system enables sophisticated relational imports without manual record creation. When importing data with Many2one relationships (like Products with Categories, or Contacts with Companies), sub-templates automatically handle the related records.

How Sub-Templates Work:
1

Define Related Model Template

Create a separate template for the related model (e.g., Product Category template for importing products)

2

Link via Mapped To Field

Connect the sub-template to a Many2one field in the parent template using the mapped_to parameter

3

Automatic Search or Create

The system searches for existing related records based on sub-template unique fields. If not found, creates new records automatically and links them to the parent

💡 Real-World Example:

Importing 1000 products with categories: Instead of manually creating categories first, define a Product Category sub-template linked to the product's categ_id field. The system will automatically find existing categories or create new ones during the product import, ensuring data consistency and saving hours of manual work.

⚙️ Intelligent Batch Processing

Optimized for performance, designed for scale

Large file imports can overwhelm servers and cause timeouts. Uploader processes your data in controlled batches to ensure stability, speed, and reliability even with thousands of records.

10

Quick Testing

Ideal for template validation and trial imports

50

Balanced Mode

Recommended for most production imports

100+

High Volume

Best for large datasets with optimized servers

💡 Tip: You can also define a custom batch size based on your server capacity for optimal performance.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with