Menguasai sepenuhnya impor produk WooCommerce: panduan utama dari file CSV hingga produk kustomisasi.

3 menit baca
2026-03-13
2026-06-03
2,591
Saya mendapatkan komisi ketika Anda berbelanja melalui tautan di bawah ini, tanpa biaya tambahan untuk Anda.

Mengapa diperlukan alat khusus untuk mengimpor produk ke platform WooCommerce?

Seiring dengan pertumbuhan skala toko online, proses menambahkan produk satu per satu secara manual menjadi semakin tidak praktis. Baik itu saat memindahkan data toko yang sudah ada, memperbarui harga stok secara massal, maupun mengambil daftar produk dari pemasok, fitur impor data yang efisien sangat penting. WooCommerce sendiri menyediakan alat impor dasar yang cukup untuk mengatasi skenario sederhana, namun saat menangani jenis produk yang kompleks, field kustom, atau jumlah data yang besar, para pengembang perlu menguasai metode yang lebih sistematis dan lebih kuat.

Menggunakan alat dan metode yang tepat untuk proses impor produk tidak hanya dapat menghemat banyak waktu, tetapi juga dapat meminimalkan kesalahan manusia dan memastikan konsistensi data. Baik itu produk standar yang sederhana, produk yang dapat diubah, maupun jenis produk lanjutan seperti produk berbasis langganan atau penjualan paket, proses impor yang terstruktur dengan baik merupakan fondasi penting untuk otomatisasi operasional e-commerce. Artikel ini akan membahas secara mendalam seluruh proses, mulai dari persiapan file CSV standar hingga pemrosesan produk khusus (yang disesuaikan dengan kebutuhan) melalui metode pemrograman.

Siapkan file CSV standar untuk proses impor massal.

WooCommerce memiliki fitur untuk mengimpor produk melalui file CSV, yang merupakan metode paling umum dan langsung untuk melakukan operasi secara massal. Intinya adalah menyiapkan file CSV yang sesuai dengan format yang diharapkan oleh WooCommerce.

推荐阅读 Pengembangan situs web e-commerce WooCommerce: Membangun toko online Anda dari nol.

Memahami kolom data produk inti

Sebuah file CSV yang diimpor secara dasar harus memuat beberapa kolom kunci. Di antaranya,IDTypeKolom adalah yang paling penting.IDDigunakan untuk mencocokkan produk yang sudah ada guna melakukan pembaruan; jika dikosongkan, produk baru akan dibuat.TypeMaka, jenis produk telah didefinisikan, seperti…simple(Produk sederhana)variable(Produk yang dapat disesuaikan/berubah)grouped(Produk yang dikategorikan dalam grup tertentu), dll. Kolom-kolom dasar lainnya meliputi…SKU(Unit Penyimpanan);Name(Nama Produk),Published(Kondisi publikasi: 1 berarti sudah diterbitkan.)Description(Deskripsi):Regular price(Harga biasa) sertaStock(Jumlah stok).

UltaHost – Hosting untuk WordPress
Jaminan pengembalian uang dalam 30 hari, bandwidth dan basis data yang tidak terbatas, perlindungan DDoS gratis, diskon 50% untuk pembelian selama 3 tahun (dari harga normal: 50%).

Untuk produk yang bersifat variabel, proses impor terbagi menjadi dua langkah: pertama, impor produk induk (parent product), kemudian impor varian-varian turunannya (sub-variants).TypeDisebut sebagai…variablesubvariantTypeDisebut sebagai…variationDan melalui…ParentKolom tersebut menentukan SKU (Stock Keeping Unit) dari produk induk untuk membentuk koneksi/associasi antara produk tersebut.

Mengelola kategori, tag, dan gambar

Impor kategori dan tag harus dilakukan menggunakan format tertentu. Untuk kategori produk, Anda dapat…CategoriesDalam kolom tersebut, gunakan format “Kategori Utama > Kategori Anak”, dan pisahkan beberapa kategori dengan tanda semicolon (;). Contohnya: “Pakaian > Kemeja; Produk Baru Musim Panas”. Tag-tag tersebut akan ditempatkan di…TagsElemen-elemen dalam kolom tersebut dipisahkan dengan koma (,) dalam bahasa Inggris.

Impor gambar produk cukup fleksibel. Dapat dilakukan melalui…ImagesKolom ini digunakan untuk menentukan URL gambar. Jika terdapat beberapa URL, pisahkanlah dengan koma (,). URL pertama akan dijadikan gambar utama. Saat proses impor dengan WooCommerce, sistem akan mencoba mengunduh dan menyimpan gambar-gambar tersebut ke dalam media library. Alternatif lainnya adalah mengunggah gambar terlebih dahulu melalui FTP ke direktori tertentu di server, lalu merujuk pada path relatif gambar tersebut dalam file CSV.

