Prototipe jalan — satu platform, banyak toko
Katalog tim, lengkap sampai nama punggung.
Isi ukuran, nama punggung, dan nomor per pemain. Bayar transfer lewat sistem, atau konfirmasi di WhatsApp — pesanannya tetap tercatat.
Prototipe jalan — satu platform, banyak toko
Isi ukuran, nama punggung, dan nomor per pemain. Bayar transfer lewat sistem, atau konfirmasi di WhatsApp — pesanannya tetap tercatat.
Cetak biru pengembangan
Rencana ini menyesuaikan yang kamu tetapkan: produk jadi dengan kustom nama & nomor, dimulai dari Projee dan Lumove, dan checkout empat pintu — QRIS, virtual account, transfer manual, atau konfirmasi lewat WhatsApp.
Betul bahwa orang tidak percaya situs asing. Tapi yang menyembuhkan itu bukan WhatsApp-nya — yang menyembuhkan adalah adanya manusia yang bisa dimintai tanggung jawab. WhatsApp cuma bukti termurah bahwa manusia itu ada. Artinya kamu bisa mendapatkan kepercayaan yang sama tanpa memaksa semua orang lewat chat, asal empat hal ini kelihatan di halaman:
Jadi jangan buang WhatsApp, tapi turunkan perannya dari satu-satunya jalan menjadi jalan untuk yang butuh ngobrol dulu. Di prototipe, dua-duanya sekarang menghasilkan satu hal yang sama: baris pesanan bernomor. Itu perubahan terpentingnya — tombol WhatsApp tidak lagi melewati pencatatan.
Verifikasi otomatis jauh lebih murah dari yang biasanya dibayangkan. Yang mahal bukan biayanya, tapi urusan lain yang saya bahas di bagian berikutnya. Kisaran tarif penyedia pembayaran di Indonesia untuk satu transaksi Rp 450.000 — cek angka terbaru di masing-masing penyedia sebelum dipakai berhitung serius:
| Cara | Biaya per transaksi | Beban di Rp 450 rb |
|---|---|---|
| Transfer manual + cek mutasi sendiri | Gratis, tapi makan waktu admin | Rp 0 |
| Baca mutasi otomatis (layanan macam Moota) | Langganan bulanan flat | ± Rp 0 |
| QRIS lewat agregator | Sekitar 0,7% dari nilai | ± Rp 3.150 |
| Virtual account bank | Flat per transaksi | ± Rp 4.500 |
| E-wallet (OVO/DANA/ShopeePay) | Sekitar 1,5–2% | ± Rp 7.900 |
Bandingkan dengan ongkosnya kalau manual: admin mengecek mutasi, mencocokkan nominal, membalas chat. Tiga menit per order, 30 order sehari, itu 1,5 jam kerja hilang setiap hari — jauh lebih mahal dari Rp 3.150.
Karena kamu memilih langsung memakai QRIS dan virtual account, itu keputusan yang masuk akal di angka segini — dan prototipe sudah menyediakan keduanya. Tetap pertahankan transfer manual sebagai pilihan ketiga: sebagian pembeli lebih percaya mengirim ke rekening bernama toko, dan pilihan itu gratis biaya layanan buatmu. Kode unik tiga digit pada transfer manual tetap dipakai (Rp 520.000 jadi Rp 520.137) supaya pencocokannya bisa diotomatiskan lewat pembaca mutasi rekening tanpa biaya per transaksi.
Satu hal yang jarang disebut: gateway mencairkan dana T+1 sampai T+2, sementara transfer langsung masuk detik itu juga. Untuk toko kecil yang belanja bahan harian, jeda itu terasa. Itu alasan sah untuk menahan gateway, bukan biayanya.
Secara teknis, NIB PT Bosublim Pabrik Amanah bisa dipakai mendaftarkan merchant, dengan Projee dan Lumove sebagai nama dagang. Tapi yang berpindah bukan cuma berkasnya — yang berpindah adalah siapa pemilik penghasilannya.
Seluruh ERP-mu dibangun di atas satu asumsi: Projee dan Lumove adalah customer Bosublim. Mereka punya record customer sendiri, invoice sendiri, bahkan mekanisme deposit jaminan khusus untuk brand tingkat enterprise. Kalau kedua brand itu ditarik masuk ke dalam PT yang sama dengan pabriknya, penjualan pabrik kepada mereka bukan penjualan lagi — itu perpindahan barang di dalam satu badan usaha.
Akibatnya: piutang dan invoice yang sekarang tercatat jadi janggal secara akuntansi, margin pabrik jadi semu karena menagih diri sendiri, dan laporan laba per brand kehilangan artinya.
Tindakan: ambil NIB perorangan atas namamu, dan biarkan Projee serta Lumove tetap di luar PT. Gratis, cepat, dan yang lebih penting — batas antara pabrik dan brand yang sudah kamu bangun di ERP tetap benar.
Sisi baiknya memakai PT tetap ada: pengajuan virtual account lebih mudah disetujui, dan administrasinya satu pintu. Tapi jangan mengubah struktur badan usaha hanya demi satu kanal pembayaran. Kalau VA ditolak karena berstatus perorangan, jalan dengan QRIS dulu — itu sudah menutup sebagian besar kebutuhan, dan VA bisa menyusul kalau memang volumenya menuntut.
Konsekuensi pajak dan pembukuan di atas adalah gambaran umum, bukan nasihat pajak. Sebelum memutuskan, konfirmasikan ke konsultan pajakmu — terutama soal status PKP PT dan cara menarik penghasilan brand ke pribadi.
Pendaftaran ke penyedia pembayaran jarang gagal karena teknis — hampir selalu karena berkas atau halaman kebijakan yang belum ada. Siapkan empat kelompok ini.
Projee dan Lumove sama-sama usaha perorangan atas namamu sendiri, dengan rekening masing-masing. Itu menyederhanakan banyak hal.
Dua rekening, satu pemilik — ada tiga cara:
PRJ- dan LMV- serta laporan per brand. Karena kedua brand milikmu sendiri, tidak ada soal hukum di sini — larangan menampung dana pihak lain hanya berlaku kalau uang itu milik toko orang lain.Saran saya: mulai dari cara pertama. Satu proses verifikasi, satu rekonsiliasi, dan pemisahan brand tetap terbaca rapi di laporan. Pecah jadi dua akun nanti saja kalau salah satu brand naik jadi badan usaha sendiri, atau kalau ada orang lain yang ikut memilikinya.
Ini yang dibuka petugas verifikasi saat meninjau pengajuanmu, dan penyebab penolakan paling sering. Semuanya halaman biasa, bukan aplikasi — drafnya sudah tersedia di repo (shop-site/), tinggal isi bagian yang ditandai.
Yang dibutuhkan bukan aplikasi baru, bukan pula server sewaan — hanya dua fungsi kecil di infrastruktur yang sudah kamu punya. Repo ERP kamu sudah memakai Netlify Functions untuk notifikasi, jadi polanya sudah ada. Yang berubah cuma satu prinsip: aplikasi kamu selama ini berjalan penuh di browser, dan pembayaran otomatis tidak bisa begitu.
index.html. Siapa pun bisa membukanya lewat view-source. Ia harus tinggal di Netlify Function atau Supabase Edge Function.Pertanyaannya “dibuat sendiri atau diintegrasikan ke ERP?” ternyata tidak perlu dijawab, karena mekanisme yang kamu bayangkan sudah berjalan di portal Bosublim. Projee dan Lumove sudah terdaftar sebagai tenant, cockpit-nya sudah ada, dan alur pesanan publik sudah tersambung ke produksi.
Karena toko baru ini lebih enak dilihat, akan terasa masuk akal memberinya tabel pesanan sendiri supaya cepat jadi. Jangan. Begitu ada dua tempat penyimpanan pesanan, laporan penjualan brand tidak akan pernah cocok lagi dengan produksi, dan tidak ada yang bisa menjelaskan angka mana yang benar.
Tindakan: toko baru ini hanya boleh jadi tampilan. Semua penyimpanan tetap lewat fungsi yang sudah ada, dan kolom yang kurang ditambahkan ke tabel yang sudah ada — bukan ke tabel baru.
Empat langkah, berurutan, masing-masing bisa dipakai sebelum langkah berikutnya selesai:
Langkah satu dan sebagian langkah dua sudah jadi satu migrasi: diuji lebih dulu di Postgres lokal, lalu diterapkan ke proyek Supabase dan diperiksa langsung ke skema aslinya — 12 kolom baru di tenant, 2 di produk, 16 di pesanan, 6 fungsi. Kedua toko sengaja masih ditandai belum publik, jadi belum ada katalog yang tersaji.
publik — toko baru tidak tampil sebelum profilnya diisi.Sisa yang manual: isi profil tiap toko (rekening, alamat, awalan virtual account), isi stok per produk, baru tandai publik. Yang belum dikerjakan: formulir profil toko di cockpit, penggantian tampilan toko lama, dan dua fungsi pembayaran yang memegang kunci rahasia penyedia.
Betul, akan ada barang ready dan ada pre-order. Tapi pembagian yang benar bukan dua, melainkan tiga — dan yang membedakan bukan cepat atau lambatnya, melainkan apakah baris pesanan itu memakan kapasitas pabrik.
Jersey yang dijual di sini masuk jalur kedua: barangnya sudah jadi, yang dikerjakan cuma cetak nama dan nomornya. Itu bukan produksi dari nol, dan tidak boleh diperlakukan sebagai SO jahit — kalau disamakan, papan produksimu akan penuh oleh pekerjaan yang sebenarnya hanya butuh beberapa jam di bagian finishing, dan estimasi ke pembeli jadi kelewat lama tanpa alasan.
Urutan yang benar ada tiga pintu, dan pintu tengah itu yang menyelamatkanmu:
Otomatiskan sebagian, jangan seluruhnya. Untuk jalur pertama dan kedua — barang ready, stok cukup, sudah lunas — konfirmasi boleh berjalan sendiri; tidak ada keputusan yang perlu diambil manusia di situ. Untuk pre-order, biarkan tetap manual: yang diputuskan di sana bukan “uangnya sudah masuk atau belum”, tapi “kapasitas minggu ini cukup atau tidak”, dan itu tidak bisa dijawab basis data.
Barang ready ada di rak karena sebelumnya brand memesan produksi satu batch ke pabrik. Itu SO produksi tersendiri, bukan hasil pesanan pelanggan, dan uangnya keluar dari kantong brand duluan — berbulan-bulan sebelum barangnya laku. Beda arah dengan pre-order, yang modalnya justru datang dari pembeli.
Tindakan: mulai dari jalur kedua dan ketiga, di mana modal datang dari pembeli. Tambahkan stok ready hanya untuk barang yang perputarannya sudah terbukti dari data penjualan — ukuran M dan L biasanya, bukan seluruh rentang ukuran. Stok mati di ukuran XXL adalah cara paling umum brand kecil kehabisan modal.
Betul sekali — dan ini menyederhanakan banyak hal. Jangan simpan “ready atau pre-order” sebagai pilihan di produk, karena begitu ada dua sumber kebenaran (stok bilang A, penanda bilang B), yang salah selalu penandanya. Cukup satu rumus:
dari_stok = min(diminta, stok[ukuran])
produksi = diminta − dari_stok
produksi > 0 → jadwal produksi menurut jumlah pcs
produksi = 0 → pakai nama/nomor? finishing 3 hari : kirim 1 hari
Prototipe sudah memakai rumus ini. Coba di Jersey Printing Pro: ukuran XXL sisa 4, minta 6 — hasilnya “4 pcs dari stok, 2 pcs diproduksi dulu”. Hoodie yang semua ukurannya kosong otomatis jadi pre-order tanpa penanda apa pun.
Efek sampingnya bagus: ukuran yang habis tidak perlu lagi dimatikan. Dulu pembeli yang mau M lihat tulisan “habis” lalu pergi; sekarang dia lihat “pre-order, ± 10 hari kerja” dan tetap bisa memesan. Untuk barang yang toh diproduksi sendiri, mematikan pilihan itu membuang pesanan tanpa alasan.
Persis seperti yang kamu maksud — satu tabel per brand, diisi sendiri di cockpit, dan sistem menjanjikan tanggal tanpa bertanya ke siapa pun:
| Jumlah yang harus diproduksi | Janji ke pembeli | Perlu manusia? |
|---|---|---|
| 1 – 12 pcs | 10 hari kerja | tidak |
| 13 – 50 pcs | 14 hari kerja | tidak |
| 51 – 100 pcs | 18 hari kerja | tidak |
| di atas 100 pcs | dikonfirmasi tim | ya |
Angka di atas cuma contoh yang sudah jalan di prototipe — ganti dengan angka Bosublim yang sebenarnya. Yang penting bentuknya: ada batas di mana sistem berhenti berjanji sendiri. Pesanan 300 pcs tidak boleh mendapat tanggal otomatis, karena itu bukan pesanan retail lagi.
Tabel lead time diam-diam mengandaikan satu hal: pabrik sedang senggang. Kalau lima pesanan 50 pcs masuk di minggu yang sama, kelimanya dijanjikan 14 hari, sementara kapasitas cuma cukup untuk sebagian. Yang jebol bukan satu pesanan — kelimanya sekaligus, dan kamu baru tahu di hari kesepuluh, saat sudah tidak ada ruang memperbaiki.
Tindakan: ganti konfirmasi manusia dengan kuota, jangan hapus begitu saja. Beri jalur brand kapasitas mingguan (misalnya 400 pcs). Tiap pesanan yang lunas memesan slot dari kuota minggu itu; kalau minggu ini penuh, sistem otomatis memberi tanggal minggu berikutnya — tidak menolak, tidak bertanya, tapi janjinya jujur. Tetap otomatis seperti maumu, hanya saja tidak buta.
orders di ERP-mu sudah punya kolom deadline, status deadline, bahkan urutan produksi yang secara bawaan mengurut berdasarkan deadline. Jadi SO dari pesanan retail tinggal membawa tanggal hasil hitungan tadi, dan papan produksi otomatis mengurutkannya di tempat yang benar. Tanpa itu, “minta selesai sesuai deadline” cuma harapan yang disampaikan lewat chat.Ini bagian yang paling perlu kamu jawab jujur. Pembuat toko online berbasis WhatsApp sudah banyak sekali di Indonesia, sebagian gratis. Kalau posisinya “bikin toko online + tombol WA”, kamu masuk ke pasar padat dengan modal paling kecil di antara semua pemain — dan pemenang di pasar itu ditentukan biaya akuisisi, bukan fitur.
Tapi ada satu hal yang toko online umum kerjakan dengan buruk, dan kebetulan itu justru inti bisnismu: pesanan yang isinya daftar orang, bukan daftar barang. Satu jersey tim = 18 baris ukuran, nama punggung, dan nomor. Di Shopify atau marketplace, itu berubah jadi neraka catatan tambahan; di WhatsApp, jadi tangkapan layar spreadsheet yang diketik ulang admin. Di prototipe ini, itu adalah tabel biasa yang ikut sampai ke nota.
Posisikan begitu: bukan pembuat toko online, tapi tempat jualan apparel tim yang mengerti roster. Pasarnya lebih sempit — dan justru itu yang membuat kamu bisa menang di dalamnya. Konveksi, brand jersey lokal, dan penjual seragam adalah calon pengguna yang jelas, dan mereka sudah ada di sekitar Bosublim.
Empat baris ini cukup untuk tahu sehat atau tidak. Kolom kanan adalah patokan awal yang wajar untuk katalog kecil — ganti dengan angka kamu sendiri setelah 4 minggu.
| Tahap | Artinya | Patokan |
|---|---|---|
| Buka detail produk | Foto & harga cukup menarik | 35–50% |
| Sampai layar cara bayar | Form & roster tidak bikin kabur | 8–15% |
| Pilih bayar sistem | Penanda kepercayaan bekerja | ukur, jangan tebak |
| Closing berbayar | Harga, ongkir, respons penjual | 30–50% |
Pasang prototipe ini untuk satu brand sendiri, dengan rekening dan nomor asli, lalu kumpulkan 30 pesanan pertama. Sambil jalan, kerjakan hanya dua hal dari fase 01: tabel pesanan di Supabase beserta RLS per toko, dan halaman status pesanan. Panel admin, pendaftaran toko, dan gateway pembayaran jangan disentuh sampai brand kedua kamu sendiri berjalan mulus di atasnya. Membangun untuk toko orang lain sebelum tokomu sendiri lancar adalah cara paling rapi untuk sibuk tanpa maju.