Bot Jualan untuk Pre-Order & Made to Order

Cara buat bot jualan WhatsApp untuk pre-order dan made to order. Custom order, deposit, timeline tracking. Panduan lengkap!

Bot Jualan untuk Pre-Order & Made to Order
Bot Jualan untuk Pre-Order & Made to Order

Pre-order = Minim resiko, maksimal profit!

Bot untuk pre-order dan made-to-order membantu collect pesanan sebelum produksi, handle customization, dan track progress secara otomatis.


Use Cases

📦 JENIS PRE-ORDER:

PRE-ORDER (PO):
- Produk belum ready
- Buka dalam batch
- Ada timeline jelas
- Example: Fashion, gadget

MADE TO ORDER (MTO):
- Dibuat setelah order
- Customizable
- Timeline per order
- Example: Kue, furniture

CUSTOM ORDER:
- Full customization
- Design dari customer
- Quotation-based
- Example: Merchandise, craft

Template Messages

PO Announcement:

📢 PRE-ORDER BATCH #5

[PRODUCT NAME]

🔥 PO dibuka TERBATAS!

📋 Detail:
━━━━━━━━━━━━━━━━━━━━
Harga PO: Rp 250.000
(Normal: Rp 300.000)

📅 Timeline:
- PO buka: 17-24 Feb 2026
- Produksi: 25 Feb - 10 Mar
- Kirim: 11-15 Mar 2026

📦 Kuota: 100 pcs
   Sisa: 67 pcs

💳 DP: 50% (Rp 125.000)
   Pelunasan: Sebelum kirim
━━━━━━━━━━━━━━━━━━━━

Mau ikut PO?
Ketik: PO [VARIAN] [SIZE]
Contoh: PO HITAM L

PO Form:

📝 FORM PRE-ORDER

PO Batch #5 - [PRODUCT]

Isi data berikut:

PREORDER
Nama: [Nama Lengkap]
HP: [No WhatsApp]
Alamat: [Alamat Lengkap]
--
Produk: [Nama Produk]
Varian: [Warna/Model]
Size: [S/M/L/XL]
Qty: [Jumlah]
--
Notes: [Request khusus, jika ada]

Setelah submit, kami kirim invoice DP!

PO Confirmation:

✅ PRE-ORDER BERHASIL!

PO ID: #PO-20260217-001
Batch: #5

📋 Detail Order:
━━━━━━━━━━━━━━━━━━━━
Produk: [NAMA]
Varian: Hitam
Size: L
Qty: 2 pcs
━━━━━━━━━━━━━━━━━━━━
Harga: Rp 500.000
DP (50%): Rp 250.000
Pelunasan: Rp 250.000

📅 TIMELINE:
- DP deadline: 19 Feb 2026
- Produksi: 25 Feb - 10 Mar
- Pelunasan: 8 Mar 2026
- Pengiriman: 11-15 Mar

💳 BAYAR DP:
BCA 1234567890
a.n. [BRAND]
Nominal: Rp 250.000

Kirim bukti DP ya! 📸

Made to Order Flow

MTO Product Info:

🛠️ MADE TO ORDER

[PRODUCT NAME]

Produk ini dibuat khusus setelah order!

📋 OPSI CUSTOMIZATION:
━━━━━━━━━━━━━━━━━━━━
Bahan:
- Kulit asli (+Rp 100k)
- Kulit sintetis (default)

Warna: [15 pilihan]

Ukuran: Custom sesuai request

Tambahan:
- Emboss nama (+Rp 50k)
- Initial (+Rp 30k)
- Logo custom (+Rp 75k)
━━━━━━━━━━━━━━━━━━━━

💰 Harga mulai: Rp 350.000
⏱️ Waktu produksi: 7-10 hari

Mau order? Ketik MTO [PRODUK]!

MTO Customization:

🎨 CUSTOMIZATION

Produk: [NAMA]