Berikut adalah contoh file CSV untuk produk standar yang sederhana:

推荐阅读 Tutorial WooCommerce: Panduan lengkap untuk membangun situs e-commerce profesional dari nol.

ID,Type,SKU,Name,Published,Description,Regular price,Stock,Categories,Images
,simple,T-SHIRT-SM,纯棉简约T恤,1,这是一件舒适的纯棉T恤。,29.99,100,服饰 > 上衣,https://example.com/tshirt.jpg

Menggunakan WP CLI untuk mengimplementasikan otomatisasi impor tingkat lanjut

Untuk pengembang dan pengguna tingkat lanjut, alat baris perintah WordPress (WordPress Command Line Tools) sangat berguna.WP-CLIMenghadirkan metode impor yang lebih kuat dan dapat diskripkan (dikendalikan melalui kode program). Metode ini sangat cocok untuk diintegrasikan ke dalam proses penyebaran (deployment) atau untuk memproses kumpulan data dalam skala yang sangat besar.

“Sebuah pendekatan dasar untuk mencapai tujuan tersebut…”wp-cliPerintah untuk mengimpor file CSV adalah sebagai berikut:

wp import products.csv --authors=skip

Namun, pendekatan yang lebih umum digunakan adalah dengan menggunakan skrip kustom. Kita dapat menulis sebuah skrip PHP untuk memanfaatkan…WP-CLIwp eval-filePerintah tersebut digunakan untuk menjalankan skrip. Inti dari skrip ini adalah penggunaan…wc_get_product_objectFungsi tersebut membuat objek produk dan mengatur atribut-atributnya.

hosting.com hosting bersama
Kinerja tinggi, dilengkapi dengan CPU AMD EPYC, penyimpanan SSD NVMe, dan LiteSpeed, dukungan internal ahli 24 jam sehari, langkah-langkah keamanan canggih termasuk SSL, brute force, malware, dan perlindungan DDoS, menghemat hingga 731 TB/bulan.

Berikut adalah contoh skrip PHP yang menggunakan pendekatan pemrograman untuk membuat produk sederhana:

<?php
// 读取CSV数据
$csvFile = 'products.csv';
if (($handle = fopen($csvFile, 'r')) !== FALSE) {
    $header = fgetcsv($handle); // 读取标题行
    while (($data = fgetcsv($handle)) !== FALSE) {
        $productData = array_combine($header, $data);

// 创建产品对象
        $product = new WC_Product_Simple();
        $product->set_name($productData['Name']);
        $product->set_sku($productData['SKU']);
        $product->set_regular_price($productData['Regular price']);
        $product->set_description($productData['Description']);
        $product->set_stock_quantity($productData['Stock']);
        $product->set_status($productData['Published'] == 1 ? 'publish' : 'draft');

// 处理分类
        $categoryNames = explode(';', $productData['Categories']);
        $categoryIds = [];
        foreach ($categoryNames as $catName) {
            $term = term_exists(trim($catName), 'product_cat');
            if (!$term) {
                $term = wp_insert_term(trim($catName), 'product_cat');
            }
            if (!is_wp_error($term)) {
                $categoryIds[] = (int)$term['term_id'];
            }
        }
        $product->set_category_ids($categoryIds);

$product->save();
        echo "产品已创建/更新: " . $productData['Name'] . " (ID: " . $product->get_id() . ")n";
    }
    fclose($handle);
}
?>

Simpan skrip di atas sebagai berikut:import_products.phpSetelah itu, Anda dapat menggunakan perintah untuk melanjutkan prosesnya.wp eval-file import_products.phpEksekusi.

Menggunakan WP CLI untuk menangani hubungan yang kompleks

WP-CLIKekuatan utamanya terletak pada kemampuannya dalam menangani logika yang kompleks. Misalnya, saat mengimpor produk yang dapat berubah beserta atributnya, kita dapat membuat atribut global terlebih dahulu, kemudian memberikan atribut tersebut ke produk dan menghasilkan variasinya. Dengan menulis skrip, kita dapat mengontrol dengan tepat penanganan kesalahan dan pencatatan log pada setiap langkah, sehingga proses impor dapat berjalan secara sepenuhnya otomatis. Untuk skenario yang memerlukan sinkronisasi dengan API eksternal (seperti sistem ERP atau sistem pemasok), hal ini dapat dilakukan dengan menggabungkan…WP-CLIMenggunakan tugas terjadwal (Cron Job) merupakan solusi yang paling ideal.

Pemrograman untuk memproses produk khusus dan metadata

