- bulk-upload-example.csv - Template dengan 5 contoh produk lengkap
- bulk-upload-template-blank.csv - Template kosong untuk diisi manual
- product-template.csv - Template dasar
title,price,manufacturer,inStock,mainImage,description,slug,categoryId| Kolom | Wajib | Tipe | Deskripsi | Contoh |
|---|---|---|---|---|
| title | ✅ Ya | String | Nama produk | Samsung Galaxy S24 Ultra |
| price | ✅ Ya | Number | Harga produk (gunakan titik untuk desimal) | 1299.99 |
| manufacturer | ✅ Ya | String | Nama manufaktur/brand | Samsung |
| inStock | ❌ Tidak | Number | Jumlah stok (default: 0) | 25 |
| mainImage | ❌ Tidak | URL | URL gambar produk | https://example.com/image.jpg |
| description | ✅ Ya | String | Deskripsi produk | The latest flagship smartphone... |
| slug | ✅ Ya | String | URL-friendly identifier (gunakan huruf kecil dan dash) | samsung-galaxy-s24-ultra |
| categoryId | ✅ Ya | String | ID kategori dari database (atau nama kategori) | electronics |
-
Harga: Gunakan titik (.) untuk desimal, bukan koma
- ✅ Benar:
1299.99 - ❌ Salah:
1.299,99
- ✅ Benar:
-
Slug: Harus URL-friendly (lowercase, no spaces)
- ✅ Benar:
samsung-galaxy-s24 - ❌ Salah:
Samsung Galaxy S24
- ✅ Benar:
-
Text dengan Koma: Gunakan tanda kutip ganda
- ✅ Benar:
"Camera with 200MP, 50MP, and 12MP lenses" - ❌ Salah:
Camera with 200MP, 50MP, and 12MP lenses
- ✅ Benar:
Anda bisa menggunakan:
- UUID kategori dari database (rekomendasi)
- Nama kategori (akan dicari di database)
Untuk mendapatkan category ID yang valid:
// Jalankan di server directory:
node -e "const {PrismaClient} = require('@prisma/client'); const p = new PrismaClient(); p.category.findMany().then(c => {console.log(c); p.$disconnect()});"- Gunakan URL lengkap dengan
http://atauhttps:// - Rekomendasi: Unsplash, atau upload ke CDN terlebih dahulu
- Jika kosong, akan menggunakan placeholder default
title,price,manufacturer,inStock,mainImage,description,slug,categoryId
iPhone 15 Pro,999.99,Apple,50,https://example.com/iphone.jpg,Latest iPhone model,iphone-15-pro,smartphonestitle,price,manufacturer,inStock,mainImage,description,slug,categoryId
"Sony WH-1000XM5","399.99",Sony,30,https://example.com/sony.jpg,"Premium wireless headphones with industry-leading noise cancellation, 30-hour battery life, and exceptional sound quality.",sony-wh-1000xm5,audio- Login ke admin dashboard
- Buka menu Bulk Upload
- Download template CSV atau gunakan yang sudah ada
- Isi data produk sesuai format
- Drag & drop file CSV atau klik "Select CSV File"
- Klik "Upload Products"
- Tunggu proses selesai dan lihat hasilnya
curl -X POST http://localhost:3001/api/products/bulk-upload \
-F "file=@bulk-upload-example.csv"- Semua kolom wajib sudah diisi (title, price, manufacturer, description, slug, categoryId)
- Harga menggunakan format angka dengan titik untuk desimal
- Slug unik dan URL-friendly (lowercase, dash-separated)
- Category ID valid (ada di database)
- Image URL valid (jika diisi)
- Text dengan koma dibungkus tanda kutip ganda
- File berformat CSV (bukan Excel .xlsx)
- Pastikan categoryId yang digunakan ada di database
- Atau gunakan nama kategori yang sudah terdaftar
- Slug harus unik untuk setiap produk
- Ubah slug menjadi lebih spesifik:
macbook-pro-16-2024instead ofmacbook
- Gunakan angka dengan titik untuk desimal
- Jangan gunakan simbol mata uang (Rp, $, dll)
- Pastikan format CSV benar
- Gunakan text editor atau Excel untuk edit
- Save as CSV (Comma delimited)
Jika mengalami masalah:
- Cek error message di upload result
- Validasi format CSV menggunakan Excel atau Google Sheets
- Pastikan encoding file UTF-8
- Test dengan 1-2 produk dulu sebelum upload banyak
- Start Small: Test dengan 2-3 produk dulu
- Validate Categories: Pastikan kategori sudah dibuat di database
- Unique Slugs: Gunakan kombinasi nama + model untuk slug
- Backup: Simpan backup CSV sebelum upload
- Monitor: Cek upload history untuk melihat hasilnya
Happy Bulk Uploading! 🚀