Step 1/4: Pilih Bahan
━━━━━━━━━━━━━━━━━━━━
1️⃣ Kulit Sintetis (Rp 350.000)
2️⃣ Kulit Asli (+Rp 100k = Rp 450.000)

Ketik angka untuk pilih!
🎨 CUSTOMIZATION

Step 2/4: Pilih Warna
━━━━━━━━━━━━━━━━━━━━
1️⃣ Hitam
2️⃣ Coklat
3️⃣ Navy
4️⃣ Maroon
5️⃣ Olive
... [lihat semua: ketik WARNA]

Ketik angka atau nama warna!
🎨 CUSTOMIZATION

Step 3/4: Ukuran
━━━━━━━━━━━━━━━━━━━━
Standard sizes:
1️⃣ Small (20x15 cm)
2️⃣ Medium (25x18 cm)
3️⃣ Large (30x22 cm)
4️⃣ Custom size

Ketik angka!
(Jika custom, kirim ukuran P x L)
🎨 CUSTOMIZATION

Step 4/4: Personalisasi
━━━━━━━━━━━━━━━━━━━━
Tambahan opsional:

1️⃣ Tanpa personalisasi
2️⃣ Emboss nama (+Rp 50k)
3️⃣ Initial (+Rp 30k)
4️⃣ Logo custom (+Rp 75k)

Ketik angka!
(Jika pilih 2-4, kirim text/gambar)

MTO Summary:

📋 RINGKASAN ORDER

Order: #MTO-20260217-001

CUSTOM SPECS:
━━━━━━━━━━━━━━━━━━━━
Produk: Leather Bag
Bahan: Kulit Asli
Warna: Navy
Ukuran: Medium (25x18 cm)
Personalisasi: Emboss "BUDI"

💰 HARGA:
- Base: Rp 350.000
- Kulit asli: +Rp 100.000
- Emboss: +Rp 50.000
━━━━━━━━━━━━━━━━━━━━
TOTAL: Rp 500.000

⏱️ Estimasi selesai: 7-10 hari

Sudah benar semua?
- Ketik OK untuk konfirmasi
- Ketik UBAH untuk edit

Progress Tracking

Production Update:

🔄 UPDATE PRODUKSI

Order: #MTO-20260217-001

STATUS: Dalam Pengerjaan

Progress:
━━━━━━━━━━━━━━━━━━━━
✅ Order confirmed (17 Feb)
✅ Material ready (18 Feb)
✅ Cutting (19 Feb)
🔄 Stitching (20 Feb) ← NOW
⬜ Finishing
⬜ Quality check
⬜ Ready to ship
━━━━━━━━━━━━━━━━━━━━

⏱️ Estimasi selesai: 24 Feb 2026

[FOTO PROGRESS]

Sabar ya kak, sedang dikerjakan
dengan penuh cinta! 💕

Ready Notification:

🎉 PESANAN SIAP!

Order: #MTO-20260217-001

Yeay, pesanan kakak sudah selesai! 🎊

[FOTO PRODUK JADI]

📋 Specs:
- Leather Bag - Navy
- Kulit asli
- Emboss "BUDI"

✅ Quality check: PASSED

💳 PELUNASAN:
Sisa bayar: Rp 250.000
(DP sudah: Rp 250.000)

Setelah lunas, kami kirim hari ini!

Transfer ke:
BCA 1234567890

Kirim bukti ya! 📸

Implementation

PO Batch Management:

javascript

const poBatch = {
    id: 'BATCH-005',
    product: 'Product Name',
    variants: ['Hitam', 'Putih', 'Navy'],
    sizes: ['S', 'M', 'L', 'XL'],
    price: {
        po: 250000,
        normal: 300000
    },
    timeline: {
        poStart: '2026-02-17',
        poEnd: '2026-02-24',
        productionStart: '2026-02-25',
        productionEnd: '2026-03-10',
        shipStart: '2026-03-11',
        shipEnd: '2026-03-15'
    },
    quota: 100,
    ordered: 33,
    deposit: 0.5 // 50%
};

