Skip ke Konten
Odoo Menu
  • Login
  • Uji coba gratis
  • Aplikasi
    Keuangan
    • Akuntansi
    • Faktur
    • Pengeluaran
    • Spreadsheet (BI)
    • Dokumen
    • Tanda Tangan
    Sales
    • CRM
    • Sales
    • POS Toko
    • POS Restoran
    • Langganan
    • Rental
    Website
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Rantai Pasokan
    • Inventaris
    • Manufaktur
    • PLM
    • Purchase
    • Maintenance
    • Kualitas
    Sumber Daya Manusia
    • Karyawan
    • Rekrutmen
    • Cuti
    • Appraisal
    • Referensi
    • Armada
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Acara
    • Otomatisasi Marketing
    • Survei
    Layanan
    • Project
    • Timesheet
    • Layanan Lapangan
    • Meja Bantuan
    • Planning
    • Appointment
    Produktivitas
    • Diskusi
    • Approval
    • IoT
    • VoIP
    • Pengetahuan
    • WhatsApp
    Aplikasi pihak ketiga Odoo Studio Platform Odoo Cloud
  • Industri-Industri
    Retail
    • Toko Buku
    • Toko Baju
    • Toko Furnitur
    • Toko Kelontong
    • Toko Hardware
    • Toko Mainan
    Makanan & Hospitality
    • Bar dan Pub
    • Restoran
    • Fast Food
    • Rumah Tamu
    • Distributor Minuman
    • Hotel
    Real Estate
    • Agensi Real Estate
    • Firma Arsitektur
    • Konstruksi
    • Estate Management
    • Perkebunan
    • Asosiasi Pemilik Properti
    Konsultansi
    • Firma Akuntansi
    • Mitra Odoo
    • Agensi Marketing
    • Firma huku
    • Talent Acquisition
    • Audit & Sertifikasi
    Manufaktur
    • Tekstil
    • Logam
    • Perabotan
    • Makanan
    • Brewery
    • Corporate Gift
    Kesehatan & Fitness
    • Sports Club
    • Toko Kacamata
    • Fitness Center
    • Wellness Practitioners
    • Farmasi
    • Salon Rambut
    Perdagangan
    • Handyman
    • IT Hardware & Support
    • Sistem-Sistem Energi Surya
    • Pembuat Sepatu
    • Cleaning Service
    • Layanan HVAC
    Lainnya
    • Organisasi Nirlaba
    • Agen Lingkungan
    • Rental Billboard
    • Fotografi
    • Penyewaan Sepeda
    • Reseller Software
    Browse semua Industri
  • Komunitas
    Belajar
    • Tutorial-tutorial
    • Dokumentasi
    • Sertifikasi
    • Pelatihan
    • Blog
    • Podcast
    Empower Education
    • Program Edukasi
    • Game Bisnis 'Scale Up!'
    • Kunjungi Odoo
    Dapatkan Softwarenya
    • Download
    • Bandingkan Edisi
    • Daftar Rilis
    Kolaborasi
    • Github
    • Forum
    • Acara
    • Terjemahan
    • Menjadi Partner
    • Layanan untuk Partner
    • Daftarkan perusahaan Akuntansi Anda.
    Dapatkan Layanan
    • Temukan Mitra
    • Temukan Akuntan
    • Temui penasihat
    • Layanan Implementasi
    • Referensi Pelanggan
    • Bantuan
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Dapatkan demo
  • Harga
  • Bantuan

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Akuntansi
  • Inventaris
  • PoS
  • Project
  • MRP
All apps
Anda harus terdaftar untuk dapat berinteraksi di komunitas.
Semua Post Orang Lencana-Lencana
Label (Lihat semua)
odoo accounting v14 pos v15
Mengenai forum ini
Anda harus terdaftar untuk dapat berinteraksi di komunitas.
Semua Post Orang Lencana-Lencana
Label (Lihat semua)
odoo accounting v14 pos v15
Mengenai forum ini
Help

Import sale order data in Odoo

Langganan

Dapatkan notifikasi saat terdapat aktivitas pada post ini

Pertanyaan ini telah diberikan tanda
datasale.orderimportingsale_order_line
3 Replies
1478 Tampilan
Avatar
Vikas Maharana

Hi All,

I have 2000 sales data and made it an importable format and  the sales order line became 12000 lines.

How do I import this data into Odoo?
It takes only 2000 data at a time, and if I split the data, then I'm getting confused.

0
Avatar
Buang
Avatar
JB
Jawaban Terbai

Hello,

Please refer the forum. 

2
Avatar
Buang
Avatar
AppsChef
Jawaban Terbai

To be able to import everything, you need to have coding skills to import using the API.

Without coding, you must split your import file into batches of 2000. I recommend sorting the data according to their order reference first, then dividing it into several sheets. After that, you can select the sheet you want to import on the column matching page in Odoo.

If you want to code, you can try the script below:


impor xmlrpc.client

import csv


# --- CONFIGURATION ---

url = "http://your-odoo-instance.com"

db = "your_database_name"

username = "your_username"

password = "your_password"

csv_file = "sales_orders.csv"  # path to your CSV file


# --- CONNECTION ---

common = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/common')

uid = common.authenticate(db, username, password, {})

models = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/object')


# --- HELPERS ---

def find_partner_id(name):

    """Find partner (customer) ID by name"""

    ids = models.execute_kw(db, uid, password, 'res.partner', 'search', [[['name', '=', name]]], {'limit': 1})

    return ids[0] if ids else None


def find_product_id(code_or_name):

    """Find product ID by internal reference (default_code) or name"""

    ids = models.execute_kw(db, uid, password, 'product.product', 'search', [

        ['|', ['default_code', '=', code_or_name], ['name', '=', code_or_name]]

    ], {'limit': 1})

    return ids[0] if ids else None


# --- READ CSV ---

orders = {}

with open(csv_file, newline='', encoding="utf-8") as f:

    reader = csv.DictReader(f)

    for row in reader:

        order_ref = row['order_ref']

        customer = row['customer']

        product = row['Line/Product']

        qty = float(row['Line/qty'])

        price = float(row['Line/price'])


        if order_ref not in orders:

            orders[order_ref] = {

                'customer': customer,

                'lines': []

            }


        orders[order_ref]['lines'].append((product, qty, price))


# --- IMPORT PROCESS ---

for order_ref, data in orders.items():

    partner_id = find_partner_id(data['customer'])

    if not partner_id:

        print(f"❌ Customer '{data['customer']}' not found, skipping {order_ref}")

        continue


    # create Sales Order

    so_vals = {

        'partner_id': partner_id,

        'client_order_ref': order_ref,

    }

    order_id = models.execute_kw(db, uid, password, 'sale.order', 'create', [so_vals])

    print(f" Sales Order created: {order_ref} (ID={order_id})")


    # create Sales Order Lines

    for (product, qty, price) in data['lines']:

        product_id = find_product_id(product)

        if not product_id:

            print(f"   ⚠️ Product '{product}' not found, skipping line")

            continue


        line_vals = {

            'order_id': order_id,

            'product_id': product_id,

            'product_uom_qty': qty,

            'price_unit': price,

        }

        line_id = models.execute_kw(db, uid, password, 'sale.order.line', 'create', [line_vals])

        print(f"   → Line created: {product} (ID={line_id})")


This is sales_orders.csv be like:

order_ref,customer,Line/Product,Line/qty,Line/price

SO001,PT ABC,product1,10,120000

SO001,PT ABC,product2,5,250000

SO002,PT XYZ,product3,3,120000

Make sure you have entered the customer and product data first before performing the import.

Hope it helps.

Regards,

Appschef

0
Avatar
Buang
Avatar
Cybrosys Techno Solutions Pvt.Ltd
Jawaban Terbai

Hi,

When importing large sales data into Odoo, you should split the file smartly: keep the 2000 sales orders in one import (with their basic details), then import the 12000 sales order lines in separate batches, making sure each line references the correct order by its unique identifier (e.g., Order Name). Odoo’s importer only allows around 2000 rows at once for performance reasons, so breaking the lines into multiple files is normal. As long as the Sales Order Name column matches exactly, Odoo will link the lines to the right orders automatically. This way, you avoid confusion and safely import everything step by step.


For more details, please refer to the following links:

1. https://www.cybrosys.com/blog/how-to-import-sale-orders-and-purchase-orders-in-odoo-17


Module: https://odoo-community.org/shop/sale-order-import-571#attr=944043


Hope it helps.


0
Avatar
Buang
Menikmati diskusi? Jangan hanya membaca, ikuti!

Buat akun sekarang untuk menikmati fitur eksklufi dan agar terlibat dengan komunitas kami!

Daftar
Post Terkait Replies Tampilan Aktivitas
Just Subscribed to Odoo, Need Help Getting Started Diselesaikan
data importing
Avatar
Avatar
1
Agu 25
1485
Missing required value for the field 'name' at multiple rows while Importing SO.
excel sale.order importing
Avatar
Avatar
1
Agu 25
1320
How to import/export records under Region (region_id)
data region importing Exporting
Avatar
0
Okt 24
1804
How to create One2many records while import
import database data importing
Avatar
0
Mei 24
183
Is There a Default Record Rule Preventing Linking of Invoices to Sale Orders?
invoice invoices account.move sale.order importing
Avatar
0
Nov 23
2365
Komunitas
  • Tutorial-tutorial
  • Dokumentasi
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Terjemahan
Layanan
  • Odoo.sh Hosting
  • Bantuan
  • Peningkatan
  • Custom Development
  • Pendidikan
  • Temukan Akuntan
  • Temukan Mitra
  • Menjadi Partner
Tentang Kami
  • Perusahaan kami
  • Aset Merek
  • Hubungi kami
  • Tugas
  • Acara
  • Podcast
  • Blog
  • Pelanggan
  • Hukum • Privasi
  • Keamanan
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo adalah rangkaian aplikasi bisnis open source yang mencakup semua kebutuhan perusahaan Anda: CRM, eCommerce, akuntansi, inventaris, point of sale, manajemen project, dan seterusnya.

Mudah digunakan dan terintegrasi penuh pada saat yang sama adalah value proposition unik Odoo.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now