Ketika kolom CSV standar tidak dapat memenuhi kebutuhan, misalnya diperlukan untuk mengimpor bidang khusus yang dibuat secara custom, jenis produk yang dibuat oleh plugin pihak ketiga (seperti produk yang dipesan), atau metadata yang kompleks, maka metode pemrograman harus digunakan.

Membuat dan memperbarui produk dengan bidang kustom (custom fields)

Semua data standar dari produk WooCommerce (seperti harga, stok), serta data kustom (yang ditambahkan melalui ACF atau metode lainnya), pada akhirnya disimpan dalam bentuk metadata (Post Meta). Inti dari proses impor secara programatis adalah penggunaan yang benar dari metadata tersebut.set_Metode-metode seri dan…update_post_metaFungsi.

Misalkan kita memiliki sesuatu yang bernama…custom_batch_numberUntuk bidang kustom (custom fields), kode berikut menunjukkan cara mengaturnya saat membuat produk:

Hosting bersama InterServer.
Hosting bersama seharga $2,50 USD per bulan, diskon $0,1 USD untuk bulan pertama dengan kode promo tryinterserver, serta 461 skrip aplikasi cloud yang dapat diinstal dengan sekali klik.
// 假设 $product 是一个 WC_Product 对象
$product->set_name('高级定制产品');
$product->set_regular_price(99.99);
$product->save(); // 必须先保存产品以获得ID

// 更新自定义字段(产品元数据)
$product_id = $product->get_id();
update_post_meta($product_id, 'custom_batch_number', 'BATCH-2026-001');
update_post_meta($product_id, '_custom_field', 'value'); // 下划线开头表示隐藏的元数据

Perlu diperhatikan bahwa beberapa plugin pihak ketiga akan mendefinisikan kelas tipe produk mereka sendiri. Saat membuat produk semacam itu, Anda harus menggunakan kelas yang sesuai.new WC_Product_Booking()Dan memanggil metode tertentu yang disediakan oleh plugin tersebut.

Menggunakan hook WooCommerce untuk memperluas fitur impor (importing data).

Untuk memasukkan logika khusus selama proses impor, WooCommerce menyediakan banyak hook (pintu masuk/penghubung). Dua hook aksi kunci yang penting adalah…woocommerce_new_productwoocommerce_update_productMereka masing-masing diaktifkan setelah produk dibuat dan diperbarui.

Misalnya, setelah produk diimpor, kita dapat secara otomatis menetapkan status audit internal untuk produk tersebut.

add_action('woocommerce_new_product', 'my_post_import_actions', 10, 2);
add_action('woocommerce_update_product', 'my_post_import_actions', 10, 2);

function my_post_import_actions($product_id, $product) {
    // 自动为所有新导入的产品添加“待审核”标记
    update_post_meta($product_id, '_internal_review_status', 'pending');

// 或者根据特定条件进行处理
    if (strpos($product->get_sku(), 'PREMIUM') !== false) {
        wp_set_object_terms($product_id, 'premium', 'product_tag', true);
    }
}

Selain itu, ada juga hook filter (pemanggil fungsi khusus yang digunakan oleh filter).woocommerce_product_import_pre_insert_product_objectSangat berguna juga; alat ini memungkinkan kita untuk memodifikasi data produk sebelum objek tersebut dimasukkan ke dalam basis data. Hal ini sangat cocok untuk memformat harga secara seragam, mengonversi satuan pengukuran, atau memverifikasi kepatuhan data terhadap standar yang berlaku.

Menyimpulkan.

Mengimpor produk menggunakan WooCommerce merupakan keterampilan yang memiliki tingkat kerumitan yang bervariasi, mulai dari yang paling sederhana hingga yang lebih kompleks. Memahami proses impor menggunakan format CSV yang standar merupakan dasar yang penting, karena format ini cocok untuk sebagian besar skenario pembaruan dan migrasi data dalam jumlah besar. Namun, ketika menghadapi tugas-tugas yang bersifat berulang atau memerlukan integrasi dengan proses pengembangan (development workflow), diperlukan pengetahuan dan keterampilan yang lebih lanjut.WP-CLIAutomatisasi melalui baris perintah (command line) telah menunjukkan kekuatannya. Untuk toko yang sangat disesuaikan, yang melibatkan bidang data khusus, data dari plugin pihak ketiga, atau logika bisnis yang kompleks, penggunaan pemrograman bersama dengan hook-hook WooCommerce memberikan fleksibilitas dan kontrol yang maksimal. Strategi impor yang berhasil seringkali menggabungkan berbagai alat tersebut: menggunakan CSV untuk menangani pekerjaan batch sehari-hari, dan skrip untuk memenuhi kebutuhan yang kompleks dan khusus. Kuncinya adalah memahami dengan baik struktur data WooCommerce, serta selalu melakukan backup data yang ada sebelum melakukan operasi apa pun.