async function handlePOOrder(phone, variant, size, qty) {
    // Check quota
    if (poBatch.ordered + qty > poBatch.quota) {
        return sendQuotaFullMessage(phone);
    }
    
    // Check PO period
    const now = new Date();
    if (now < new Date(poBatch.timeline.poStart) || 
        now > new Date(poBatch.timeline.poEnd)) {
        return sendPOClosedMessage(phone);
    }
    
    // Create PO order
    const order = await db.orders.insert({
        type: 'preorder',
        batchId: poBatch.id,
        customer: phone,
        variant,
        size,
        qty,
        price: poBatch.price.po * qty,
        deposit: poBatch.price.po * qty * poBatch.deposit,
        depositPaid: false,
        status: 'pending_deposit',
        timeline: poBatch.timeline
    });
    
    // Update quota
    poBatch.ordered += qty;
    
    return sendPOConfirmation(phone, order);
}

MTO Customization:

javascript

const mtoSession = new Map();

async function handleMTOCustomization(phone, step, choice) {
    let session = mtoSession.get(phone) || {
        step: 1,
        specs: {}
    };
    
    switch (step) {
        case 1: // Material
            session.specs.material = getMaterialFromChoice(choice);
            session.specs.basePrice = getMaterialPrice(choice);
            session.step = 2;
            await sendColorOptions(phone);
            break;
            
        case 2: // Color
            session.specs.color = getColorFromChoice(choice);
            session.step = 3;
            await sendSizeOptions(phone);
            break;
            
        case 3: // Size
            session.specs.size = getSizeFromChoice(choice);
            session.step = 4;
            await sendPersonalizationOptions(phone);
            break;
            
        case 4: // Personalization
            session.specs.personalization = getPersonalizationFromChoice(choice);
            session.specs.totalPrice = calculateTotalPrice(session.specs);
            session.step = 'complete';
            await sendMTOSummary(phone, session.specs);
            break;
    }
    
    mtoSession.set(phone, session);
}

Progress Update Automation:

javascript

// Update progress dan notify customer
async function updateProductionProgress(orderId, newStage) {
    const stages = [
        'confirmed',
        'material_ready',
        'cutting',
        'stitching',
        'finishing',
        'quality_check',
        'ready'
    ];
    
    const order = await db.orders.findOne({ id: orderId });
    const stageIndex = stages.indexOf(newStage);
    
    await db.orders.updateOne(
        { id: orderId },
        { 
            $set: { currentStage: newStage },
            $push: { 
                progressHistory: {
                    stage: newStage,
                    timestamp: new Date()
                }
            }
        }
    );
    
    // Send progress update
    await sendProgressUpdate(order.customer, order, stageIndex, stages.length);
    
    // If ready, send completion notification
    if (newStage === 'ready') {
        await sendReadyNotification(order.customer, order);
    }
}

Best Practices

DO ✅

- Clear timeline expectations
- Step-by-step customization
- Regular progress updates
- Photo updates
- DP system for commitment
- Transparent pricing

DON'T ❌

- Vague delivery dates
- Complicated custom process
- No updates during production
- Hidden customization costs
- Full payment upfront (risky)
- Overpromise timeline

FAQ

Berapa DP yang ideal?

30-50% dari total. Cukup untuk commitment, tidak terlalu berat untuk customer.

Update progress berapa sering?

Setiap milestone produksi, minimal 2-3x selama proses.

Bagaimana handle cancel?

DP non-refundable untuk cover material yang sudah dibeli. Jelaskan di awal.


Kesimpulan

Pre-order = Zero inventory risk!

Regular StockPre-Order/MTO
Modal besarModal minim
Risk unsoldDemand-driven
Standard onlyCustomizable
ImmediatePlanned

Setup Pre-Order Bot →


Artikel Terkait