FAQ - Pertanyaan yang Sering Diajukan.

Bagaimana cara menangani karakter khusus dan masalah pengkodean dalam file CSV?

Pastikan file CSV disimpan menggunakan kodek UTF-8, karena ini adalah satu-satunya kodek yang sepenuhnya didukung oleh alat impor resmi WooCommerce. Jika data mengandung karakter khusus seperti koma, tanda kutip, atau baris baru, maka seluruh nilai bidang harus dibungkus dengan tanda kutip ganda (”) dalam bahasa Inggris.

Misalnya, ketika deskripsi mengandung tanda koma, harus ditulis sebagai:“这是一件优质,舒适的产品”Disarankan untuk memeriksa dalam editor teks dan memastikan bahwa tanda kutip pada semua bidang muncul dalam pasangan; ini merupakan langkah kunci untuk menghindari kesalahan saat proses impor.

Apa yang harus dilakukan jika atribut tidak muncul saat mengimpor produk yang dapat disesuaikan (variable product), atau proses pembuatan varian produk gagal?

Biasanya, masalah ini terkait dengan format file CSV atau urutan pengimporan data. Pertama-tama, pastikan Anda telah mengatur properti global dengan benar. Saat mengimpor produk induk (…)Type: variableKetika melakukan hal tersebut, diperlukan…Attribute 1 nameAttribute 1 value(s)Mendefinisikan atribut dalam kolom yang sama, misalnya…颜色红色,蓝色

Kedua, impor variasi (…)Type: variationKetika melakukan hal tersebut, harus melalui prosedur yang telah ditentukan.ParentPastikan untuk secara akurat mengutip SKU (Stock Keeping Unit) dari produk induk dalam daftar tersebut, dan…Attribute: 颜色Dalam kolom semacam ini, nilai atribut spesifik dari variabel tersebut ditentukan (misalnya:红色Pada akhirnya, setelah proses impor selesai, Anda perlu masuk ke tab “Variasi” (Variants) dari produk tersebut, lalu klik “Buat Variasi” (Create Variants) atau “Simpan Perubahan” (Save Changes). Hanya dengan demikian, sistem akan menghasilkan semua kombinasi variasi yang mungkin berdasarkan atribut-atribut yang telah Anda tentukan.

Bagaimana cara mengatur gambar produk dengan benar melalui pemrograman?

Mengatur gambar produk melalui pemrograman lebih rumit daripada menentukan URL di CSV. Langkah utamanya adalah mengunggah file gambar ke perpustakaan media WordPress, mendapatkan ID lampirannya, dan kemudian menetapkan ID tersebut ke produk.

Dapat digunakan.media_sideload_imageFungsi tersebut mengunduh gambar dari URL dan membuatnya menjadi lampiran (attachment). Contoh kode-nya adalah sebagai berikut:

$image_url = 'https://example.com/product.jpg';
$attach_id = media_sideload_image($image_url, $product_id, '产品图片描述', 'id');
if (!is_wp_error($attach_id)) {
    // 设置为主图
    set_post_thumbnail($product_id, $attach_id);
    // 如需加入产品图库
    // $gallery_ids = array($attach_id);
    // update_post_meta($product_id, '_product_image_gallery', implode(',', $gallery_ids));
}

Bagaimana cara menangani masalah website yang mengalami timeout atau kehabisan memori saat mengimpor sejumlah besar produk?

Ini disebabkan oleh batasan waktu eksekusi server dan batasan memori. Untuk proses impor dalam skala besar, pastikan tidak menggunakan antarmuka administrasi WordPress, melainkan metode lain yang lebih sesuai.WP-CLIAlat berbasis baris perintah (command-line tool), karena tidak terpengaruh oleh pengaturan waktu tunggu (timeout settings) PHP.

Di tingkat skrip, strategi pemrosesan berkelompok dapat diterapkan. Misalnya, setiap kali membaca dan memproses 100 entri data dari file CSV, setelah selesai diproses, langkah selanjutnya dapat dilanjutkan.sleep(1)Berhenti sejenak, lalu ikuti instruksi yang diberikan.wp_cache_flush()Bersihkan cache untuk melepaskan memori. Selain itu, sebelum menjalankan skrip impor, Anda dapat…wp-config.phpMemori dibatasi secara sementara:define('WP_MEMORY_LIMIT', '512M');Untuk impor produk dalam jumlah puluhan ribu hingga ratusan ribu unit, disarankan untuk langsung mengoperasikan basis data atau menggunakan alat migrasi data yang lebih profesional.